在前文一文讀懂CAN總線(一)中我們簡(jiǎn)單介紹了CAN通訊協(xié)議,講了標(biāo)準(zhǔn)CAN和擴(kuò)展CAN以及CAN消息類型,在本文中將繼續(xù)為大家深入講解CAN總線的位填充機(jī)制、錯(cuò)誤檢測(cè)和故障界定、網(wǎng)絡(luò)拓?fù)洹⒔K端匹配、電纜與接線、差分信號(hào)電壓幅值。
位填充機(jī)制
定義及機(jī)制形式
幀起始、仲裁域、控制域、數(shù)據(jù)域以及CRC校驗(yàn)和域,均通過位填充方法編碼。
位填充是指:
無論何時(shí),發(fā)送器只要檢測(cè)到位流中有5個(gè)連續(xù)相同邏輯的位,便會(huì)自動(dòng)在位流中插入一個(gè)補(bǔ)碼位。
舉例來說,如果連續(xù)5個(gè)顯性位,則在5個(gè)顯性位之后自動(dòng)插入1個(gè)隱性位,接收器會(huì)自動(dòng)刪除這個(gè)插入的填充位。
數(shù)據(jù)幀或遠(yuǎn)程幀的剩余位域(CRC界定符、應(yīng)答域和幀結(jié)尾域)形式固定,不填充;錯(cuò)誤幀和過載幀也不填充。
作用
1.CAN網(wǎng)絡(luò)同步需要足夠多的上升沿,這是CAN協(xié)議規(guī)定位填充的目的之一。
2.確保數(shù)據(jù)幀不會(huì)被當(dāng)作錯(cuò)誤幀(由6個(gè)連續(xù)的顯性或隱性位組成)、確保正確識(shí)別幀結(jié)束標(biāo)志(7個(gè)連續(xù)隱性位)。
錯(cuò)誤檢測(cè)和故障界定
CAN總線具有很高的“健壯性”,這是因?yàn)镃AN具有多種錯(cuò)誤檢查機(jī)制。
CAN協(xié)議制定了5種錯(cuò)誤檢測(cè)方法,3種位于報(bào)文層,2種位于位流層。
如果一個(gè)數(shù)據(jù)幀出現(xiàn)錯(cuò)誤,那么這個(gè)幀會(huì)被丟棄,并且接收節(jié)點(diǎn)還會(huì)發(fā)送一個(gè)錯(cuò)誤幀。這會(huì)強(qiáng)制發(fā)送節(jié)點(diǎn)重復(fù)發(fā)送出錯(cuò)的報(bào)文,直到接收節(jié)點(diǎn)正確接收;如果同一個(gè)報(bào)文重復(fù)出錯(cuò),達(dá)到一定次數(shù)后,發(fā)送節(jié)點(diǎn)可以關(guān)閉發(fā)送功能以降低對(duì)總線的影響。
報(bào)文層錯(cuò)誤檢測(cè)
報(bào)文層的錯(cuò)誤檢測(cè)包括CRC和ACK。
CRC域包含15位校驗(yàn)、1位界定符;ACK域包括1位應(yīng)答位、1位界定符。
CRC校驗(yàn)錯(cuò)誤
CRC校驗(yàn)錯(cuò)誤很好理解,它對(duì)數(shù)據(jù)域以及數(shù)據(jù)域之前的位生產(chǎn)CRC校驗(yàn)。由于一幀CAN報(bào)文數(shù)據(jù)流很?。ㄗ疃?個(gè)用戶數(shù)據(jù)),所以15位CRC的偵錯(cuò)能力非常優(yōu)秀。
ACK校驗(yàn)錯(cuò)誤
ACK域是怎么起作用的呢?
這是由CAN協(xié)議規(guī)定的,即發(fā)送節(jié)點(diǎn)發(fā)送一幀數(shù)據(jù)后,接收節(jié)點(diǎn)必須向發(fā)送節(jié)點(diǎn)應(yīng)答,如果發(fā)送節(jié)點(diǎn)沒有收到接收節(jié)點(diǎn)的應(yīng)答信號(hào),就會(huì)認(rèn)為自己發(fā)送失敗,從而重傳數(shù)據(jù)。
報(bào)文層的第三種錯(cuò)誤檢查方法是
格式檢查
。這種檢查會(huì)監(jiān)控報(bào)文中那些一定為隱性位的域,如果這些域中出現(xiàn)顯性位,則檢測(cè)到格式錯(cuò)誤。這些域包括SOF、EOF、ACK的界定符和CRC的界定符。
位流層錯(cuò)誤檢測(cè)
位錯(cuò)誤
位流層的錯(cuò)誤檢測(cè)之一是發(fā)送到總線上的每一個(gè)數(shù)據(jù)位,都會(huì)被監(jiān)視,如果發(fā)現(xiàn)發(fā)送的位和總線上的位不相同時(shí),產(chǎn)生位錯(cuò)誤。
這種監(jiān)視機(jī)制并不會(huì)監(jiān)視仲裁域的位,這是因?yàn)槎鄠€(gè)節(jié)點(diǎn)同時(shí)競(jìng)爭(zhēng)總線時(shí),優(yōu)先級(jí)高的節(jié)點(diǎn)可能會(huì)覆寫總線上的仲裁域位。
位填充規(guī)則
位流層的另外一個(gè)錯(cuò)誤檢測(cè)機(jī)制是位填充規(guī)則:5個(gè)連續(xù)相同邏輯位之后,如果第6個(gè)位的邏輯還和前五個(gè)相同,則產(chǎn)生位填充錯(cuò)誤。
網(wǎng)絡(luò)拓?fù)?/strong>
CAN使用差分信號(hào),需要一對(duì)信號(hào)線,推薦使用雙絞線,網(wǎng)絡(luò)拓?fù)淙缦聢D所示。

