日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

語音模塊與MCU串口對接:協(xié)議設(shè)計(jì)六要點(diǎn)與聯(lián)調(diào)實(shí)戰(zhàn)

語音模塊與MCU串口對接:協(xié)議設(shè)計(jì)六要點(diǎn)與聯(lián)調(diào)實(shí)戰(zhàn) 做了這么多年嵌入式跟語音模塊打交道也不少了。從早期的LD3320、SYN6288到后來的CI1006、WTK6900再到各種離線語音模組幾乎每款模塊都離不開和主控MCU的串口對接。我的體會是協(xié)議設(shè)計(jì)的好壞直接決定了聯(lián)調(diào)階段的幸福指數(shù)。設(shè)計(jì)得亂糟糟的協(xié)議接線時一頭霧水調(diào)數(shù)據(jù)時滿臉問號甚至產(chǎn)品量產(chǎn)了才發(fā)現(xiàn)某個字節(jié)解析不對那種感覺經(jīng)歷過的人都懂。這篇內(nèi)容就是聊聊我在語音模塊與MCU串口對接這件事上的實(shí)踐總結(jié)。重點(diǎn)圍繞協(xié)議設(shè)計(jì)的六個關(guān)鍵點(diǎn)附帶聯(lián)調(diào)階段的工具鏈、排查方法和工程化建議爭取把我在實(shí)際項(xiàng)目中踩過的坑和總結(jié)出的技巧都講清楚。不管是剛?cè)腴T的新手還是已經(jīng)寫過不少驅(qū)動代碼的老手只要你手里有個語音模塊需要和MCU通信這篇應(yīng)該都能給你一些參考。1. 對接之前先想清楚這三件事很多人在拿到語音模塊之后第一件事就是翻數(shù)據(jù)手冊找串口寄存器急著把代碼跑通。我覺得這是個誤區(qū)。串口本身是個簡單的東西協(xié)議也談不上復(fù)雜真正容易出問題的是動手之前沒把下面這三件事想明白。1.1 語音模塊不是“麥克風(fēng)”是帶協(xié)議的處理器語音模塊本質(zhì)上是一個獨(dú)立的處理器它內(nèi)部有自己的算法、狀態(tài)機(jī)甚至操作系統(tǒng)。你買到的離線語音模塊比如CI1006系列或者天問的SU-03T模塊內(nèi)部都在跑一個完整的語音識別或者語音合成流程MCU和它之間是“兩個系統(tǒng)在通信”不是“主機(jī)控制從機(jī)”。這個認(rèn)知很重要。因?yàn)檎Z音模塊往往有自己的主動行為比如喚醒之后主動上報(bào)識別結(jié)果或者播放完提示音之后主動發(fā)送播放結(jié)束事件。如果MCU端只寫了“收到命令再回復(fù)”的被動處理邏輯那大概率會漏掉模塊主動發(fā)上來的消息。實(shí)際項(xiàng)目中我習(xí)慣先把模塊的主動上報(bào)機(jī)制搞清楚再設(shè)計(jì)MCU端的接收狀態(tài)機(jī)。另外語音模塊的固件升級、喚醒詞定制、音量調(diào)節(jié)這些功能很多時候也是通過串口指令完成的。也就是說串口不僅僅是數(shù)據(jù)通道還是配置通道。這也是為什么協(xié)議設(shè)計(jì)階段就要預(yù)留足夠的命令空間不能只想著“能收到語音結(jié)果就行”。1.2 電平與接線很多聯(lián)調(diào)事故死在第一步串口對接看起來簡單無非TX接RX、RX接TX、GND接GND。但有一個細(xì)節(jié)特別容易被忽略電平標(biāo)準(zhǔn)。主控MCU如果是3.3V系統(tǒng)語音模塊如果也是3.3V那直連沒問題。但有些語音模塊為了驅(qū)動大功率喇叭板上會有5V電源軌甚至有的模塊串口引腳直接兼容5V。這時候MCU的TX引腳往模塊的RX引腳發(fā)3.3V電平大概率能識別反過來模塊的TX輸出5V電平灌進(jìn)MCU的RX引腳MCU不一定受得了。最穩(wěn)妥的辦法是看一眼模塊數(shù)據(jù)手冊里的串口電平參數(shù)拿不準(zhǔn)就加電平轉(zhuǎn)換芯片比如TXS0108E這種幾塊錢一片能省掉很多燒引腳的麻煩。還有就是要保證共地這個更像是常識但我在實(shí)際中確實(shí)見過因?yàn)闆]共地導(dǎo)致通信時好時壞的情況波形亂七八糟用示波器一看TX和RX之間電位差都好幾百毫伏。另一個接線細(xì)節(jié)是交叉連接。有些新手會想當(dāng)然地接成TX對TX、RX對RX然后怎么調(diào)都不通。串口通信必須是交叉的A設(shè)備的TX接B設(shè)備的RXA設(shè)備的RX接B設(shè)備的TX。這是最基礎(chǔ)的知識但也是聯(lián)調(diào)現(xiàn)場最高頻的錯誤之一。1.3 波特率與數(shù)據(jù)格式雙方約定不如互相可配語音模塊的串口波特率通常是出廠默認(rèn)的比如9600、115200也有模塊支持通過上位機(jī)軟件修改。MCU端在初始化串口的時候波特率、數(shù)據(jù)位、停止位、校驗(yàn)位必須和模塊側(cè)完全一致否則收上來的字節(jié)全是亂碼。數(shù)據(jù)位幾乎都是8停止位一般是1校驗(yàn)位通常無。但波特率這個我建議不要只依賴數(shù)據(jù)手冊默認(rèn)值。因?yàn)橛行┠K出廠是9600你按115200去讀出來的肯定不對反過來也有模塊默認(rèn)115200你按9600去解析同樣不行。最靠譜的做法是拿到模塊先用USB轉(zhuǎn)TTL接電腦用串口調(diào)試助手發(fā)一條手冊里給的查詢指令看看返回是否正常確認(rèn)波特率無誤之后再接到MCU上。順帶說一句串口參數(shù)這個事雖然一開始就要對齊但設(shè)計(jì)協(xié)議的時候最好把波特率作為可配置項(xiàng)。有些項(xiàng)目后期因?yàn)镋MC問題被迫降速或者因?yàn)槿罩据敵鲂枨笊偃绻ㄌ芈适菍懰涝诖a里的改起來就要動好幾處地方很煩。2. 協(xié)議設(shè)計(jì)六要點(diǎn)逐個拆開講接下來是這篇內(nèi)容的重點(diǎn)協(xié)議設(shè)計(jì)的六個要點(diǎn)。串口協(xié)議設(shè)計(jì)的核心目標(biāo)有兩個一是保證數(shù)據(jù)傳輸?shù)耐暾院涂煽啃远亲屄?lián)調(diào)雙方語音模塊側(cè)和MCU側(cè)能夠高效定位問題。下面逐個展開。2.1 幀頭幀尾與轉(zhuǎn)義處理怎么定都不會錯的套路幀頭和幀尾是協(xié)議最外層的邊界用來區(qū)分一幀數(shù)據(jù)的開始和結(jié)束。為什么需要幀頭因?yàn)榇谑亲止?jié)流如果沒有邊界接收方拿到一堆字節(jié)不知道從哪里開始解析。幀頭一般選一個或多個特定字節(jié)比如0xAA、0x55、0x7E這類有比較明顯特征的數(shù)值。幀尾用來確認(rèn)一幀數(shù)據(jù)結(jié)束了和幀頭呼應(yīng)。有的協(xié)議只定義幀頭不定義幀尾通過長度字段來判斷一幀的長度這也行。但如果你既定義了幀頭又有長度字段還有幀尾接收邏輯就要小心了——幀尾是冗余保護(hù)單純靠長度計(jì)算已經(jīng)能確定一幀邊界了幀尾的一致性檢查只是用來捕獲數(shù)據(jù)被干擾的情況。這里有個很關(guān)鍵的問題如果在數(shù)據(jù)載荷里出現(xiàn)了和幀頭相同的字節(jié)怎么辦兩種方案一種是轉(zhuǎn)義一種是長度計(jì)算。轉(zhuǎn)義的做法比較經(jīng)典定義0x7E為幀頭定義0x7D為轉(zhuǎn)義字符。發(fā)送時如果數(shù)據(jù)里碰到0x7E就發(fā)成0x7D 0x5E碰到0x7D就發(fā)成0x7D 0x5D。接收端遇到0x7D就把下一個字節(jié)異或0x20還原。這種方案能保證幀頭在數(shù)據(jù)流中的唯一性但會犧牲一點(diǎn)有效載荷率也增加了一點(diǎn)解析復(fù)雜度。另一種更簡單的方案是設(shè)計(jì)協(xié)議時讓幀頭只出現(xiàn)在幀起始位置數(shù)據(jù)載荷中不強(qiáng)制轉(zhuǎn)義而是通過長度字段來解析。接收端先找到幀頭讀取長度字段然后按長度字段接收完整個數(shù)據(jù)區(qū)最后檢查幀尾。如果幀尾不對說明這一幀數(shù)據(jù)有誤直接丟棄等下一幀。這種方案在語音模塊這種短幀場景里完全夠用而且代碼寫起來也簡單不少。2.2 校驗(yàn)與長度字段CRC還是累加和校驗(yàn)字段的作用是檢測數(shù)據(jù)在傳輸過程中有沒有被干擾。串口在短距離、低干擾環(huán)境下出錯概率不大但在電機(jī)、電源等干擾源附近或者走線比較長的時候誤碼率會明顯上升。累加和的優(yōu)點(diǎn)是實(shí)現(xiàn)簡單一幀數(shù)據(jù)里所有的字節(jié)累加取低8位作為校驗(yàn)值。缺點(diǎn)也很明顯如果有兩位同時出錯且和為偶數(shù)累加和會騙過你。CRC的檢錯能力更強(qiáng)但也分檔次。CRC8能覆蓋128種常見錯誤模式CRC16就更可靠了。對于語音模塊這種應(yīng)用場景我建議CRC8或者簡單的CRC16就夠沒有必要為了“顯得專業(yè)”而上一套復(fù)雜的CRC32。關(guān)鍵細(xì)節(jié)在于校驗(yàn)的計(jì)算范圍。是只校驗(yàn)數(shù)據(jù)載荷還是包括幀頭在內(nèi)的整幀一般幀頭不參與校驗(yàn)長度字段和數(shù)據(jù)載荷參與校驗(yàn)即可。這樣接收端在做校驗(yàn)的時候已經(jīng)把幀頭解析完了直接用長度字段截取出數(shù)據(jù)區(qū)再做校驗(yàn)邏輯上比較順。長度字段也值得多說一句。長度指的是數(shù)據(jù)載荷的長度還是整個數(shù)據(jù)幀的長度如果你定義了幀頭、命令字、長度、數(shù)據(jù)、校驗(yàn)、幀尾那么長度字段建議指“命令字?jǐn)?shù)據(jù)”的長度不包含幀頭幀尾和校驗(yàn)。當(dāng)然這個沒有標(biāo)準(zhǔn)答案關(guān)鍵是協(xié)議文檔里要寫清楚雙方實(shí)現(xiàn)時不要有歧義。我見過一次聯(lián)調(diào)模塊側(cè)代碼里長度字段包含了幀頭MCU側(cè)按不含幀頭解析結(jié)果直接錯亂了半個下午。展開說說幀結(jié)構(gòu)的設(shè)計(jì)一個典型的語音模塊控制幀我常用的結(jié)構(gòu)是字段長度說明幀頭2字節(jié)固定0xAA 0x55版本號1字節(jié)協(xié)議版本用于兼容長度2字節(jié)命令字?jǐn)?shù)據(jù)載荷的長度命令字1字節(jié)具體功能指令數(shù)據(jù)載荷N字節(jié)與命令字相關(guān)的參數(shù)校驗(yàn)值1字節(jié)從長度到數(shù)據(jù)載荷的CRC8幀尾1字節(jié)0x0D 0x0A作為額外保護(hù)這個結(jié)構(gòu)不是唯一的標(biāo)準(zhǔn)但它能滿足大部分語音模塊對接場景。幀頭用兩個字節(jié)0xAA 0x55是為了降低誤判概率版本號雖然看起來多此一舉但實(shí)際項(xiàng)目中幾乎都會用上后面我會專門說。命令字的設(shè)計(jì)要預(yù)留空間。比如0x01是命令語音模塊播放指定音頻0x02是查詢模塊當(dāng)前狀態(tài)0x03是停止播放0x10是設(shè)置音量0x11是查詢喚醒詞列表。每個命令字對應(yīng)的數(shù)據(jù)載荷不同接收端要用一張命令映射表去解析而不是在主函數(shù)里堆一堆if-else。數(shù)據(jù)載荷根據(jù)具體場景可長可短。比如“播放音頻”命令數(shù)據(jù)載荷就是音頻編號兩個字節(jié)就夠把數(shù)組拷貝到串口協(xié)議層只做組幀和拆幀不關(guān)心語音業(yè)務(wù)層的邏輯應(yīng)用層是狀態(tài)機(jī)處理具體的語音業(yè)務(wù)流程比如“正在識別”“正在播放提示音”“空閑等待”等狀態(tài)遷移。這種分層的好處是如果換了另一個品牌的語音模塊只需要重寫驅(qū)動接口層的實(shí)現(xiàn)保持上層協(xié)議棧和應(yīng)用層狀態(tài)機(jī)不變項(xiàng)目整體的改動量能被壓縮到一個可控范圍。我做過的項(xiàng)目里就有過原型階段用的是A品牌模塊量產(chǎn)前因?yàn)槌杀緭Q成B品牌結(jié)果MCU側(cè)代碼幾乎沒改只替換了驅(qū)動接口的實(shí)現(xiàn)。3.3 串口調(diào)試助手的正確用法不只是發(fā)數(shù)據(jù)市面上串口調(diào)試助手很多SSCOM、XCOM、PuTTY、minicom各有各的用戶群體。我強(qiáng)調(diào)一下串口調(diào)試助手在聯(lián)調(diào)階段的用處不只是“發(fā)命令、看返回”更重要的是它能幫你確認(rèn)模塊和MCU兩側(cè)是否存在通信問題。聯(lián)調(diào)時我通常開三個窗口一個接語音模塊和電腦之間USB轉(zhuǎn)TTL一個接MCU和電腦之間USB轉(zhuǎn)TTL另一個作為虛擬串口工具在電腦內(nèi)部將兩個串口橋接起來。聽起來有點(diǎn)繞我具體解釋一下。先用USB轉(zhuǎn)TTL線連接語音模塊和電腦打開串口調(diào)試助手發(fā)一條模塊手冊里的查詢指令看是否正確返回。這一步驗(yàn)證的是模塊本身工作正常。然后同樣的方式驗(yàn)證MCU板卡通過MCU自帶的調(diào)試串口發(fā)送我們所設(shè)計(jì)的幀觀察是否正確回復(fù)。最后把兩個USB轉(zhuǎn)TTL串口在電腦上用虛擬串口工具連接起來MAC層的解耦、傳輸層的語義相當(dāng)于把語音模塊和MCU兩個角色之間的通信鏈路打通了。這種做法的好處是聯(lián)調(diào)階段你不需要先寫完整的MCU驅(qū)動而是可以在電腦上先把協(xié)議和命令邏輯跑通然后再把邏輯搬到嵌入式工程里。等交叉驗(yàn)證已經(jīng)沒有問題之后再物理接線MCU的程序基本一次能跑通。另外串口調(diào)試助手的“按Hex收發(fā)”和“定時發(fā)送”這兩個功能在聯(lián)調(diào)時非常有用。按Hex收發(fā)可以讓你直接觀察原始字節(jié)流不被ASCII碼誤導(dǎo)定時發(fā)送可以用來測試模塊長時間工作的穩(wěn)定性順便看看有沒有偶發(fā)的通信異常。常見的串口調(diào)試助手都支持這些功能有的是軟件自帶有的需要配合腳本但思路是一樣的。3.4 用邏輯分析儀和示波器看串口波形有些問題在邏輯層面看是“靈異事件”比如“偶爾收到一個錯誤字節(jié)”“波特率明明一樣為什么亂碼”這時候就需要從物理層面去查了。USB轉(zhuǎn)TTL的工具可以幫你收發(fā)數(shù)據(jù)但它只能看到結(jié)果看不到波形。邏輯分析儀和示波器才是定位物理層問題的利器。串口波形的經(jīng)驗(yàn)很簡單空閑時TX和RX都是高電平起始位是一個低電平脈沖然后是8個數(shù)據(jù)位低位在前最后是停止位高電平。用邏輯分析儀抓到波形之后可以測量一下每一位的寬度反推實(shí)際波特率。比如標(biāo)稱115200的波特率每一位的寬度應(yīng)該是8.68微秒左右如果實(shí)際量出來是9.2微秒說明波特率有偏差長時間傳數(shù)據(jù)就會出現(xiàn)偶發(fā)錯位。我遇到過一種很坑的情況模塊標(biāo)稱115200波特率但實(shí)際上是經(jīng)過內(nèi)部RC振蕩器分頻得到的頻率精度只有±2%。115200的2%誤差累計(jì)到一幀10個bit就會產(chǎn)生超過1個bit的偏差接收端采樣點(diǎn)就危險了。換成9600波特率之后問題自然消失因?yàn)槊總€bit的時間寬裕了很多。這種問題光靠數(shù)據(jù)手冊是發(fā)現(xiàn)不了的必須用工具去看。4. 實(shí)測中遇到的坑與排查鏈路設(shè)計(jì)是設(shè)計(jì)實(shí)際項(xiàng)目里總有各種意想不到的情況。下面幾個問題是我在實(shí)測中真實(shí)遇到過的我把排查過程寫出來供大家參考。4.1 現(xiàn)象串口收到的第一個字節(jié)總是丟有次接一款語音模塊MCU用中斷接收理論上每次收到字節(jié)都進(jìn)中斷。實(shí)測發(fā)現(xiàn)冷啟動之后模塊上電會主動發(fā)一包版本信息但MCU側(cè)收到的第一幀數(shù)據(jù)總是少第一個字節(jié)或者干脆全是錯位數(shù)據(jù)。第二幀之后就正常了。排查過程先從接線開始查示波器看波形確認(rèn)模塊確實(shí)發(fā)出了完整的數(shù)據(jù)幀。又用邏輯分析儀掛上發(fā)現(xiàn)第一個字節(jié)確實(shí)從模塊的TX引腳出來了。那問題就出在MCU側(cè)。查驅(qū)動代碼串口初始化用的是HAL庫的UART_Receive_IT中斷使能了但初始化時序里有個細(xì)節(jié)先初始化了GPIO再初始化串口時鐘導(dǎo)致板子上電瞬間串口外設(shè)沒有被正確使能第一個字節(jié)到來時中斷還沒起來。解決辦法是調(diào)整初始化順序確保串口外設(shè)時鐘和GPIO時鐘開啟之后再配置串口參數(shù)。這個坑的教訓(xùn)是外設(shè)初始化的順序不是隨意的先時鐘后GPIO再外設(shè)這個順序不能亂。而且如果硬件上模塊上電比MCU早MCU初始化慢半拍收到的第一幀就可能丟字節(jié)這種情況可以在MCU端做啟動延時等串口初始化完畢再接收。4.2 現(xiàn)象協(xié)議格式看著沒問題但設(shè)備就是不執(zhí)行命令聯(lián)調(diào)的時候雙方都對協(xié)議命令幀的結(jié)構(gòu)也都對但模塊就是不動作。用串口調(diào)試助手手動發(fā)同樣的幀模塊馬上有反應(yīng)。這就很讓人頭疼了。后來我對比了一下手動發(fā)的和MCU發(fā)的字節(jié)流發(fā)現(xiàn)差異在長度字段上。協(xié)議里定義長度是數(shù)據(jù)載荷的長度但有一個版本的固件里長度字段包含了幀頭兩個字節(jié)。手動發(fā)的時候我按協(xié)議文檔來模塊能識別MCU發(fā)的時候代碼里也按協(xié)議文檔來但模塊側(cè)這個版本固件不認(rèn)賬。這種問題最經(jīng)典的解決方式是不要在協(xié)議里搞兩套理解。如果協(xié)議文檔寫了“長度數(shù)據(jù)載荷長度”那么模塊固件必須按這個實(shí)現(xiàn)。但實(shí)際項(xiàng)目里也會遇到模塊固件是第三方寫的沒法改的情況這時候MCU側(cè)只能妥協(xié)去適配。排查鏈路就是先確認(rèn)字節(jié)流完全一致再回推長度字段、校驗(yàn)字段的語義在兩邊的理解是否一致。4.3 現(xiàn)象偶爾亂碼、偶爾復(fù)位干擾問題排查有一次做整機(jī)測試語音模塊的喇叭一響MCU和語音模塊之間的串口通信就會偶爾出現(xiàn)亂碼嚴(yán)重時MCU直接復(fù)位。剛開始以為是協(xié)議解析出錯看了半天代碼沒發(fā)現(xiàn)邏輯問題。后來用示波器看串口線和電源紋波發(fā)現(xiàn)喇叭工作瞬間3.3V電源軌上有近1V的跌落和毛刺。串口亂碼的物理根源往往是參考地電位不穩(wěn)或者串口信號被耦合干擾。這次的問題是電源喇叭瞬時電流太大拉低了整個板子的電源導(dǎo)致串口電平判斷錯誤。解決方法是給語音模塊的大電流部分單獨(dú)供電或者在喇叭電源和數(shù)字電源之間加磁珠和電容隔離。如果是客戶板卡上不同模塊之間走線密集串口線被干擾可以考慮降低波特率、使用帶屏蔽的線纜或者從硬件上重新規(guī)劃走線。這類干擾問題在系統(tǒng)聯(lián)調(diào)階段特別容易出現(xiàn)因?yàn)閱伟逭{(diào)試時只有MCU和模塊電流不大干擾不明顯。整機(jī)帶上負(fù)載之后電源和地平面變得“臟”了通信問題才浮出水面。所以發(fā)現(xiàn)問題先別急著懷疑代碼先從物理層查一圈往往效率更高。4.4 數(shù)據(jù)手冊上的“高有效”和“低有效”坑還有個不算電路問題的坑是數(shù)據(jù)手冊的表述問題。有些語音模塊的串口引腳是“推挽輸出”有些是“開漏輸出”數(shù)據(jù)手冊上標(biāo)注的“高電平”“低電平”在不同狀態(tài)下含義不一樣。比如某個模塊的“播放完成”引腳數(shù)據(jù)手冊說高電平有效結(jié)果實(shí)測發(fā)現(xiàn)模塊在空閑時拉高播放中拉低完成后再拉高。如果照著“高電平有效”去寫代碼邏輯就反了。所以拿到模塊之后不要只看邏輯描述最好用示波器或者萬用表實(shí)測一下引腳在各種狀態(tài)下的電平。尤其是模塊默認(rèn)配置可能和手冊里的默認(rèn)配置不同有時候需要發(fā)一條指令去切換配置才能讓引腳行為和手冊一致。這在聯(lián)調(diào)階段如果沒注意到白折騰一晚上都是常事。5. 協(xié)議版本演進(jìn)與多模塊擴(kuò)展協(xié)議設(shè)計(jì)出來不是一錘子買賣產(chǎn)品迭代過程中總會新增功能或者換模塊型號。下面聊聊我在協(xié)議演進(jìn)和擴(kuò)展上的幾點(diǎn)思考。5.1 版本號看起來多余實(shí)際幫了大忙有人可能會覺得兩個設(shè)備之間的協(xié)議只要雙方商量好就行加版本號是畫蛇添足。但現(xiàn)實(shí)是模塊固件升級了模塊側(cè)新固件為了兼容舊產(chǎn)品可能還保留舊命令字但行為上有細(xì)微差別。如果沒有版本號MCU根本不知道對面跑的是哪個版本。我習(xí)慣在模塊和MCU建立連接的時候先互發(fā)版本查詢命令MCU根據(jù)模塊返回的版本號決定后續(xù)用哪一套協(xié)議語義解析。語音模塊這類產(chǎn)品經(jīng)常由模組廠商持續(xù)維護(hù)固件所以版本號的重要性比普通傳感器模塊高很多。項(xiàng)目里甚至遇到過同一款模塊兩個批次出廠固件不同處理同一命令的方式有差異光靠查序列號查了半天才定位到是固件版本批次問題。5.2 廣播幀與主動上報(bào)并不是所有數(shù)據(jù)都一問一答很多用慣了“主機(jī)查詢-從機(jī)應(yīng)答”模式的開發(fā)者遇到語音模塊的主動上報(bào)會覺得不習(xí)慣。語音模塊在喚醒之后識別到語音內(nèi)容會主動把結(jié)果發(fā)給MCUMCU不可能提前預(yù)知這個時機(jī)。所以設(shè)計(jì)協(xié)議時主動上報(bào)幀必須要考慮完整上報(bào)幀的幀頭、命令字、數(shù)據(jù)語義MCU端接收狀態(tài)機(jī)能不能對主動上報(bào)幀做處理和響應(yīng)。主動上報(bào)幀和應(yīng)答幀有時候可以通過命令字的最高位或者幀標(biāo)志位來區(qū)分。比如0x01是“MCU發(fā)給模塊的查詢命令”0x81是“模塊給MCU的上報(bào)命令”。這種設(shè)計(jì)在協(xié)議解析時可以很快判斷幀的方向避免在同一通道上把兩種幀混為一談。語音模塊場景里我還習(xí)慣給主動上報(bào)幀加一個“事件序號”字段用來避免同一個事件被重復(fù)處理。5.3 MCU資源受限時的協(xié)議裁剪方案有些項(xiàng)目的MCU資源非常緊張F(tuán)lash和RAM都得精打細(xì)算。如果語音模塊需要的命令不多協(xié)議可以裁剪去掉版本號字段固定波特率簡化應(yīng)答機(jī)制甚至保留單字節(jié)命令字而不帶數(shù)據(jù)載荷。但裁剪之前要權(quán)衡比如簡單的LED語音控制項(xiàng)目只需要“播放第幾號音頻”這一條命令那確實(shí)不需要搞復(fù)雜的幀結(jié)構(gòu)。直接定義一句簡單的協(xié)議甚至一條命令一句話就完成。不過如果產(chǎn)品后續(xù)要擴(kuò)展多語言、音量調(diào)節(jié)、喚醒詞切換這些功能再回頭補(bǔ)協(xié)議結(jié)構(gòu)就比較痛苦了。所以我的建議是串口協(xié)議這種成本很低的擴(kuò)展性投資沒必要因?yàn)槭讉€字節(jié)而過度裁剪。存儲空間緊張的話優(yōu)化代碼體積的辦法很多不該拿協(xié)議的可擴(kuò)展性去換。6. 聯(lián)調(diào)階段的工具鏈與實(shí)用技巧最后說一下工具鏈和流程上的技巧。工欲善其事必先利其器這句話用在串口聯(lián)調(diào)上特別貼切。6.1 必備硬件工具與選型參考做語音模塊和MCU串口對接常用到的硬件工具大概有這些工具用途選型建議USB轉(zhuǎn)TTL模塊連接模塊/主板和PCCH340、CP2102、FT232都可注意電壓跳線邏輯分析儀觀察串口波形時序采樣率至少20MHz以上8通道夠用示波器排查電源紋波和串口波形100MHz帶寬入門夠用可調(diào)電源復(fù)現(xiàn)電源干擾問題帶電流顯示方便監(jiān)控模塊峰值電流杜邦線/散熱線靈活接線注意線序避免短路USB轉(zhuǎn)TTL的選型要點(diǎn)是電壓。很多模塊支持3.3V和5V切換如果板子是3.3V系統(tǒng)一定要把USB轉(zhuǎn)TTL的輸出調(diào)到3.3V否則信號電平過高可能損傷MCU引腳。CH340和CP2102在Windows和Linux下驅(qū)動都比較成熟FT232兼容性最好但價格高一些。邏輯分析儀是排查串口問題的利器建議每一位嵌入式開發(fā)者都備一個。幾十塊錢的入門級邏輯分析儀就能看串口時序?qū)τ趨f(xié)議調(diào)試來說完全夠用。示波器雖然貴一些但排查電源問題和干擾問題時不可或缺。6.2 串口調(diào)試助手的選擇與配置細(xì)節(jié)市面上串口調(diào)試助手的選擇比較多。Windows下我常用SSCOM和XCOMmacOS下minicom用得比較多Linux環(huán)境也可以直接用Python的pyserial寫小腳本。串口調(diào)試助手的配置細(xì)節(jié)里最容易忽略的是DTR和RTS這兩個引腳。在打開串口的時候有些軟件會根據(jù)配置自動拉高或拉低DTR/RTS這可能導(dǎo)致目標(biāo)板復(fù)位或者進(jìn)入Boot模式看起來像“怎么一打開串口模塊就重啟了”。如果你遇到這種情況檢查一下串口助手的DTR/RTS設(shè)置取消勾選就可以了。另外調(diào)試階段盡量使用Hex模式查看數(shù)據(jù)而不是直接看ASCII。因?yàn)檎Z音模塊返回的數(shù)據(jù)幀里可能包含非可見字符以ASCII模式查看會被攔截或者顯示為亂碼無法判斷協(xié)議層是否正確。6.3 建立聯(lián)調(diào)日志與問題記錄表很多開發(fā)者聯(lián)調(diào)時習(xí)慣“出問題再看代碼”但我覺得主動記錄聯(lián)調(diào)日志和問題現(xiàn)象是效率更高的做法。尤其在語音模塊這種涉及雙方協(xié)議配合的場景里一個現(xiàn)象背后可能有多個原因如果每次都在腦子里回憶很容易遺漏細(xì)節(jié)。我的習(xí)慣是維護(hù)一張表格記錄每次聯(lián)調(diào)的時間、現(xiàn)象、復(fù)現(xiàn)條件、初步分析、修改了什么、驗(yàn)證結(jié)果。遇到靈異問題也能回溯到當(dāng)時的環(huán)境和操作。這個習(xí)慣在項(xiàng)目進(jìn)入后期評審時尤其有價值很多時候能幫助定位到某個操作步驟引入的回歸問題。另外用腳本自動化測試比手動發(fā)命令靠譜得多。比如用Python的pyserial寫一個簡單的自動化腳本自動發(fā)1000次查詢指令統(tǒng)計(jì)成功率和返回延遲這對評估通信穩(wěn)定性和模塊固件質(zhì)量非常有幫助。手動測試幾乎不可能做到這個程度。7. 最后分享一個我在語音項(xiàng)目里的習(xí)慣說回語音模塊與MCU對接這件事本身。我這些年最大的感觸是串口協(xié)議設(shè)計(jì)沒有想象中那么難但要做好也不簡單。它的核心不是把幀發(fā)出去收回來而是讓兩個設(shè)備在復(fù)雜的現(xiàn)實(shí)環(huán)境中保持穩(wěn)定可靠的通信并讓整個系統(tǒng)的可維護(hù)性足夠好。每個項(xiàng)目的硬件環(huán)境、模塊型號、成本要求都不一樣六個要點(diǎn)不可能每次都全用上取舍和裁剪是正常的。關(guān)鍵是動手之前多想一步模塊會主動發(fā)什么MCU什么時候應(yīng)答如果數(shù)據(jù)錯了怎么辦將來要擴(kuò)展什么功能這些問題在設(shè)計(jì)階段想透了聯(lián)調(diào)階段就會少走很多彎路。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
jizzjizz欧美| 99热aaa| 夜夜嗨一区二区| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 人妻激情视频| 国产成人 综合亚洲 天堂| 久操99| 视频国产成人精品日本亚洲18| 91社区拍啪人妻| 久艹99| 六月婷婷五月丁香| 亚洲性刺激| av一区二区三区 中文| 中文字幕文字幕无码一区二区三区电影99 | 性一交一乱一交A片久久四色| 免费成人在线熟妇网| 亚洲一区二区精品福利| 91爱欧美| 夜夜草网站| 日韩熟女操逼| 97伊人| 国产青视频| 激情小说五月天| 夫妻天天操岛国视频| 日日骚 av| 久久国内| 日夜伊人网| 精品无人区麻豆乱码久久久| 五月丁香婷婷综合网| 久久精品久久九九精品| 84YTCOM性无码| 在线观看AV不卡| 99久久无色码| 日本精品一区二区中文字幕| 97免费在线视频| 精品一国2| 玖玖97综合 | 国产熟女一区二区丰满| 99在线精品观看99| 思思热免费视频观看| 外国91| 精品一二三区女同| 91亚洲黑人| 亚洲精品天堂久久A∨51成人漫| 韩国一级做a久久久久| 最新av中文字幕高清| 久久亚州精品成人Av无| 欧美色九九| 91少妇香蕉久久精品| 精品性爱无码在线播放| 成人八戒网站| 91精品国产91久久青草| 九九热三级片| 91天天综合日韩欧美| 天天爽入口| julia中文字幕在线观看| 骚熟女吞| 欧洲大香蕉| 91国产美女丝袜足交精品视频| 骚货人妻偷情自拍在线视频| 日本熟妇一区二区三区| 亚洲国产第一页综合视频| 亚洲五月丁香花狠狠干一区二区三区 | 校园春色亚洲无码| 老鸭窝日丰县女人| 久久精品人妻一区| 久久成人午夜精品影院| 91天堂色男人的天堂| 婷婷中文网| 国模少妇一区二区三区| 伊人五月天青青草婷婷| 国产剧情一区在线观看| 91欧美| 日日A∨| 91精品少妇搡搡搡| 九九视频黄色片| 中日韩欧美精品无码AⅤ一区二区| 日韩性爱电影一区| 91久久久视| 九九五月天| 国产一区在线播放| 亚洲怡春院| 人妻一区二区三区四区视频| 凹凸视频特色日本特黄| 亚洲高潮少妇| 色原狠狠天天天| 思思热免费在线视频| 一本道综合色图| 欧美洲精品一级| 天天干天天舔| 国语人妻精彩刺激| 久久久专区| 清纯唯美综合| 国产又粗又长又爽又色| 中文字幕精品三级久久久| 日本一区二区亚洲综合| 99热自拍| 青青草一区二区高清无码视频| 中文字幕乱码在线| 7月婷婷综合| 欧美激情内射| 国产精品一区二区三区在线密挑| 综合色欧美| 国产精选三级在线观看| 色哟哟精品1精品2| 欧美人妻精品一区二区| 久草婷婷| 思思久热在线精品66| 91chinese在线| 久久少妇| 96精品在线| 九九九精品| 好吊色在线观看| 极品出轨视频网站| 亚洲 欧美 中文 日韩超碰| 无码精品啪啪啪一区二区三区三州| 欧美欧美啪啪视频| 久久久国产精品亚洲精品| 国产精品盗摄 偷窥盗摄| 四虎AV无码| 欧美一区二区一级岛国大片| 色娱乐色呦呦夜夜夜夜av| 操逼不卡中文字幕| 综合色一区三区二区| 国产在线不卡导航| 国产探花精品在线| 国产精品视频在线观看| 久久97资源 网| 自怕偷自怕亚洲精品| 国产精品久久久久绯色| 一本大道不卡一二三区| 国产精品一区二区在钱播放| 欧美中出1| 九九热三级片| 午夜福利免费福利视频| 久久性爱视频免费看| 九草九九九| 久久性爱视频免费看| 久久伊人五月天| 伊人aaa| 高潮精品| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 欧美一二三级精品在线| 国产精品久久久三级无码| 区一二区日韩亚洲乱码av电影| 欧亚三区动漫| 久久艹逼视频| 91美| 久久综合五月天| 国产精品乱码久久久久久久久| 1级黄色夫妻对换性交免费看| 嗯嗯嗯啊啊啊操的我好爽 | 三级色影综合网| 337p大胆噜噜噜噜噜91Av| 国产成人啪一区二区| 美国aaaaa一级黄片| 五月开心久久AV官网| 黄片com.| 91精品人妻一区二区三区蜜臀| 中文字幕亚洲在线一区| 亚洲成人ab| 国产日韩精品一区二区三区| 国产JDAV无码视频在线观看| 97频视在线| 一块操欧美性爱| 日本操逼无码| 亚洲熟女诱惑| 精品黄色电影| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 综合国产97| 久久受www免费人成| 欧美丝袜激情| 天天综合色| 久久精品免费| 久热香蕉精品在线视频| 一本正道久久熟女| 熟女人妇一区二区三区| 国产美脚女优尤物在线观看| 人妻AV在线| 女人被男人桶爽视频网站| 欧美天天干| 日韩av不卡在线看| 国内亚洲精彩视频在线| 日日操丁香五月天| 亚洲欧美激情另类色图| 国产超碰国产97| 欧美日动态视频| 国产99999久久精品| 国产精品午夜福利| 中国操逼无码| 99热最新网址| 97中文字幕色| 亚洲全色网| 唐山老熟妇露脸啪啪叫| 超碰亚洲欧美日韩无| 欧美91网站| 97亚洲色图| 欧洲欧美视频一区二区| 日韩内射视频| 午夜久久久| 综合第一页| 亚洲图片婷婷五月天| 91N欧美| ...日韩成人一区二区三区字幕| 2020中文字幕在线| 久久久蜜桃臀无码视频| 黄片com.| 欧美熟女激情| 青娱乐福利99| 混色激情av| 大香蕉一人| 亚洲一区日韩精品| 97色欧州| 欧美中出| 国产av青草| 中国熟妇| 五月婷婷六月丁香| 国产精品午夜AV完会免费| 久久久中文| 97超碰总站| 亚洲午夜福利在线影院| 亚洲影视高清第一页| 久久久久亚洲Aⅴ无码| 人妻丝袜肏逼| 少妇干B| 女上位精品在线| 99re国产中文字幕| Julia Annxxxxx| 国产三级电影免费观看| 亚洲资源站| 亚洲五区熟女| 久久久久久AⅤ无码免费肉站 | 99爱在线视频| 欧美欧美啪啪视频| 欧美色图片| 亚洲欲色9532548967一区| 欧美色图欧美| 人妻啊啊人妻啊| 一本久道久久综合狠狠爱一密臀精| 国产激情综合| 免费A片三p视频| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 久久亚洲天天做| av资源在线播放天堂| 一起草三级AV电影在线观看 | …中文字幕亚洲乱,97人妻无码费视…| 天天干天天狼在线视频| av网站国产主播在线| 97视频900| 亚洲黑丝在线| 91麻豆天美国产欧美| 国产专区第一页| 97色欧洲| 日韩视频小说在线观看 | 亚洲中文字母在线播放| 强奸乱伦 亚洲一区| 国产成人五月天丁香花| m欧洲一级午老| 日韩一区二区熟女| 亚洲综合一区二区| 天天精品| 国产AV超爽| 视频黄色国产一级| heyZO天然素人无码AⅤ专区| 成·人免费午夜在线观看| 91视频综合在线| 亚洲综合图片在线| 使劲用力艹少妇视频一区二区 | 亚洲丝袜B诱惑| 26uuu欧美日韩| 亚洲国成人情色好看电影| 激情自拍 校园春色| 蜜臀久久99精品久久久久免费观| 丁香六月综合激情| 久久婷五月天| 精品视频久久久久九九九九9999 | 大伊香蕉在线视频免费| 91天堂色男人的天堂| 久久精品国产亚洲AV无码电影| 二男一女成人A片| 欧美国产伊人久久久久| 天天插天天操| 中文字幕在线观看二区三区| 日本中文字幕在线电影| 色五月婷婷久久| 丝袜美腿诱惑亚洲欧美视频在线观看 | 熟女人妻一区二区三区免费看| 福利大香蕉| 日产精品久久久一区二区| 2019亚洲男人天堂| 亚洲欧洲激情卡通另类文学四射小说网站 | www国产精品| 亚洲成人精品在线一区| 一级性爱视频免费在线| 黄色一区二区秘书性感| 色婷婷九月天天综合| 久久久精品国产亚洲AV无码| 操碰97| JULIA人妻风俗店中出电影| 久久av网| 搡老女人老91妇女熟女| 亚洲男人天堂网站| 强奸乱伦av电影| 久99热| 色网综合网| 麻豆久久精品亚洲精品88| 日韩精品一区二区日韩| 亚洲日韩AV视色| 四虎视频在线观看| 日韩欧美女求操每天更新| 亚洲天天操| 亚欧成人综合影院| 噜噜噜久久亚洲精品色情| 欧美精品不卡一二三四在线91| 国产二区三区免费视频| 九九色婷婷| 蜜桃狠狠色伊人亚洲综合 | 少妇被玩视频二三区| 亚拍在线| 日本视频一区二区三区| 97视频620| 亚洲一区在线观看欧洲| 久久久久久久久久久久久久久性生活视频 | 99久久久久久亚洲精品不卡| 超碰九色| 国产精品毛片| 久久毛卡| 色五月激情AV在线| 成人免费福利网站国产| 91热| 暖暖精品二区三区观看| 日韩精品字幕| 久久久av爱| 波多野42部激情无码喷潮| 97欧美精品综合| 亚洲日韩av专区无码| 91人妻丝袜无码| 91亚洲色人| 综合干干干av久久久综合网 | 久久精品视| 国产强奸乱伦xd| 久湿久久| 七久久久| 1769国内精品视频| 蜜臀av网址| 亚洲天堂99| 人人操,人人插| 日韩精品人妻中文字幕不卡乱码| 天堂中文资源在线bt| 超碰色老头| 天堂伊人久久| 69超碰综合| 国产女大学生AV| 亚洲 中文 欧美 日韩 在线| 五月天激情网图片| 脫衣舞一区二区三区| 亚洲综合有码| 五十路二区在线| 东京日日夜夜| 玖玖资源综合在线视频| 大学生美女口爆| 精品然女一区二区| oumeisetu综合| 操逼逼无码| 国产精品白丝在线播放| 日韩在线观看AV| 操逼网免费无码视频| 2019久久久久久久久福利| 亚洲色图91欧美日韩| 精品久久久久久无码| 亚洲图片 激情小说| 最新欧美色网| 爽 好舒服 无码刺激久久| 亚洲乱码精品一区二区| 翔田千里AV无码秘 三区| 亚洲脚交| 亚洲伊人青青草| 久久成人精品| 精品少妇一区二区三区| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 夜夜免费视频| 久久华人网| 男人网站婷婷| 国产一区二区三区,在线观看观看| oumeisetu综合| 狠狠狠狠狠| 视频分类 国内精品| 三级日韩一区二区三区| 欧美性爱精品七区| 黄片视频观看| 中文字幕精品探花视频| 国产9区| 亚洲性爱成人| 午夜成人爽爽爽爽A片李冰冰| 18禁看网站一区| 国产中文字幕在线点播| 亚洲精品a人片在线观看视| 操逼操网| 国产成人亚洲精品自产在线| 不卡在线一区,精品一区二区三区中| 国语对白在线播放视频| 久久久com| 色五月激情网| 九九热免费在线国产视频伊人五月| 色色丁香| 在线97在线| 久久久久久久六六| 久久久日本电影| 自拍偷拍草一草| 激情无码日韩| 麻豆国产av网| 亚洲熟女人妻中文字幕一区二区 | 啊啊啊好舒服好爽啊啊啊视频| 午夜福利在线合集| 久久久久久久91| 亚洲美女自拍偷拍视频| 狠狠躁AV| 婷婷色香伊人| 久久香蕉影院| 后入式999| 无码外流操逼视频| 天天弄欧美| 久久精品无码熟妇一区二区三区视频导航 | 久久九九97| 伊人久久综合影院| 日韩午夜国产| 亚洲欧洲综合成人av一区| 国产情侣自拍在线播放| 美女97超碰| 欧美亚洲图片| 丁香五月偷拍| 欧美,日韩,中文,另类| AV乱伦专区| 天天日天天插| 91久久婷婷| 手机在线看片免费人成视频| 制服中出中文人人精品| 日韩欧美字幕亚洲一区二区 | 日本狠狠干| 色区97| 国产亚洲精品自在线亚洲情侣| 亚洲大胆人体av| 人人摸.人人色| 亚洲最大的黄色电影网站。| 无码外流操逼视频| 嗯……啊…嗯嗯…啊…好舒服| 青青久久艹| 色欲人妻一区二区在线| 不卡中文字幕aⅴ在线| 亚洲男人的天堂网| 色噜噜精品一区二区三| 久久人妇| 婷婷激情啪啪| 三级精品三级在线观看| 天天躁狠狠躁av| 不卡啪啪视频| 亚州男人天堂| 伊人在线大香蕉二。| 很很干很很操| 亚洲阿v天堂在线| 亚洲淫色网中文| 99热婷婷| 激情抓乳插进去啪啪啪日韩 | 丁香五月性| 网站A V在线| 东京太热男人的天堂久久久| 99精品丰满人妻无| 97国产高清视频在线观看| 97在线免费看视频| 97在线青| 久久久久久久极品香蕉视频| 亚洲一区二区久久久久| 乱伦强奸区日韩| 二男一女成人A片| 亚洲精品一区二区免费在线观看| 久久久久久少妇| jizzjizz欧美| 84YTCOM性无码| 在线亚洲欧美| 94色色电影网| 性爱乱伦网址| 亚洲国产一区二区三区在线| 91在线美女| 蜜乳AV.COM| 五月婷婷综合激情| 日本狂喷奶水在线播放212| 青青操在线视频| 97欧美色| 久久久久78| 久久99草| 久9久精品视频| 成人综合视频久久| 亚洲五月丁香花狠狠干一区二区三区| 国产一区二区三区影片| 亚洲AV永久无码一区仙野| 少妇高潮特黄A片| 免费观看的黄色的网站| 黄片直播三级黄片两女一男| 亚洲图片欧洲图片aⅴ| 岛国网址国产| 天天干人妇| 亚洲综合九九| 91久久久久久| 大香蕉操久久| 九九天堂| 亚洲天堂自拍| 欧洲中文字幕| 蜜桃久久久久久久久久久久 | 黄色片大香蕉| 性吧在线视频| 啊啊啊好湿国产一二| 懂色AV中文| 亚洲精品人伦一区二区| 亚洲丝袜少妇在线| site:sinbotex.com| 翔田千里A片一区二区| 中文人妻av高清一区| 97精品熟女少妇一区 | 中文字幕乱偷人妻久久艾草网| 亚洲凸凹超碰成人| 欧美黑人168页欧美黑人167| 色汉综合| 日韩乱伦视频| 欧美熟女妇同| 欧美日韩97| 免费啪啪一级视频| 97精品国产97久久久久久| 蜜臀久久99精品| 97欧美视频| 日本三级日本三级99| 嗯嗯啊啊好爽| 91N欧美| 国产小炒后入式| 成人无码欧美一级A片狼牙直播| 青青草久草| 欧美日韩国产中文精品字幕自在自线 | 亚洲操人| 精品二区久久| 五月天婷精品激情| 青娱乐大香蕉| 精品91| 96精品在线| 亚洲中文字幕熟女少妇一区二区| 夜夜草网站| 久久精品中文字幕女同| 日韩AV无码中文一区二区| 久久这里都是精品| 九九久精品| 国产亚洲精品玖玖玖在线观看| 啊啊啊啊好疼视频| 亚洲成人性爱在线观看| 熟女高潮精品一区二区| 亚洲一区中文字幕一区| 99这里都是精品| www.黄色在线| 任你干在线视频| 国产精品成人无码a v毛片| 嗯嗯嗯嗯啊啊啊好紧好大| 国产精品日日摸天天碰| 麻豆天美电影一区二区| 国产高清成人免费视频| 啊啊啊啊嗯嗯嗯用力好爽 | 9118禁| 日日夜夜国产综合| 精品国产无码中文| 中文字幕第二页| 中文字幕精品一区二区精品| 欧美日韩97| 69AV女优男人的天堂| 欧美一级黄色免费专区| 九九九精品成人免费视频小说| 免费成人在线熟妇网| 国产欧美一区激情交| 亚洲高清自拍| 欧美热图99| 97视频网站在线观看| av午夜影院在线播放| 久久岛国| 锕锕好爽 死我在线观看| 97干在线| 欧美亚洲中文字幕| www.av家庭乱伦| 97在线播放 | 91色色综合| 啊啊啊好爽快点啊啊啊嗯嗯| 国产无马在线| 2020久久免费视频| 亚洲欧美清纯| 欧美大干日韩| 蜜臀th| 欧美se亚洲| 久久丁香| 日本色色网| 一区二区三区黄片免费观看| 国产在线视频二区| 99国产精品| 欧美在线电影| 亚洲综合一| 中 文字幕一区二区三四 五 区日 日 骚| 操一区| 96久久精品一二三区色欲| 天天谢天天干| 97欧美久久久久久久| 9丨久久九九九| 国产精品视频白浆免费| AV色天香在线| 天美91| 国产精品4p在线观看| 日本孕妇一区二区视频操逼免费看 | 强奸乱亚洲| 婷婷丁香成人| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 亚洲中文字幕在线视频一区二区| 中日韩欧美精品无码AⅤ一区二区| 超碰人妻在线| 自拍欧美| 美女黄页| 日韩欧美女优电影| 日本性爱少妇| 一二视频神马久久传媒| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 日韩黄片视频试看| 草草网站影院白丝内射| 少妇厨房愉情理伦片bd在线观看| 一本久久久精品| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 78久久久| 91夜夜蜜桃臀1区2区3区| 尤物av网站| 大香蕉免| 97超碰逼| 亚av顶级裸体一区二区三区四区五区| 奸色色 男人天堂 天天射| 成人情色一区二区| 狂操嫩妻视频一区二区三区| 91丨九色丨国产打屁股| 深爱五月婷婷| 久久久久久大| 国产乱婷婷精品二区三区| 啊啊啊com| 一区二区三区无卡视频在线观看| 亚洲精品国产AV天美传媒| 欧美一二在线| 日韩在线一区高清在线| 中文字幕一区电影在线观看| 激情五月天丁香社区| 亚洲五月丁香花狠狠干一区二区三区| 色99色| 性色高清在线| 亚洲天堂久| 火箭成精品视频884必出精品| 精品久久久av无码免费| 在线观看岛国有码| 99性爱| 人人操人人射人人干| 亚洲中字慕不卡| 午夜男女爽爽大片免费观看| 亚洲午夜福利在线影院| 婷婷丁香六月| 九九av| 国产精品4p在线观看| 极品尤物在线观看| 欧美日本天堂| 96精品久久久久久久久| 欧美操逼熟女| 人妻一区二区三区四区视频| 亚洲一区二区精品福利| 国产精品白领在线观看| 懂色av一区二区三区天美传媒| 91超碰丝袜制服| 亚洲做性| 日本男人天堂| 亚洲精品97| 91 天天综合| 婷婷中文字幕| 亚洲国产一区二区日韩专区| 九九九久久久W精品| 资源在线观一 二| 日本免费一级AAA大片器 | 91春色| 大学生美女口爆| 欧日韩不卡视.频| 亚码激情| 亚洲成人综合在线| 国产精品久久久久久久久AV大片| 日韩国产乱子伦App| 性色亚洲| 日韩欧美亚洲一区二区三区影院| 亚洲中文字幕av | 亚洲中文字母在线播放| 绯色一区二区三区不卡少妇| 三级三级三级a级全黄三| 97久久久久久久久久| 亚洲另类久操网| 全球成人中文在线| 亚洲欧洲av影音| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 成人乱码一区二区三少妇| 天堂性色| 久久亚洲色图中文字幕| 玖玖视频在线资源一区二区三区| 人人妻人人爽 97人人看碰人免费公开视频| 日本性一区| 伊人久久久日韩一区| 青青草视频爽一爽| 欧美日韩91| xxx0国产在线播放| 免费看黄片现成| 蜜臀99精品国产高清在线观看| 日本一天色道久久久精品视频| 日韩伦理久 久久 清纯| 91熟女熟妇视频网站| 欧美日韩 强奸乱伦| 无码外流操逼视频| ,成人免费啪啪视频| 少妇被c 黄 免费观看| 欧美成人精品欧美一级乱黄一区二…| 欧美第五页| 夜夜做夜夜爽精品视频| 91中出在线| 嗯嗯啊啊啊好爽| 国产又粗又长视频| 亚洲在饯| 久久色网| 日韩免费高清大片在线| 精品视频免费在线一区| 在线一道啪| 中国国国产一级特黄毛片| 香蕉综合网| 国产11页| 久久婷婷欧美| 国产sv美女内射| 国产精品久久妻无码网站| 国产操偷| 91狠婷| 九九九影院| 美女爽到高潮91| 亚洲无码精品AV久久久| 91人妻精华帖| 五月婷婷六月激情| 97 国产一区| 国产夫妻性生活视频| 色姑娘综合网| 99精品成人免费看| 九月AV| 国产精品成人午夜福利| 二男一女成人A片| renqi久久久久久久久久久久| 啊啊啊啊二区好大| 欧美91变态| 亚洲性爱无码乱伦av| 搡老女人老妇女老妇老熟女怎么读| 强上我不卡卡| 日本不卡在线二区三区| 欧美黄片欧美黄片xxx| 日本福利社| 好一吊区二区| 日韩乱伦AⅤ| 99天天超碰| 26uuu最新| 天天干2区3区| 女沟厕偷窥piss小便| 性爱av在线免费观看| 麻豆国产第一| 亚洲欧洲中文日韩女优乱码| 乱人伦 国语对白:视频直接看| 草B在线| 亚洲蜜桃V妇女| 干妹子| 丝袜熟女一区二区三区| 大香蕉天天看妹子| 欧美性爱日韩高清| 日韩啪啪啪视频| 亚洲自拍偷拍视频在线| 91色黑人少妇| 国产成人99久久亚洲综合| 嗯啊啊啊轻点视频| 高清国产无码av| 欧洲一区二区三区免费| 性做久久久久久久| 992视频一区| 一区=区三区视频| 中国一级αV| 青青草字幕AV| 久久婷婷综合国际产色怕| 欧美综合自拍亚洲综合图| 91|九色|国产熟女| 亚洲一区二区三区春色| 欧美一二在线| 黄片www.| 日韩操啪| 国产久久男人天堂| 亚洲一区深夜| 黄色二级片网站| 人妻在线臀日韩| 国产第12页| 91精品国产91久久久久久久久久久久| 丁香激情网| 97在线观看免费视频| 欧美日日夜夜| 99自拍视频在线| 人人做天天爱| 精品欧美乱码久| 1区2区3区中文字幕日韩| 性做久久久久久免费观看软件| 老熟妇乱轮| 日本精品加勒比海一区| 999久久久久久久精| 亚洲成人性爱在线观看| 天天日天天操天天射河南省| 久久久九| 亚洲有码第一页| 中文字幕十五区| 旡码电影特区| 久热久一区二区三区| 操逼网免费无码视频| 综合欧美激情网| 免费家庭乱伦视频| se吧提供91精品国产91久久久久久| 国产蜜臀在线| 久久99精品九九久久久婷婷| 天天91~综合入口| 人人考人人摸人人干| 人人考人人摸人人干| 免费看A片毛毛片在线播| 久综合国内精品自在自线| 2018天天日天天日| yiqicaoav| 国产午夜在线观看| 丰满美女一级毛片在线播放| 国产粉嫩蜜臀av一区二区三区| 日韩欧美女求操每天更新| 另类欧美综合| 久久久久久九九九九九| 插入逼91| 日韩综合成人免费视频| 亚洲性爱免费电影| 日本操嫩b网| 十八禁视频网站| 97综合在线观看| 欧洲Au麻豆| 色综合久久夜色精品国产天堂| 午夜福利国产欧美日韩夜夜| 黄色激情电影在线观看| 欧美性爱十八禁| 志村玲子视频一区二区| www.97在线| 亚av顶级裸体一区二区三区四区五区| s片在线观看| 亚洲美女精品九九视频| 日本精品国产视频| 久久综合18p| av一区二区三区不卡| 亚洲欧美国产中文视频| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 久久久国产av美女私房| 欧美大香蕉同搞| 亚洲AV免费在线| 色大香蕉97N| 久久久久久久| 亚洲九月丁香| 久久久久久91香蕉国产| 国产精品一区二区密臀| 亚洲一区二区三区中文字幕| 激情综合久久| 久久久精品一区二区| 翔田千里A片一区二区| 99视频在线| 91国产丝袜美女| 精品久久久久久无码| 久久久精品国产亚洲伊人| 天天日骚逼熟女| 国产精品一区二区校花| 97精品久久久久久久| 国产色产精品在线观看| 69精品在线| 青青草好吊色| 色色婷婷丁香| 一本久久久精品| 久久99人妖视频国产| 中文字幕78| 成年人黄色小视频网站| 日本顶级天天操狠狠操夜夜操中文字幕 | 无码丰满熟妇一区二区浪潮AV| 成人五月香网在线| 欧美AB在线| 97舔舔| 另类图片欧美激情综合| 久久久9视频| 丁香色狠狠色综合久久小说| 江都AV在线| 日韩免费中文字幕视频| 久久蜜色情在线视频xxx免费观看| 中文字幕后石码四区五区| 精品十三区| 91成人久久| 99热在线只有精品| 欧美性爱97超碰| 日韩精品中文字幕人妻| 九一性生活免费视频| 日韩啪啪啪啪啪| 国产毛片毛片4p懂色| 久久久久久无码人妻中文字幕| 亚洲操人| 亚洲国产精品9999在线观看| 色偷偷人人玩人人舔人人操人人摸人人爽| 午夜高清成人在线视频| 精…码一二三区| 欧美一区二区三区成人性生活| 激情综合亚洲| 无码在线亚洲| 精品久| 久久亚洲色图中文字幕| 啊好大好舒服| 一级黄色牲爱A级片| 久久婷婷电影网| 久草色在线观看| 97热视频在线观看| 亚洲丝袜色图| 大香蕉色十月| 五月激情在线| 五月天激情四射| 丰满人妻无码一区二区三区| TS人妖另类精品视频系列| 久久精品成人| 精品一二三区女同| 97天天操天天干| 亚洲 欧美 另类 综合 偷拍| www.99视频| 婷婷久久五月| 欧美性爱五月天| 国产高潮AA片免费看| 亚洲欧美精品福利在线| 狠狠色噜噜狠狠狠狠狠色综合久久 | 啊啊啊啊啊啊啊啊要喷了| 日韩天堂av电影在线观看| 理论久久婷婷网 8| 夂久色| 欧美欧美少妇| 日韩av在线精品观看| 亚洲欧美另类激情小说| 国内精品嫩模A∨私拍小视频| 欧美亚洲天堂| 国产强奸乱伦xd| 日韩欧美中文| 国产激情片在线观看| 丁香五月天社区| 99精品网站| 久久↗↗| 欧美狠狠狠| 免费自拍三级综合| 欧美操逼熟女| www九九热| 91偷拍欧美亚洲| 97精品97久久| 欧美劲爆第一页| 北约熟女超碰| 日韩人妻无码专区| 色婷婷成人综合| 国产AV线| 操逼视频国产无套| 91动漫操逼视频| 久久午夜伦| 久久爽爽精品| 人妻精品一区二区| 欧美18 在线观看| 日本黄 R色 成 人网站| 久久久久9| 久久狠狠色噜噜狠狠狠狠97| 色呦呦呦在线观看视频| 欧美日韩国产传媒在线精品| 97热视频在线观看| 91免费看一区二区三区| 亚洲欧美一区二区三区一猛片| 99热亚洲天堂| 天天欧美| 爽 好舒服 无码刺激久久| 成人一区二区三区四区| 蜜臀久久久99久久久久| 国产精品视频白浆免费| 天天看高清麻豆| 亚洲精品国产无码高清| 日韩人妻少妇中文字幕| 91热| 五月激情小说| 深喉吞精| www色色色com| 狠狠色五月亚洲91| 尤物一级在线免费观看| 亚洲性少妇| 特级丰满少妇一级AAAA爱毛片| 成人欧美日超碰| 思思热国产在线视频| 97丝袜亚洲在线播放| 亚洲av影音先锋| 国产久久久久影院老熟女| 草草影院最新网址| 亚洲涩图欧美| 无码精品蜜桃一区二区三区ww| 亚洲自拍欧美色综合| 日韩一性一交一A片俄罗斯 | 久久区| 九九英色视频| 91成人久久| 亚洲精品91| 午夜精品久久久久| 国产精品久久久鸭无码的功能| 蜜臀99久久精品| 91亚洲精品青草| 国模艳艳啪啪一区| 少妇综合| 丰满人妻一区| 97国产精品国| 亚洲强奸乱伦影视网| 玖玖久久久| 久久久99999久网站| 农村妇女一级二级三级视频| 亚洲图片日本AⅤ欧美在线| 亚洲高潮影院| 99国内熟女露脸视频| 激情五月激情综合网| 日韩欧美aⅴ综合网站发布| 人看人人摸人人操| 99这里只有精品国产| 久久免费少妇| 97中文字幕一区| 97国产亚洲中文在线| 久久五月份| 国产精品午夜高潮呻吟久久av| 中文字幕天堂在线| 99精品九九九九九九| 蜜桃狠狠色伊人亚洲综合| 91在线限制级| 成 人 影视 一区 二区 三区 四区 | 偷拍精品一区二区三区| AV中文字幕三四五| 男人成人黄色视频在线观看免费下载| 欧美大香蕉97| 97超碰jingpin| 国产精品老熟女一区二区| 日本有码久久| 激情自拍 校园春色| 九九九九九九九精品视频| 九九成人视频| 欧美天天插| 久久久久国产亚洲一区欧美色图日韩 | 另类欧美| 热久久无毒不卡| 99最新日韩偷拍视频| 欧美激情精品久久久| 无卡一区=区| 久久久555| 永久免费观看的毛片的网站| 永久电影三级在线观看| 天天做天天爱夜夜爽毛片试看| 97精品一区二区视频| 一级岛国大片| 亚洲AV噜噜狠狠网址蜜桃动漫| 尤物黄色在线观看网站| 色乱二区| 夂久色| 91夜夜蜜桃臀1区2区3区| 亚洲综合射| aV中文麻| 欧美性爱18观看| 最近2019中文字幕国语免费版| 91操操| 天天摸夜夜操视频| 91精品人妻| 91老熟女老女人国产老太| 大香蕉手机在线视频| 久久麻豆一区二区| 欧美|91色综合| av优播| 91+欧美| JuliaAnnXXX888| 色欲天天综合久久久无码网中文| 性天堂| 亚洲一区二区中文字幕| 激情五月婷| 五月天春色激情网| 第四色色综合91| 性爱欧美五月| 97精品人妻一二三四| 欧美色爱综合| 97射欧美| 日本幼女18+| 欧亚性爱在线视频| 巨爆乳肉感一区二区三区竹菊影视| 97人人草| 蜜桃视频一区二区三区| 91综合网在线| 成人a大片在线观看| 电影69乱码96| 岛国在线免费视频| 亚洲无码国产探花在线观看| 伊人久久综合影院| 久久一二三四五六七八九区区区 | 97爱爱爱| aaaa黄片| 不卡人妻少妇精品毛片一区23区视频 | 自拍偷拍第26| 淫淫总合网| 日韩综合色图| 九九无码| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 日本性感人妻91| 久久9精品视频| 无码黑人精品一区二区三区三| 无码久| 亚洲天堂热| 国产91影院| 欧美成人一区二区| 精品国产乱码久久久久久口爆网站| 国产99999久久精品| av凤凰久久久| 婷婷色色五月天福利| 97精品国产手机| 日本狠狠干| 一区操逼| 91制服丝袜中文字幕| 最新亚洲风情电影| 人人射人人操人人摸| 999精品久久久久久久| 天美传媒av一区二区| 五月婷在线| 国产一进一出视频网站| 亚洲美女精品九九视频| 国产AV天美| 97色婷婷| 中日韩久久久| 好色综合| 亚洲成人在线乱码色午夜| 插老姨肥穴| 四虎影库国产精品免费| 亚洲中文字母在线播放| 中文字幕日韩专区精品系列| 久久超碰com| 91AV天美在线视频| 欧美婷婷久久| 久久久精品国产亚洲伊人| 欧美日韩一区二区三区四区蜜桃| 一中国女人毛片水真多| 亚洲深夜福利| 91久久久久| 久草线上视频免费看| 97er欧美性| 啊嗯嗯啊好大好爽| 亚州色图欧美| 97资源免费视频| 欧美91色| 日本高清视频在线观看黄已三辽| 亚洲激情深爱文学小说网站| 99色婷婷中文字幕乱色| 97视频620| 天天色踪合| 99999这里都精品| 综合性视频99| 日日躁夜夜躁狠狠躁超爽| 丰满人妻一区二区三区|