欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

STM32 CAN總線通信入門:從物理層原理到bxCAN配置實(shí)戰(zhàn)

STM32 CAN總線通信入門:從物理層原理到bxCAN配置實(shí)戰(zhàn) 我在幫一個同學(xué)調(diào)一套電機(jī)驅(qū)動板時第一次正兒八經(jīng)接觸 CAN 總線。板子上主控是 STM32F103驅(qū)動板上留了一組 CANH、CANL 接口。我當(dāng)時想當(dāng)然地以為它像串口一樣把 TX 接 CANH、RX 接 CANL 就能收發(fā)結(jié)果數(shù)據(jù)全亂通信完全不可用。后來才發(fā)現(xiàn)CAN 和串口根本不是一回事——串口解決的是“兩個設(shè)備之間怎么傳字節(jié)”CAN 解決的是“幾十個設(shè)備之間怎么穩(wěn)定地?fù)尶偩€并保證高優(yōu)先級消息不丟”。這個認(rèn)知差就是很多人學(xué) CAN 卡住的根本原因。這篇文章我按自己從入門到項(xiàng)目落地的路徑來寫先講 CAN 到底解決了什么問題再把物理層和協(xié)議層一次性拆清楚最后落到 STM32 的 bxCAN 外設(shè)上給出一套能直接抄作業(yè)的 CubeMX 配置和 HAL 代碼骨架同時把我在多節(jié)點(diǎn)聯(lián)調(diào)里踩過的坑全部列出來。適合正在學(xué) STM32、準(zhǔn)備接電機(jī)驅(qū)動、傳感器模塊、電池管理或者工業(yè)設(shè)備的開發(fā)者。不管你有沒有接觸過 CAN看完應(yīng)該都能上手。1. CAN 總線到底解決了什么問題從汽車線束到多主通信CANController Area Network本質(zhì)是一根兩根線串聯(lián)所有節(jié)點(diǎn)的現(xiàn)場總線。它最早是為汽車電子設(shè)計的目的非常樸素車上的控制器太多了發(fā)動機(jī)、變速箱、ABS、儀表盤、車窗每個控制器都要互相傳數(shù)據(jù)。如果全部點(diǎn)對點(diǎn)連接線束會多到整車布線根本塞不下而且重量和成本也完全不可接受。所以 CAN 采取了一個極其聰明的思路把所有的控制器掛在同一條總線上就像一群人圍在一個圓桌邊開會誰都能發(fā)言但發(fā)言內(nèi)容所有人都能聽到。每個節(jié)點(diǎn)只關(guān)心自己感興趣的消息不需要建立專用通路。這樣整車的線束從“蜘蛛網(wǎng)”直接簡化成兩條線而且天然支持廣播和多主通信。1.1 從點(diǎn)對點(diǎn)通信到多主競爭傳統(tǒng)的串口 UART 是典型的點(diǎn)對點(diǎn)通信一個 TX 只能對應(yīng)一個 RX。I2C 和 SPI 雖然能掛多個設(shè)備但必須由一個主機(jī)來調(diào)度從機(jī)自己不能主動發(fā)起通信。這在工業(yè)現(xiàn)場和汽車?yán)锸呛芤膱鼍啊僭O(shè)一個傳感器突然檢測到異常它希望立刻上報如果它是 I2C 從機(jī)它只能等主機(jī)來輪詢。假如主機(jī)剛好在處理別的任務(wù)等輪詢到它的時候可能已經(jīng)晚了。CAN 去掉了“主機(jī)”的概念。任何節(jié)點(diǎn)只要檢測到總線空閑都可以主動發(fā)送報文。如果兩個節(jié)點(diǎn)同時在發(fā)總線會進(jìn)入仲裁機(jī)制按照報文 ID 的優(yōu)先級決定誰能繼續(xù)發(fā)低優(yōu)先級的節(jié)點(diǎn)自動退讓。也就是說CAN 是一個真正的多主總線節(jié)點(diǎn)之間是平等關(guān)系誰有緊急數(shù)據(jù)誰就能搶到總線。這個能力意味著你可以隨時往總線上加一個新節(jié)點(diǎn)不需要重新配置主機(jī)的調(diào)度邏輯也不需要修改其它節(jié)點(diǎn)的代碼只要新節(jié)點(diǎn)不跟別人搶同一個 ID整個網(wǎng)絡(luò)就能正常工作。這在做擴(kuò)展性要求高的項(xiàng)目時非常舒服。1.2 和 UART、I2C、SPI、RS-485 放一起比很多剛?cè)腴T的人都會問一句為什么不用現(xiàn)成的串口或者 I2C我把它們放在一張表里對比大家就清楚了。對比項(xiàng)UARTI2CSPIRS-485CAN連接方式點(diǎn)對點(diǎn)總線一主多從總線總線多主能力不支持不支持不支持半支持原生支持最高速率常見 115.2k 起步可更高400k/1M幾十 Mbps10M 左右1MCAN FD 到更高傳輸距離板級幾米內(nèi)板級一般不超過 1 米板級短距離可達(dá)千米級百米級速率越低越遠(yuǎn)仲裁與優(yōu)先級無無無無有錯誤處理極弱弱弱較弱CRCACK錯誤狀態(tài)機(jī)看這張表你會發(fā)現(xiàn)I2C 和 SPI 天生是給板內(nèi)通信設(shè)計的距離短、沒有多節(jié)點(diǎn)競爭RS-485 解決了距離和多點(diǎn)問題但 RS-485 本身只是物理層標(biāo)準(zhǔn)協(xié)議得自己寫多節(jié)點(diǎn)同時發(fā)送要靠上層軟件來避讓。CAN 則是把物理層 數(shù)據(jù)鏈路層全部做完了甚至仲裁都由硬件完成對開發(fā)者非常友好。所以只要是“多個設(shè)備跨板互聯(lián)、距離超過幾米、又要求通信可靠”的場景CAN 幾乎都是首選。1.3 你在什么場景下會被迫用上 CAN我自己的體會是大多數(shù)嵌入式開發(fā)者接觸 CAN并不是因?yàn)檎n程要求而是因?yàn)轫?xiàng)目里接了一個 CAN 接口的設(shè)備。常見的幾類無人機(jī)飛控連接電調(diào)和數(shù)傳機(jī)器人關(guān)節(jié)里面的電機(jī)驅(qū)動汽車后裝儀表讀取整車數(shù)據(jù)AGV 小車底盤與主控通信BMS 電池管理板內(nèi)部各模塊互聯(lián)工業(yè)現(xiàn)場的傳感器和執(zhí)行器。這些設(shè)備選擇 CAN是因?yàn)?CAN 的實(shí)時性和抗干擾能力在工業(yè)環(huán)境里非常穩(wěn)定而且協(xié)議簡單適合做輕量級數(shù)據(jù)交互。我的建議是如果你只是做板級小作品I2C 和 SPI 完全夠用沒必要非得用 CAN但如果你的設(shè)備需要長距離通信、多節(jié)點(diǎn)互聯(lián)、或者以后有擴(kuò)展到更多節(jié)點(diǎn)的可能那直接上 CAN 是穩(wěn)妥的。接下來我們把它拆開看CAN 能穩(wěn)定通信靠的到底是什么。2. 把 CAN 協(xié)議拆開看物理層、幀結(jié)構(gòu)與總線仲裁CAN 給人難學(xué)的感覺很大程度上因?yàn)樗皇且粋€單純的“協(xié)議”而是物理層和數(shù)據(jù)鏈路層打包在一起的解決方案。這一節(jié)我盡量用大白話把底層邏輯講清楚不堆術(shù)語但關(guān)鍵的位場結(jié)構(gòu)必須看懂因?yàn)楹竺?STM32 配置和調(diào)試都會用到這些概念。2.1 物理層差分信號、顯性電平、隱性電平與終端電阻CAN 的物理層由兩條線組成CAN_H 和 CAN_L。它采用差分信號傳輸也就是說邏輯值不是靠單根線的絕對電壓表達(dá)而是靠兩根線之間的電壓差來表達(dá)。這一點(diǎn)和 USB、RS-485 的思路一樣好處是對共模干擾不敏感抗噪聲能力特別強(qiáng)——尤其適合電機(jī)會產(chǎn)生強(qiáng)干擾的場合。CAN 定義了兩種總線狀態(tài)顯性電平Dominant對應(yīng)邏輯 0。此時 CAN_H 被拉高、CAN_L 被拉低兩根線之間存在一個明顯的電壓差。顯性電平具有“覆蓋”能力。隱性電平Recessive對應(yīng)邏輯 1。此時兩根線都處于一個近似等電位的高阻狀態(tài)電壓差接近 0。隱性電平是“讓位”狀態(tài)。最直觀的記憶方式顯性是主動拉線隱性是放手。如果總線上同時有節(jié)點(diǎn)輸出顯性、有節(jié)點(diǎn)輸出隱性最終表現(xiàn)是顯性就像一條電線一個人用手拉低另一個人不碰結(jié)果是拉低。這個特性是整個總線仲裁機(jī)制的基礎(chǔ)后面會展開。終端電阻也是 CAN 物理層里繞不開的坑。標(biāo)準(zhǔn)做法是在總線物理兩端各接一個 120 歐姆電阻目的是吸收信號反射。兩端的 120 歐并聯(lián)后從總線上任意一點(diǎn)往里看阻抗大約 60 歐姆。如果你量到 CANH 和 CANL 之間的電阻接近 60 歐姆說明終端電阻是正常的如果量到 120 歐姆說明只在一端有電阻如果是開路說明兩端都沒有。這個測量方法在排查總線故障時極其實(shí)用后面章節(jié)會再提到。2.2 一幀報文的數(shù)據(jù)結(jié)構(gòu)從 SOF 到 EOFCAN 報文分為標(biāo)準(zhǔn)幀和擴(kuò)展幀。標(biāo)準(zhǔn)幀使用 11 位 ID擴(kuò)展幀使用 29 位 ID。STM32 的 bxCAN 兩種都支持但項(xiàng)目中最常用的還是標(biāo)準(zhǔn)幀。我們把標(biāo)準(zhǔn)幀拆開看它就像一個“廣播信封”字段長度作用SOF1 bit起始位固定為顯性標(biāo)志一幀開始ID11 bit報文標(biāo)識符同時用于仲裁RTR1 bit遠(yuǎn)程請求標(biāo)志數(shù)據(jù)幀為顯性 0IDE1 bit標(biāo)準(zhǔn)幀/擴(kuò)展幀標(biāo)志標(biāo)準(zhǔn)幀顯性 0DLC4 bit數(shù)據(jù)長度0 到 8 字節(jié)DATA0~8 字節(jié)實(shí)際負(fù)載數(shù)據(jù)CRC15 bit循環(huán)冗余校驗(yàn)檢測傳輸錯誤ACK2 bit應(yīng)答發(fā)送方發(fā)隱性任意接收節(jié)點(diǎn)拉顯性表示收到EOF7 bit幀結(jié)束全部隱性這個結(jié)構(gòu)里ACK 位很有意思。它是一個“匿名確認(rèn)”機(jī)制發(fā)送方在 ACK slot 輸出隱性電平任何收到正確幀的節(jié)點(diǎn)都可以在這時候把總線拉成顯性表示“我收到了”。發(fā)送方發(fā)現(xiàn) ACK 位不再是最初的隱性就知道總線上至少有別的節(jié)點(diǎn)成功收下了這幀數(shù)據(jù)。如果一幀報文發(fā)出去沒人應(yīng)答發(fā)送方就會判定出錯并觸發(fā)重傳機(jī)制。這是 CAN 可靠性的第一道保障。實(shí)際應(yīng)用里我們關(guān)心的是 ID、DLC 和 DATA 三個字段。ID 決定這幀數(shù)據(jù)的身份比如 0x123 代表“電機(jī)轉(zhuǎn)速指令”DLC 告訴接收方這幀帶了幾字節(jié)數(shù)據(jù)。接收方主要靠硬件過濾器和軟件解析來篩選自己關(guān)心的報文其余的一律丟。2.3 總線仲裁為什么 CAN 多節(jié)點(diǎn)同時發(fā)送不沖突在搞清楚仲裁之前要先理解 CAN 的電平覆蓋關(guān)系顯性永遠(yuǎn)壓過隱性。如果節(jié)點(diǎn) A 和節(jié)點(diǎn) B 同時開始發(fā)送報文它們都會從高位往低位逐位輸出自己的 ID。由于接收方每發(fā)出一個位的同時也在監(jiān)視總線電平當(dāng)某個位出現(xiàn)“自己發(fā)隱性、但總線上是顯性”的情況這個節(jié)點(diǎn)立刻知道自己仲裁失敗馬上停止發(fā)送轉(zhuǎn)入接收狀態(tài)。舉例來說節(jié)點(diǎn) A 要發(fā) ID 0x100節(jié)點(diǎn) B 要發(fā) ID 0x200。在仲裁過程中兩者從最高位開始逐位比較。由于 0x100 最高位是 00x200 最高位是 1這里只為說明方便實(shí)際要看二進(jìn)制展開0x100 先出現(xiàn)顯性電平0x200 的節(jié)點(diǎn)檢測到總線電平與自己輸出不一致馬上退出。最終 0x100 順利發(fā)完整幀。從這個機(jī)制可以推出一個結(jié)論CAN 報文 ID 越小優(yōu)先級越高。因?yàn)?ID 數(shù)值越小它在高位越早出現(xiàn)顯性 0越容易在仲裁中勝出。所以做項(xiàng)目時關(guān)鍵的控制指令應(yīng)該用較小的 ID周期性低速數(shù)據(jù)可以用較大的 ID。這個原則在 CAN 的工程應(yīng)用里幾乎是鐵律。仲裁過程中高優(yōu)先級節(jié)點(diǎn)發(fā)送完全不受干擾甚至感受不到仲裁發(fā)生過。這是 CAN 和以太網(wǎng) CSMA/CD 的本質(zhì)區(qū)別以太網(wǎng)沖突后要退避重發(fā)浪費(fèi)時間CAN 在沖突瞬間就完成了競爭勝者繼續(xù)發(fā)送代價為零。所以 CAN 在實(shí)時控制場景里特別合適保證確定性延遲。2.4 幀過濾與常見幀類型和多主總線配套的是接收過濾機(jī)制。每個節(jié)點(diǎn)通常不需要處理總線上所有報文所以 CAN 控制器硬件會提供濾波器。以 STM32 bxCAN 為例你可以配置濾波器只放行某些 ID其余的硬件直接丟棄完全不進(jìn) CPU。這是一個非常高效的“減負(fù)”手段也是 STM32 上大家經(jīng)常配置錯誤的地方后面我會專門講。常見的幀類型除了我們上面講的數(shù)據(jù)幀還有遙控幀。遙控幀沒有數(shù)據(jù)區(qū)它只有一個 ID作用是讓某個節(jié)點(diǎn)主動請求其它節(jié)點(diǎn)發(fā)送數(shù)據(jù)。實(shí)際項(xiàng)目里遙控幀用得不多大部分場景是各節(jié)點(diǎn)周期性主動上報數(shù)據(jù)或者用單次數(shù)據(jù)幀做控制指令。另一樣需要知道的是 CAN FD 幀。它是 CAN 2.0 的擴(kuò)展最多攜帶 64 字節(jié)數(shù)據(jù)并且數(shù)據(jù)段可以用更高的波特率傳輸。STM32F1 系列不支持 CAN FD只有部分新系列支持如果選型時確定以后要用 FD需要專門確認(rèn) MCU 型號。3. STM32 的 bxCAN 外設(shè)從 CubeMX 配置到最小收發(fā)例程理論部分到這里已經(jīng)足夠支撐實(shí)戰(zhàn)了。這一節(jié)直接進(jìn)入 STM32 的開發(fā)流程。我用的是 STM32CubeMX HAL 庫代碼量小配置透明對新手最友好。如果你想直接操作寄存器理解了這一節(jié)的核心過程之后再去讀參考手冊也會順利很多。3.1 bxCAN 外設(shè)的結(jié)構(gòu)和關(guān)鍵資源STM32 的 bxCAN 本質(zhì)上是一套完整的 CAN 控制器只需要外界接一個 CAN 收發(fā)器芯片就能把電平轉(zhuǎn)換成 CAN_H 和 CAN_L 的差分信號。bxCAN 內(nèi)部有幾個關(guān)鍵資源兩個 CAN 外設(shè)CAN1 和 CAN2。CAN1 是主外設(shè)CAN2 是從外設(shè)兩者共享一部分內(nèi)存和過濾器組。STM32F1 系列里CAN2 若要工作必須先使能 CAN1而且 CAN2 只能用掛在 CAN1 下的濾波器。這個設(shè)計非常隱蔽很多人踩坑后面細(xì)說。3 個發(fā)送郵箱每個郵箱可以緩存一幀待發(fā)送報文硬件會自動按優(yōu)先級發(fā)送。郵箱狀態(tài)可以通過 HAL 函數(shù)查詢滿了就是發(fā)送失敗。2 個接收 FIFOFIFO0 和 FIFO1。接收到的報文先經(jīng)過過濾器再進(jìn)入 FIFOCPU 需要及時讀取否則 FIFO 滿后新報文會直接丟棄。28 個濾波器組不同型號數(shù)量不同每組可以配置成屏蔽位模式或列表模式用來決定哪些報文能進(jìn) FIFO。理解了這幾個資源后面的代碼就順理成章。配置的本質(zhì)就三件事初始化波特率和模式配置濾波器然后在中斷或輪詢里收發(fā)。3.2 用 CubeMX 配置 CAN 參數(shù)波特率、采樣點(diǎn)和工作模式打開 CubeMX在 Pinout 里找到 CAN1勾選 RX 和 TX 引腳。默認(rèn)情況下 CAN1 的引腳通常在 PA11RX和 PA12TX具體以你板子為準(zhǔn)。接著在 Configuration 里打開 CAN1 的配置界面需要設(shè)置幾個關(guān)鍵參數(shù)工作模式Normal 用于真實(shí)總線通信Loopback 用于單板自測發(fā)送的數(shù)據(jù)自己接收Silent 模式只接收不發(fā)送可以配合 Loopback 使用。入門調(diào)試建議先用 Loopback 模式驗(yàn)證收發(fā)鏈路再接雙板。波特率CAN1 掛載在 APB1 總線上。你需要先確認(rèn)時鐘樹里 APB1 的時鐘是多少 MHz然后通過 Prescaler、BS1、BS2 三個參數(shù)組合出目標(biāo)波特率。采樣點(diǎn)這是很多人忽略的。CAN 信號的采樣點(diǎn)在每個位時間里的位置推薦落在 80%~87.5% 之間。采樣點(diǎn)太靠前抗干擾能力差太靠后容錯余量不足。舉個例子我習(xí)慣把 APB1 配成 42MHz然后設(shè)置 Prescaler4BS116 TQBS24 TQ。這樣總時間量子是 4 * (1 16 4) 8442MHz 除以 84 正好是 500kbps。采樣點(diǎn)位置是 (1 16) / (1 16 4) 85.7%落在推薦區(qū)間。CubeMX 的時間段配置界面里你可以直接看到波特率和采樣點(diǎn)的計算值。我實(shí)測下來CubeMX 的自動計算是可靠的但前提是 APB1 時鐘一定得確認(rèn)清楚。有次我在項(xiàng)目里為了跑 USB把 APB1 從 42MHz 改成了 36MHz只改了時鐘樹沒有同步調(diào)整 CAN 的分頻參數(shù)結(jié)果雙方波特率差了幾十 k現(xiàn)象是偶爾能通、大部分時間報錯。從那以后我每次配置 CAN 都會先看時鐘樹把 APB1 的最終頻率寫進(jìn)計算器里算一遍而不是只看 CubeMX 推薦的 Prescaler 下拉框。工作模式里還有一個常見誤區(qū)新手拿到板子先拿 Loopback 模式測發(fā)現(xiàn)收發(fā)自如就以為硬件沒問題。換成 Normal 模式接雙板后突然不通就開始懷疑代碼。大概率不是代碼問題而是物理接線、終端電阻或者收發(fā)器供電問題。所以正式聯(lián)調(diào)前務(wù)必把 Loopback 和 Normal 分開測試并且明白它們在驗(yàn)證不同層級。3.3 濾波器配置屏蔽位模式和列表模式濾波器是 STM32 bxCAN 配置里概念最繞、但功能極其重要的部分。每個濾波器組有兩種典型使用方式列表模式配置一組精確的 ID只有這些 ID 能通過類似門禁名單。屏蔽位模式配置一個 ID 和一個 Mask。Mask 的每一位表示“這一位要不要比較”。Mask 位為 1則 ID 對應(yīng)位必須匹配Mask 位為 0則 ID 對應(yīng)位不關(guān)心任意值都算通過。剛?cè)腴T最容易犯的錯是把 Mask 理解反。有人想只接收 ID 0x123結(jié)果把 Mask 配置成了 0含義從“所有位都不比較”變成了“所有報文都能通過”于是濾波器形同虛設(shè)總線上亂七八糟的報文全進(jìn) FIFO。正確做法是要精確匹配一個標(biāo)準(zhǔn)幀 IDID 寄存器填 0x123Mask 填 0x7FF。7FF 是標(biāo)準(zhǔn)幀 11 位 ID 的全 1 掩碼表示 11 位全部比較。如果你希望接收一整個范圍的 ID比如 0x120 到 0x12F可以把掩碼的最低位設(shè)為 0讓低 4 位不參與比較ID 寄存器填 0x120Mask 填 0x7F0。這樣 0x120 到 0x12F 都能通過。這個技巧在實(shí)際項(xiàng)目中非常有用可以把節(jié)點(diǎn)按功能分組。在 CubeMX 里濾波器配置在 CAN 外設(shè)的 Filter Configurator 中。可以選擇 Filter Mode 為 Mask 或 ListFilter Type 為 Data 或 RemoteFilter Bank 編號對應(yīng)硬件濾波器組FIFO Assignment 選擇通過后的報文進(jìn)入 FIFO0 還是 FIFO1。我通常把控制類報文進(jìn) FIFO0 并開中斷把日志類報文進(jìn) FIFO1 用輪詢讀取避免低優(yōu)先級日志把控制報文拖慢。提示如果只是快速驗(yàn)證通信可以先不使用濾波器或者配一個全部通過的濾波器Mask0。但正式項(xiàng)目里一定要開啟精確過濾否則總線負(fù)載一高CPU 會被無效中斷淹沒。3.4 最小收發(fā)代碼骨架HAL 庫直接抄配置完成后CubeMX 會生成初始化代碼。接下來是兩個最基本的操作發(fā)送和接收。發(fā)送的核心是填充CAN_TxHeaderTypeDef然后調(diào)用HAL_CAN_AddTxMessage例如發(fā)送一個標(biāo)準(zhǔn)幀 ID 0x1238 字節(jié)測試數(shù)據(jù)CAN_TxHeaderTypeDef tx_header; uint8_t tx_data[8] {0x68, 0x65, 0x6C, 0x6C, 0x6F, 0x00, 0x00, 0x00}; uint32_t tx_mailbox; tx_header.StdId 0x123; // 標(biāo)準(zhǔn)幀 ID tx_header.IDE CAN_ID_STD; // 使用標(biāo)準(zhǔn)幀 tx_header.RTR CAN_RTR_DATA; // 數(shù)據(jù)幀 tx_header.DLC 8; // 數(shù)據(jù)長度 8 字節(jié) if (HAL_CAN_AddTxMessage(hcan1, tx_header, tx_data, tx_mailbox) ! HAL_OK) { // 發(fā)送失敗檢查郵箱狀態(tài)和總線錯誤 }需要注意HAL_CAN_AddTxMessage是把報文放到發(fā)送郵箱里真正的發(fā)送由硬件完成。如果三個發(fā)送郵箱全滿這個函數(shù)會返回失敗。所以不要在緊耦合的控制循環(huán)里無腦發(fā)送必須結(jié)合總線狀態(tài)判斷。接收有兩種方式輪詢和中斷。中斷最常用。你需要在 main 函數(shù)里調(diào)用HAL_CAN_ActivateNotification使能 FIFO0 消息掛起中斷然后在中斷回調(diào)函數(shù)里讀取void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan) { CAN_RxHeaderTypeDef rx_header; uint8_t rx_data[8]; if (hcan-Instance CAN1) { HAL_CAN_GetRxMessage(hcan, CAN_RX_FIFO0, rx_header, rx_data); // 解析 rx_header.StdId 和 rx_data } }這個回調(diào)函數(shù)是在中斷上下文里執(zhí)行的所以千萬不要在回調(diào)里面做耗時操作比如打印長日志、浮點(diǎn)運(yùn)算、延時。正確的做法是把數(shù)據(jù)拷到自己的緩沖區(qū)設(shè)置一個標(biāo)志位然后回到主循環(huán)再處理。我在項(xiàng)目里一般直接在回調(diào)里放一個環(huán)形緩沖區(qū)主循環(huán)從緩沖區(qū)取數(shù)據(jù)解析這樣既不會丟數(shù)據(jù)也不會拖慢中斷。提示如果同時使能了多個 CAN 或多個 FIFO要注意回調(diào)函數(shù)名稱。FIFO0 對應(yīng)HAL_CAN_RxFifo0MsgPendingCallbackFIFO1 對應(yīng)HAL_CAN_RxFifo1MsgPendingCallback別把回調(diào)配錯了。4. 實(shí)測多節(jié)點(diǎn)聯(lián)調(diào)中最常見的坑與排查思路代碼能編譯、單板回環(huán)能收發(fā)并不代表實(shí)際總線上就能跑。我在多節(jié)點(diǎn)聯(lián)調(diào)里踩過的坑很多都是“看起來像軟件問題實(shí)際是硬件問題”或者反過來。以下是我認(rèn)為最高頻的五類問題按照排查順序?qū)懗鰜怼?.1 終端電阻缺失導(dǎo)致的可靠性問題CAN 總線的終端電阻有時候很“傲嬌”短距離、低速率的總線上哪怕完全不接終端電阻通信也可能正常因?yàn)椴ㄐ畏瓷鋸?qiáng)度在距離短時不足以造成位錯誤。但只要距離拉長、節(jié)點(diǎn)增多、波特率提高反射問題就會被放大表現(xiàn)為總線偶發(fā)錯誤、錯誤計數(shù)器不斷累積嚴(yán)重時甚至完全斷連。我遇到過一個很典型的案例兩個開發(fā)板用 30cm 杜邦線連接跑 125kbps一切正常我把通信改成 500kbps偶爾收到錯誤幀再把線延長到 2 米幾乎完全不通。排查了半天先查代碼再查濾波器和波特率最后用萬用表量 CANH 和 CANL 之間的電阻發(fā)現(xiàn)開路——兩端的收發(fā)器板上根本沒有焊終端電阻。解決辦法很簡單在總線兩端分別并入一個 120 歐姆電阻。如果是臨時測試直接在其中一個節(jié)點(diǎn)的 CANH 和 CANL 之間跨接一個 120 歐電阻也可以但正規(guī)項(xiàng)目必須按菊花鏈拓?fù)湓谖锢碜钸h(yuǎn)的兩端各接一個。用萬用表量總線兩端之間的電阻應(yīng)該讀到約 60 歐姆。如果讀到 120 歐姆說明只有一端有終端電阻如果讀到接近 0 歐姆說明 CANH 和 CANL 之間短路了優(yōu)先檢查線序和插頭。4.2 波特率參數(shù)不一致報錯但不明顯CAN 總線有一個很迷惑人的現(xiàn)象波特率不匹配時不一定完全靜默而是會出現(xiàn)“偶爾收到一幀成功、大部分時間報錯”。原因是某些位序列恰好滿足接收方的采樣窗口錯誤還沒被檢測出來但更多情況下會在 CRC、ACK 或 bit stuffing 階段被識破表現(xiàn)為錯誤幀。如果你用 PCAN 之類的工具抓總線能看到大量紅色錯誤幀那就該懷疑波特率了。排查時先確認(rèn)兩邊的目標(biāo)波特率一致再核對實(shí)際配置。STM32 的波特率由 APB1 時鐘和分頻參數(shù)決定所以哪怕你在 CubeMX 里選了同一個波特率只要兩邊的 APB1 時鐘不同實(shí)際波特率也不同。我建議每個節(jié)點(diǎn)都打印或者讀取一下hcan1.Init里的參數(shù)自己算一遍實(shí)際波特率不要憑感覺。還有一種“差一點(diǎn)”的情況兩邊名義波特率都是 500k但因?yàn)榉诸l組合不同導(dǎo)致采樣點(diǎn)偏差很大比如一邊采樣點(diǎn)在 70%另一邊在 90%。通信短距離能通長距離或者干擾強(qiáng)一點(diǎn)就開始報錯。采樣點(diǎn)不一致的問題很難肉眼發(fā)現(xiàn)建議統(tǒng)一把采樣點(diǎn)配置在 80%~87.5% 區(qū)間。4.3 濾波器配置錯誤硬件把消息悄悄丟了濾波器是另一種“查不出代碼問題”的重災(zāi)區(qū)。如果你的接收中斷一直沒有觸發(fā)但發(fā)送端確認(rèn)已經(jīng)在發(fā)送第一步應(yīng)該檢查的就是濾波器。常見錯誤有三種濾波器全部禁用CubeMX 中如果沒有配置濾波器有些庫版本默認(rèn)是不接收任何報文的你需要顯式使能至少一個濾波器組。這會讓新手懷疑自己代碼寫錯實(shí)際只是濾波配置缺失。Mask 配置不對想精確接收某個 IDMask 卻填了 0導(dǎo)致所有報文都通過或者反過來把 Mask 填成 0xFFFFFFFF 這樣的值結(jié)果任何報文都進(jìn)不來。標(biāo)準(zhǔn)幀精確匹配應(yīng)該是 ID0x123Mask0x7FF。報文進(jìn)入了 FIFO0 還是 FIFO1 搞混濾波器里可以選擇把報文分配到 FIFO0 或 FIFO1。你中斷使能了 FIFO0但濾波器把報文分配到了 FIFO1自然永遠(yuǎn)不會觸發(fā) FIFO0 的回調(diào)。這種錯誤只需要把分配關(guān)系改成一致就行。排查濾波器問題時我一般會先臨時配置一個 Mask0 的全通濾波器確認(rèn)通信鏈路本身是通的然后再逐步收緊過濾條件。這樣可以區(qū)分“鏈路問題”和“過濾問題”。4.4 CAN2 的隱藏規(guī)則必須借道 CAN1 和共享濾波器如果你用的是 STM32F1 這類雙 CAN 型號容易踩一個隱藏規(guī)則CAN2 不是獨(dú)立運(yùn)行的必須同時使能 CAN1。原因是 CAN2 的接收路徑依賴 CAN1 的濾波器資源。即使你的業(yè)務(wù)邏輯只用 CAN2初始化時也要先初始化 CAN1并且在 CAN1 的濾波器里分配至少一個濾波器組給 CAN2 使用。CubeMX 的圖形化配置里這一步很容易被忽略導(dǎo)致 CAN2 的發(fā)送正常但接收永遠(yuǎn)無反應(yīng)。處理方式在 CubeMX 中同時使能 CAN1 和 CAN2。CAN1 可以不接發(fā)送數(shù)據(jù)但必須確保 CAN1 時鐘使能、CAN1 初始化成功。然后在 CAN1 的濾波器配置界面里把一個 Filter Bank 的 FIFO Assignment 指向 CAN2這樣 CAN2 收到的報文才能進(jìn)入接收 FIFO。這屬于 STM32 bxCAN 的架構(gòu)性設(shè)計參考手冊里寫得很隱晦實(shí)戰(zhàn)中我見過不止一個項(xiàng)目卡在這個地方。4.5 回環(huán)模式正常、正常模式不通時的優(yōu)先級排查如果你已經(jīng)做了雙板測試但通信失敗建議按照下面的優(yōu)先級排查而不是重新翻代碼用萬用表檢查 CANH 和 CANL 是否接反、是否短路。檢查所有節(jié)點(diǎn)的 GND 是否共地。CAN 收發(fā)器差分信號雖然抗共模干擾但收發(fā)器本身工作的參考地必須一致??珉娫垂╇姇r最好讓兩個板子的 GND 連在一起否則極大的共模電壓會直接損壞收發(fā)器。確認(rèn)收發(fā)器芯片供電正常。很多 CAN 收發(fā)器有 STBY 引腳或 RS 引腳必須拉成正確電平才能進(jìn)入工作模式。某些帶 5V 和 3.3V 電平轉(zhuǎn)換的模塊跳線帽錯了也會導(dǎo)致通信失敗。確認(rèn)終端電阻正確后再抓總線波形。如果有示波器可以直接看 CAN_TX 引腳上是否有波形確認(rèn) MCU 正在發(fā)送再看 CAN_H 和 CAN_L 之間的差分信號振幅是否符合收發(fā)器規(guī)格。最后再檢查代碼里的波特率、濾波器和回調(diào)配置。順序很重要。我見過有人花了兩天查代碼最后發(fā)現(xiàn)是收發(fā)器的 STBY 引腳懸空收發(fā)器一直在待機(jī)模式。硬件問題優(yōu)先排除能省下大量時間。5. 工程化選型建議與硬件布局心得如果你已經(jīng)跑通了雙板通信接下來的問題通常就是怎么正式做項(xiàng)目這里分享一些我在工程實(shí)踐中的選型和硬件布局經(jīng)驗(yàn)。5.1 收發(fā)器芯片怎么選STM32 的 bxCAN 輸出的是 TX/RX 數(shù)字信號不是差分信號所以必須外接 CAN 收發(fā)器。選型時有幾個關(guān)鍵點(diǎn)供電電壓早期常見的收發(fā)器是 5V 供電比如 TJA1050 這類。它直接出來的 CAN_H/CAN_L 電平是 5V 體系。而 STM32 的 TX/RX 是 3.3V兩者之間的邏輯電平匹配一般沒問題但信號電平上要注意共地。另一種方案是 3.3V 供電的收發(fā)器比如 SN65HVD230 系列它和 STM32 同電壓體系接線更直接適合電池供電或低功耗產(chǎn)品。待機(jī)控制很多收發(fā)器有 STBY 或 S 引腳用于進(jìn)入低功耗待機(jī)模式。這個引腳不能懸空必須按手冊要求接上拉或下拉否則收發(fā)器可能一直在待機(jī)通信完全不通。防護(hù)等級工業(yè)現(xiàn)場有浪涌和靜電風(fēng)險建議選內(nèi)置 ESD 保護(hù)的型號并在總線入口加 TVS 管和共模電感。汽車級應(yīng)用還要考慮收發(fā)器的 EMI 特性。如果你做的是小批量產(chǎn)品直接買集成了收發(fā)器和保護(hù)電路的 CAN 模塊即可但量產(chǎn)時還是單獨(dú)設(shè)計收發(fā)器電路更可控。5.2 波特率與總線長度的經(jīng)驗(yàn)對照CAN 總線的傳輸距離和速率不是無關(guān)的。速率越高允許的物理距離越短因?yàn)槲粫r間越短信號在長線纜上的反射和衰減越容易破壞位同步。下面是一組工程上常用的經(jīng)驗(yàn)值波特率參考總線長度1 Mbps約 40 米500 kbps約 130 米250 kbps約 270 米125 kbps約 530 米50 kbps約 1300 米這個表格只做參考線徑、絞合、接頭質(zhì)量和節(jié)點(diǎn)數(shù)量都會影響實(shí)際效果。但我建議選型時遵循一個原則先確定最遠(yuǎn)節(jié)點(diǎn)間的物理距離再反推最大可用波特率。如果距離預(yù)算寬裕盡量選低一檔波特率可靠性能大幅提升。此外總線拓?fù)浣ㄗh采用菊花鏈即每個節(jié)點(diǎn)從上一個節(jié)點(diǎn)引線到下一個節(jié)點(diǎn)避免在某個節(jié)點(diǎn)引出很長的分支線。CAN 標(biāo)準(zhǔn)對支線長度有嚴(yán)格要求支線過長會破壞信號完整性。如果現(xiàn)場必須星型連接應(yīng)該在中心點(diǎn)使用 CAN 集線器而不是直接把線擰在一起。5.3 代碼封裝、ID 規(guī)劃與后續(xù)擴(kuò)展工程化不只是硬件代碼層面同樣有講究。我自己的做法是把 CAN 操作封裝成一個獨(dú)立模塊提供幾個基礎(chǔ)接口初始化和濾波器配置、發(fā)送接口、接收回調(diào)注冊、總線錯誤處理。業(yè)務(wù)代碼不直接操作 HAL 層的CAN_HandleTypeDef全部通過模塊接口調(diào)用。這樣換 MCU 或換庫的時候只需要改底層適配業(yè)務(wù)邏輯基本不動。ID 規(guī)劃也值得提前做。我習(xí)慣把 ID 按功能段劃分比如 0x000~0x07F 用于系統(tǒng)的控制指令0x100~0x1FF 用于電機(jī)反饋0x200~0x2FF 用于傳感器數(shù)據(jù)0x300~0x3FF 用于調(diào)試和日志。每個節(jié)點(diǎn)只能發(fā)送自己權(quán)限范圍內(nèi)的 ID接收則通過濾波器精確匹配。這樣當(dāng)總線上有新節(jié)點(diǎn)加入時不需要全局修改其它節(jié)點(diǎn)的代碼只在新節(jié)點(diǎn)里配置輸入的 ID 規(guī)則即可。周期型數(shù)據(jù)和事件型數(shù)據(jù)也要分開周期數(shù)據(jù)用定時器發(fā)送事件數(shù)據(jù)用中斷或任務(wù)觸發(fā)避免所有節(jié)點(diǎn)都在同一時刻搶總線造成抖動。如果你在產(chǎn)品規(guī)劃階段就知道未來的數(shù)據(jù)量會增長比如單幀 8 字節(jié)不夠用、總線負(fù)載率超過 40%那么在 MCU 選型時就要考慮支持 CAN FD 的型號。CAN FD 能把單幀數(shù)據(jù)擴(kuò)展到 64 字節(jié)數(shù)據(jù)段還能切換到更高波特率總線利用率提升非常明顯。STM32F1 全系不支持 CAN FD如果你剛開始選型建議直接把 F4 或 G4 系列納入考慮省得后期換平臺。從最初以為 CAN 是“高級串口”到后來能在總線上同時掛十幾個節(jié)點(diǎn)穩(wěn)定跑幾個月我的最大體會是CAN 真正的難度不在協(xié)議棧而在于物理層細(xì)節(jié)和多節(jié)點(diǎn)協(xié)作。先把終端電阻、波特率、濾波器這三件事吃透你的 CAN 項(xiàng)目基本就穩(wěn)了一大半。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
天天色综合天天| 狠狠色噜噜狠狠狠狠综合| 91人人妻人人操| 91丨九色丨老农村| 综合丁香婷婷五月天| 婷婷五月蜜桃成人桃色丁香| 伊人五月丁香| 中文字幕成人| 婷婷五月天淫荡| 色情五月天导航| AV在线免费播放| 色五月丁香总合网| 99综合| 亚洲无线视频| 久久99久久99久久99人受| 亚洲乱码日产精品BD在线观看| 精品热九九| 91 原创 在线 九色| 激情综合亚洲| 激情丁香六月| 狠狠干狠狠干| 日韩在线观看亚洲| 色婷婷AV五月天| 色永久| 色综合久久天天综合网| 4399无码视频二区| 热99这里只是精品| 婷婷狠狠干| 久久99网站| 日本操B视频在线观看| 婷婷婷婷婷婷婷婷婷婷丁香| 五月丁香六月久久| 久色大| 婷婷激情四射| 人妻视频在线| 天天操天天操天天操天天操天天操天天操| 天天天天干| 亚洲精级| 五月激情综合婷婷| 夜夜 操无码| 在线视频区| 婷婷色色丁香五月天| 天天撸夜夜爽| 99自拍视频在线观看| 婷婷激情五月天桃花网| 中文久久久人妻| 99热国产免费| 欧美日本国产| 五月深爱婷婷| 综合激情站| 中文字幕高清av| 激情黄色小说色五月| 天天综合亚洲综合| 我爱大香蕉| 久久女人九九| 亚洲综合色五月| 欧美丁香婷婷五月| WWW.久久久久久久| 日本色爽| 91九九热| 婷婷五月色亚洲| AV九九| 亚洲综合欧美色丁香婷婷888月图片| 五月丁香婷婷中文| 六月婷婷五月丁香| 大香蕉太香蕉视频97| 五月婷婷亚洲综合网| 超碰在线免费| 97婷婷在线| 精久久色| 中文字幕中文有码在线| 欧美激情综合| 伊人激情啪啪| 激情床戏| XX久久| 久久这里只有精品视频15| 大香蕉AV在线| 九九热超碰| 丁香五月婷综合| 五月婷婷综合色啪首页| 久久在线视频免费观看| 99在线免费视| 2018国产大陆天天弄| 婷婷五月天激情小说| 激情噜噜噜| 婷婷六月成人| 激情五月丁香六月| 九热网站| 久久人妻在线| 五月丁香狠狠爱婷婷综合| 高清激情av在线观看| 久久久久久激情| 丁香97综合| www.激情五月天com| 婷婷五月天激情文学| 日韩AV在线免费观看| 天天做天天爱天天做| 婷婷综合丁香| 99成人小视频| 激情五月天福利| 激情综合六月| bukadeavzaixian| 色情久久久| 日日影院 | 丁香六月婷婷激情综合| www激情| 久久久激情| 97超碰综合| 久久婷婷综| 超碰色综合| 99国产欧美视频| 超碰熟女拍拍| 丁香五月777| 天天日,天天干,天天操| 国产精品丝| 婷婷欧美| 丁香五月婷婷啪啪| 99色综合| 性99网站| 九月丁香婷婷基地| 久 久9 9 热 视 频| 九九精品丁香花| 能直接看的AV网站| 91丨人妻丨国产丨丝袜| 9月色婷婷| 丁香婷婷五月综合影院| 啪啪激情网| 91九色丨国产丨爆乳| 色丁香久久| 色欲丁香| 成人做爰A片免费看网站找不到了 噼里啪啦在线观看免费完整版视频 | 99天堂网| 丁香六月婷婷高清| 超碰在线播放免费观看| 婷婷五月天激情网| 开心五月婷婷激情网| 极品精品一区二区三区在线| 激情五月小说婷婷| 大香蕉久操| 六月丁香啪啪| 五月激情天天干| enecarbon-materials.com污K127封锁请涟系@wip1688 | 最近中文字幕大全免费版在线 | 综合激情sV| 天天色粽合合合合合合合| 9l视频自拍9l九色9l成人| 99热在线看| 久久五月激情综合| 青青草视频免费观看| 五月丁香婷婷人体| 成人AV网站在线| 婷婷91| 狠狠色噜噜狠狠色噜噜噜999| 99视频这里有精品| 久久婷婷色| 婷婷五月丁香激情色情| 99热插| 五月天婷婷基地| 六月丁香好婷婷| 久久伦乱| 好吊兆人妻| 激情AV在线| 丁香激惜男女| 99久久久久久www| 另类激情中文| 日本婷婷| 激情五月色综合国产精品| 国产亚洲色婷婷久久99精品9j| 亚洲综合五月天婷婷丁香| 婷婷大美在线| 第五婷婷伊人丁香色| 国产精自产拍久久久久久蜜| 婷婷激情在线| 狠狠搞亚洲| 色五月综合激情| 狠狠xx| 综合久久97| 免费观看全黄做爰的视频| 丁香六月婷| 五月丁香婷婷激情在线视频| 激情婷婷久久| 一区二区你懂的| 99熟女| 六月婷婷久久大全| 六月婷婷色五月| 五月婷婷七月丁香| 久久R激情| 日本精品99网站| 婷婷丁香五月,狠狠综合| 亚洲av网站| 665566 无码| 久久综合婷婷| 91九色精品| 秋霞日本免费毛片A片| 婷婷五月天丁香| 日本色爽| 亚洲亚洲亚洲AAAAAA| 激情网战码亚洲A| 91超级碰人人操| 九九色逼| 久久久久er热| www..999热久| 婷婷色操| 丁香五月香蕉| 亚艹艹| 思思99精品视频| 九热免费视频| 大香蕉七区| 91se精品国产| 99热在线观看| 六月天婷婷| 婷婷色五月开心五月| 婷婷六月天亚州| www。狠狠干。com| 婷婷五月激情四月综合| www.99在线| www五月天com| 人人97操| 久久网址99热| 久久99免费视频网站| 少妇人妻偷人精品无码视频新浪 | 婷婷综合网站| 久久视频九九视频| 婷婷五月精品在线| 天天色爽| 日本本土色网第一区| 五月丁香久久网| 丁香色影院| 久久久婷婷五月天| 中文字幕无线久必| 蜜桃婷婷丁香综合久久开心亚洲| 国产午夜精品一区二区三区四区| 亚洲精品字幕在线观看| 九九成人视频| 亚洲精品V天堂中文字幕| 91色婷婷综合久久中文字幕二区| 99碰网站| 久久婷婷五月天懂色| 五月婷婷偷拍| WWW久久久| 五月丁香婷婷婷激情爱爱| 99re热免费观看视频精品| 国产26uuu视频| 欧美激情xxxXX| 久久成人性爱| 五月婷婷六月爱| 99高级会所久久| 五月婷成人| 婷婷六月色| 久热超碰| 九九热九九热精品| xxx综合在线| 伊人成人宗合网| 日本狠狠爽| 亭亭丁香久久五月| 天天日夜夜操五月| 狠狠色综合五月| 色色婷婷综合网| 婷婷狠狠五月综合| 91久久精品无码一区二区三区| 欧美日韩五月婷婷| 五月丁香六月婷婷啪啪| 婷婷丁香五月亚洲欧美| 人人干天天操五月丁香| 婷婷射图五月天| 99日这里只有精品| 久狠狠狠| 超碰chaompinm| 性视频久久| 久久久激情视频| 99热99干| 欧美成人精品三区综合A片| 九九视频在线观看视频6 | 最近中文字幕大全免费版在线| 五月天综合| 色伦专区97中文字幕| 亚洲av| 日日夜夜九九| 性爱五月丁香| 久久综合丁香五月| 久久草婷婷丁香网站| 色欲资源网| 五月色色激情网| 亚洲成人无码网站| 在线播放中文字幕| 色五月色综合| 99久久精品国产色欲| 97碰超级人人看| 人人人操Av| 五月婷婷综合色拍| 五月丁香六月婷婷色日| 99性色| 1000部毛片A片免费观看| 99热热热99精品婷婷| 久久综合最新网址| 九九精品综合| 这里只有精品99www| 开心激情站婷婷五月天| 欧美色色色色色色| 色婷婷激情| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 五月婷婷综合激情| 久久怕怕视频| 九月婷婷久久| 吾爱AV导航| 夜夜 操无码| 翔田千里aV中文字幕| 婷婷六月五月天综合| 婷婷成人AV| 99∨VTV| www.wuyuetian啪啪| 1234操逼网| 亚洲另类电影| 丁香五月综合在线观看| 这里只有精品免费视频| 97婷婷五月| 五月婷婷丁香大陆免费| 日韩av大全| 天天摸天天透天天舔| 丁香五月天堂网| 成人草榴视频| 成人在线视频网| www,奇米影视| www.99久久久| 激情婷婷综合五月少妇| 亚洲婷婷五月天| 久久99大| 六月五月丁香五月欧美| 噜噜狠狠色| 九九热精品| 国产综合A片| 久久久这里都是精品| 淫荡综合网| 日本色色图| 大香蕉久久综合网| 五月婷五月婷伊人伊人五月婷| 亚洲激情精品| 99自拍视频| 色涩影院六月丁香| sewuyuejiqingwang| 五月停停999| 专区无日本视频高清8| 大香蕉婷婷丁香| 狠狠擼综合| 色婷婷五月综合在线| 97精品人人A片免费看| 2017人人操| 涩五月丁香| 欧美日韩99| 人人操碰| www.五月天婷婷姐姐| 久久久99视频| 欧美碰碰| 久热中文字幕在线线观看| 亚洲综合九九| www.sebowuyue| 丁香婷婷五月综合影院| 伊人91| 亚洲免费观看高清完整版AV线| 午夜不卡成人一区二区| 久久HD| 超碰9在| 内射丰满人妻| 天天爱天天操| 丁香激情网| 欧美色爱五月天| 日本人妻伦在线中文字幕| 久久停停超碰| 五月天丁香久久| 五月婷婷 自拍| 精品无码人妻一区| 久99热| 玖玖在线视| 这里只有久久精99| 七月丁香婷婷 色色| 日本色噜| 婷婷网五月天| 99综合视频一体| 亚洲成人超碰| 操人视频91| 成 人 色 色| 午夜69成人做爰视频| 全亚洲最大的婷婷五月天网站COM| 丁香婷婷九月| 日韩在线一级| h在线看免费版在线看| 日日操无码| 五月天黄色激情小说| 精品夜夜澡人妻无码AV| 五月婷婷天天色| 五月丁香激情综合网| 色婷婷久久综合| 婷婷色五天| 狠狠色丁香久久综合婷婷亚洲成人福利| 中文aV网| 五月丁香久久久| 森林影视大全,最好看的2019年视频 | 精品国产va久久久久| 综合色99| 99色激| 狠狠操综合| 久久五月网| 激情丁香六月| 中文无码婷婷| 六月丁香激情网| 天堂久久精品| 99精品在线观看| 99热偷拍| 五月激情六月综合| site:wpjngj.com| 狠狠操狠狠爱| 26uu| 97婷婷五月丁香| 99爱在线视频观看| 91se在线观看| 9久久久久久久久久久| 婷婷五月色综合| 97碰| 99精品视频免费在线播放| 五月丁香综合激情| 婷婷丁香第一页| 亚洲亚洲人成综合网络| 婷婷成人小说综合| 婷婷狠狠狠爱| 97久久精品| 日本97在线视频| 丁香五月婷婷亚洲综合精品| 色播五月丁香| 成人无码精品1区2区3区免费看| www.色窝| www.com在线操视频免费观看| 99re8这里只有精品99re8热视频| 亚洲久久日| 久久9精品| 婷婷综合另类小说| 狠狠爱青青草| 夜夜骑夜夜操| 综合啪啪| 成人午夜天| 激情综合色婷婷啪啪六月天| 中文字幕第四色.999| 天天肏高清在线| 日本一级黄色电影| 激情内射人妻1区2区3区| www.俺去也com| 久久国产高清| 久久怕怕视频| 婷婷网五月| 99热 在线播放| 日本片日本片祼观看网站在线看中文版网页在线看 | 色色婷婷丁香| 草做免费在线观看| 五月色丁香| 激情五月久久| 99在这里有精品| 色综合偷拍| 99色婷婷| 天天开心AV色综合婷婷五月天| 激情av网| 婷婷五月天福利| 亚洲性色XXXXX| 99五月婷| 国产肥白大熟妇BBBB视频| 丁香九月综合激情| 开心五月天激情网| 激情五月天婷婷五月天| 99在线观看视频免费| 亚洲三A| 综合网亚洲| 久久机热这里只有精品免费视频 | 久久激情五月天| 婷婷五月丁香六月伊人网| 日韩不卡123| 婷婷五月天激情综合| 五月天婷婷色播综合在线| 五月天大香蕉视频| 99视频只有精品| 五月天激情视频网站| 在线成人网址| 91九色白丝| 婷婷色丁香五月| 激情黄色五月天| 婷婷欧美激情| 久九男女天堂| 五月丁香婷婷色色| 久热播这里只有精品| 成人无码髙潮喷水A片| 五月婷婷综合久久| www.狠狠操.co m| 婷婷香蕉视频| 五月综合激情婷婷六月色窝| 婷婷刺激综合| 色丁香婷婷美女视频网站| 99色日本| 精品热九九| 国产成人网| 美女妹子后射视频网站在线观看| 五月天婷婷久久日| 色色色地址| 五月丁香婷婷钟和色图| 激情第四色| 久色五月丁香视频| 五月婷婷丁香色吧网| 五月天婷婷久久| 五月婷中文娱乐综合| 婷婷中文字幕| 色综合色五月| 99综合| 婷婷六月中文字幕| 婷婷,五月天,丁香,第一| 伊人大蕉香| 精品影院| 婷婷色网| 99久精品视频| 激情五月综合网最新 | 丁香六月婷婷色XXXX| 婷婷色五月丁香六月欧美啪| 五月丁香婷婷免费视频| www.minyis.com【JT】国内CDN落地页保证转化QQ2101460746 | 色播婷婷大香蕉| 色五狠狠| www.日韩艹| WWW.天天日| 啪啪操超碰| 五月丁香婷婷激情爱爱| 色狠狠色综合久久久绯色aⅴ影视| 99色免费观看全部| 风流少妇A片一区二区蜜桃| 国产99久| 天天xxxxxx天天日| 五月婷婷七月丁香| 国产综合A片| 欧美成人猛片AAAAAAA| 亚洲精品午夜国产va久久成人| 亚洲天天操| 人人操人av| 婷婷五日b| 思思视频久久| 草综合网| 9+1视频网址| 国产97色在线 | 日韩| 亚州第一A片| 在线播放 精品| 日本熟妇乱妇熟色A片蜜桃| 狠狠操狠狠操| 国产成人亚洲综合A∨婷婷| 久99热在线观看| 天天天干夜夜夜操| 色色色色热| 色狠久| 五月丁香狠狠| 六月狠狠综合| 性生活久久人妻| 五月天成人手机在线视频| 性小说五月天| 丁香婷婷射| 丁香五月日啪| 99精品在| 亚洲久久婷婷| 丁香色情五月综合网站| 午夜电影网VA内射| 激情五月天色婷婷| 激情色视频| 婷婷六月色播| 久久人妻www| 激情婷婷啪啪| 天天干天天干天天干天天干天天干| 天天日,天天射,天天舔| 五月开心激情| 91日视频| www激情| 欧美内射AA| 五月婷婷激情综合网| 九九色99| 五月丁香在线| 老美AA片| 性爱技巧五月| 欧美久人人| 久久久久久久久久久44| 综合激情在线| 五月婷婷干干干| 六月欧美综合色情| 久热这里只有精品视频6| m色激情网| 色婷婷社区| 五月天综合在线观看视频| 五月婷婷六月激情| 五月丁香啪啪网| 99热这里只有精品8| 狠狠精品干练久久久无码中文字幕 | 99在线精品免费视频| 天天插天天爽| 翔田千里无码| 五月天亭亭俺也| 久久99久久99精品免观看粉嫩| Av大香蕉| 少妇性BBB搡BBB爽爽爽视頻| 亚洲综合色婷婷文学| 色婷婷丁香社综合| 久久草大香蕉| 成人网站免费sxj| 天天五月情| 这里只有精品视频在线| 中文字幕成人| 久热婷婷综合| 东北黄色一级| 色五月激情视频在线综合| www.夜夜夜| 五月天俺去也| 琪琪色五月天| 一点色成人网| 日韩成人电影Av| 97久久人人| 亚洲婷婷丁香五月亚洲| av狠狠操| 色五月婷婷五月| 丁香五月开心七月| 超级碰碰碰97免费| 综合激情网| 深爱五月激情| 99∨VTV| 噢美99| 五月婷婷色综图片| 就爱啪啪婷婷| 五月天天天天天天天天天天天婷婷婷| AV性爱在线| 久久九九热38| 99在线视频精品| 五月婷婷这里都是精品| 久久免费精彩视频| 国产毛片精品一区二区色欲黄A片| 就爱日五月天| 婷婷色婷婷亚洲成人| 婷婷香五月综合激情| 丁香蜜臀黄色婷婷五月天| 国产成人精品一区二三区熟女在线| 久久33视频| 久久五月天激情美女| 婷婷五月丁香六月天亚洲综合| 久久色五月| 欧美性猛交99久久久久99按摩| 91se在线观看| 婷婷六月丁香色| 亚洲精品在线视频| 操操操97| 99色婷婷视频| 十月色综合| 色色99| 九九超日本| 色婷婷欧美在线| 五月丁香六月婷婷啪啪| 亚洲乱码日产精品BD| 超碰在线观看9| 能看的AV网站| 色婷婷影视| 99热在线网站| 六月婷婷日| 久久婷婷91| 色九九中文字幕| 亚洲综人色综网| 伊人啪啪网| 激情五月婷婷| 久激情网| 五月丁香中文| 激情婷婷丁香| 色婷婷基地在线| 丁香五月欧美| 在线综合亚洲欧美65| 久久精品爱爱| 亚洲午夜电影| 中文字幕在线人妻| 五月丁香六月婷婷综合网| 丁香激情网| 亭亭丁香97| 天天综合五月| 99成人| 手机旧版看人妻1025| 天天干com| 少妇人妻人伦A片| 中文字幕AV在线| 99爱视频在线观看| 五月婷婷欧洲| 五月丁综合在线观看| 色播五月婷婷| 色色激情网| 丁香五月欧美| 婷婷五月天性爱视频| 国产精品色色色色| 国内外色色色色色成人视频| 97人妻碰碰碰久| 国产日韩欧美性爱| 影院久久久| 久热这里只有精品视频6| 91久久久久久久| 久热九九| 五月色色色| 99热综合色图| 欧美成人精品A片免费一区99| 九月停停| 26uuu亚洲欧美| 日本啪啪视频HD| 天堂爱爱| 九月婷婷综合| 狠狠色丁香综合| 99免费| 婷婷操逼| 久久久婷婷婷| 97超碰人人操| 超碰在线成人| 天天射美女| 五月丁香琪琪| 国产av基地| 欧美久久网| 婷丁香五月天| 国产精品电影网| 91日韩美女被插视频| 久久 天天| 超碰色女人| 色久综合| 99啪99| 婷婷五月天成人| 婷婷自拍| 99热这里只有精品8| 亚洲色基地| 色五月丁香婷婷久草| 九九综合网色全集| 久久婷婷久久| 久久久WWW| 久久只有18视频| 丁香婷婷六月激情文学| 婷婷丁香成人| 色情丁香五月天| 在线理论片| 成年人99热| 123日本不卡在线| 99爱视频在线播放| 香蕉伊人综合| 丁香婷婷性爱| 琪琪色网在线| 日操夜撸| 停停五月色宗合| 69久久99精品久久久久婷婷| 六月激情婷婷| 久久ww| 2025天天爽天天摸| 久9草在线观看视频| 激情丁香五月天图片| 综合五月丁香97| 色六月婷婷| 久久黄A片| 97精品人人A片免费看| 九九热这里只有国产精品| 婷婷97C| 99啪啪网| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 激情骚五月| 五月丁香激情婷婷| 色八月婷婷| 色五月丁香五| 人人草人人爱| 99色激| 黑人巨粗进入警花疼哭A片| 伊人五月丁香| 日本色99| 五月天激情小说| 婷婷无码视频| 中文字幕AV网址| 岛国av网站| 色 五月婷婷基地| 日韩精品电影| 色五月婷婷综合| 婷婷六月激情丁香| 天天操五月天| www久| 丁香五月激情无码视频| av在线播放网址| 大香蕉伊人久久| 五月婷婷丁香狠狠撸久久| 婷婷激情视频| 国产精品涩涩涩视频网站| 九九在线这里只有精品视频| 1024手机在线观看看片_日韩精品| 亚洲色综合| 久久久久久久合一狠狠做深爱| 91九色无码日韩| 国产做A爰片毛片A片美国| www,天天干| 日韩色色色色色| 五月婷婷 激情按摩| 99综合自拍| 狠狠干2007| 91丨九色丨老农村| 婷婷成人五月天| 99热在这里只有精品| 色色综合网站| 超碰国产一区| 色色婷婷丁香| 色婷婷五月天天天干天天操天天爽| 69久久99精品久久久久婷婷| 做爰丰满少妇1313| 久久亚洲无码| 岛国av网| 色玖玖综合网| 伊人狼人干| 久久久久9999| 婷婷久久亚洲| 人妻爽爽爽久久久久久久久| 九色porny在线观看激情四射| 婷婷五月丁香六月| 天天干狠狠| www.夜夜操.con| 激情图片婷婷丁香五月| 日日做A爰片久久毛片A片英语| 五月婷婷六月情| 五月色导航| 1024国产| 久久九九一區| 97碰碰碰免费公开在线视频| 日韩 中文 欧美| 五月天激情婷婷小说| 五月丁香综合| 色五月自偷自拍婷婷婷婷| 欧美丰满熟妇BBB久久久| 超碰资源在线| 99热这里只有精品最新地址获取| 日韩婷婷五月| 久久亚洲无码| 超碰色碰碰| www色色com| 久超超碰| 99精品小视频| 这里只有精品99www| 九九99精品| 色五月婷婷1| 天天综合天综合久久网| 五月天丁香| 婷婷内射视频在线| 五月丁香六月婷婷开心网| 十月丁香婷婷| 超碰99热| 丁香六月婷婷综合啪啪| 久久久久久9热不雅视频| 国产乱子轮XXX农村| 久久综合激情| 色久综合| 日日噜狠狠色| 亚洲中文乱字字幕线在永久| 九月丁香婷婷综合激情| 久9热视频在线观看| 激情五月瑟瑟| 六月五月天婷婷涩播在线| 玖玖色综合| 另类视频在线| xxxx久| 亚洲五月天婷婷| 日韩av网址大全| 狠狠狠狠狠狠草| 婷婷国产综合| 99操逼| 美欧日韩国产成人在战| 大香蕉七区| 婷婷五月综合免费在线| 五月婷婷 激情按摩| 被强行糟蹋的女人A片| 激情五月综合婷婷| 97人人超| 综合啪啪| 久99久在线| 最新久久网址| 五月天丁香成人| 丁五月激情视频免费| 激情综合丁香五月| 六月婷婷久久大全| 中国激情网| 午夜激情五月| AV79| dingxiangtingtingliuyue| 色大综合| 丁香五月婷婷乱| 婷婷五月永远18免费久久久| 免费99情趣网视频| 99热久久这里只有精品| WWW.夜夜操.com| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 狠狠精品干练久久久无码中文字幕 | 五月天婷婷色播综合在线| 国产精品A成V人在线播放| 五月天激情国产综合婷婷婷 | 六月婷婷久久| 黄网免费观看| 久九色| 操91| 99操视频| 国产人妻人伦精品一区二区| 性一交一乱一交A片久| 精品一二三区久久AAA片| 欧美成人精品A片免费一区99| 人妻久久久久久| 无码少妇高潮喷水A片免费| 激情综合五月天| 国产欧美性成人精品午夜| 九九九九操逼| 97超级碰| 日本9区视频| 久久久五月天网站| www.五月天婷婷| 超碰成人在线观看| 久久五月丁香婷婷| 思思视频精品| 五月天婷爱综合| 五月天伊人手机在线播放AV| 桔色成人在线| 色99在线| 丁香九月婷| 99性爱视频| 日本不卡一区二区三区| 色啦啦视频| 天天久久九九| 97色图片中文字幕视频在线观看| 99热99久久| 欧美色图45678| 丁香五月亭亭六月综合激情网| 99视频在线观看欧| 中文在线视频久1| 激情av在线| 色情婷婷五月天| 风流少妇A片一区二区蜜桃| 久久您您综合网| 亚洲成人无码免费| 91操片| 亚洲色色在线| 色婷婷丁香五月色综合网| 婷婷丁香人妻天天爽| 人妻激情综合| AV大香蕉| 丁香花综合永久入口| 在线观看亚洲AV| 一级黄色影片| 婷婷丁香视频| 思思精品视频| 色婷婷成人| 香蕉人妻AV久久久久天天| 色婷婷亚洲综合av| YJLZZJLZZ亚洲乱熟无码| site:jszngf.com| 这里只有精彩亚洲视频推荐| 五月丁香自拍| 色婷婷激情| 另类亚洲电影| 丁香五月婷婷激情网| 极品 少妇 内射| 亚洲男女激情| www婷婷| 西西4r午夜剧场| 久久婷婷五月综合色奶水99啪| 久婷婷五月激情| 欧美人人草| 九九色精品| 五月婷婷影视| 五月婷婷亚洲| 玖玖资源网站最新站| 天天弄天天操| 五月丁香综合激情| 激情骚五月| 五月婷婷丁香啪啪| 激情综合色播| 天天日天天摸| 激情性爱婷婷| 色天天综合天天综合频道。| www.99成人视频| 婷婷久久五月天| 超碰69天堂| 91性高潮久久久久久久久| 亚洲色欲AAAAAA| 五月婷婷亚洲| 色综合综合综合| 丁香五月婷婷亚洲综合精品| 日韩久久这里只有精品| 激情综合色图| 这里只有精品96| 激情久久久久久| 精品一区二区三区木瓜| 99热爱爱干干日| 超碰99热精品在线| 国产成人网址| 99精品小视频| 91丨九色丨国产打屁股| 百度4399有码精品V在线观看| 操笔无码| 丁香五月色网| 五月婷婷很很色| 婷婷五月天色色| 婷婷五月综合激情免费| 九九色精品| 99九九在线视频| 六月天六月婷| 婷婷五月天激情文学| 九九九九九九九九九九九九九国产精品| 99热色无码| 久久美女五月天| 亚洲精品一区中文字幕乱码| 99自拍网| 99热这里只有精彩| 精品一二三区久久AAA片| 97色色婷婷五月天| 99er久久| 五月丁香亭亭| 亚洲AV人人操| 婷婷色五月在线视频| 欧美搡BBBBB摔BBBBB| 婷婷99视频精品| 婷婷丁香五月亚洲免费| 久久婷婷五月天| 亚洲精品影视| 九九無妻| 99热 日韩| 99热国产国产| 五月香婷婷| www.久久久久久久久久久| 色五月丁香在线| 人妻久久久| 97碰碰在线看视频免费| 精品久久久人妻| 艹B高清无码| 成人五月天在线观看| 久久婷婷五月综合色奶水99啪| 热久久这里只有三级视频| 伊人国产婷婷五月天| 五月丁香综合激情| 六月婷婷av| 亚洲激情综合| 91主播在线| 天天色天天噜| 极品少妇高潮啪啪AV无码| 97色色婷婷| av在线中文| 欧美人人超级碰| 丁香五月天激情网| 欧美精品在线观看| 色播五月婷婷综合| 久久机热/这里只有精品| 国产精品99久久久久久猫咪| 99精品视频免费观看| 五月婷婷先锋| 五月丁香婷庭在线| 精品9197碰| 天天爽,天天操。| 大香蕉九九| 久久视这里只有精品| 99性视频| 91热在线| www99精品| 日韩超碰在线| 色欲久久久久久综合网综合网| 狠狠色丁香久久综合婷婷亚洲成人福利 | 五月天国产婷婷精品视频在线| 久久久久久久久久久-久五月天婷婷| 日本丁香五月婷婷| 久热婷婷| 五月激情丁香久久综合网| 狠狠干,狠狠操| 看婷婷五月天网| 99亚洲精品视频| 成人日韩欧美| 四色五月婷婷| 狠狠做五月| 熟女激情五月天| 亚洲成人在线播放| 色色射| 人人草公开操| 中文字幕黄色片| 99re这里只有精品国产99| 激情五月婷婷综合| 99 频99热国里只有精品| 丁香五月婷婷色| 日本人妻丁香婷婷久久寝取熟女五月| 五月天成人综合| www..com色爱| 日韩艹比| 丁香五月婷婷综合网| 色婷婷精品视频在线播放| 五月丁香婷爱在线| 久久九九re热| 婷婷五月色综合| 亚洲不卡| 久久久久久人妻| 狠狠干2007| 激情四射亚洲| 亚洲另类噜噜| 亚洲色婷婷久久99精品91| 五月激情婷婷播播开心| 在线观看亚洲视频影院| 色色激情五月天| 婷婷丁香视频在线观看免费 | 久久婷婷亚洲| 久综合色| 婷婷激情图片| 婷婷五月天伦理| 久久久久9久无码视频| 婷婷五月综合激情免费| 香蕉大综综综合久久| 久操激情| 丁香婷婷激情综合五月激情| CHINESE熟女老女人HD视频| 激情狠狠丁香月| 人操91在线| 超碰在线超碰| 婷婷开心深爱五月天| 亚洲精品久久久久久久久久吃药| 五月天激情婷婷小说| 色婷九九九| 久久精品婷婷| 亚洲在线激情婷婷五月| 97碰碰九九视频| 天天干天天插| 色色五月婷| JAPANRCEP老熟妇乱子伦视频 | 99九九热在线观看| 99热婷婷| 丁香五月天成人| 狠狠色丁香婷婷久久综合| 久热婷婷| 天天舔天天| 性爱五月婷婷| 国产一级片| 精品福利911| 国内在线99视频| 久久久久激情| 五月综合激情图片 | 色婷婷久久| 婷婷五月伦理| 国产精品操| 91九色精品熟女内射| 色婷婷综合网站| 任你日视频| 中文字幕乱码亚洲精品一区| 色色射| 色五月天影视| 九日日夜夜69| 婷婷色导航| 欧美亚洲色色色色| 9热在线观看| 26uuu美女三级视频| 亚洲成人av在线观看| 五月婷婷av| 婷婷五月天手机版视频| 婷婷五月天网址| 五月丁香网站| 综合网亚洲| 天天日日人| 激情五月婷色| 亚洲六月婷婷| 色色综合网络| 五月开心婷婷网| 色五月色开心开心五月| 婷婷在线精品| 五月激情综合深爱| 亚洲AV网站| 在线不卡AC| 狠狠色丁香| 啄木鸟丝袜美女福利视频 | 久久五月热| 久久99网| 日日爽日日| 丁香五月AV综合| 久久天堂精品| 人妻体体内射精一区二区| 日本色色网站| 第四色婷婷色五月| 激情综合色| 亚洲成人AV在线| 嫩草AV久久伊人妇女超级A| 五月天涩涩| 怡红院99| 98永久精品| 又大又粗九一在线| 色色五月丁香| 色播五月婷婷五月| WWW、日本色丁香co m| 伊人久久大香天蕉亚洲特级| 国产SUV精品一区二区6| 性视频久久| 日日狠狠久久偷偷四色综合免费| 九九热a| 丁香五月婷婷少妇| 蜜桃人妻无码AV天堂三区| 99热丁香| 99热国产在线| 亚洲精品五十一区| 亚洲AV网址| 日本操B片| 风流少妇A片一区二区蜜桃| 9色在线视频| 色五月女| 色婷激情网| 丁香五月婷婷六月婷婷| www.久久爱.c n| 久久ri精品| 99啪啪视频| 婷婷综合色图| 五月丁香亚洲综合| 99热大片| 色波激情五月天| AA久久| 日韩精品一区二区刘| 亚洲午夜成人av电影网| 五月天伊人| 97在线刺激| 99久在线精品99re8| 成人欧美Va| caopeng超碰| 久久婷色| 色九亚洲| 免费AV在线网址| 91人妻人人操| 少妇被躁爽到高潮无码文| 色婷婷婷婷| 久久婷婷成人| 操骚货在线| 五月丁香婷婷成人综合网| 欧美毛片www| 久婷婷五月激情| 五月婷婷色| PORNY九色9l自拍视频成人| 99在线视频女女视频| 99久久五月婷婷| 五月桃花网综合| 亚洲视频一区| 欧美激情五月天| 激情五月色婷婷| 丁香五月激情啪啪| 伊人超碰| 成人版视频在线观看| 亚洲热热视频| 婷婷五月天开心激情网| 淫荡综合网| 五月丁香伊人网| 成人色情五月天婷婷丁香| 人人澡天天色天天做| 99色色爰| 婷婷色导航| 精品成人久久久久久久_一二三四视| 久久综合中文字幕| 色播五月综合网| 丁香五月天激情四射网| 影音先锋综合网| 99在线综合视频| 五月婷天堂视频| 超碰在线资源| 91seAV| 久久久久久久久久久久63| 亚洲综合欧美色丁香婷婷888月图片| 婷婷福利影院| 69久久久| 激情五月婷色| 激情综合婷婷久久| 久久日韩婷婷五月| 99热一本久道| 日本三级毛片| 色天堂A| 任我肏| 99综合网| 色视频2025| 婷婷爱综合| 丁香综合伊人AV| 五月丁香六月婷婷亚洲|