CAN總線網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖
使用差分信號(hào)可以抑制共模干擾、能夠增加系統(tǒng)可靠性,允許使用更高的速率。
高速ISO11898標(biāo)準(zhǔn)規(guī)定了CAN傳輸最高速率為1Mbps,在這個(gè)速率下,傳輸距離最長(zhǎng)40米(掛接30個(gè)節(jié)點(diǎn),CAN信號(hào)不隔離)。推薦節(jié)點(diǎn)分支長(zhǎng)度最大為0.3米、使用帶屏蔽或不帶屏蔽的雙絞線,線纜特性阻抗為120歐姆。
終端匹配
終端匹配電阻大小等于傳輸電纜特性阻抗,傳輸電纜特性阻抗由電纜供應(yīng)商提供,一般近似為:
Z=√(L/C)
其中L為電纜單位長(zhǎng)度感抗,C為電纜單位長(zhǎng)度電容。
由于CAN收發(fā)器結(jié)構(gòu),從隱性變成顯性由晶體管驅(qū)動(dòng),所以都是很陡的,但是從顯性回到隱性,卻需要終端電阻來放電,否則就會(huì)由于導(dǎo)線分布電容,緩慢放電,導(dǎo)致位寬錯(cuò)誤。
所以所謂的近距離、低波特率CAN總線不加終端電阻的做法,都是錯(cuò)誤的。
RS485與CAN總線不同,由于RS485收發(fā)器中一般都內(nèi)置失效保護(hù)電路,在近距離、低波特率下允許不加終端匹配電阻。
電纜與接線
CAN總線采用差分信號(hào)傳輸,如果使用帶屏蔽雙絞線,屏蔽層應(yīng)單點(diǎn)接地。

帶單屏蔽層的CAN電纜剖析與連接線示范
通常電纜截面積越小,其分布電容、分布電感和直流電阻越大。當(dāng)通訊距離較遠(yuǎn)時(shí),電容、電感和直流電阻會(huì)引起信號(hào)衰減,波形失真和抖動(dòng)。
一般情況下,電纜供應(yīng)商會(huì)提供信號(hào)衰減圖表。

24-AWG電纜衰減和頻率的關(guān)系
差分信號(hào)電壓幅值

CAN電平幅值
如上圖所示,兩條信號(hào)線CAN_H和CAN_L靜態(tài)時(shí)均為2.5V左右,此時(shí)狀態(tài)表示邏輯1,稱作隱性;CAN_H比CAN_L高表示邏輯0,稱為顯性,此時(shí)通常CAN_H電壓3.5V、CAN_L電壓1.5V。

差分電壓幅值與電平極性關(guān)系
CAN標(biāo)準(zhǔn)規(guī)定,CAN總線上的差分電壓>0.9V才能被識(shí)別成顯性電平,<0.5V才能被識(shí)別成隱性電平,0.5~0.9之間的電平不能確定電平極性。如上圖所示。?

終端匹配電阻數(shù)目與差分電壓幅值關(guān)系
在實(shí)際項(xiàng)目布線時(shí),容易漏加或者多加終端匹配電阻。我們可以通過測(cè)量CAN差分電壓幅值來評(píng)估是否漏加或多加終端匹配電阻。
如果不計(jì)導(dǎo)線電阻,終端電阻固定為120歐姆,單節(jié)點(diǎn)CAN總線差分電壓如上圖所示。
-
CAN總線
+關(guān)注
關(guān)注
145文章
2043瀏覽量
135228 -
差分信號(hào)
+關(guān)注
關(guān)注
4文章
408瀏覽量
29013 -
網(wǎng)絡(luò)拓?fù)?/span>
+關(guān)注
關(guān)注
0文章
106瀏覽量
12602 -
終端匹配
+關(guān)注
關(guān)注
0文章
3瀏覽量
6093
發(fā)布評(píng)論請(qǐng)先 登錄
CAN網(wǎng)關(guān)的外形結(jié)構(gòu)及CAN信號(hào)轉(zhuǎn)發(fā)機(jī)制
高速CAN總線和低速CAN總線的特性
什么是CAN總線通信?CAN總線工作原理
國產(chǎn)C2000,P2P替代TMS320F280049C,獨(dú)立雙核32位CPU,主頻高達(dá)400MHz
基于數(shù)字伺服控制器的吊艙陀螺穩(wěn)定平臺(tái)設(shè)計(jì)
CAN總線輕松入門與實(shí)踐_部分2
CAN總線定義與CAN協(xié)議的基本概念
iMX6ULL開發(fā)板WIFI功能測(cè)試(一)
高速CAN總線和低速CAN總線區(qū)別分析
can總線負(fù)載節(jié)點(diǎn)數(shù)量
什么是CAN總線?-2
評(píng)論