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)前,我們首先要對(duì)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碼長(zhǎng)度。其中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ù)場(chǎng)填充錯(cuò)誤。
圖3.數(shù)據(jù)場(chǎng)填充錯(cuò)誤
為什么會(huì)這樣呢?我們首先分別獲取兩個(gè)CAN卡發(fā)送報(bào)文對(duì)應(yīng)的波形,如圖4。因?yàn)閮舍槇?bào)文同為標(biāo)準(zhǔn)數(shù)據(jù)幀,且每幀包含8個(gè)字節(jié)數(shù)據(jù),所以兩幀報(bào)文對(duì)應(yīng)的波形在ID段、RTR、IDE、R0以及DLC段完全一致。因此,仲裁作用失效,兩節(jié)點(diǎn)都認(rèn)為自己獲得了優(yōu)先權(quán),繼續(xù)發(fā)送數(shù)據(jù)。
圖4.報(bào)文對(duì)應(yīng)波形對(duì)比
現(xiàn)在我們聚焦數(shù)據(jù)段,第一個(gè)字節(jié)數(shù)據(jù)相同,均為為00H;第二個(gè)字節(jié)數(shù)據(jù)不同,分別為01H、02H。圖5箭頭標(biāo)示處可以看到兩者對(duì)應(yīng)位的邏輯分別為0和1。前面我們提到CAN節(jié)點(diǎn)在發(fā)送報(bào)文的同時(shí)會(huì)檢測(cè)總線電平是否與自己發(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ù)場(chǎng)填充錯(cuò)誤,如圖3。
圖5.數(shù)據(jù)場(chǎng)沖突
四、實(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ò)誤。簡(jiǎn)單說來這種情形就類似于總線中只有一個(gè)節(jié)點(diǎn)將不能實(shí)現(xiàn)數(shù)據(jù)發(fā)送。圖7是在ACK段有無應(yīng)答時(shí)的波形對(duì)比。
圖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ù)場(chǎng)填充錯(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ò)誤。因此,我們?cè)谠O(shè)計(jì)CAN總線時(shí)應(yīng)避免ID段相同的情況出現(xiàn)。
特別推薦
- 是否存在有關(guān) PCB 走線電感的經(jīng)驗(yàn)法則?
- 一文看懂電壓轉(zhuǎn)換的級(jí)聯(lián)和混合概念
- 第12講:三菱電機(jī)高壓SiC芯片技術(shù)
- 準(zhǔn) Z 源逆變器的設(shè)計(jì)
- 貿(mào)澤電子持續(xù)擴(kuò)充工業(yè)自動(dòng)化產(chǎn)品陣容
- 低功耗嵌入式設(shè)計(jì)簡(jiǎn)介
- 如何通過基本描述找到需要的電容?
技術(shù)文章更多>>
- 瑞典名企Roxtec助力構(gòu)建安全防線
- 貿(mào)澤與Cinch聯(lián)手發(fā)布全新電子書深入探討惡劣環(huán)境中的連接應(yīng)用
- 第二十二屆中國國際軟件合作洽談會(huì)在成都順利舉行
- 混合信號(hào)示波器的原理和應(yīng)用
- 功率器件熱設(shè)計(jì)基礎(chǔ)(十)——功率半導(dǎo)體器件的結(jié)構(gòu)函數(shù)
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
空心線圈
控制變壓器
控制模塊
藍(lán)牙
藍(lán)牙4.0
藍(lán)牙模塊
浪涌保護(hù)器
雷度電子
鋰電池
利爾達(dá)
連接器
流量單位
漏電保護(hù)器
濾波電感
濾波器
路由器設(shè)置
鋁電解電容
鋁殼電阻
邏輯IC
馬達(dá)控制
麥克風(fēng)
脈沖變壓器
鉚接設(shè)備
夢(mèng)想電子
模擬鎖相環(huán)
耐壓測(cè)試儀
逆變器
逆導(dǎo)可控硅
鎳鎘電池
鎳氫電池