亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

UART串口通信多余字節(jié)排查:從硬件波形到軟件協(xié)議的實(shí)用指南

UART串口通信多余字節(jié)排查:從硬件波形到軟件協(xié)議的實(shí)用指南 搞嵌入式的主從機(jī)通信遇到UART串口線上憑空多出來幾個(gè)字節(jié)真的是再常見不過的問題了。尤其是master和slave兩塊MCU之間通過UART互聯(lián)從機(jī)莫名其妙收到一堆0x00、0xFF或者亂碼輕則丟數(shù)據(jù)重則整個(gè)通信邏輯都亂了。這篇文章就專門聊聊這個(gè)“unwanted bytes”到底怎么來的以及我實(shí)際排查中總結(jié)出來的一套套路。不管你是剛?cè)腴T還是已經(jīng)調(diào)過幾年串口這篇內(nèi)容應(yīng)該都能給你一些參考。1. 問題現(xiàn)象與整體排查思路1.1 先明確“多余字節(jié)”長什么樣在動手查代碼之前第一步一定是把現(xiàn)象描述準(zhǔn)確。我自己接過不少類似的排查需求發(fā)現(xiàn)大家說“串口收到多余數(shù)據(jù)”的時(shí)候其實(shí)指的根本不是同一種情況。我一般會把現(xiàn)象拆成三類每一類的排查方向完全不同。第一類是多余的幀也就是從機(jī)明明只該收到一條指令結(jié)果收到了兩條或者收到一條完整的指令再加一個(gè)殘缺的尾巴。這種情況通常和軟件發(fā)送邏輯、幀同步、緩沖區(qū)處理有關(guān)。第二類是幀內(nèi)的多余字節(jié)比如主機(jī)發(fā)的幀是AA 55 01 02 03從機(jī)收到的卻是AA 55 01 02 03 00尾部多了一個(gè)0x00。這種情況一般指向波特率誤差、停止位采樣錯誤、電平不穩(wěn)定。第三類是隨機(jī)亂碼像是7F 3A C2 00 FF這種完全沒有規(guī)律的東西而且不是每次復(fù)現(xiàn)。這種情況優(yōu)先懷疑硬件干擾、共地問題、電源紋波、上電時(shí)序。所以接到問題之后我會先追問一句話多余出來的字節(jié)是固定的0x00或0xFF還是完全隨機(jī)的亂碼是每次通信都出現(xiàn)還是偶爾出現(xiàn)固定值的字節(jié)大概率是邏輯問題隨機(jī)亂碼大概率是物理鏈路問題。1.2 排查要先硬件后軟件很多人一上來就翻代碼盯著中斷處理函數(shù)看半天其實(shí)效率很低。我自己踩過太多次坑之后總結(jié)出來的原則是先確認(rèn)物理鏈路可靠再懷疑軟件邏輯。具體來說我的排查順序是這樣的用示波器直接看RX/TX兩個(gè)引腳的波形確認(rèn)空閑電平、起始位、停止位是否干凈。用USB轉(zhuǎn)TTL工具把從機(jī)單獨(dú)接出來用PC串口助手發(fā)同樣的數(shù)據(jù)看從機(jī)是否還會收到多余字節(jié)。如果PC直連從機(jī)沒問題再把主機(jī)接回去用示波器對比主機(jī)發(fā)出的波形和從機(jī)實(shí)際收到的波形。最后才回到代碼層面檢查波特率配置、中斷處理、緩沖區(qū)管理。這個(gè)順序看起來笨但能省掉大量無意義的代碼審查時(shí)間。尤其在第2步PC直連從機(jī)如果一切正常那說明從機(jī)的接收軟件邏輯基本沒問題問題大概率出在主機(jī)端或者主從機(jī)之間的物理鏈路上。2. UART通信參數(shù)與硬件連接的核心坑點(diǎn)2.1 波特率誤差比你想的更敏感UART通信的基礎(chǔ)是波特率而波特率的本質(zhì)是雙方對時(shí)間基準(zhǔn)的約定。很多MCU內(nèi)部用的是不那么精確的RC振蕩器比如常溫下標(biāo)稱8MHz實(shí)際上可能是7.9MHz到8.1MHz之間浮動再加上溫度變化誤差會更大。波特率誤差會直接導(dǎo)致什么后果呢以9600bps為例每一位的寬度約為104.16微秒。UART接收端會在每個(gè)bit的中間點(diǎn)采樣如果雙方的波特率存在偏差那么越靠后的bit采樣點(diǎn)偏離真實(shí)bit中心就越遠(yuǎn)。假設(shè)主機(jī)的波特率比從機(jī)快2%那么到第10個(gè)bit數(shù)據(jù)位第8位的時(shí)候采樣點(diǎn)已經(jīng)偏移了約2個(gè)bit的2%也就是大約20微秒雖然還不至于立刻采錯但如果幀更長或者誤差再大一點(diǎn)就會出現(xiàn)采樣到錯誤電平的情況進(jìn)而表現(xiàn)為多了字節(jié)、少了字節(jié)、或者整個(gè)幀錯位。我在實(shí)踐中一般會用這樣一個(gè)標(biāo)準(zhǔn)通信雙方的波特率誤差之和不要超過±2%如果要跑長幀或者高速率比如460800以上這個(gè)指標(biāo)要收緊到±1%以內(nèi)。檢查方法也很簡單看芯片手冊里UART外設(shè)的時(shí)鐘源是什么如果是內(nèi)部RC就用邏輯分析儀實(shí)測一下主機(jī)發(fā)出的波形計(jì)算實(shí)際波特率再和從機(jī)的配置對比。另外提一句有些從機(jī)為了省電會動態(tài)切換時(shí)鐘源比如運(yùn)行在外部晶振、低功耗模式切到內(nèi)部RC喚醒之后沒切回來結(jié)果就是波特率整個(gè)漂掉。這種問題最隱蔽因?yàn)榇a邏輯完全沒問題就是硬件狀態(tài)變了。2.2 共地、電平匹配與上拉電阻UART本質(zhì)上是用電壓差來表示邏輯0和邏輯1的。既然是電壓差那就必須有參考地。如果主從機(jī)各自供電、沒有共地那么兩者的GND之間可能存在幾伏的電位差這時(shí)候TX引腳輸出的高電平在從機(jī)看來可能完全不是預(yù)期電平直接導(dǎo)致數(shù)據(jù)錯誤。還有一種常見情況是電平不匹配。比如主機(jī)是5V的TTL電平從機(jī)是3.3V的MCU如果從機(jī)引腳不是5V容忍5V tolerant的那主機(jī)的高電平5V可能直接損壞從機(jī)RX引腳或者讓從機(jī)讀取到不確定的電平狀態(tài)。更隱蔽的是反過來3.3V主機(jī)的TX高電平只有3.3V接5V的從機(jī)如果從機(jī)RX的輸入高電平閾值比較高就可能讀不到高電平導(dǎo)致整幀數(shù)據(jù)全是錯的這在某些老款5V器件上特別明顯。再有一個(gè)容易被忽略的點(diǎn)是TX引腳空閑狀態(tài)的電平。UART空閑時(shí)TX線應(yīng)該是高電平起始位是低電平。如果主機(jī)在上電初始化階段GPIO被默認(rèn)配置為下拉輸入或者浮空輸入那TX線可能會短暫拉低從機(jī)就會認(rèn)為這是一個(gè)起始位開始接收數(shù)據(jù)然后收到一個(gè)全是0x00或者0xFF的垃圾字節(jié)。解決辦法是確保主從機(jī)共地最好使用同一電源系統(tǒng)。電平不一致時(shí)加電平轉(zhuǎn)換芯片不要用電阻分壓湊合。TX和RX線上各加一個(gè)10kΩ上拉電阻到VCC保證空閑狀態(tài)是確定的高電平。主機(jī)的TX引腳在GPIO初始化之前先通過硬件下拉電阻保證上電默認(rèn)低電平再在軟件初始化完成后切換為UART功能并輸出高電平這樣從機(jī)就不會誤檢到起始位。2.3 硬件干擾與電源噪聲如果現(xiàn)場環(huán)境有電機(jī)、繼電器、逆變器這類設(shè)備UART線就是一根天然的天線很容易耦合到干擾信號。這種干擾在示波器上看起來可能只是幾十納秒的毛刺但在UART接收端看來如果毛刺電平低于起始位觸發(fā)電平就可能被當(dāng)成一個(gè)起始位從而啟動一次接收過程。處理硬件干擾我常用的幾招雙絞線傳輸把TX和GND絞在一起RX和GND絞在一起減少環(huán)路面積。串聯(lián)電阻在TX和RX線上各串聯(lián)一個(gè)100Ω到1kΩ的電阻配合引腳寄生電容組成低通濾波能有效濾掉高頻毛刺。屏蔽如果傳輸距離超過30cm或者環(huán)境特別惡劣直接上屏蔽線屏蔽層單端接地。電源去耦MCU的VCC引腳旁邊放0.1μF陶瓷電容如果MCU旁邊有繼電器或電機(jī)驅(qū)動還要考慮加磁珠或者LC濾波。光電隔離如果兩個(gè)MCU之間的地電位真的無法統(tǒng)一或者傳輸距離很遠(yuǎn)直接用光耦隔離每個(gè)方向一路。電源噪聲這個(gè)問題我要多說一句。很多MCU內(nèi)部有多個(gè)電源域比如模擬電源、數(shù)字電源、IO電源。如果IO電源紋波大UART接收引腳的輸入閾值就會抖動本來不該觸發(fā)的中斷可能就觸發(fā)了。所以看到“偶爾多一個(gè)字節(jié)”這種問題先不要懷疑代碼去量一下MCU電源引腳的紋波特別是通信瞬間的紋波。3. 軟件層面的核心細(xì)節(jié)與實(shí)現(xiàn)要點(diǎn)3.1 串口初始化時(shí)鐘、GPIO、外設(shè)配置的順序問題很多人在初始化串口的時(shí)候習(xí)慣先把GPIO配置成復(fù)用功能然后再初始化UART外設(shè)。這個(gè)順序在某些MCU上會有問題尤其是主機(jī)的TX引腳如果GPIO先切到復(fù)用功能而UART外設(shè)還沒使能TX引腳的電平是未定義的可能正好是個(gè)低電平從機(jī)就直接收到一個(gè)起始位了。我一般的初始化步驟是這樣的先使能GPIO時(shí)鐘和UART時(shí)鐘。配置TX引腳為復(fù)用推挽輸出RX引腳為復(fù)用浮空輸入。先拉高TX引腳電平再使能UART外設(shè)。配置波特率、數(shù)據(jù)位、停止位、校驗(yàn)位。使能接收中斷或DMA最后才使能UART。這里的關(guān)鍵是第3步確保TX引腳在UART外設(shè)接管之前處于確定的高電平狀態(tài)。如果MCU的GPIO模塊在上電后會默認(rèn)輸出高電平那問題不大但有些MCU默認(rèn)輸出低電平這時(shí)候就要在GPIO初始化之后、UART外設(shè)使能之前先寫一個(gè)高電平到TX引腳。另外注意從機(jī)的RX引腳在初始化完成之前可能一直處于浮空狀態(tài)此時(shí)外界任何噪聲都可能被當(dāng)成數(shù)據(jù)。所以在從機(jī)端RX引腳要配置為帶上拉的輸入模式或者直接配置為復(fù)用功能并額外使能內(nèi)部上拉確保復(fù)位后到UART初始化完成之間RX引腳是穩(wěn)定的高電平。3.2 接收緩沖區(qū)管理放棄裸奔的寄存器直讀如果從機(jī)接收數(shù)據(jù)用的是“每收到一個(gè)字節(jié)就進(jìn)中斷直接把數(shù)據(jù)存到一個(gè)靜態(tài)變量里”這種方式那想處理unwanted bytes就非常痛苦。因?yàn)橹袛嗬镏灰幸稽c(diǎn)點(diǎn)邏輯問題比如響應(yīng)不及時(shí)UART硬件接收寄存器就會被新數(shù)據(jù)覆蓋產(chǎn)生溢出錯誤而后面的數(shù)據(jù)就全亂了。我建議無論多簡單的項(xiàng)目都用一個(gè)環(huán)形緩沖區(qū)ring buffer來管理接收數(shù)據(jù)。中斷里只做一件事把收到的一個(gè)字節(jié)丟進(jìn)環(huán)形緩沖區(qū)。主循環(huán)或者狀態(tài)機(jī)里再按幀協(xié)議去解析緩沖區(qū)里的數(shù)據(jù)。這樣做的核心好處是中斷處理時(shí)間極短不容易丟字節(jié)主循環(huán)可以隨時(shí)檢查緩沖區(qū)里有沒有完整幀即使收到了unwanted bytes也只是在緩沖區(qū)里多占一個(gè)位置不會立刻打亂接收流程。環(huán)形緩沖區(qū)的實(shí)現(xiàn)很簡單#define RX_BUF_SIZE 256 static volatile uint8_t rx_buf[RX_BUF_SIZE]; static volatile uint16_t rx_head 0; static volatile uint16_t rx_tail 0; void UART_RX_IRQHandler(void) { /* 讀出數(shù)據(jù)寄存器自動清除接收中斷標(biāo)志 */ uint8_t data UART-DR; uint16_t next (rx_head 1) % RX_BUF_SIZE; if (next ! rx_tail) { rx_buf[rx_head] data; rx_head next; } else { /* 緩沖區(qū)滿置溢出標(biāo)志 */ uart_overflow_flag 1; } }這套邏輯里最關(guān)鍵的是head和tail的更新方式。生產(chǎn)者中斷只修改head消費(fèi)者主循環(huán)只修改tail兩邊不需要加鎖也永遠(yuǎn)不會沖突。緩沖區(qū)滿的判斷是(head 1) % SIZE tail也就是說整個(gè)緩沖區(qū)最多只能存SIZE - 1個(gè)字節(jié)犧牲一個(gè)字節(jié)的位置來區(qū)分“空”和“滿”。3.3 幀協(xié)議與狀態(tài)機(jī)解析讓“多余字節(jié)”無處遁形有了環(huán)形緩沖區(qū)之后下一步就是怎么從緩沖區(qū)里解析出有效幀。如果主機(jī)和從機(jī)之間的通信沒有幀協(xié)議只是發(fā)了幾個(gè)字節(jié)、收了幾個(gè)字節(jié)那任何多余字節(jié)都會直接導(dǎo)致業(yè)務(wù)數(shù)據(jù)錯位根本沒法防護(hù)。我強(qiáng)烈建議哪怕只是兩個(gè)MCU之間互相傳一個(gè)開關(guān)量也一定要定義幀格式。我常用的幀格式是幀頭(2字節(jié)) 長度(1字節(jié)) 命令(1字節(jié)) 數(shù)據(jù)(N字節(jié)) CRC(2字節(jié)) 幀尾(1字節(jié))具體一點(diǎn)幀頭固定為0xAA 0x55用于同步。長度是指命令數(shù)據(jù)CRC的總字節(jié)數(shù)。CRC用CRC16-Modbus算法覆蓋從長度到數(shù)據(jù)的所有字節(jié)。幀尾固定為0x0D 0x0A做第二重校驗(yàn)。解析的時(shí)候用狀態(tài)機(jī)而不是簡單地“收到幀頭就認(rèn)為后面是有效數(shù)據(jù)”typedef enum { FRAME_STATE_HEADER1, FRAME_STATE_HEADER2, FRAME_STATE_LENGTH, FRAME_STATE_DATA, FRAME_STATE_CRC1, FRAME_STATE_CRC2, FRAME_STATE_TAIL } frame_state_t; uint8_t frame_buf[256]; uint8_t frame_len 0; frame_state_t frame_state FRAME_STATE_HEADER1; void protocol_parse(uint8_t byte) { switch (frame_state) { case FRAME_STATE_HEADER1: if (byte 0xAA) frame_state FRAME_STATE_HEADER2; else frame_state FRAME_STATE_HEADER1; break; case FRAME_STATE_HEADER2: if (byte 0x55) frame_state FRAME_STATE_LENGTH; else frame_state (byte 0xAA) ? FRAME_STATE_HEADER2 : FRAME_STATE_HEADER1; break; case FRAME_STATE_LENGTH: frame_len byte; if (frame_len 200) frame_state FRAME_STATE_HEADER1; else frame_state FRAME_STATE_DATA; break; case FRAME_STATE_DATA: frame_buf[byte_index] byte; if (byte_index frame_len) frame_state FRAME_STATE_CRC1; break; /* CRC和幀尾檢查略 */ } }這個(gè)狀態(tài)機(jī)的好處是即使緩沖區(qū)里混入了多余字節(jié)比如上電瞬間的0x00只要不是0xAA狀態(tài)機(jī)就會被重置或者停留在幀頭探測狀態(tài)不會誤以為一個(gè)殘幀是有效數(shù)據(jù)。我自己寫過不少協(xié)議解析這個(gè)思路是最穩(wěn)的。3.4 使能UART空閑中斷或DMAIDLE方式如果MCU硬件支持我建議使用UART空閑中斷IDLE line interrupt或者DMA IDLE中斷來接收不定長數(shù)據(jù)。這種方式比逐字節(jié)中斷更高效而且天然能識別“一幀數(shù)據(jù)收完了”。具體做法是配置UART的RX DMA把收到的數(shù)據(jù)直接搬運(yùn)到內(nèi)存緩沖區(qū)同時(shí)使能UART總線空閑中斷。當(dāng)總線上超過一個(gè)字節(jié)時(shí)間沒有新數(shù)據(jù)時(shí)觸發(fā)空閑中斷此時(shí)DMA搬運(yùn)的字節(jié)數(shù)就是當(dāng)前幀的長度主循環(huán)再對這個(gè)緩沖區(qū)做協(xié)議解析。這種方式的優(yōu)勢在于DMA搬運(yùn)過程中即使收到unwanted bytes也只是被機(jī)械地搬到緩沖區(qū)里不會阻塞CPU空閑中斷標(biāo)識一幀的結(jié)束不會把兩幀數(shù)據(jù)混在一起。只要協(xié)議解析端做好幀頭探測和CRC校驗(yàn)?zāi)嵌嘤嘧止?jié)的影響就可以被完全隔離。4. 主從機(jī)通信中的特殊場景與處理方案4.1 上電時(shí)序?qū)е碌膯釉肼曃矣龅竭^一個(gè)特別典型的案例兩塊MCU共用一個(gè)電源master上電后立即初始化UART并向slave發(fā)送“同步請求”但slave的電源和時(shí)鐘還沒穩(wěn)定GPIO還處于默認(rèn)狀態(tài)串口外設(shè)也沒有初始化。此時(shí)master發(fā)過來的字節(jié)被slave的GPIO當(dāng)成普通IO讀到驅(qū)動了一些誤操作等slave的UART初始化完成后再去讀接收寄存器里面已經(jīng)積壓了幾個(gè)垃圾字節(jié)。這種問題的本質(zhì)是主從機(jī)之間的啟動時(shí)序沒有協(xié)調(diào)。解決辦法一般有兩種軟件握手上電master啟動后先等待1秒再發(fā)送任何數(shù)據(jù)讓slave有足夠時(shí)間完成初始化。如果系統(tǒng)對啟動時(shí)間有要求可以改為slave初始化完成后主動發(fā)一個(gè)“ready”字節(jié)master收到后再開始業(yè)務(wù)通信。硬件使能控制如果主從機(jī)只是板級通信可以在master的TX線上串聯(lián)一個(gè)MOS管開關(guān)master的某個(gè)GPIO控制這個(gè)開關(guān)master確認(rèn)slave ready后再打開開關(guān)。實(shí)際項(xiàng)目里我見過太多因?yàn)樯想姇r(shí)序?qū)е碌膯栴}而且這類問題特別容易在“斷電重新上電”時(shí)復(fù)現(xiàn)冷啟動反而不一定出現(xiàn)因?yàn)殡娙莘烹姇r(shí)間不同。4.2 半雙工通信的TX/RX方向切換如果主從機(jī)之間用的是RS485之類的半雙工總線那unwanted bytes還有一個(gè)非常容易忽視的來源方向切換時(shí)總線電平還沒有穩(wěn)定。RS485收發(fā)器都有一個(gè)DE發(fā)送使能引腳切換到發(fā)送模式后總線電平需要一點(diǎn)時(shí)間才能建立穩(wěn)定。如果master在DE拉高之后立刻發(fā)送數(shù)據(jù)前幾個(gè)字節(jié)很可能是錯誤的。同理從機(jī)在發(fā)送完回復(fù)后DE拉低切換到接收模式的瞬間總線上可能有回波或者殘余電平也會被當(dāng)成數(shù)據(jù)收下來。我處理半雙工通信時(shí)一般會DE拉高后延時(shí)至少半個(gè)字節(jié)時(shí)間比如9600波特率下約50微秒再發(fā)數(shù)據(jù)。發(fā)送完成后先延時(shí)一個(gè)字節(jié)時(shí)間再拉低DE。在協(xié)議層從機(jī)收到一幀完整數(shù)據(jù)后先延時(shí)一小段再回復(fù)避免和master的發(fā)送尾巴撞車。如果需要極端可靠可以在幀尾之后再加一個(gè)靜默間隔讓總線電平穩(wěn)定后再切換方向。4.3 從機(jī)地址廣播與回環(huán)測試還有個(gè)場景是master通過UART廣播給多個(gè)slave每個(gè)slave用自己的地址來過濾數(shù)據(jù)。如果某個(gè)slave的接收引腳有虛焊、冷焊或者連接器接觸不良就會間歇性收到錯誤字節(jié)。這種問題軟件上很難完全規(guī)避只能靠協(xié)議層加CRC和地址校驗(yàn)來防止誤動作。另外如果master的TX可以直接回環(huán)接到自己的RX做自測要注意這時(shí)候收到的數(shù)據(jù)其實(shí)是自己發(fā)出去的不能作為slave狀態(tài)的判斷依據(jù)。有些開發(fā)者在這里被繞進(jìn)去以為自己發(fā)了什么slave就收到了什么結(jié)果問題根本出在slave側(cè)的接收引腳上。5. 實(shí)操案例復(fù)盤一次“電動機(jī)一啟動就多字節(jié)”的排查過程5.1 現(xiàn)象描述與初步定位那是一個(gè)溫度采集系統(tǒng)master是STM32F103slave是STM32G0兩個(gè)MCU之間用UART通信9600波特率距離大約20cmPCB板內(nèi)走線。slave主要采集溫度傳感器數(shù)據(jù)master定時(shí)輪詢slave。現(xiàn)場有個(gè)24V的直流電機(jī)跟控制板共用電源?,F(xiàn)象是電機(jī)不啟動的時(shí)候通信一切正常電機(jī)一啟動slave就會收到大量亂碼字節(jié)嚴(yán)重時(shí)直接進(jìn)不了接收狀態(tài)機(jī)。我拿到這個(gè)問題后的第一步是接上示波器觀察電機(jī)啟動瞬間master TX引腳和slave RX引腳上的波形。結(jié)果發(fā)現(xiàn)電機(jī)啟動瞬間slave RX上出現(xiàn)了一串幅度超過3.3V的振鈴頻率非常高顯然不是master發(fā)出的正常數(shù)據(jù)。再查電源發(fā)現(xiàn)電機(jī)啟動瞬間24V電源電壓跌落而控制板上的3.3V LDO輸出也跟著出現(xiàn)了一個(gè)不小的跌落尖峰持續(xù)時(shí)間大約幾十毫秒。MCU的IO電源不穩(wěn)RX引腳的輸入閾值也跟著漂外部噪聲就能輕易被當(dāng)成UART信號采到。5.2 硬件改動定位到根因是電源和地平面噪聲后硬件做了三個(gè)改動在電機(jī)驅(qū)動部分與MCU控制部分之間把地平面分開單點(diǎn)連接減少電機(jī)電流回流對控制地平面的干擾。在24V到3.3V LDO之間增加磁珠和更大容量的儲能電容抑制電機(jī)啟動瞬間的電源跌落。slave的RX引腳串聯(lián)了1kΩ電阻并在RX到GND之間并聯(lián)一個(gè)100pF電容組成一個(gè)低通濾波器濾掉高頻噪聲毛刺。改完之后再用示波器看電機(jī)啟動瞬間RX引腳上的波形干凈了很多不再觸發(fā)UART接收。5.3 軟件加固硬件改完之后我又在軟件上做了幾層防御防止以后換了個(gè)更惡劣的環(huán)境又出問題幀協(xié)議增加CRC校驗(yàn)CRC不對的幀一律丟棄。接收狀態(tài)機(jī)增加超時(shí)重置超過50ms沒有收到完整幀狀態(tài)機(jī)強(qiáng)制回到幀頭探測狀態(tài)。slave在收到一幀數(shù)據(jù)后如果CRC校驗(yàn)失敗不會做任何動作也不會回復(fù)NACK避免干擾總線。這套組合拳下來電機(jī)啟停、正反轉(zhuǎn)頻繁操作slave再也沒有收到過無用的多余字節(jié)。6. 常見問題速查表與避坑經(jīng)驗(yàn)6.1 問題排查速查表現(xiàn)象可能原因排查方法解決方案固定多出0x00/0xFF字節(jié)TX上電默認(rèn)低電平被識別為起始位示波器看上電瞬間TX波形確認(rèn)TX默認(rèn)高電平或加上拉隨機(jī)亂碼波特率誤差過大邏輯分析儀實(shí)測計(jì)算誤差改用外部晶振或調(diào)整分頻值偶爾多一個(gè)字節(jié)接收中斷響應(yīng)不及時(shí)導(dǎo)致溢出查看溢出錯誤標(biāo)志位改用DMAIDLE或縮短中斷處理時(shí)間電機(jī)/繼電器動作時(shí)出錯電源或地平面噪聲示波器看RX波形和電源紋波濾波、隔離、分割地平面長線傳輸收到亂碼信號反射/干擾波形上看振鈴串聯(lián)匹配電阻、雙絞線、屏蔽線從機(jī)喚醒后通信錯亂時(shí)鐘源切換導(dǎo)致波特率漂移檢查從機(jī)時(shí)鐘配置鎖定時(shí)鐘源或重新初始化波特率半雙工總線多發(fā)一幀方向切換電平未穩(wěn)定示波器看DE和總線電平加延時(shí)切換方向6.2 我踩過的幾個(gè)坑第一個(gè)坑是只檢查代碼不看波形。剛開始做嵌入式那兩年遇到串口多字節(jié)我第一反應(yīng)永遠(yuǎn)是中斷里是不是有Bug然后是協(xié)議解析是不是有漏洞折騰一整天發(fā)現(xiàn)是TX引腳上電默認(rèn)低電平這種硬件問題。后來我養(yǎng)成了一個(gè)習(xí)慣直接上邏輯分析儀先把物理層波形拍下來再決定要不要看代碼。第二個(gè)坑是對波特率誤差掉以輕心。有次兩個(gè)板子一個(gè)用外部12MHz晶振一個(gè)用內(nèi)部RC都配置成115200波特率。從機(jī)總是間歇性收到錯幀查了很久才發(fā)現(xiàn)從機(jī)內(nèi)部RC實(shí)際頻率偏了將近1.5%雖然數(shù)據(jù)位短的時(shí)候不是每次都錯但只要幀稍微長一點(diǎn)就必錯。從那次之后涉及UART通信的兩個(gè)MCU我會把兩邊的時(shí)鐘配置都拉出來對比確認(rèn)誤差在可接受范圍內(nèi)。第三個(gè)坑是在中斷里做太多事情。早期寫過“收到字節(jié)-判斷是否幀頭-是則繼續(xù)接收-存到全局?jǐn)?shù)組”這種代碼中斷處理函數(shù)越來越長結(jié)果波特率稍微快一點(diǎn)比如460800中斷還沒處理完下一個(gè)字節(jié)就到了直接溢出丟字節(jié)。后來全部改成中斷里只入環(huán)形緩沖區(qū)協(xié)議解析放主循環(huán)整個(gè)世界清凈了。6.3 經(jīng)驗(yàn)心得排查UART的unwanted bytes問題本質(zhì)上是在和不確定性作斗爭。我的總結(jié)可以用一句話概括先把物理鏈路做成確定性的再談軟件邏輯。如果你把示波器探針往RX引腳上一放看到的是干凈利落的波形那軟件再怎么復(fù)雜也不至于收到垃圾數(shù)據(jù)如果波形本身臟得一塌糊涂那代碼寫得再完美也是白搭。另外設(shè)計(jì)階段就考慮清楚幀格式和通訊協(xié)議這件事真的能省掉后面特別多麻煩。哪怕只是兩個(gè)MCU在同一個(gè)板上通信我也建議至少有個(gè)幀頭和長度字段CRC甚至都可以不要但沒有幀頭和狀態(tài)機(jī)你連數(shù)據(jù)從哪里開始、到哪里結(jié)束都說不清那多余字節(jié)就是必然事件。反過來只要有狀態(tài)機(jī)幀頭過濾長度校驗(yàn)就算物理環(huán)境有輕度干擾軟件也能幫你做掉一層防護(hù)。所以如果你現(xiàn)在正被這個(gè)問題折磨著我的建議是關(guān)掉代碼編輯器先拿起示波器或者邏輯分析儀看清楚線上到底跑的是什么再決定下一步往哪走。很多時(shí)候問題的答案不在代碼里就在那根你一直沒認(rèn)真看的線上。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
东京成人一区| 久久久久久久久久久人妻| 久久久久久裸体| 67194无码不卡| 97色97干| 日日骚精品视频| 国模精品娜娜一二三区| 亚洲男人天堂2017| 日夜干射色啊| 五月婷视频| 亚欧成人一级片在线播放| 国产成自自拍在线观看| 超碰AV在线| 国产一区二区三区久久久精品| 国产外初女出血视频| 3D污黄视频在线观看| 热九九精品| 免费观看的黄色的网站| 亚洲精品蜜桃久久久一区二区三区| 岛国免费视频在线| 蜜乳av一区二区三区四区不卡| 99在线观看| 九九九九热| 久久一二三四五六七八九区| 亚洲性综合| 操一区| 亚洲最大91网| 日日夜夜狠狠| 丁香五月激情五月| 日韩97视频!在线| 丁香五月电影| 天天爽天天| 久久综合激情| 99久久久久| 亚洲福利中文字幕在线| 丰满少妇乱子伦精品无| 嫩草一区二区在线观看| 亚洲精品男人的天堂| 久热免费视频| 亚洲欧美另类少妇精品| 成人AV在线网站| 国产精品禁久久久精品| 日韩欧美三级| 国产精品日日摸夜夜添骚逼| w w w.久久精品| 综合久久97| 狠狠操使劲操| 中文字幕 国产 精品| 国产女生在线| 色五月婷婷麻豆在| 亚洲蜜臀懂色| 久草色在线观看| 欧美图片校园春色| 免费观看一区| 精品国产一区二区三区香蕉欧美| 乳欲人妻办公室奶水| 国产亚洲日韩在线三区黑人| 日韩不卡a级视频专区| 国产精品99久久久www| 亚洲中文日韩欧美大香蕉视频| 欧美日韩国产三级黄色| 97啪啪| 天天插天天干| 伊人97色天使| 日日A∨| 色天堂在线观看| 久久久精| 热99这里有精品综合久久| 少妇久久久久| 国产一进一出视频网站| 色婷五月天| 国产白丝在线| 9丨久久九九九| 成人五月天丁香激情综合| 日韩无码精品综合久久| 超碰在线人妻| 欧美白嫩在线放| 欧美激情亚洲| 免费?级毛片无码?∨蜜芽试看| 在免费jIzzjIzz在线视频| 99综合网| 久久综合久色欧美综合狠狠| 人人插人人摸人人| 五月天久久婷婷亚洲 | 久久久青青草| 97在线欧洲| 欧美偷偷网| 欧美激情久操网| 岛国在线一区二区三区| 欧美一区二区在线资源| 香蕉精品二区二区| 国产强奸超碰AV| 人妻天天操天天爽视频免费| 综合色一区三区二区| A V视频日本| 殴美牲| 亚洲 欧美 另类 日韩 人妻一区| 国产AV中文| 国产高清免费不卡av| 久久天天性久久伊人| 又大又长又粗又爽又黄| 精品久久青青草| 国产精品毛片| av凤凰久久久| 国产成人精品午夜福利| 人人看人人插| 亚洲五区熟女| 强奸乱伦动态污图免费| 91熟女.com| 久久久久久久九九九九九九| 99.色网| 另类欧美色| 人妻日日干| 亚洲综合校园春色| 激情小说五月天| 超碰在线日韩一区| 欧美性生活综合| 国产精品午夜福利视频| 岛国在线免费视频| SS久久| 国产强奸无码乱伦| 中文字幕在线观看AV| 欧美性爱第1 页| 精品久久視頻在线| 亚洲āv网址在线观看| 久久色人体 | 久久首页| 天天影视91看看| 麻豆国产96在线| 很狠操| 欧日a| 日韩在线观看AV| 日韩精品一区二区三区色欲| 久久久人妻| 91亚洲精品青草| 中文字幕在线观看永久| 人妻天堂网| 五月天丁香欧洲日韩| 91亚洲人| 亚洲精品黑丝| 国产成人网| 校园春色五月天| 爱爱动态120秒| 懂色Av| 精品国产乱码久久久兰草影视| ji熟女.com| 麻豆 亚洲 97| 长长久久88视频| 翔田千里A片一区二区| 综合久欧洲| 国产精品点击进入在线影院| 99久久网站| 一卡二卡在线播放| 国产精品久久久吖| 午夜激情成人在线观看| 91网站在线播放| 欧美操人| 免费看黄片现成| 青草影院内射高潮| 色五月激情AV在线| 欧美综合1性辶| 国产精品经典一卡久久久 | 九九九九国产| 噜噜噜亚洲精品| 日韩性爱电影一区| 热思思免费视频| 日韩av情韩国爱禁区av一区二区| 偷拍网站久久男女男| 无码国产Av| 亚洲小说视频| 玖玖草久草99蜜月一区二区三区| 大香蕉色十月| 国模吧 一区二区三区| 国产精品96| 另类专区加勒比| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 黄色二级片网站| 97人人操人人摸人人爱| 亚洲在线| 欧洲精品二区| 精品白丝一区| 国偷自 一区二区| 久久国产视频专区一二三| 国产成人无码网站在线视频| 日本免费一级AAA大片器| 人妻激情视频| 久热网| 免费的av网| 日韩av乱伦| 亚洲精品国产熟女| 中文字幕高清精品一区| 日本黄大片在线观看视频| 亚洲高清欧美总合| 高清无码91| 黄久在线| 长久操视频| 欧美白嫩女HD| 99www.bibizy香蕉资源国产一区二区三区高清 | 国产400孕妇孕交群| 91成人亚洲色图| 精品九九九九九九九九九| AND人妻系列| 天天综合91在线| 狠狠干,狠狠操| 亚洲成人久久美女| 99久久9| 国产树林里野战在线看| 秋霞曰韩R级| 强奸乱伦大香蕉网| 草草网站影院白丝内射| 淫荡少妇免费| 蜜桃av综合网发布| 国产农村一一级特黄毛片| 欧美人妻精品一区二区| 九九在线精品| 久久欧美按摩999| 精品国产乱码久久久久久久久1 | 天天舔天天日天天射| 中文字幕AV片| 国产丝袜高跟美女av免费观看| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 亚洲色图综合| 欧美不卡在线一区二区| 成年人黄色小视频网站| 人人操人人摸人 | 伊人网在线观看| 精品九九淫乱男| 日本三级韩国三级美三级91| 思思热一热婷婷热一热| 欧美91丝袜| 999色欧美中文字幕| 青青青在线高清视频在线一二三四区| 三上悠亚在线毛片91| 蜜乳AV免费观看| 高清国产性猛交xxxx乱大交| 大香蕉乱伦视频网| 国产少妇与亚洲av| 国产乱人妻精品入口| 亚洲的天堂网| 黄页| 欧美极品性爱天天射| 91丨熟女丨丰满熟女| 激情五月综合网| 91网18| 麻豆色99999| 精品人妻中文字幕高清| 日本99热| 色香伊人| 婷婷久久五月综合激情| 抽插无码高清一区| 青苹果影院男人的天堂| 精品女同一区| 熟妇的味道HD中文字幕| 九九热精品| 97 超碰 人人做 人人爱| 狠狠做深爱婷婷久久二区| 久久黄人人爽视频| 国产精品自在自拍视频| 麻豆久久久久久久久丝袜| 天欧美在线| 国产真实子伦对白| 七久久久| 日韩熟女视频二区| 大香蕉视频一二三区| 亚洲高潮少妇| 女生看匆91网站| 青草草免费网站av| 大香蕉综合| 久久久亚洲精品中文字幕人妻| 亚洲成人黄色在线观看| 男人的天堂激情| 97操综合| 成人a大片在线观看| 亚洲情色一区综合| 91制服丝袜中文字幕| 中文字幕aⅴ在线视频| 人人澡人人爽人人精品| 蜜臀99精品国产高清在线观看| 精品国产一区二区三区香蕉欧美| 国产夜夜操| 91欧美经典| 91成人久久 | 亚洲有薄码区久久在线一区| 亚洲国产成人精品无码专区| 91影视亚洲| 日本一区二区三区午夜观看| 91在线视频免费中出| 久久综合97| 99热自拍| 狠狠入| 亚洲av无码成人精品国产| 日日干夜夜骑| 亚洲欧美经典一区二区| 日1区2区3区2020| 偷看洗澡一二三区美女| 亚洲人精品久久久| www.夜夜操| 97国产精品一区| 99爱精品| 久久六六| 日韩懂色网| 久综合国内精品自在自线| 欧美 综合| 91大神精品长腿在线观看网站| 久久久98网站免费视频| 亚洲国产另类在线中文| 日韩av色图综合| 吖在线不卡一区二区国产剧情| av大香蕉网站| 999亚洲国产视频| 91嫩草在线| 国产精品久久久鸭无码的功能| 少妇人妻在线| 欧美 中文字幕 一区| 91福利网在线观看| 亚州久久9| 国产精品成人蜜臀AV在线| 狠狠干妹子| www.色操逼| 福利视频合集| 一级黄碟在线看| 黄片www.| 中文AV制服乱伦| 亚洲精品 欧美精品| www色日本| 久久系列| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 性爱1区| 日本综合色图| 日本顶级天天操狠狠操夜夜操中文字幕| 99久久精品国产高潮| av天堂电影网| 老色鬼成人精品视频下载大在线观看| 这里有精品| 久久久久久久久久久免费精品 | av天堂手机版追回| 久久产精品一区二区三区电影| 天美一二三在线观看Av| 婷婷五月天成人网| 国产69精品久久久久99尤物| 亚洲熟女综合网| 在线亚洲丝袜视频网站| 淫淫总合网| 韩国三级理论在线| 国产探花日韩援交| 日夜精品| 997色在线| 99热精品青草在线| 91精品91久久久中77777| av毛片aaaaa免费看| 久久久久久久9最新免费视频观看| 超碰三级秋霞| 天天干天天操天天干天天操| 日韩精品中文字幕人妻| 欧美日韩狠狠爱| 秋霞鲁丝午夜无码一区二区三| 中文字幕人妻丝袜| 亚洲成人综合在线| 欧美黑人精品一区二区| 人人操人人摸人人看人人插| 成人怡红院| 一二区在线观看视频| 中文字幕超碰CAO| 日本精品人妻少妇一区二区| 桃色五月天| 黄色av片三级三级三级免费看| 一起草高清无码| 中文字幕1区2区| 夜夜免费视频| 久久久久九九九九九| 日日日骚女人精品| 97AV在线免费观看| 夜草欧美| 无码人妻精品一区二区三区九九 | 高跟丝袜AV专区国产| 国产精品一区二区亚洲人成毛片| 亚洲一区二区在线观看91| 欧色网址| 日韩精品资源专区二区| 97精品综合| 思思性爱| 欧美十八禁在线看| 99欧美| 操屄不卡视频| 五月激情在线| 色噜噜综合在线| 夜夜操二区| 日本不卡一区二区三区| 大香蕉免费乱伦视频| 操逼1区| 免费簧片在线观看| 91狠狠综合久久久| 色噜噜人妻av 中文字幕| 91女在线观看| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 中文字幕精品日韩中文字幕| 无码精品一区二区三区潘金莲| 精品国产乱码久久久A| 色牛牛AV| 无码丰满熟妇一区二区浪潮AV| 久久精品国产亚洲妲己影视| 欧美日韩色综合网| 日韩精品一区的| 五月婷婷综合在线| 欧美亚洲丝袜美女电影| 久久日本熟女精品一区| 超碰4A| 精品久| 日本一区二区三区午夜观看| 久草国产在线视频| av在线资源| 青青青国产| 九九热在线精品视频| 蜜臀av网址| 久久久久久加勒比| 亚洲导航深夜福利| 久久a久久| 91色伦综合| 青青草色AV| 精品国产一区探花在线观看| 嫩草影院在线观看精品 | 91美腿丝袜在线观看| 亚州 综合 色图| 天天干18禁| 亚洲好看强奸乱伦| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 人人操人人爽人人操人人| 中文字幕一区二区日韩网| 色官网在线| 欧美内射少妇| 亚洲视频精选| 在线观看黄色电话| 青青草亚洲一区| 夜夜无码| 人、人、摸,人、人、草| 99国产精品人妻人伦| 大香蕉92| 色综合久久av| 欧美亚洲激情小说| 91色夜| 自拍视频一区在线观看| 欧美最婬乱婬爆婬性视频 | 成人精品视频| 一级二级三级黑人无码| 欧美亚洲国内自拍| 五月天AV资源| 亚洲AV秘 精品久久老牛影视| 999狠狠综合| 亚洲素人综合| 久久久久久国产精品免费网站| julia在线观看久久| 色狠狠一区二区三区香蕉| 国产免a费看黄片在线| 婷婷国产精品九区| 欧美日韩在线视频网站| 久久婷婷一区二| 天天色综合影视网| AAA久久| 欧亚韩国999| 欧美日韩性爱无码| 试看60秒| 午夜欧美女人操逼| 亚洲人妻久久久| 在线精品福利免费播放| 日韩亚洲97| 欧美性爱中文字幕无线码| 日本不卡二三区| 老司机福利青青草| 欧美日韩免费专区在线| 亚洲国产精品V?在线播放| 丰满少妇人妻久久久久久| 色婷婷一区二区三区久久| 久久久一级| 久操电影| 蜜臀99999| www.91人妻.com| 一区二区三区色综合| 精品女同一区| www亚洲免费| 中日韩熟女| 成人精品久久| 亚洲综合在线91| 日韩成人网址| 综合另类| 欧美中文狠| 亚洲熟女性高潮久久久| 精品无码产区一区二| 全免费a敌肛交毛片免费| 成人精品水蜜桃久久久久久久| 国产亚洲日本精品在线| 易易A毛视频| 美女露胸露奶头| 欧美一区二区三区互相| 亚欧美综合网。| 欧美很很操视频| 国产精品乱码久久| av72网| 日本在线激情一区二区三区| 综合夜夜| 五十路人妻在线| 亚洲综合色网| 久久透逼视频| 男人天堂毛片| 黄网站黄视频网站进入口| 亚洲1区2区三区高清中文字幕| 97久久超碰亚洲| 熟女在线视频| 看一级黄色视频| 国产在线观看一区二区三区| 嫩草 我啊~嗯~在线| 天天干天天干天天干| 伊人丁香五月婷婷| 欧美人妻制服| 大香蕉92| 吉田爱美AV在线| 99久在线精品99re8| 26UUU欧美日本| 欧美淫乱视频| 欧美A√综合网| 五月色综合| 美女极品一区二区三区| 日本影视久久免费| 成人九九| 乱色老一区二区三区的观看方式| 中文字幕在在线观看网站| 亚州AV无码国产精品| 中日韩免费看男女操逼大全| 大香蕉2017| 亚洲色图国产另类| 欧美男女午夜啪啪| 久久精彩免费视频| 五月天婷精品激情| 台湾成人无码AV| 超碰精品日韩欧美国产| 欧美性夜| 亚洲少妇综合| 九九九只有精品| 91强在线播放| 欧美一区二区成人一卡| 五月婷婷hd| 日本精品人妻少妇一区二区| 欧美九9 9 9| 日韩在线观看中文字幕视频| 永久免费发布性爱网| 无码外流操逼视频| 少妇熟女1区2区3区| 一区二区三区四区理论片| 中文字幕国产| 殴美色网| 97免费在线观看| 91中出在线| 日韩久久三区| 亚洲天堂区| 九九热精品| 色婷婷香蕉| 久久香蕉国产线看观看猫咪av| 正在播放国产精品一区| 亚洲AV成人无码一二三久久 | 国产区91柔拿会所技师| 一区二区三区黄片免费观看| 中国国产精品一区视频| 青娱乐国产精品| 黄色小视频日本txt| 中国国国产一级特黄毛片| 手机在线人成免费视频| 性爱1区| 在线国产探花| 久久一二三四五六七八九区区区| 开心五月婷婷| 天天色播亚洲综合网站| 日韩无码服务区| 91男同| 中文字幕av片| 91亚洲综合在线| 97久久精品| 伊人久久综合影院精品久久久 | 97人妻色| 禁止观看美女黄| 欧美日本久久精品一区 | 人人操人人色网| 欧美不卡五十路| 俺去啦俺来也久久综合| 在线播放免费av福利片| 久久久久久精品免费看A级| 操逼网站视频漫画国产| 色色五月丁香| 天天干一区二区| 天操老女人| 中文字幕日韩情色| 日本羞羞的视频在线播放| 久久黄色视频一区二区三区 | 久久久极品| 日韩日本欧美在线观看| 永久免费发布性爱网| 丁香五月性爱| 97 超碰 人人做 人人爱| 国产午夜福利专区综合| 午夜福利av电影在线| 日本精品成人无码| 国产精品自在自拍视频| 99超碰色| 91在线丝袜| 综合久久9| 美国aaaaa一级黄片| 激情自拍 校园春色| 久久一二三四五六七八九区区| 久久日韩肥臀| 亚洲国产婷婷在线播放| 玖玖97综合 | 亚州免费啪啪视频| 96AV精品| 日韩精彩视频| 日韩欧美大力操| 天无日色综合| 97操97干| 九色在线熟女国产黑人| 人妻精品一区二区全免费| 国产999精品久久久| 亚一综合久久久久久久久久| 白丝1区2区3区| 欧美熟妇色| 不卡一区二区日本视频| 成人综合网 欧美| 男人的天堂网页| 综合激情五月丁香| 俺也射| 黄页网站免费高清在线观看| 麻豆婷婷成人一二三| 快灬快灬 一下爽蜜桃在线观看| 盗摄女人妻在线| 亚洲激情色片| 中文字幕日韩电影人妻| 日本 免费 一区二区三区 久久香蕉| 中国和日本人色哪个不下载能放| 日本欧美亚洲高清在线看| 超碰中文字幕人妻草一区| 一区二区三区美女超清| 亚洲人成色9999精品久久| 东京热综合久久一区二区| 欧美精品日韩一区二区| 日本高清视频在线观看黄已三辽| 无码精品人妻一区二区三区妖精| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 欧美九9 9 9| 蜜桃臀一区二区三区久久| 午夜视频好爽啊| 天天插夜夜爽| 377p欧洲日本亚洲大胆| 内射卯月麻衣| 日本国产高清色www视频在线| 91在线/欧洲| 凹凸久久人人| 中文字幕精品亚洲熟女| 女人被添高潮免费视频 | 黑丝少妇在线观看| 91春色| www鬼畜国产男人的天堂| 思思热国产高清| 日韩精品三区四区| 国产乱色国产精品免费视| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 激情综合网亚洲| 天天干天天日天天射黄色| 少妇久久| 熟女AV一区| 亚洲一区二区中文字幕| 亚洲天天天| 强奸乱伦日韩AV| 国产三级中文字幕粉嫩| 少妇一线天久久久久久| 国产丝袜美女在线一区| 在线情色电影 91大| 在线视频日韩欧美国产| 欧美色另类| 国产精品亚洲四五区在线观看| 国产日韩区| 伊人欧美大香蕉视频| 麻豆久久视频在线地址| 九九精品99| 日本熟妇自慰性高潮一区二区三区| 婷婷久久网| 日韩成人高清一区二区| 亭亭在线资源| 女优视频第10页| 婷婷丁香九月| 高清视频一区| 久久久久ab| 色一情一乱一乱一区91Av| 国产精品96| 在线免费试看60秒| 国内精品999| 操高情无码| 国产精品片| 五十路人妻在线| 97亚洲国产影视| 中国乱伦一区二区| 极品销魂美女一区二区| 精品中文一区二区| 成人精品电影| 俺去俺来也在线www| 一级做a爰片性色毛片久久| 99在线啪| 色婷婷综合久久中文字幕雪峰| 国产 日韩 另类 视频一区爱| 一区二区激情国产熟女 | 成人色女网| 亚洲精品三| 国产又大又粗又长视频| 日本天堂网| www超碰| 在线观看免费视频国产| 国产精品久久| 久久99干一本高清| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 久久婷婷伊人| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 神马久久69| 不卡免费av在线播放| 秋霞一级A片黄色视频| 亚洲精品九九九| 精品久久久久av影院| 女性91网站| 亚洲天天自拍| 4tube欧美女厕所| 91强在线播放| 天天天天做夜夜夜夜做| 欧美亚洲20p| 麻豆视频test| 天堂九九九九九九九九九| 爱射综合| 久久五月天婷婷| 亚洲欧美国产日本一区二区三区| 日韩人妻中文视频| 操逼不卡中文字幕| 淫荡少妇免费| 少妇xx精品| 色噜噜精品一区二区三| 操高情无码| 凹凸久久人人| 黄色免费网页无码| 日韩乱伦视频| 97久久超碰| 999久久久精品国产| 亚洲宅男天堂| 97视频在线观看播放与子乱对白在线……| 午夜免费视频1000| 欧美拳交在线播放| 免费视频在线观看啊啊啊啊啊| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 久操国产在线| 婷婷久月| 天天夜躁日日躁狠狠2002| 亚洲日韩人妻中文字幕一区| 呦呦影院| 夜草网站| 国产老熟女| 亚洲欧美日韩偷拍色图| 久久久96| 99国产精品视频尤物| 乱伦AVxx| 日本三级小说中文字幕| 中文字幕视频2区| 99久久综合| 福利天堂| 2017天天拍大香蕉| 日韩欧美中文日韩欧美色| 欧美黄片视频在线观看免费 | 欧美一区二区情色| 10000部十八禁看电影| 97视频900| 亚洲操操操无码| yiqicaoav| 国产一区二区三区白丝| 色综合尤物| 97超碰美国| 制服少妇欧美| 91综合无码| 欧美一区二区三区互相| 久久激情亚洲精品无码?V| 国产亚洲99久久精品| 干B视频伊人网| 操老熟女AV| 日本操逼视频免费| 人人操人人操草草| 欧美精品在线观看| 午夜福利一区二区三区四区五区色婷婷| 99热一区二区三区四区| 久久中文字幕一区不卡| 色色五月天婷婷| 青娱乐大香蕉| 日本综合色图| 日韩性爱电影一区| 黄色成品网站| 欧美性爱一区二区三区| 熟女乱伦A| 97久精品| 另类欧美综合| 综合免费无码中文| 国产久久日韩网站导航| 蜜桃臀av一区二区| 成人乱人伦一区二区| 亚洲色吧网| 中文无线日韩一区| 涩涩涩综合| 天天干2019| 天天操妹子| 日本熟妇人妻中出视频| 伊人久久大香蕉线AV五月天| 97天天| 92人人操人人| 老熟女中文字幕高清| 成人性爱免费播放| 精品 码产区一区二-1080P高清在线www-B029AV | 亚洲一区二区中文字幕| 2020中文在线一区二区三区| 一区久久久二区| 日韩射精| 91欧美| 风间由美日韩欧美久久| 日韩一区二区三区四区五区| 人妻在线大香蕉| 91大神精品长腿在线观看网站| 五月丁香啪啪啪| 一摸二插三插| 91强奸乱轮| 精品久久久久久AV无码| 精品久久久久9999| 97在线观看免费视频| 国产亚洲一黄| 日本不卡在线二区三区| 久久久久9999| 国产成人五月天丁香花| 久久五月综合| 熟妇人妻精品一区二区| 婷婷伊人綜合中文字幕| 加勒比aⅴ| 另类天堂| 中文乱码字幕观看| 婷婷情色综合网| 91在线免费精品视频| 不卡超碰护士AV在线免费播放| 亚洲资源站| 嗯嗯嗯啊啊啊在线免费观看| 国产偷人伦激情在线观看| 欧美少妇一区二区三区| 不卡中文字幕aⅴ在线| 天天综合网91入口| 免费观看国产小粉嫩喷水精品午| 天天夜夜久久| 中国少妇XXXX做受| 舔舔啊| 99热在线播放| 欧美激情一区| 欧美后入视频| 福利色色| 欧美高清色| 日本三级小说中文字幕| 波多野结衣被操50分钟免费视频| 久神马| 精品少妇一区二区三区在线视频| 日韩大香蕉AV影片| 91丝袜在线观看视频在线观看| 不卡中文字幕aⅴ在线| 亚洲91网站| 免费AV播放| 中文字幕在线免费观看2| 亚洲污一污二| 久久人人看| 亚洲春色一区二区三区| 都市激情人妻一区二区青青操视频 | 欧美强奸乱能| 中文字幕人妻丝袜乱一区三区| 日韩99神马视频播放片在线播放| 无码 黑人一区二区三区| 亚洲综合 欧美| 25国产精品免费观看| 日韩熟女操逼| 舔人妻中文免费视频| 天天操av懂色| 国产 亚洲 丝袜 制服| 好涩综合| 97超碰在线资源网站| 99re在线观看| 尤物黄色在线观看网站| 久久在肏| 日韩电影天堂视频二区三区| 天天干天天拍| 亚洲少妇综合在线播放| 91日韩| 欧美高清在线| 欧美一二三区四五区| 六月丁香久久| 欧美性爱日韩性爱| 91狠狠综| 97欧美资源| 亚洲人久久久网| 超碰国产情侣自拍网| 久久精品性| 久操凹凸视频| 一二三区操逼国产91| 97中文综合| 亚洲色图综合网| xxx亚洲午夜天堂| av九九| 亚洲av淫乱| 久思思热视频在线观看| 国产精品午夜AV完会免费 | 高跟丝袜AV专区国产| A级国产欧美激情在线| 91日韩网站| 男人的天堂日韩| av午夜玫瑰| 日韩欧美成人大香蕉| 九九热最新| 乱老女人一区二区视频| 亚洲国产一区二区入口| 天天看精品动漫视频一区| 久久啊啊啊| 九t超碰| 国产乱码久久久| 久久久久深夜无码| 蜜桃臀一区二区aV| 亚洲综合射| 亚洲欧美国产va在线| 九九夜精品九九在线| 69综合网| 亚洲欧美另类少妇精品| 99啪啪视频| 大香蕉 222| 亚洲AV无码乱码| 欧美日韩狠狠爱| 日日躁夜夜躁狠狠躁超爽| 青青草原av| 国产日韩美女小穴视频网站不卡| 国产精品一区二区麻豆| 一区超碰一区| 婷婷九月丁香| 超碰超碰超碰超碰的大鸡吧操黑丝袜| 9久9久9久9久视频网站| 成人AV在线网站| 欧美日韩一二三| 啊v在线观看视频| 亚洲一区二区三区婷婷| av网站免费看| 人人弄人人摸| 欧美探花网| 欧美强奸乱能| 久久艹逼视频| 91粉芽高清在线一区二区| 日韩草久视频| 日本97久久久精品| 国产精品一区二区后入| 人妻熟女一区二区| 精品无码久久| 亚洲精品97| Av手机版天堂网| 日本成人电影资源网| 色官网在线| 花野真衣| 久久999久| 欧美综合传媒| 好吊色青靑草| 国产精品午夜福利亚洲综合网| 天天操夜夜操狠很操| 天天视频综合在线观看视频| 亚洲激情网| 亚洲中文字幕乱码无码一区二区| 日韩欧亚中文在线| 国产精品日日摸天天碰| 91欧洲国产成人久久精品网站| 国产精品一区二区亚洲人成毛片| 无码精品蜜桃一区二区三区ww| 熟女突然公开看18禁影片| 情色日播放AV| AV中文字幕剧情1区2区3| 新怡红院| 日本熟女不卡视频| 人妻-91porn| 久9久| 欧美人妻熟女在线| 亚洲色人| 一区三区啪啪| 亚洲AV高潮| 精品女同一区二区三区| 国产精品探花色| 日本日逼视频网| 国产精品91ai| 欧美丝袜中文字幕07在线| 亚洲人体视频在线观看| 欧美十八禁在线看| 欧美熟女妇同| 91精品人妻一区二区三区蜜桃| 一区二区三区亚洲| 天天综合精品| 91无摭挡| 日韩一区二区精彩视频| 日韩婷婷| 亚洲视频二区| 乱伦熟女论坛| 在线另类| 97天天在线| 亚洲āv网址在线观看| 五月香婷婷| 91路www| 一级片视频啪啪| 欧美亚洲日韩人妻在线观看| 超碰久久网| 成人AV超碰免费在线| 99热这里只有精品99| 欧美在线色| 亚洲AV成人精品网站在AV| 五月婷婷丁香六月| 欧美手机在线综合| 啪啪啪东京| 夜夜操老骚逼视频网站| 久久久性爱| 再深点灬舒服灬太大了好硬好爽| 国产美女口爆吞精| 秋霞网无码| 水澄无码AV| 天天躁日日躁狠狠狠躁| 欧美,日韩,亚洲视频| 国产午夜视频| 日本成熟少妇A∨网站| 青青操青娱乐| 3P丝袜熟女 色综合| 中文字幕日本久久| 欧美后入式| 国产乱人伦AVA麻豆软件.| 伊人 俄罗斯 a v| 大香蕉视频一二三区| 欧美一区二区三区大综合| 色99999| 大奶啊啊好爽| 亚洲色宗合| 婷婷情色综合网| 国产精品播放| 青草青青久久久久久国产| 亚洲国产97| 伊人久久青青草| 九九综合九九综合| 久久久99久9| 中文字幕久久婷婷丁香五月天 | 岛国黄片网站| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 性爱综合网| 九九热av| 精品一区二区3区| 欧美乱伦专区| 宗合情欲网| 伊人精品久久网站| 亚洲凸凹超碰成人| 精品性爱一区二区| 九九九九九九精品| 国产成人亚洲精品自产在线| 蜜桃狠狠色伊人亚洲综合网站| 97网址www| 久久成人国产精品| 亚洲一区制服诱惑| 99无码视频| 成人精品无码| 台湾大香蕉99热| 日韩精品黄片免费观看| 国产精品禁久久久精品| 九月婷婷| 岛国在线国产| 亚洲中亚日激情视频| 激情综合色| 岛国黄片网站| 九热超碰| 天天欧美色| av最新免费中文字幕| 91精品在线播放| 污到发麻的视频 国产| 最好看的中文字幕在线2018| 熟妇一区,二区,三区。| 久操99| 99精品视频在线观看免费| 蜜臀久久99精品久久久久久成人小说 | 黄色av网站在线播放| 亚洲第一男人天堂| 91暧暧| 限制级中的三级片中的黑粗大屌屌日人妻熟女| 在线可观看的黄色网址| 少妇色| 99re综合伊人| 日本一二区免费| 日韩av影片在线观看| 人人搞人人插人人操| 亚洲综合色在线| 欧美日韩人人精品| 90后性网国产欧美| 日韩字幕一区| 国产9l 大屁股| 色九九九综合| 综合影院亚洲| av凤凰久久久| 国产毛片久久久久久久| 欧州91高潮| 久久久91福利姬| 人妻无码后入| 五月丁香亭亭| 秋霞曰韩R级| 亚洲字幕一区二区| 国内伊人久久久久久网站视频| 精品制服美女中文一区二区三区| 欧美性战999| 日本三级黄页| 日韩av影片在线观看| 亚欧毛片基地国产毛片基地| 欧美春色| 久久99久久99精品天美传媒棢·纸:. | 国产丰满少妇久久久精品影院| 五月天婷婷综合网| 在线精品福利免费播放| 亚洲无码国产精品久久| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 欧美精品成人亚洲| 熟女熟妇伦久久影院毛片一区二区 | 亚欧美天堂在线| 大香樵伊人网| 99操视频| 国产成人精品亚洲日本| 十八岁啪啪视频免费看| 台湾一区国产高清在线| 啊啊嗯嗯好爽| 91爱| 好爽视频在线观看| 東南亚性呦成人伦理资源在线视频| 久九9精品| 黄久在线| 伊人久久亚洲色欲综合网站| 嗯嗯啊啊好疼| 另类 综合 日韩 欧美 亚洲| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 97色色色综合网站| JULIA人妻风俗店中出电影| 亚洲熟妇自偷自拍另欧美| www.99热| 91亚洲人电影| 看看小穴| 打av高清| 久久亚洲熟妇在线视频| 啊啊啊啊二区好大| 亚洲色资源| 人妻少妇久久中文| 呦女网站| 91天天美女| 国产久久天堂资源| 人妻丝袜一区二区三区在线| 特污精品女优骚货黄色视频在线免费观看| 亚洲欧美校园| 91精品人妻一品二品三品| 久久久91| 成人精品无码| 台湾一区国产高清在线| 国产一级特黄大片处女| 国产高清MV操逼视频| 欧美一级黄片免费播放| 九九色色|