CAN總線中節(jié)點(diǎn)ID相同會(huì)如何?
發(fā)布時(shí)間:2017-08-31 責(zé)任編輯:susan
【導(dǎo)讀】CAN-bus網(wǎng)絡(luò)中原則上不允許兩個(gè)節(jié)點(diǎn)具有相同的ID段,但如果兩個(gè)節(jié)點(diǎn)ID段相同會(huì)怎樣呢?實(shí)驗(yàn)前,我們首先要對CAN報(bào)文的結(jié)構(gòu)組成、仲裁原理有清晰的認(rèn)識(shí)。
一、CAN報(bào)文結(jié)構(gòu)
目前使用最廣泛的CAN-bus網(wǎng)絡(luò)標(biāo)準(zhǔn)是V2.0版本,該標(biāo)準(zhǔn)又分為A、B兩部分,它們主要的區(qū)別在仲裁區(qū)域的ID碼長度。其中CAN2.0A(標(biāo)準(zhǔn)幀)為11位ID,CAN2.0B(擴(kuò)展幀)為29位ID。下表1為CAN報(bào)文結(jié)構(gòu):
表1.CAN報(bào)文結(jié)構(gòu)
二、仲裁原理
CAN總線的仲裁是基于“線與原理”,如圖1所示。當(dāng)個(gè)收發(fā)器同時(shí)發(fā)出不同電平信號(hào)時(shí),隱性電平總是被顯性電平覆蓋。CAN控制器在發(fā)送報(bào)文的同時(shí)會(huì)監(jiān)聽總線狀態(tài)與自己發(fā)送的電平是否一致,如果不一致發(fā)生在ID段則會(huì)發(fā)生仲裁,如果發(fā)生在其他區(qū)域則會(huì)觸發(fā)相應(yīng)錯(cuò)誤。
圖1.線“與”示意圖
下面進(jìn)入重點(diǎn),如果兩個(gè)節(jié)點(diǎn)ID段相同會(huì)怎樣?我們用兩個(gè)CAN卡 和一臺(tái)CANScope開始實(shí)驗(yàn),CAN卡模擬CAN標(biāo)準(zhǔn)節(jié)點(diǎn)收發(fā)報(bào)文,CANScope做通信監(jiān)控,如圖2所示。(注:CAN卡為USB轉(zhuǎn)CAN工具,CANScope為CAN總線分析儀,產(chǎn)品詳見ZLG致遠(yuǎn)電子官網(wǎng))
圖2.實(shí)驗(yàn)平臺(tái)搭建
三、實(shí)驗(yàn)一“ID段相同但數(shù)據(jù)不同”
使用一個(gè)CAN卡發(fā)送ID為000H數(shù)據(jù)為01020304050607H的CAN幀,使用另一個(gè)CAN卡發(fā)送ID為000H數(shù)據(jù)為02020304050607H的CAN幀。CANScope監(jiān)聽的數(shù)據(jù)如圖3所示,可以觀察到有大量的數(shù)據(jù)場填充錯(cuò)誤。
圖3.數(shù)據(jù)場填充錯(cuò)誤
為什么會(huì)這樣呢?我們首先分別獲取兩個(gè)CAN卡發(fā)送報(bào)文對應(yīng)的波形,如圖4。因?yàn)閮舍槇?bào)文同為標(biāo)準(zhǔn)數(shù)據(jù)幀,且每幀包含8個(gè)字節(jié)數(shù)據(jù),所以兩幀報(bào)文對應(yīng)的波形在ID段、RTR、IDE、R0以及DLC段完全一致。因此,仲裁作用失效,兩節(jié)點(diǎn)都認(rèn)為自己獲得了優(yōu)先權(quán),繼續(xù)發(fā)送數(shù)據(jù)。
圖4.報(bào)文對應(yīng)波形對比
現(xiàn)在我們聚焦數(shù)據(jù)段,第一個(gè)字節(jié)數(shù)據(jù)相同,均為為00H;第二個(gè)字節(jié)數(shù)據(jù)不同,分別為01H、02H。圖5箭頭標(biāo)示處可以看到兩者對應(yīng)位的邏輯分別為0和1。前面我們提到CAN節(jié)點(diǎn)在發(fā)送報(bào)文的同時(shí)會(huì)檢測總線電平是否與自己發(fā)送的電平一致,若不一致發(fā)生在非仲裁區(qū)域則觸發(fā)相應(yīng)錯(cuò)誤,因此若這兩幀報(bào)文同時(shí)發(fā)送到總線上必將發(fā)生位發(fā)送錯(cuò)誤。因?yàn)槲话l(fā)送錯(cuò)誤會(huì)引起節(jié)點(diǎn)發(fā)送違反填充規(guī)則的6個(gè)顯性位(主動(dòng)錯(cuò)誤破壞該幀數(shù)據(jù)),故出現(xiàn)數(shù)據(jù)場填充錯(cuò)誤,如圖3。
圖5.數(shù)據(jù)場沖突
四、實(shí)驗(yàn)二“ID相同數(shù)據(jù)也相同”
同時(shí)使用兩個(gè)CAN卡發(fā)送ID為000H數(shù)據(jù)為01020304050607H的CAN幀,CANScope做通信監(jiān)控。首先,我們不勾選“總線應(yīng)答”選項(xiàng),使CANScope工作在僅監(jiān)聽模式。實(shí)驗(yàn)結(jié)果如圖6所示,出現(xiàn)的是應(yīng)答定界符格式錯(cuò)誤。
圖6.應(yīng)答界定符格式錯(cuò)誤
為什么會(huì)發(fā)生這種錯(cuò)誤呢?發(fā)送報(bào)文的節(jié)點(diǎn)會(huì)在ACK段發(fā)送兩個(gè)隱性位,若在第一個(gè)位期間接收到顯性電平則認(rèn)為該幀被正確接收。由于仲裁段相同時(shí)兩節(jié)點(diǎn)都認(rèn)為自己取得仲裁權(quán),在ACK段等待應(yīng)答,但該網(wǎng)絡(luò)中僅存在兩個(gè)節(jié)點(diǎn),因此在ACK段不能收到應(yīng)答,進(jìn)而發(fā)生應(yīng)答定界符錯(cuò)誤。簡單說來這種情形就類似于總線中只有一個(gè)節(jié)點(diǎn)將不能實(shí)現(xiàn)數(shù)據(jù)發(fā)送。圖7是在ACK段有無應(yīng)答時(shí)的波形對比。
圖7.ACK應(yīng)答
我們勾選上總線應(yīng)答,再次開始實(shí)驗(yàn)(此時(shí)總線中相當(dāng)于有3個(gè)節(jié)點(diǎn))。這時(shí)如圖8所示,總線數(shù)據(jù)收發(fā)正常。
圖8.啟動(dòng)總線應(yīng)答
總結(jié):當(dāng)兩節(jié)點(diǎn)同時(shí)發(fā)送ID相同數(shù)據(jù)不同的報(bào)文時(shí),將發(fā)生數(shù)據(jù)場填充錯(cuò)誤;當(dāng)兩節(jié)點(diǎn)同時(shí)發(fā)送ID相同數(shù)據(jù)也相同的報(bào)文時(shí),若有其他節(jié)點(diǎn)應(yīng)答則不發(fā)生錯(cuò)誤,若無其他節(jié)點(diǎn)應(yīng)答則發(fā)生應(yīng)答錯(cuò)誤。因此,我們在設(shè)計(jì)CAN總線時(shí)應(yīng)避免ID段相同的情況出現(xiàn)。
特別推薦
- 授權(quán)代理商貿(mào)澤電子供應(yīng)Same Sky多樣化電子元器件
- 使用合適的窗口電壓監(jiān)控器優(yōu)化系統(tǒng)設(shè)計(jì)
- ADI電機(jī)運(yùn)動(dòng)控制解決方案 驅(qū)動(dòng)智能運(yùn)動(dòng)新時(shí)代
- 倍福推出采用 TwinSAFE SC 技術(shù)的 EtherCAT 端子模塊 EL3453-0090
- TDK推出新的X系列環(huán)保型SMD壓敏電阻
- Vishay 推出新款采用0102、0204和 0207封裝的精密薄膜MELF電阻
- Microchip推出新款交鑰匙電容式觸摸控制器產(chǎn)品 MTCH2120
技術(shù)文章更多>>
- 更高精度、更低噪音 GMCC美芝電子膨脹閥以創(chuàng)新?lián)屨夹袠I(yè)“制高點(diǎn)”
- 本立租完成近億元估值Pre-A輪融資,打造AI賦能的租賃服務(wù)平臺(tái)
- 中微公司成功從美國國防部中國軍事企業(yè)清單中移除
- 華邦電子白皮書:滿足歐盟無線電設(shè)備指令(RED)信息安全標(biāo)準(zhǔn)
- 功率器件熱設(shè)計(jì)基礎(chǔ)(九)——功率半導(dǎo)體模塊的熱擴(kuò)散
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索