国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

WT2605C串口轉(zhuǎn)BLE數(shù)據(jù)透傳:從UART到APP的全鏈路調(diào)試指南

WT2605C串口轉(zhuǎn)BLE數(shù)據(jù)透傳:從UART到APP的全鏈路調(diào)試指南 做嵌入式這些年串口轉(zhuǎn)WiFi、串口轉(zhuǎn)藍(lán)牙這類需求沒少碰。最近手上一個(gè)案子用到WT2605C這顆帶BLE的音頻SoC做數(shù)據(jù)透傳從MCU的串口出來經(jīng)過BLE通道最后落到手機(jī)App上實(shí)時(shí)顯示。整個(gè)鏈路不算復(fù)雜但真正調(diào)起來涉及串口電平、BLE協(xié)議棧、GATT服務(wù)、App權(quán)限好幾個(gè)層面任何一個(gè)環(huán)節(jié)掉鏈子都讓人頭大。這篇文章就按我實(shí)際調(diào)試的順序把從串口到App的這條鏈路完整捋一遍。不管你是準(zhǔn)備用這顆料做傳感器數(shù)據(jù)采集還是想把老設(shè)備的串口“無線化”這中間的思路和踩過的坑應(yīng)該都能幫上忙。我會(huì)把硬件接線、串口配置、BLE參數(shù)、App端連接套路、數(shù)據(jù)分包處理這些關(guān)鍵環(huán)節(jié)逐個(gè)展開最后附一份排查問題速查表方便你直接抄作業(yè)。1. 鏈路全景WT2605C在串口轉(zhuǎn)BLE方案里的角色1.1 為什么用WT2605C而不是單買BLE透傳模塊先說說選型這件事。市面上做串口轉(zhuǎn)BLE的方案其實(shí)不少有純透傳模塊也有集成MCU的SoC。WT2605C比較特別的地方在于它本身是顆音頻藍(lán)牙SoC除了常規(guī)的BLE數(shù)傳還帶音頻通路等于一顆料同時(shí)覆蓋了音頻播放和數(shù)據(jù)透傳兩類場景。如果你的產(chǎn)品恰好既要播報(bào)語音、又要傳數(shù)據(jù)這顆料就很合適。如果只是純粹的數(shù)據(jù)透傳其它純BLE透傳模塊也能干但WT2605C在國產(chǎn)方案里資源豐富、SDK坑相對少價(jià)格也壓得比較低。從整個(gè)數(shù)據(jù)鏈路來看WT2605C的角色像一個(gè)“串口到BLE的橋”。它一邊通過UART和你的主控MCU通信一邊通過BLE和手機(jī)App通信。主控不需要懂藍(lán)牙協(xié)議只需要按照約定好的串口協(xié)議把數(shù)據(jù)丟給WT2605C剩下的事情芯片自己處理。反過來也一樣手機(jī)App通過BLE把數(shù)據(jù)寫進(jìn)來WT2605C再通過UART吐給主控。1.2 鏈路里每一跳的數(shù)據(jù)形態(tài)與責(zé)任分工完整鏈路拆開看是三個(gè)部分主控MCU到WT2605C這一段是UART串口通信WT2605C到手機(jī)App這一段是BLE GATT通信App內(nèi)部再把收到的數(shù)據(jù)解析、顯示或者上傳。每一跳的數(shù)據(jù)形態(tài)都不一樣。串口這邊是一幀一幀的字節(jié)流BLE這邊則是一個(gè)一個(gè)的ATT數(shù)據(jù)包中間還夾著MTU限制、重傳機(jī)制、分包處理這些事。很多人第一次調(diào)這種鏈路容易犯一個(gè)錯(cuò)誤把串口那邊的數(shù)據(jù)幀格式直接套用到BLE。實(shí)際上串口一幀可能是幾十上百字節(jié)而BLE默認(rèn)單包只有20字節(jié)可用中間必須做拆包和重組。這個(gè)會(huì)在后面專門講。先記住一條總原則串口側(cè)解決“幀”的問題BLE側(cè)解決“包”的問題App側(cè)解決“流”的問題三層各自處理各自的別混在一起。2. 硬件與初始化先把串口這半邊跑通2.1 最小系統(tǒng)接線與電平坑WT2605C的最小系統(tǒng)除了芯片本身電源、串口、天線這三樣是關(guān)鍵。電源部分這顆料主流是3.3V供電但有些模塊板載LDO也能接受5V輸入具體看你的板子設(shè)計(jì)。串口部分WT2605C的UART是TTL電平如果你的主控是3.3V的MCU直接對接沒問題如果主控是5V的就要注意電平匹配最好加電平轉(zhuǎn)換芯片或者確認(rèn)WT2605C的IO能容忍5V輸入否則長時(shí)間跑很容易燒IO口。接線無非就是TX、RX、GND三根線但這里有個(gè)經(jīng)典翻車點(diǎn)主控的TX要接WT2605C的RX主控的RX接WT2605C的TX也就是交叉連接。我當(dāng)初第一次焊板子就因?yàn)檫@個(gè)低級(jí)錯(cuò)誤調(diào)了整整一個(gè)下午最后用萬用表量電平才發(fā)現(xiàn)TX對TX接了。另外如果鏈路里牽涉到模塊的固件燒錄燒錄口和數(shù)傳串口經(jīng)常是復(fù)用關(guān)系這時(shí)候要看清模塊手冊別把燒錄線和數(shù)據(jù)線混用。2.2 串口參數(shù)怎么定波特率、流控、校驗(yàn)位串口通信雙方必須保證波特率、數(shù)據(jù)位、停止位、校驗(yàn)位完全一致。WT2605C的SDK里一般默認(rèn)是115200、8N1也就是波特率1152008個(gè)數(shù)據(jù)位無校驗(yàn)1個(gè)停止位。如果你要改成9600或者其它波特率需要同時(shí)改芯片端和主控端的配置并且改完芯片端要重新上電生效不是所有參數(shù)都支持熱切換。波特率選擇有一個(gè)容易忽略的點(diǎn)數(shù)傳場景里波特率越高單位時(shí)間能塞進(jìn)BLE通道的數(shù)據(jù)就越多但BLE的實(shí)際吞吐瓶頸不只在串口側(cè)。WT2605C這類芯片的BLE單連接實(shí)際有效吞吐一般也就在幾百字節(jié)每秒到1~2KB/s這個(gè)量級(jí)跟連接間隔、MTU有關(guān)所以如果業(yè)務(wù)數(shù)據(jù)量不大串口波特率設(shè)個(gè)9600到38400就完全夠用沒必要盲目拉高。數(shù)據(jù)量大的情況下真正要優(yōu)化的是BLE連接參數(shù)而不是串口波特率。流控方面除非你的數(shù)據(jù)量已經(jīng)逼近串口和BLE兩端的處理極限否則一般建議關(guān)閉硬件流控RTS/CTS少兩根線軟件上也省事。如果數(shù)據(jù)量大且出現(xiàn)丟包再考慮把流控打開同時(shí)確認(rèn)主控和WT2605C兩端都支持對應(yīng)的流控引腳。2.3 上電初始化順序?qū)LE廣播的影響WT2605C上電之后內(nèi)部固件需要一段時(shí)間做射頻校準(zhǔn)和協(xié)議棧初始化然后才會(huì)開始廣播。這個(gè)時(shí)間一般在一兩百毫秒到幾百毫秒之間。如果你在主控上電后立刻就往串口丟數(shù)據(jù)大概率會(huì)丟在最前面的一小段因?yàn)樾酒€沒準(zhǔn)備好。穩(wěn)妥的做法是主控等WT2605C的初始化完成信號(hào)或者干脆在主控代碼里做延時(shí)等待等芯片廣播指示燈亮起來之后再開始發(fā)送。如果板子上沒有指示燈也可以通過串口發(fā)一條AT指令或者查詢命令確認(rèn)芯片是否就緒。不同廠家的SDK指令集不一樣但一般都有類似的握手機(jī)制。這個(gè)等待機(jī)制看著小實(shí)際項(xiàng)目里如果沒處理很容易出現(xiàn)“上電后第一次數(shù)據(jù)永遠(yuǎn)發(fā)不出去”這種詭異問題排查一圈最后發(fā)現(xiàn)是初始化時(shí)序的鍋。3. BLE協(xié)議棧側(cè)廣播、連接與參數(shù)調(diào)優(yōu)3.1 廣播參數(shù)怎么配才容易被掃到WT2605C上電后會(huì)進(jìn)入廣播狀態(tài)相當(dāng)于不斷在喊“我在這快來連我”。廣播參數(shù)里最重要的兩個(gè)是廣播間隔和廣播數(shù)據(jù)內(nèi)容。廣播間隔單位是0.625ms可配置范圍一般在20ms到10.24s之間。間隔越短被掃描到的速度越快但功耗越高間隔越長越省電但手機(jī)端掃描體驗(yàn)會(huì)差一些。實(shí)際項(xiàng)目里如果設(shè)備是手持工具或者充電式設(shè)備廣播間隔建議設(shè)到100ms到200ms手機(jī)基本一兩秒內(nèi)就能掃到功耗也可以接受。如果是電池供電且長期處于待廣播狀態(tài)可以設(shè)到500ms甚至1s以上但要做好“用戶打開App要等幾秒才發(fā)現(xiàn)設(shè)備”的心理準(zhǔn)備。還有一個(gè)技巧廣播間隔可以加一點(diǎn)隨機(jī)延時(shí)比如設(shè)定100ms系統(tǒng)實(shí)際會(huì)在100ms到110ms之間隨機(jī)廣播這是BLE規(guī)范允許的可以減少多個(gè)設(shè)備同時(shí)廣播時(shí)的碰撞概率。廣播數(shù)據(jù)內(nèi)容方面至少要包含設(shè)備名稱和Service UUID。設(shè)備名稱就是手機(jī)端掃描列表里顯示的名字建議帶產(chǎn)品標(biāo)識(shí)前綴方便識(shí)別。Service UUID用來讓App做過濾App掃描時(shí)可以直接篩選只包含特定UUID的設(shè)備避免用戶在滿屏設(shè)備里找。注意廣播包大小有31字節(jié)限制設(shè)備名稱太長會(huì)占掉Service UUID的位置所以產(chǎn)品命名上盡量精簡短小。3.2 GATT服務(wù)結(jié)構(gòu)Server和Characteristic的關(guān)系BLE通信模式下數(shù)據(jù)通過GATT服務(wù)傳輸服務(wù)端是WT2605C客戶端是手機(jī)App。一個(gè)服務(wù)由多個(gè)Characteristic組成每個(gè)Characteristic有讀、寫、通知等不同的屬性。數(shù)傳應(yīng)用里標(biāo)準(zhǔn)做法是定義兩個(gè)核心Characteristic一個(gè)用來接收手機(jī)下發(fā)數(shù)據(jù)的寫通道一個(gè)用來向手機(jī)推送數(shù)據(jù)的通知通道。第一次接觸BLE的人容易把Characteristic類比成“寄存器”甚至“串口”其實(shí)它更像一個(gè)帶屬性標(biāo)注的信箱手機(jī)往“可寫”信箱里放數(shù)據(jù)設(shè)備通過“可通知”信箱主動(dòng)把數(shù)據(jù)推給手機(jī)。通知模式下數(shù)據(jù)的讀取完全靠手機(jī)訂閱訂閱成功之后每次芯片有數(shù)據(jù)就會(huì)主動(dòng)推送給手機(jī)。整個(gè)過程非常像MQTT的訂閱發(fā)布模型只是把Topic換成了UUID。WT2605C出廠固件一般自帶默認(rèn)的GATT配置但UUID和Characteristic結(jié)構(gòu)通常可以按需定制。如果你用的是SDK二次開發(fā)會(huì)通過配置表把Service UUID、Characteristic UUID、屬性類型定下來。這里建議UUID不要用0000xxxx之類的公共號(hào)段直接自己隨機(jī)生成128位的UUID避免和市面上其它BLE設(shè)備沖突。3.3 MTU協(xié)商、連接間隔與數(shù)據(jù)吞吐的取舍BLE默認(rèn)MTU是23字節(jié)扣除ATT協(xié)議頭3字節(jié)真正可用載荷是20字節(jié)。這意味著如果你一次性往串口丟200字節(jié)數(shù)據(jù)芯片藍(lán)牙層面至少要拆成10包才能發(fā)完。好在BLE支持MTU協(xié)商連接建立之后主從雙方可以協(xié)商一個(gè)更大的MTU比如185或247這樣單包可用載荷能提升到182甚至244字節(jié)吞吐量直接翻倍。MTU協(xié)商在APP端做還是設(shè)備端做取決于哪一側(cè)發(fā)起。通常是手機(jī)端GATT Client發(fā)起協(xié)商WT2605C作為服務(wù)端響應(yīng)。像Android的BluetoothGatt就提供了requestMtu方法iOS的CoreBluetooth默認(rèn)會(huì)嘗試協(xié)商大MTU開發(fā)者不需要額外操作。如果協(xié)商失敗或者沒有協(xié)商就按20字節(jié)一包走吞吐會(huì)低不少但功能上沒影響。連接間隔也是影響吞吐和功耗的關(guān)鍵參數(shù)。連接間隔范圍是7.5ms到4s間隔越小單位時(shí)間內(nèi)的通信窗口越多數(shù)據(jù)吞吐越大但功耗也越高。如果產(chǎn)品對實(shí)時(shí)性要求高比如控制類應(yīng)用間隔設(shè)在15ms到30ms比較合適如果是傳感器數(shù)據(jù)采集間隔30ms到50ms能兼顧吞吐和功耗。WT2605C實(shí)際支持的連接參數(shù)范圍以SDK為準(zhǔn)過小的間隔有些固件會(huì)拒絕。還有一個(gè)詞叫從機(jī)延遲Slave Latency它允許從機(jī)跳過若干個(gè)連接事件不監(jiān)聽省電效果非常明顯。但如果設(shè)得太大手機(jī)發(fā)數(shù)據(jù)給設(shè)備時(shí)設(shè)備沒有及時(shí)監(jiān)聽會(huì)有額外的延遲。所以在數(shù)傳應(yīng)用里建議從機(jī)延遲設(shè)成0換取低延遲和穩(wěn)定吞吐。4. 手機(jī)App從掃描到收數(shù)的完整套路4.1 掃描過濾用設(shè)備名還是MAC地址手機(jī)App這側(cè)第一步是掃描設(shè)備。Android和iOS的藍(lán)牙API雖然不同但掃描后的結(jié)果集長得差不多設(shè)備名、信號(hào)強(qiáng)度RSSI、廣播數(shù)據(jù)以及一個(gè)用來標(biāo)識(shí)設(shè)備的標(biāo)識(shí)符。這里有個(gè)非??拥牟町怉ndroid的BluetoothDevice.getAddress()返回的是MAC地址而iOS的CoreBluetooth里對應(yīng)的peripheral.identifier是一個(gè)UUID每次系統(tǒng)生成的UUID可能都不一樣重新掃描或者重啟藍(lán)牙之后甚至?xí)?。所以在做App過濾策略時(shí)千萬不要把iOS的identifier當(dāng)永久設(shè)備ID存下來。正確做法是以廣播包里的設(shè)備名或者自定義廣播數(shù)據(jù)里的設(shè)備唯一標(biāo)識(shí)為準(zhǔn)。比如你的產(chǎn)品在廣播數(shù)據(jù)里帶了一個(gè)序列號(hào)字段App掃描到這個(gè)序列號(hào)后在本地存一份下次再掃到同一個(gè)序列號(hào)就直接連接這樣iOS和Android都能保持一致體驗(yàn)。另外如果你用的是uni-app這類跨平臺(tái)框架iOS端“可以根據(jù)deviceId建立連接嗎”這個(gè)問題經(jīng)常有人問。答案是可以但要注意的是這個(gè)“deviceId”對應(yīng)的是CBPeripheral的UUID它只在本機(jī)當(dāng)前生命周期內(nèi)有效。如果你的應(yīng)用被殺掉重新搜索這個(gè)值可能已經(jīng)變了。所以uni-app里BLE連接的正確姿勢同樣是掃描過濾名字拿到deviceId后立即連接連接后不要緩存這個(gè)id做長期綁定。4.2 連接、發(fā)現(xiàn)服務(wù)、訂閱Notify的時(shí)序從掃描到收數(shù)的完整流程是掃描到目標(biāo)設(shè)備后發(fā)起連接連接成功后調(diào)用發(fā)現(xiàn)服務(wù)接口找到目標(biāo)Service后找到目標(biāo)Characteristic然后對通知通道執(zhí)行訂閱操作最后才能收到設(shè)備主動(dòng)推上來的數(shù)據(jù)。這個(gè)時(shí)序是固定的少一步都不行而且每一步都是異步回調(diào)你必須在回調(diào)里推進(jìn)下一步。很多人卡在“連上了但收不到數(shù)據(jù)”這個(gè)問題其實(shí)八成是沒訂閱Notify。連接成功只是建立了底層鏈路服務(wù)發(fā)現(xiàn)和Notify訂閱還都沒做設(shè)備自然不會(huì)往上推數(shù)據(jù)。訂閱Notify的時(shí)機(jī)也很關(guān)鍵要在發(fā)現(xiàn)服務(wù)完成后立即訂閱不要在收到第一批數(shù)據(jù)之后再訂閱否則前幾包就漏掉了。在Android原生開發(fā)中連接和訂閱的回調(diào)回調(diào)順序受系統(tǒng)藍(lán)牙棧影響偶發(fā)出現(xiàn)“先收到通知再收到訂閱成功回調(diào)”這種亂序情況。代碼里要做好冪等處理。iOS的CoreBluetooth相對嚴(yán)格但要注意在主隊(duì)列操作回調(diào)避免線程競爭導(dǎo)致連接狀態(tài)錯(cuò)亂。uni-app這類框架封裝了Android和iOS的差異API統(tǒng)一成startBluetoothDevicesDiscovery、createBLEConnection、notifyBLECharacteristicValueChange這組方法邏輯上順序是一樣的。4.3 App端粘包與分包處理BLE之所以存在粘包問題是因?yàn)橐淮蜰otify事件對應(yīng)的數(shù)據(jù)載荷雖然有上限但設(shè)備側(cè)可能把好幾幀串口數(shù)據(jù)塞在連續(xù)幾次Notify里發(fā)射出來。App端在短時(shí)間內(nèi)會(huì)連續(xù)收到多個(gè)notify回調(diào)每個(gè)回調(diào)里可能是一段不完整的幀也可能一次包含好幾幀。如果你直接把每個(gè)回調(diào)的數(shù)據(jù)拿去解析大概率會(huì)得到一堆亂碼或者錯(cuò)誤幀。正確的處理方式是在App端維護(hù)一個(gè)接收緩沖區(qū)收到數(shù)據(jù)先追加進(jìn)緩沖區(qū)然后循環(huán)從緩沖區(qū)里按照協(xié)議幀格式解析數(shù)據(jù)。解析出一幀就消費(fèi)一幀剩下的留在緩沖區(qū)等下一批數(shù)據(jù)。這個(gè)邏輯其實(shí)就是串口開發(fā)里經(jīng)典的“緩沖狀態(tài)機(jī)解析”模式換到BLE只是把“串口接收中斷”換成了“Notify回調(diào)”而已。有個(gè)細(xì)節(jié)值得注意BLE協(xié)議不保證一次notify的數(shù)據(jù)邊界和你的幀邊界對齊。舉個(gè)例子你定義了一幀64字節(jié)的數(shù)據(jù)設(shè)備可能分4次notify發(fā)完每次20字節(jié)也可能一次notify里塞了兩個(gè)半幀因?yàn)榍懊娴木彺胬飻€了太多數(shù)據(jù)。所以一切必須以幀頭和長度字段為準(zhǔn)不能以notify回調(diào)次數(shù)作為分幀依據(jù)。5. 串口到BLE的橋接數(shù)據(jù)幀設(shè)計(jì)與緩沖策略5.1 數(shù)據(jù)幀格式幀頭、長度、校驗(yàn)一個(gè)不能少主控MCU和WT2605C之間的串口協(xié)議是整個(gè)鏈路里最容易偷懶但最不應(yīng)該偷懶的地方。很多前期原型直接把裸數(shù)據(jù)往串口里丟結(jié)果一旦數(shù)據(jù)量上來或者信號(hào)受干擾幀錯(cuò)位、丟字節(jié)的問題立刻暴露。我的建議是無論項(xiàng)目多簡單都至少要定義一個(gè)帶幀頭、長度、校驗(yàn)的格式。一個(gè)典型的幀格式可以是幀頭0xAA 0x55、數(shù)據(jù)長度1字節(jié)、數(shù)據(jù)域N字節(jié)、CRC校驗(yàn)1到2字節(jié)。幀頭盡量用兩個(gè)字節(jié)降低隨機(jī)字節(jié)誤當(dāng)幀頭和的數(shù)據(jù)概率長度字段用來告訴接收方這一幀總共多少字節(jié)方便解析時(shí)定位幀尾CRC校驗(yàn)用CRC8或者CRC16至少保證能發(fā)現(xiàn)傳輸錯(cuò)誤而不是靜默丟數(shù)據(jù)。WT2605C本身不關(guān)心你串口傳過來的數(shù)據(jù)格式它只會(huì)把收到的字節(jié)原封不動(dòng)轉(zhuǎn)發(fā)到BLE側(cè)所以幀格式完全由你自己定。我在實(shí)際項(xiàng)目里見過有人嫌CRC計(jì)算麻煩用累加和代替也沒問題。關(guān)鍵是校驗(yàn)必須在不能省。BLE傳輸本身是有校驗(yàn)的但串口側(cè)主控到WT2605C的通信如果出錯(cuò)BLE那層根本發(fā)現(xiàn)不了所以串口側(cè)必須自己校驗(yàn)。5.2 串口接收用DMA還是中斷主控MCU從串口接收數(shù)據(jù)有幾種方式阻塞查詢、中斷逐字節(jié)接收、DMA加空閑中斷。這幾種方式的可靠性和CPU占用差別很大數(shù)傳場景下強(qiáng)烈建議用DMA。中斷逐字節(jié)接收也不是不能用但如果你的MCU主頻不高串口波特率又比較高中斷頻率會(huì)很嚇人。比如115200波特率下大約每87微秒一個(gè)字節(jié)每個(gè)字節(jié)觸發(fā)一次中斷大量CPU時(shí)間就耗在進(jìn)中斷出中斷上了。DMA加空閑中斷的思路是DMA自動(dòng)把串口數(shù)據(jù)搬到內(nèi)存緩沖區(qū)當(dāng)串口線空閑了觸發(fā)一次空閑中斷主控在空閑中斷里判斷這一批收到了多少數(shù)據(jù)然后處理。這樣一條串口數(shù)據(jù)幀只觸發(fā)一次中斷CPU壓力小非常多。以STM32為例配置串口DMA接收時(shí)需要特別注意DMA緩沖區(qū)的長度設(shè)置。緩沖區(qū)長度至少要比最大幀長要大否則DMA滿了會(huì)覆蓋或者產(chǎn)生溢出錯(cuò)誤。常見做法是DMA緩沖區(qū)設(shè)成1024字節(jié)每次觸發(fā)空閑中斷后把DMA的接收計(jì)數(shù)讀出來計(jì)算出本次接收到的數(shù)據(jù)長度然后拷貝走處理再重新啟動(dòng)DMA接收。這個(gè)循環(huán)邏輯不難但實(shí)現(xiàn)時(shí)要注意時(shí)序競爭最好在處理數(shù)據(jù)期間暫時(shí)關(guān)閉DMA接收防止新數(shù)據(jù)覆蓋緩沖區(qū)。5.3 背靠背緩沖與流控機(jī)制串口和BLE之間的數(shù)據(jù)速率是失配的串口一下子來一長串?dāng)?shù)據(jù)BLE這邊受MTU限制只能慢慢發(fā)背后必然需要一個(gè)緩沖隊(duì)列。WT2605C內(nèi)部有一定大小的緩沖區(qū)數(shù)據(jù)超過了緩沖區(qū)就只能丟棄。所以大流量場景下主控發(fā)送數(shù)據(jù)時(shí)不能無腦往串口丟要考慮WT2605C的緩沖能力和BLE鏈路的實(shí)際吞吐。一個(gè)簡單有效的辦法是主控側(cè)維護(hù)一個(gè)發(fā)送隊(duì)列通過查詢WT2605C的狀態(tài)比方說通過一條AT指令查剩余緩沖區(qū)空間控制發(fā)送節(jié)奏。如果芯片支持硬件流控RTS/CTS也可以借助CTS信號(hào)做反壓。沒有流控的情況下就需要主控估算數(shù)據(jù)發(fā)送速率保證平均速率不超過BLE的實(shí)際吞吐否則遲早緩沖區(qū)溢出丟數(shù)。丟數(shù)據(jù)這件事水往低處流串口快、BLE慢堆積不可避免??孔V的做法是應(yīng)用層加上確認(rèn)重傳機(jī)制主控發(fā)出去的一幀數(shù)據(jù)App收到后回一條確認(rèn)主控如果在超時(shí)時(shí)間內(nèi)沒收到確認(rèn)就重發(fā)。這個(gè)邏輯對實(shí)時(shí)性要求高的控制類產(chǎn)品特別重要純單向數(shù)據(jù)采集的產(chǎn)品可以適當(dāng)放寬允許少量丟幀。6. 調(diào)試驗(yàn)證三板斧串口助手、BLE調(diào)試器、抓包工具6.1 先用串口助手把UART側(cè)調(diào)明白整個(gè)鏈路調(diào)試我習(xí)慣的順序是從兩端往中間擠先把串口側(cè)調(diào)通再把BLE側(cè)調(diào)通最后聯(lián)調(diào)。串口側(cè)的調(diào)試工具很多Windows下XCOM、SSCOM、友善串口助手、sscom基本功能都差不多關(guān)鍵是支持十六進(jìn)制收發(fā)和定時(shí)發(fā)送方便做自定義協(xié)議測試。調(diào)試串口側(cè)的第一步是驗(yàn)證PC能不能通過USB轉(zhuǎn)TTL模塊直接和WT2605C通信。把USB轉(zhuǎn)TTL的TX接芯片RX、RX接芯片TX、GND接GND打開串口助手選對COM口和波特率發(fā)一條AT指令或者自定義測試數(shù)據(jù)看能不能收到回復(fù)。這里有一個(gè)高頻坑USB轉(zhuǎn)TTL模塊用的CH340芯片有時(shí)候驅(qū)動(dòng)沒裝好設(shè)備管理器里根本不顯示COM口或者顯示一個(gè)帶感嘆號(hào)的設(shè)備。這種問題優(yōu)先重裝CH340驅(qū)動(dòng)別急著換硬件。串口側(cè)調(diào)試還有一個(gè)容易忽略的點(diǎn)如果你通過USB轉(zhuǎn)TTL同時(shí)給WT2605C供電極少數(shù)劣質(zhì)USB轉(zhuǎn)TTL模塊的供電能力不足芯片上電后工作不穩(wěn)定現(xiàn)象是時(shí)好時(shí)壞。遇到莫名其妙的串口通信異常先換一根高規(guī)格的供電線或者改用獨(dú)立電源給模塊供電排除供電問題再往下查。6.2 BLE側(cè)用手機(jī)調(diào)試工具驗(yàn)證GATT串口側(cè)通了之后下一步驗(yàn)證WT2605C的BLE廣播和質(zhì)量。手機(jī)裝一個(gè)通用BLE調(diào)試工具我習(xí)慣用nRF ConnectAndroid和iOS都有功能完整且免費(fèi)。打開它掃描周圍設(shè)備正常情況下幾秒內(nèi)就能看到你的設(shè)備出現(xiàn)在列表里點(diǎn)開連接進(jìn)去能看到完整的GATT服務(wù)列表包括Service和Characteristic的UUID、屬性和當(dāng)前值。在nRF Connect里可以直接對Characteristic做讀寫操作也可以訂閱通知。這個(gè)階段能驗(yàn)證三件事設(shè)備廣播是否正常、GATT服務(wù)結(jié)構(gòu)是否符合預(yù)期、以及數(shù)據(jù)能不能從設(shè)備推送到手機(jī)。驗(yàn)證通知推送時(shí)你可以在串口側(cè)用串口助手往WT2605C發(fā)數(shù)據(jù)同時(shí)觀察nRF Connect的通知窗口如果發(fā)了數(shù)據(jù)立刻在手機(jī)上看到對應(yīng)的十六進(jìn)制內(nèi)容證明“串口進(jìn)、BLE出”這條路已經(jīng)通了。反向驗(yàn)證也在這做在nRF Connect里往可寫Characteristic寫入數(shù)據(jù)然后看串口助手能不能收到對應(yīng)字節(jié)。這兩條通路都通了鏈路的核心就算打通了后面寫的App代碼只是在自動(dòng)化這個(gè)過程。6.3 用抓包工具看鏈路時(shí)序手機(jī)調(diào)試工具能解決大部分功能問題但遇到疑難雜癥——連接建立緩慢、數(shù)據(jù)延遲異常、MTU協(xié)商失敗、偶發(fā)掉線——僅憑手機(jī)端信息很難定位這時(shí)候就得請出藍(lán)牙抓包工具。思路其實(shí)和TCP/IP調(diào)試一樣抓包能讓你看到空中鏈路上真實(shí)發(fā)生的每一次交互。硬件抓包可以用支持藍(lán)牙Sniffer的開發(fā)板來做比如配合專用的藍(lán)牙協(xié)議分析軟件就能解析空中的BLE數(shù)據(jù)包看到廣播包、連接請求、連接參數(shù)更新、MTU協(xié)商、ATT讀寫的完整時(shí)序。抓包能看到手機(jī)端看不到的細(xì)節(jié)設(shè)備到底有沒有在廣播、廣播內(nèi)容是什么、連接請求有沒有被設(shè)備拒絕、連接建立后參數(shù)更新成了多少、每一包數(shù)據(jù)在空中的實(shí)際間隔是多少。使用抓包工具的過程中有一點(diǎn)要習(xí)慣空中抓到的包是按照時(shí)序排列的原始事件流和邏輯層面的事件不完全一一對應(yīng)需要把一段時(shí)間內(nèi)同一對設(shè)備之間的包串起來才能還原交互過程。第一次接觸可能覺得信息量大但多抓幾次就會(huì)發(fā)現(xiàn)大部分連接問題和數(shù)據(jù)問題都藏在這些包之間的時(shí)間縫隙上。7. 常見問題與排查技巧實(shí)錄7.1 連不上、掉線、亂碼三類高頻故障速查表把項(xiàng)目里和同行交流中遇到的典型問題整理成一張速查表按現(xiàn)象、可能原因、排查順序三列來組織方便直接對著查現(xiàn)象可能原因排查順序手機(jī)掃不到設(shè)備設(shè)備未進(jìn)入廣播狀態(tài)確認(rèn)芯片上電是否完成、廣播指示燈是否亮、SDK配置里廣播是否開啟掃不到但設(shè)備在廣播廣播間隔過大或信道被干擾縮短廣播間隔到200ms以內(nèi)換個(gè)環(huán)境測試用抓包工具確認(rèn)空中有廣播包能掃到但連不上連接請求被拒絕或參數(shù)不匹配抓包看連接請求響應(yīng)確認(rèn)連接參數(shù)是否在設(shè)備支持范圍內(nèi)連接后立即掉線距離太遠(yuǎn)或信號(hào)差先靠近測試排除信號(hào)問題后檢查供電穩(wěn)定性連上但收不到數(shù)據(jù)未訂閱Notify檢查App是否調(diào)用了通知訂閱接口在調(diào)試工具里驗(yàn)證訂閱是否成功數(shù)據(jù)亂碼波特率不匹配核對主控和WT2605C兩端串口參數(shù)是否完全一致數(shù)據(jù)偶發(fā)丟失BLE吞吐不足計(jì)算實(shí)際數(shù)據(jù)量與BLE有效吞吐的關(guān)系必要時(shí)加大MTU、縮短連接間隔數(shù)據(jù)幀錯(cuò)亂幀格式未定義或未處理分包檢查幀頭長度校驗(yàn)設(shè)計(jì)App端補(bǔ)充緩沖拼包邏輯這張表解決的場景基本覆蓋了從硬件到軟件的大多數(shù)問題。有一個(gè)規(guī)律可以提前說明功能性問題大多出在串口配置、訂閱邏輯這些簡單環(huán)節(jié)性能問題和穩(wěn)定性問題才需要往協(xié)議棧和參數(shù)層面深挖。7.2 排查順序從終端倒推還是從源頭正推遇到復(fù)雜問題建議先確定排查方向不要東敲一下西打一下。我的習(xí)慣是優(yōu)先倒推從現(xiàn)象端一步步往回查手機(jī)App收不到數(shù)據(jù)先看手機(jī)調(diào)試工具能不能收到如果不能看設(shè)備側(cè)是否真的發(fā)出了數(shù)據(jù)再看串口側(cè)有沒有把數(shù)據(jù)送進(jìn)WT2605C。每一層用一個(gè)可觀測的工具去驗(yàn)證很快就能把問題定位到具體某一跳上。反過來如果倒推不好定位就從源頭正推。串口側(cè)發(fā)一包測試數(shù)據(jù)用BLE調(diào)試工具看在BLE側(cè)能不能看到對應(yīng)內(nèi)容如果BLE側(cè)看不到說明問題出在串口到芯片內(nèi)部轉(zhuǎn)發(fā)這一段可能是串口參數(shù)錯(cuò)、數(shù)據(jù)格式錯(cuò)也可能是芯片固件本身對數(shù)據(jù)做了限制。正推的好處是每一步都有明確的預(yù)期結(jié)果預(yù)期不符就是問題所在。排查過程還有一個(gè)容易忽略的環(huán)節(jié)明確“當(dāng)前改動(dòng)過什么”。BLE鏈路受環(huán)境干擾影響大同一套代碼今天正常明天異常的例子很常見。遇到這種時(shí)好時(shí)壞的故障先想想最近是不是改了App端的連接邏輯、更新過SDK版本、換過測試場地。大部分偶發(fā)問題背后都有一個(gè)之前認(rèn)為無關(guān)緊要的改動(dòng)在搗亂。7.3 幾個(gè)容易被忽略的細(xì)節(jié)坑最后分享幾個(gè)我實(shí)際踩過、并且在多個(gè)項(xiàng)目里反復(fù)出現(xiàn)的細(xì)節(jié)坑。第一個(gè)是WT2605C這類帶音頻功能的芯片你的固件配置可能同時(shí)啟用了音頻通道和數(shù)據(jù)通道音頻播放和數(shù)據(jù)傳輸會(huì)搶占內(nèi)部資源數(shù)據(jù)傳輸時(shí)延產(chǎn)生抖動(dòng)是正常的。如果你的業(yè)務(wù)對數(shù)據(jù)實(shí)時(shí)性要求敏感測試時(shí)不要開著音頻播放測數(shù)傳。第二個(gè)是Android的藍(lán)牙權(quán)限在不同版本上分裂得很厲害Android 12之后掃描附近設(shè)備需要BLUETOOTH_SCAN權(quán)限連接需要BLUETOOTH_CONNECT權(quán)限而且這些都是運(yùn)行時(shí)權(quán)限需要在App里動(dòng)態(tài)申請。很多人把代碼從舊項(xiàng)目搬過來后在Android 13以上的手機(jī)上看不到設(shè)備八成就是權(quán)限沒適配新版本。第三個(gè)和iOS有關(guān)如果你的App在iOS上第一次掃描就能連上設(shè)備第二次進(jìn)App卻連不上大概率是系統(tǒng)藍(lán)牙緩存了舊的設(shè)備信息。解決方法是把設(shè)備的Service UUID和Characteristic UUID都做成固定值并且App在連接失敗時(shí)主動(dòng)調(diào)用系統(tǒng)的取消連接接口必要時(shí)可以在設(shè)置里忽略該藍(lán)牙設(shè)備后重啟App重試。寫在最后整個(gè)WT2605C串口轉(zhuǎn)BLE的鏈路調(diào)試下來我最深的體會(huì)是這類方案的項(xiàng)目難點(diǎn)往往不在單一環(huán)節(jié)而在于多段鏈路之間的銜接。串口側(cè)調(diào)通了不代表鏈路通了BLE廣播正常也不代表App能收數(shù)每一跳都有各自的協(xié)議和語義而產(chǎn)品最終要的結(jié)果是端到端的穩(wěn)定。調(diào)試時(shí)把鏈路拆開逐段驗(yàn)證出問題時(shí)從現(xiàn)象端倒推把每一個(gè)環(huán)節(jié)的預(yù)期結(jié)果確認(rèn)清楚再復(fù)雜的問題也能逐步收窄到可控范圍。如果做的產(chǎn)品對數(shù)據(jù)延遲和丟包敏感建議從項(xiàng)目一開始就把幀格式、緩沖策略、重傳機(jī)制設(shè)計(jì)好不要在原型階段裸數(shù)據(jù)裸跑后面再補(bǔ)框架不僅工作量大可靠性也很難驗(yàn)證清楚。先把串口和BLE兩側(cè)的固定套路跑熟再根據(jù)業(yè)務(wù)特性做裁剪這條路走下來遇到同類項(xiàng)目基本就能舉一反三了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲天天艹| 欧美经典一区二区三区| 日韩激情电影中文字幕| 韩国午夜理伦三级好看| 诱惑人妻欧美一区在线播放| 亚州综合在线| 婷婷中文网| 亚洲欧洲偷拍一区| 草草草视频| 青娱乐国产精品| 国产嫩草精品A88AV在线| 另类小说欧美激情校园春色| 粉嫩AV一区二区夜夜| 日韩操逼HD| 丁香五月天堂| 91精品人妻一品二品三品| 久久首页| 久久熟女久| 黄色免费一级在线毛片| 久久久久亚洲av综合波多野制衣| 小日子操bb在线看| 欧美日韩青操| 色欲三区| 日日黄色三级网站| 国产免费一区二区在线A片视频| 色九九九九| 一区二区三区免费视频入口| 四虎视频在线观看| 午夜福利无毒不卡| 欧美亚洲美少妇一区二区| 青娱乐福利99| 婷婷色香| 中文字幕日韩人妻视频| 老司机久久| 51国产午夜精品视频| 深夜激情无码| 公司1区2区3区精产精| 91三级理论片播放器| 天天操人人操骚逼网站| 无码逼| 九九热视频这里只有精品| 乱伦日本中文自拍| 久久久免费懂色| 久草国产在线视频| 久操免费电影| 欧美日韩222| 伊人专区一区二区三区| 熟女网站最新| 唐山老熟妇露脸啪啪叫| 精品少妇99| 国产成人亚洲精品无| 欧美日韩亚洲高清不卡一区二区三区| 蜜臀AV午夜精品久| 99精品九九九九九九| 歐美性天天| 天天操天天干一区二区 | 91亚洲人| 人妻AV在线| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 亚洲 日韩 丝袜 熟女 变态| 日本久久女同性恋视频| 五月丁香激情综合| 99色婷婷中文字幕乱色| 激情接吻视频久久久久久| 中文字幕一区二区三区四五区| 久热大香蕉| 69一区二区| 97亚洲性爱| 久久日韩精品一区二区| 色69大色97香蕉| 中文激情网| 日本人妻丰满熟妇久久久久久| 黄页18禁| 色综合天天| 久久久久久久九九九九九九| 性欧美| 刺激性视频黄页| 二男一女成人A片| 亚洲天堂男| 国产美女激情| 91狠狠综合久久久久久| 国产99热| 久久精品国产免费观看99| 天天综合91| 51一区二区三区| 日韩伦理视频| 在线观看一卡二卡| 亚洲成人在线播放| 亚洲av淫乱| 亚洲熟女av中文字幕| 日韩色女精品| 欧美亚洲丝袜美女电影| 日本在线一二| 99ri精品| 白丝一区| 国产成年女黄特黄| 91丰满| 九99久久| 91麻豆天美| 中文字幕一区二区视频在线观看| 国产男女无套视频免费观看| 玖玖人人爱| 日本蜜桃| 春色综合免费| 中文字幕视频免费| 九色视频91| av在线观看不卡网站| 欧美在线电影| 超碰97最新人妻| 看黑丝美女操逼青青网站| 日本一区二区三区欧美日韩中文字幕| 操曰本熟女| 欧美日韩中文字幕不卡| ?亚洲伊人伊成久久人综合网| 精品少妇高潮久久| 操人妻丝袜高跟| 精品一区二区三区蜜桃臀赵总| 国产精品一区午夜福利| 淫荡少妇免费| A 天堂| 美女久久久| 97色欧洲| 992大香蕉| 天天综合网~91| 亚洲影视第一页| 怡红院亚洲怡春院av| h色99999| 熟女高潮合集-永久久久-成人AV | 美女AV一区二区| 射丝袜高跟鞋99| 九色 人妻 大香蕉| 人人摸人人干人人拍97| 欧美一级特黄淫片在线观看| 午夜精品探花| 射丝袜高跟鞋99| 不卡九肏| 涩涩久久精品| 亚洲精品国产拍免费91在线| 男人的天堂VA| 人人爱人人乐人人操| 97在线观看| 大学生美女口爆| 好色综合| 波多野42部无码喷潮在线观看 | 人妻熟女av国产网站| 狠狠穞A片一區二區三區| 婷婷色播婷婷| 青青草原人妻| 天美精品一区二区三区四区在线观看| 国产女人高潮嗷嗷嗷叫小说| 丰满人妻被猛烈进入中| 美女91色黄18| 天天爱天天操| 精品久久无码午夜福利| 夜夜欢天天干| 亚洲熟女综合| 久久大精品乱码视频人妻熟女| 91狼人| 欧美色图91p| 亚洲欧洲第二视频在线观看色图| 九九久久99| 熟妇人妻丰满久久久久久久无码| 98久久超碰| 97伪v| 日本一区二区成人在线| 青青操在线视频| 欧美色图99| 91蜜桃婷婷狠狠久久综合9色| 99re95| 久久精品熟女亚洲AV麻豆软件| 欧美成va视频网站| 人人妻人人色一区二区三区| 日本3级一区二区免费| 综合亚洲网| 一本大道久| 97超视频在线观看| 精品国产99| 天天天肏屄肏屄肏屄欧美欧美| 大香蕉狠狠爱| 91黄站| 免费a级毛片av无码久久精品中文字幕| 操逼天美3区| 99热这里只有精品8| 四季AV一区二区凹凸精品小说| 激情另类激情| 欧美不卡二区| 人妻三级在线中文字幕| 玖玖久久久| 亚洲精品一二三四区| 免费福利视频中文字幕| 国产亚洲女v在线观看| 99国产精品自在自在| 人妻精品一区二区| 91在线无码精品秘 软件| 69人妻人人揉人人躁人人精品| 超碰免费欧美7| 国产亚洲精品精AV.| 中文字幕五区| 校园春色美腿丝袜| 99自拍视频在线| 91久久久视| 国产传媒一区二区三区| 欧美日韩第一页| 欧美 亚洲 综合 制服| 欲香欲色天天天综合和网| 97精品久久| 亚洲国产97| 啊啊啊 在线| 污电影在线观看| 日韩精品黄片免费观看| 无码高清国产AV| 久久伊人大香蕉| 啊啊在线| 超碰av在线| 欧美97se| 亚洲国产一级黄色视频| 中文伊人大香蕉视频| 欧美亚洲首页| 久久人妻视频网| 欧美人妻另类在线| 欧美一区二区亚洲天堂| 91日产桃蜜| 120分钟婬片免费看| 夜夜一区二区| 久久一二三四不卡 | 亚洲欧美在线丝袜| 强奸a片网| 天天躁狠狠躁av| 久久久免费的精品| 一本一道久久综合久久| 日本免费中文字幕在线| 国产视频小说| 色优久久| 74成人在线| 极品后入免费视频| 九九干| 大白逼三四级| 欧美另类色图片| 日韩15p| 开心六月色| 亚洲欧美日韩中文播放| 亚洲黄片免费在线播放| 手机不卡视频不卡在线一二三区| 天堂中文日本在线观看| 日本成人A片免费看| 久久99精品国产| 婷婷视频在线免费观看| 亚洲自拍小说| 欧州色图区| 日本熟女不卡视频| 亚洲丰满很很操| 久久6热视频免费观看| 综合网亚洲1| 婷婷大香蕉| 俺去啦俺来也久久综合| 中文字幕精品亚洲熟女| 麻豆 欧美 日韩| 麻豆国产97在线| 中文字幕人乱码中文字的预防方法| 人人看人人插| 日韩影片中文字幕一区二区三区| 国产操伦| 欧美熟妇成人一区二区| 久久婷婷热| 国产毛片片精品天天看视频| 激情人妻另类| 区日韩亚洲乱码av电影| 亚洲图片欧洲图片aⅴ| 亚洲情色 自拍| 五月激情小说| 婷婷精品视频| 黄人人操人人操| 超碰久草| 国产婷婷一区| 一个人免费HD91视频| 亚洲天堂男人天堂| 亚洲97网站| 九九色综合| 欧美在线第五页| 99在线免费观看| 欧美人妻一区二区| 综合天天网| 丁香五月AV| 色原狠狠天天天| 在线97在线| 再深点灬舒服灬太大了好硬好爽| 天天做天天爱夜夜爽毛片试看| 激情综合网激情五月天| 97超碰站| 亚洲熟女av中文字幕| 91丨熟女丨丰满熟女| 欧美日韩操逼嗦吊| 蜜乳av首页| 欧美强奸一区二区诱惑| 中日韩一区二区三区欧美| 日本操逼无码| 亚洲AV无码AV吞精久久久久| 一区二区娱乐网站| 狼天天狼天天大香蕉| 国产精品 亚洲情色| 日本黄色裸日本黄色裸体| 日本一区二区三区欧美日韩中文字幕| 色情亚洲日本成人| 97超碰免费人人性爱| 久久9精品网站| 久久精品国产亚洲5555| 国产精品久久久久中文字幕| 91蜜臀熟女| 亚洲免费97免费| 欧美色亚洲色| 欧美一级特黄淫片在线观看| 大色综合网| 四季AV综合网址| 人妻熟女一区二区三区视频| 欧洲Au麻豆| 欧洲乱码视频| 欧美性色欧美| 国产av美女被艹的乱叫| 91女优在线观看| 国产强奸乱伦xd| 国产日本熟女顶级一区二区三区视频 | 天天日天天舔东京热| #NAME?| 日日AAvv| 色综合久| 亚洲,欧美,综合网| 欧洲熟妇xxXx欧美老妇裸体| 欧美色图97| 中文日本免费高清| 亚洲 欧美 另类 综合 偷拍| 神马久久久久久久| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 国产免费久久精品99re韩国| 飘花国产午夜精品不卡| 91新在线欧美| 中文人妻av高清一区| 欧美色图私拍91| 中文字幕精品免费一区二区| 欧美午夜色妇色鬼| 99re国产精品视频| 综合激情97| 视频一区二区免费在线| 中文久久一区| 欧美三级中文字幕hd| 日本性爱视频一级| 996热| 超碰97综合| 精品射1999| 国产毛片久久久久久久| 亚洲第一页色网| 欧美黑人猛交春色影视大全| 午夜乱轮操逼视频免费看| 91亚洲欧美色图| 日韩精品人妻| 人人搡人人肉久久精品| 狠狠色综合网| 99re99| 亚洲综合在线视频| 性爱网站一区二区| 国产精品一区二区三| 老熟妇一区二区三区啪啪| 大香网站| 乱伦a片视频| 精品美女少妇一区二区| 东京热av男人的天堂| 大香蕉九九| 久久久久久久九九九九九九| 蜜臀99久久| 大香蕉日韩欧美| 动漫片子网站3黄| 日韩午夜啪啪视频| 激情五月丁香五月| 国产成人www免费人成看片| 久久九色| 亚洲国产成人精品999| 热热色综合网| 无套后入双马尾| 欧美色图 人妻| 亚洲欧美日韩电影网站一区 | 国产一级内射高清视频| 欧美黑人91| 欧美亚洲国产日本在线,久久精品国产| 日韩欧美国产高清视频| 天天干人人干天天日97| 亚洲成人无码影院| 日本精品免费一区二区三区四区| 激情综合五月| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 日韩97超碰中文字幕| 99热日本| 麻豆天美电影一区二区| 亚洲成人碰碰| 97久久超碰| 日本欧美国内在线| 翔田千里av一区二区三区| 操人人| 可能人人看人人摸| 久久久久久久91| 超碰日本97美女人妻人人玩人人爱| 97人妻色| 啊嗯嗯啊好大好爽| 蜜臀久久99精品久久久久久-DVD原版全| 99re视频在线播放青草| 免费试看60秒| 在线无码视频| 婷婷久草一区二区三区| 超碰 国产熟女精品一区| 精精品人妻一区二区三区| 狠狠爱大香蕉| 黄色成人网久久久久久| 美女被艹尤物视频| 亚洲色欲一区二区三区| 亚洲不卡一| 老熟女乱伦片| 91国产精品在线看| 久久久久9999精品九九九| 久久男人网| 丝袜视频网国产90| 国产精品自在自拍视频| 一区二区三区 日韩欧美| 岛国精品视频在线观看| 国产精品对白内射| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 99久久无色码| 91制服丝袜中文字幕| 四虎视频在线观看| 亚洲天在线| 精品国产一区二区三区四区在线看 | 日本日皮视频逼| 91亚洲丝袜| 奇米狠999| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 国际精品久久久| 丝袜美腿制服人妻二区中文字幕| 国产五码丝袜屁眼| 国产成人bd在线观看| 在线观看啊啊啊啊啊| 91人妻尻屄视频| 天天天做天天天爱天天天爽| 无码免费在线观看黄色片| 青娱乐蜜桃臀AV色婷| 精品福利| 熟妇精品juliaannAV| 97超视频在线观看| 爽 好舒服 无码刺激久久| 99久在线精品99re8a| 午夜理论片在线观看免费| 久久久久ab| 亚洲最新a在线观看| 另类图片五月天| 色妹子A V| 1769一区二区| 国产精品久久天天干| 日日干夜夜欢| 亚洲男人的天堂V| 性爱1区| 国产怡红院| 婷婷丁香六月天| 欧美五区| 每日更新AV| 亚洲清纯唯美| 久热91| 成人怡红院| 久久国语| 久操精品网| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 26uuu性| 死我十八禁| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 99在线视频播放| 中文字幕久热视频在线| 中文字幕精品三级久久久| 久久性爱免费送| 丰满人妻区一区二区三| 97精品97| 激情综合 婷婷五月 红杏| 操逼啊啊啊91| 午夜操一操| 亚州国产成人精品女人久久| 高清国产av无码| 激情婷婷综合久久| 97这里有精品| 猛猛干| 日日日日做夜夜夜夜做无码97| 色性综合| 久久亚洲婷婷| 中文久久爆乳| 欧美αv.com| 亚洲av无码成电影在线播放| 91老女人| 国内外内射高清视频| 久久久久久久久久久久97| 精品一区二区麻豆| 五月天伊人| 黑丝91视频| 98人妻精品一区二区色欲| 天天操熟妇| 伊人991| 日本精品国产视频| 色情亚洲日本成人| 操死我了嗯嗯嗯| 欧美性爱伊人| 色色色色综合网| 色情五月综合婷婷| 91爆操视频| 欧美一区二区日韩三区| 91亚洲色人| 一级性爱视频免费在线| 1769国内精品视频| 97人妻免费中文字幕| 91强热人妻| 午夜精品久久久久久久99蜜桃一| 久操大香蕉| 蜜桃精品一区二区三区ww| 欧美成人亚洲精品| 日本一久是| 丝袜美腿91| 国产精品久久久久9999小说| 超碰在线91| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 蜜臀在线看片| 婷婷人妻激情| 91一区二区三区蜜桃| 人人么人人操| 日本精品无码三级网站| 中文字幕亚韩| julia在线观看久久| 伊人久久大香蕉线AV五月天| 久区视频| 可乐操在线| 牛牛操视频逼| 抽查国产福利主播| 亚洲国产精品成人无码久久久| 影音先锋乱| 国产精品白丝www| 色婷婷电影| 五月婷婷激情| 欧美极品女人的天堂| 人人操AV| 日韩精品高清资源在线| 中文字幕性感少妇av| 国产一级作爱毛片| 人妻久久久久久| 啪啪免费| 18禁无码永久免费无限制| 人人操人人肉久久精品| 久草综合视频| 欧美日韩人人精品| 国产亚洲性生活视频播放| 伊人色综合超碰| 伊人网在线观看| 操逼999| 一区二区三区男人的天堂| 久久精品国产97欧美精品亚洲 | 日韩国产精品人妻无码久久久| 日韩av不卡在线看| 97日本超碰综合| 欧洲精品欧洲精品| 蜜乳成人AV| 天天综合精品| 天操天操夜操夜月操月年年操操| 国产精品ww久久| 麻豆这里只有精品| 东北黄色电影| 欧美日韩亚洲天堂| 国产在线视视频有精品| 久久久久久91香蕉国产| 神马午夜久久| 激情四射五月天| 日本男人插女人的逼黄色| 日韩国产九九精品一区二区三区毛片| 五月天婷婷在线看| 久久久久13| 精品少妇高潮久久| 国产剧情AV不卡在线观看| 亚州乱码中文字幕综合久久久| 91精品人妻一品二品三品| 污污汅18禁网站在线永久免费观看| 99精品视频在线观看| 9 1超碰九色| 密乳无码| 天天综合网1| av一区二区三区不卡| 色色99| 精品人妻久久久久一区二区三区| 日本国产欧美高清在线| 亚洲天堂日本| 太久视频| 欧美国产操逼| 日本色色色网站免费看不卡| 嗯啊啊啊轻点视频| 鸥美中出| 91精品国产麻豆国产自产在| 神马九九九| 午夜.DJ高清在线观看免费7 | 蜜臀久久99精品久久久久久婷婷 | 龙兴卡官方查询| 亚洲啪啪视频一区二区| 殴美牲| 91亚洲黄色网| 成年人一级黄色毛片大全在线观看| 中文字幕在线高清男人的天堂 | 97伦乱| 亚洲精品久久久久毛片A片拉屎| 91麻豆天美国产欧美| 一区二区三区四区在线不卡| 国产精品无码论坛| 天天躁日日躁AAA片李宗瑞| 激情婷婷丁香| 成人免费福利网站国产| 免费成人在线熟妇网| 久久久久女教师免费一区 | 亚洲区限制级 99| 在线性黄高清免费视频| 久久久91| 不卡超碰护士AV在线免费播放| 亚洲欧洲激情| 強姦亂倫a| 60秒免费小视频| 天天天天天天天天天天干美女 | 偷拍五区| 成人午夜小视频手机在线看| 大香蕉综合在线| 欧美色院| 99999精品成人| 人人看欧美性爱| 无码操逼天堂| 美女尤物福利视频| 小日子操bb在线看| 校园春色综合色| 亚洲无码国产探花在线观看| http://qxhbdz.com| 中出91视频| 久久一二三四五六七八九区区区| 免费在线视频97| 婷婷五月天福利| 久久久久久久九九九九九九| 天天操熟妇| 国产精品对白内射| 久久九九国产精品| 欧美91精品国产自产| 久久伦理视频久久大香蕉视频| 久久伊人五月天| 欧美人人操人人插| 日韩精品99999| 欧美性猛交美女自慰91| 97久操| 麻豆人妻精品一区二区| 思思热国产在线视频| 日本 情色 1区| 神马久久久久久久久久| 精品久热| 久草免费福利在线播放| 大色综合| 日韩人妻精品| 久久久久久久久久久久黄色| 激情五月天网站| 天天弄天天操| 亚洲 欧美 色图| 91美女視頻| 蜜臀AV一区二区三区激情综合| 极品色www影院| 在线人成亚洲视频免费观看| 大香蕉99999| 91性| 99re这里只有精品中心播放| 韩国一级做a久久久久| 日韩欧美被操黄免费观看| 欧美综合自拍成人自拍第二十页| 夜嗨影院| 日本操逼无码| 1240青青草一区二区三区视频天爱| 精品中文一区二区| 9 7超碰在线免费观看| 日韩性色b| 性色av婷婷久久一区二区点复制| 无码精品人妻一区二区三区妖精 | 亚洲成av人片色午夜乱码| 国产精品com| a啊啊啊啊啊啊啊啊一区二区| 97硬碰| 麻豆60秒| 亚洲图片欧美在线视频| 青春草莓视频在线观看网址| 日韩射图| 蜜桃丰满熟妇av无码区不卡| 91l欧美在线| 屌妞视频久久久久久久| 日韩av女优在线免费一区| 717影院理论午夜伦八戒| 久久九九热| 国产区性爱在线视频秋霞豆| 久热精品在线国产| 永久电影三级在线观看| 老熟妇乱轮| 国产精品久久久久9999小说| 日韩欧美中文字| 色蜜AV| 国产家庭乱伦网址| 思思久热在线精品66| 日本欧美中文字幕| 久久产精品一区二区三区电影| 亚洲天天操| 久久在线观看免费视频| 亚洲熟妇A V黑人| 91成人18| 亚洲无码偷拍| 亚洲精品国产专区在线观看| 欧美一级特黄淫片在线观看| 久操免费在线| 人人看黄色视频| 三级激情网站| 免费人成?大片在线播放| 亚欧高清在线| 久久无码电影| 亚洲人成网站7777| 99色网| 国产无码精品高清| 天美传媒婬乱在| 麻豆尤物视频网| 国产精品99999| 一级岛国大片| 99视频这有这里有精品| 亚洲色图日韩精品| 久久久久免费少妇| 久久思思热| 91蜜臀熟女| 嗯嗯,好大,好爽,好骚| 欧美狠狠操| 欧美第一页| 精品久久久久久久| 日韩字幕一区| 男女激情黄色网址| 91久久国产综合久久| 欧美黄色片AAAAA| 最新AVzaixian| 日韩精品操少妇| 天堂亚洲精品久久老牛| 蜜桃视频啊啊啊啊| 中文字幕乱亚洲美女精品一区| 国产精品久久久久久久久久梁医生| 做爱A级亚欧| 久久久久亚洲Av无码专区老牛影视| 大香蕉一区二区在线观看.| 久久精品三级影视| 日韩欧美成人大香蕉| 爱丝福利| 翔田千里AV无码秘 三区| 日本丝袜人妻内射| 中文字幕五区| 91网站18+| 日韩av性爱在线播放| 日本高清一区二区在线| 欧美久久婷| 舔人妻中文免费视频| 无码不卡亚洲成?人片| 无码 有码 国产18p| 熟女丰满人妻一区| 曰本精品久久久| www欧美91| 欧美狠狠干| 精品人妻一区二区视频| 久久久久久亚洲精品中文字幕人妻| 91精品国产91久久久久久久久久久久| 日本高清视频xxxx| 亚洲人妻一区二区三区| 97操B| 免费在线黄片视频| 性感女人网页在线观看视频| 欧美日本不卡| 五十路六十路七十路熟婆| 日韩AV熟女乱伦| 亚洲综合一| 欧美色日| 国产午夜在线观看| 偷窥自拍亚洲天堂网爆| 人妻激情另类| 色香在线| 日本性交操一区二区不卡系列| 色五月婷婷色| 久久久久久久六六 | 大香蕉免费乱伦视频| 久久9 9 9精品| 男人的天堂午夜av| 日韩传媒在线| 亚洲 无码 偷拍| 色妺妺在线视频| 性欧美91| 六六久久日韩不卡| 亚洲色图欧美色图另类图片| 蜜臀网 一区| 97综合在线| 人人妻人人澡人人爽久久av| 高清成年美女黄网站免费大全 | 国产精品白丝| 青青草日韩无码| 国产精品成人午夜福利| 中文字幕精品资源在线| 天天爱综合网| 国产 丝袜 欧美中文 另类| 欧美与日韩97| 搡老女人老91二区| JIZZJIZZ国产精品喷水| 超碰视97中文| 超碰在线人妻| 欧成人精品一区二区三区| 欧美第一页性| 最新无码国产| 干B| 亚洲精美粉嫩嫩泬在线观看 | 色欲天天综合久久久无码网中文| 日韩三四五区| 99久国产精品午夜性色福利| 99在线观看无大码| 岛国视频免费在线观看| 午夜操操操| 伊人久久88国产女| 97碰久久| 男人的天堂亚洲| 91久久久亚洲| 黄色大片一区二区密桃丝袜| 亚欧毛片基地国产毛片基地| 精品美女在线视频| 新婚人妻扶着粗大强行坐下| 美女十八禁| 亚洲激情网| 女性91网站| 蜜臀AV成人精品蜜臀| 国产传媒午夜理伦精品| 日日干夜夜欢| 亚洲91少妇| 自拍内地三级在线观看| 亚洲熟女偷拍在线观看| 婷婷导航| 欧美日韩另类在线播放| 亚洲美女 晚间男人天堂 | 91N综合网| 性欧美体内射精| 国精精品无码一二三区水多多| 99少妇| 五月天综合网| 亚洲欧洲综合视频在线| 1769一区| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 久久精品国产亚洲AV高清演员表| 九九九九免费视频| 天美国产三级传媒| 粉嫩av在线| 国产精品乱码久久久、久久| 熟妇人妻精品一区二区视频色欲| 亚洲性爱免费电影| 天天爱天天操| 日本熟妇色熟妇在线视频播放| 色九九九九久| 成年女人黄网站| 啊啊啊啊啊啊在线观看| 欧美青青草视频| 久久久∴| 欧美九九爱| 亚欧高清v| 乱伦av国产| 粉嫩av平台| 久9爱经典视频| 超碰99热中文字幕| 欧美九九爱| 丁香五月久久| 精品国模无码| 日韩人妻无码不卡网站| 男人的天堂久久狠| 九九十八精品| 黑操B| 久久香蕉国产线看观看猫咪av | 亚州欧美综合| 91美女色视频亚洲| 欧美嗯啊……在线观看视频免费| 老熟妇91| 国产尤物在线三区| 国外91| 久久久久ab| 欧美另类色| 日韩草久视频| 日本狠狠干| 欧美在线91| 大色网久久| 日韩干B| 97视频新免费| www.91欧美| 激情终合网| 欧美91精彩| 久久爽爽精品| 欧美日韩性感| 中文字暮97| 清柠毛片| 男人天堂2019亚洲| a久久| 亚洲国产精品成人久久蜜臀| 91天天综合在线观看| 超碰午夜| 麻豆区久久久久亚| 美女丝袜激情小说| 国产精品在线一区二区| 熟女熟妇一区二区三区视频| 久久影视二区三区行押| 91N综合网| 亚洲激情在线| 校园春色综合网| 欧美日韩在线视频网站| 色97干| 91日韩网站| 日比av无码| 超碰97护士| 翔田千里AV无码秘 三区| 极品销魂美女一区二区| 2017av无码免费无线播| 日韩情色一区二区| 小说区 图片区色 综合区| 国产一区二区三区高清视频| 国产精品美女| 亚洲学生妹高清av| 欧美综合国产精品久久丁香| 囯产精品久久久久久久久久二区三区| 亚洲影视综合| 欧美区亚洲区偷拍区| 无码精品人妻一区二区三区妖精| 欧州一区二区三区四区| 激情小说图片亚洲首页| 国产精品久久久久久久AV大片| 国产精品久久99日日| 色五月婷婷久久| 大香蕉AV丝袜| 亚洲城人男人的天堂| 精品人妻一区二区三区视频| 亚洲色悠悠久久88| 国产91丝袜 在线播放| 欧美在线91| 性爱视频啪啪啪啪| 国产福利影视| 日本久久久久久久久| 欧美老妇综合网| 亚洲狠狠入| 亚欧美综合网。| 96国产精品| 国产精品福利资源在线尤物| 国产日产精品久久快鸭的功能介绍| 欧美东京热精品A∨| 日本久久久久久久久| 蜜桃久久一区二区三区| 日韩激情视频| 精品人妻一区二区乱码一区二区| 久久人妻少妇| 国内伊人久久久久久网站视频| 日韩 欧美 另类 人妻| 超碰精品在线| 狠狠躁AV| 青青草一本道福利视频| 女性喷水高潮在线观看| 女同女同恋久久级三级| 亚洲综合色婷婷| 国产黄a三级三级三级av在线看| 色男人色天堂东京热| 欧美九九九九九| 国产成年精品高清在线观看91| 日本免费亚洲欧美| 国产精品电影推荐| 91少妇人妻| 亚洲色诱惑| 亚洲色图欧美色图制服丝袜| 日韩精品怡红院| 91天天| 婷婷AV一区二区三区| 97超碰69| 成人日韩中文字幕| 91成人无码| 大香蕉久| 大但人体久久久久| 黑人精品欧美一区二区蜜桃| 久思思热视频在线观看| 精品99999久久久久久| 99精品综合久久久久五月天| 性天堂| 99视频内射三四| 天天干人妻视频| 乳欲人妻办公室奶水| 亚洲91在线播放影院| 大香蕉男女超碰精品在线| 97视频在线观看网站| 久草视频观看视频在线| 大香蕉碰碰| 午夜经典| 免费A V在线| 狠狠操狠狠燥| 91精品国产日韩欧美综合| 亚洲麻豆精品二区三区| 东北女人高潮视频| 91精品微拍福利| 欧美色图偷拍另类| 17c嫩草51久久91嫩草| 91久精品| 国产60页| 啊嗯好大视频在线观看| 精品91| 精品人妻一区二区三区-国产精品| AV女资源| 超碰人人色| 美女十八禁| 欧美另类精品xxxx| 加勒比AV天堂| 日韩一级久久毛片| 国内精品不卡无毒99999| 精品日韩| 无码欧美有限公司| 久久专区| 日韩av在线免费网站| 天天综合网~91入口| 极品美女福利在线观看| 青青草久久| 无码精品久久| 丝袜无码a片| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 男人天堂网址| 精品福利视频| 操逼视频色| 亚洲凸凹超碰成人| 欧美在线观看综合国产| AV色女综合| 综合网欧美在线| 蜜臀99久久国产| 日韩精品一区二区三区四虎影视| 99在线精品视频| 国产精品国产拍高清AV| 国产馆| 青青草黑寡妇男人天堂| 欧美1区二区三区公司| 亚洲AV色图一区| 五月天婷婷色色| 欧亚无码视频| 久久AV色| 99综合网| 天天拍夜夜| 欧美色图下一页| 亚洲无线码一区国产欧美国| 蜜臀久久久99久久久久| 欧美亚洲国内自拍| 操屄日韩| 91男同| 色噜噜婷婷| 亚洲黄片免费在线播放| 欧色综合| 成年人一级黄色毛片大全在线观看| 超碰1024久久| 操逼网站视频漫画国产| 精品人妻一区二区三区四区不卡在| 国产综合久久久鬼色| 性爱乱伦视频免费| 欧美精品系列| 中文字幕一二三区| TS人妖另类精品视频系列| 成人综合网 欧美| A V视频日本| 91网站在线播放| 91女神在线视频| 宅男影院久久久,99| 淫纸中9区| 免费9 1久久| 无套内射性感少妇视频| 欧美女同在线| av操操不卡| 百度百度日本操逼| aV中文麻| 91国产美女丝袜足交精品视频| 欧美日韩第一页| 91亚洲色人| 国产精品操| 91性高| 自拍盗摄一区| 日本日皮视频逼| 欧美中文字幕日韩在线| 国产三级片在线观看| 国产精品在线网站| 国产精品成人在线| 操操吧亚洲乱伦视频| 久久久久久久9| 超碰碰小说97| 91nbbbbbb| 老鸭窝亚洲毛片| 天天做天天爱天天爽| 91人妻少妇| 78精品在线| 91亚洲欧美综合高清在线| 欧美日韩免费专区在线| 99综合免费视频| 国产日韩欧美三级片 | 9美女超碰在线免费观看| 国产精品密臀网在线观看| 亚洲国产第一页综合视频| 色色色天美视频| 精品亚洲国产成人av网站| 天天干18禁| 亚洲性高潮| 国产麻豆一区二三区| 美女大乳久久久久久久女人18| 久久久久久夜夜夜夜夜| 99热这里只有精品8| 成人三级片无码| 手机在线人成免费视频| 国产亚洲女v在线观看| 大二网站亚洲| 国产捆绑一区| 啊啊啊爽爽| 午夜在线播放| 国产不卡中文字幕免费avi| 自拍视频大全亚洲专媒视频/一区二区三区 | 99色天堂| 亚洲欧美国产日本一区二区三区| 日日摸夜夜夜夜爽| 欧美精品99久久久**| 99婷婷一区二区| 自拍偷拍草一草| 亚洲中文字幕久久无码精品| 97欧美久久久久久久| 日韩人妻精品| 呻吟 欧美 日本 中出| 久久久九| 亚洲欧美综合图片| 亚洲色性情三级| 二对二中文字幕。| 91精品国久久久久久无码| 精品小视频在线| 啊嗯嗯啊好大好爽| 91爱做| 久久超碰av在线| 欧美综合777| 亚洲激情在线| 五月激情综合网| 国产福利影视| 97色视频在线| 欧美A√综合网 | 午夜啊啊| 色香综合| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 精品96久久| 高清不卡 中文 人妻| 嗯嗯,啊啊,国产精品| 黑丝91视频| 亚洲综合网电影91| 亚洲综合色网| 久久免费老司机精品| 操九九九九九九| 97爱欧美| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 麻豆久久一区二区三区| 日本一区不卡| 思思热久久成人| 美女天天干| 午夜影美女日鸡鸡天天视频国产| 亚洲国产91精品一区二区久久| 久久天天艹| 欧美一区二区福利在线| 神马九九| 中文字幕一区二区在线日韩精品|