在前文一文讀懂CAN總線(一)中我們簡單介紹了CAN通訊協(xié)議,講了標(biāo)準(zhǔn)CAN和擴(kuò)展CAN以及CAN消息類型,在本文中將繼續(xù)為大家深入講解CAN總線的位填充機(jī)制、錯誤檢測和故障界定、網(wǎng)絡(luò)拓?fù)?、終端匹配、電纜與接線、差分信號電壓幅值。
位填充機(jī)制
定義及機(jī)制形式
幀起始、仲裁域、控制域、數(shù)據(jù)域以及CRC校驗(yàn)和域,均通過位填充方法編碼。
位填充是指:
無論何時,發(fā)送器只要檢測到位流中有5個連續(xù)相同邏輯的位,便會自動在位流中插入一個補(bǔ)碼位。
舉例來說,如果連續(xù)5個顯性位,則在5個顯性位之后自動插入1個隱性位,接收器會自動刪除這個插入的填充位。
數(shù)據(jù)幀或遠(yuǎn)程幀的剩余位域(CRC界定符、應(yīng)答域和幀結(jié)尾域)形式固定,不填充;錯誤幀和過載幀也不填充。
作用
1.CAN網(wǎng)絡(luò)同步需要足夠多的上升沿,這是CAN協(xié)議規(guī)定位填充的目的之一。
2.確保數(shù)據(jù)幀不會被當(dāng)作錯誤幀(由6個連續(xù)的顯性或隱性位組成)、確保正確識別幀結(jié)束標(biāo)志(7個連續(xù)隱性位)。
錯誤檢測和故障界定
CAN總線具有很高的“健壯性”,這是因?yàn)镃AN具有多種錯誤檢查機(jī)制。
CAN協(xié)議制定了5種錯誤檢測方法,3種位于報文層,2種位于位流層。
如果一個數(shù)據(jù)幀出現(xiàn)錯誤,那么這個幀會被丟棄,并且接收節(jié)點(diǎn)還會發(fā)送一個錯誤幀。這會強(qiáng)制發(fā)送節(jié)點(diǎn)重復(fù)發(fā)送出錯的報文,直到接收節(jié)點(diǎn)正確接收;如果同一個報文重復(fù)出錯,達(dá)到一定次數(shù)后,發(fā)送節(jié)點(diǎn)可以關(guān)閉發(fā)送功能以降低對總線的影響。
報文層錯誤檢測
報文層的錯誤檢測包括CRC和ACK。
CRC域包含15位校驗(yàn)、1位界定符;ACK域包括1位應(yīng)答位、1位界定符。
CRC校驗(yàn)錯誤
CRC校驗(yàn)錯誤很好理解,它對數(shù)據(jù)域以及數(shù)據(jù)域之前的位生產(chǎn)CRC校驗(yàn)。由于一幀CAN報文數(shù)據(jù)流很?。ㄗ疃?個用戶數(shù)據(jù)),所以15位CRC的偵錯能力非常優(yōu)秀。
ACK校驗(yàn)錯誤
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)答信號,就會認(rèn)為自己發(fā)送失敗,從而重傳數(shù)據(jù)。
報文層的第三種錯誤檢查方法是
格式檢查
。這種檢查會監(jiān)控報文中那些一定為隱性位的域,如果這些域中出現(xiàn)顯性位,則檢測到格式錯誤。這些域包括SOF、EOF、ACK的界定符和CRC的界定符。
位流層錯誤檢測
位錯誤
位流層的錯誤檢測之一是發(fā)送到總線上的每一個數(shù)據(jù)位,都會被監(jiān)視,如果發(fā)現(xiàn)發(fā)送的位和總線上的位不相同時,產(chǎn)生位錯誤。
這種監(jiān)視機(jī)制并不會監(jiān)視仲裁域的位,這是因?yàn)槎鄠€節(jié)點(diǎn)同時競爭總線時,優(yōu)先級高的節(jié)點(diǎn)可能會覆寫總線上的仲裁域位。
位填充規(guī)則
位流層的另外一個錯誤檢測機(jī)制是位填充規(guī)則:5個連續(xù)相同邏輯位之后,如果第6個位的邏輯還和前五個相同,則產(chǎn)生位填充錯誤。
網(wǎng)絡(luò)拓?fù)?/strong>
CAN使用差分信號,需要一對信號線,推薦使用雙絞線,網(wǎng)絡(luò)拓?fù)淙缦聢D所示。
CAN總線網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖
使用差分信號可以抑制共模干擾、能夠增加系統(tǒng)可靠性,允許使用更高的速率。
高速ISO11898標(biāo)準(zhǔn)規(guī)定了CAN傳輸最高速率為1Mbps,在這個速率下,傳輸距離最長40米(掛接30個節(jié)點(diǎn),CAN信號不隔離)。推薦節(jié)點(diǎn)分支長度最大為0.3米、使用帶屏蔽或不帶屏蔽的雙絞線,線纜特性阻抗為120歐姆。
終端匹配
終端匹配電阻大小等于傳輸電纜特性阻抗,傳輸電纜特性阻抗由電纜供應(yīng)商提供,一般近似為:
Z=√(L/C)
其中L為電纜單位長度感抗,C為電纜單位長度電容。
由于CAN收發(fā)器結(jié)構(gòu),從隱性變成顯性由晶體管驅(qū)動,所以都是很陡的,但是從顯性回到隱性,卻需要終端電阻來放電,否則就會由于導(dǎo)線分布電容,緩慢放電,導(dǎo)致位寬錯誤。
所以所謂的近距離、低波特率CAN總線不加終端電阻的做法,都是錯誤的。
RS485與CAN總線不同,由于RS485收發(fā)器中一般都內(nèi)置失效保護(hù)電路,在近距離、低波特率下允許不加終端匹配電阻。
電纜與接線
CAN總線采用差分信號傳輸,如果使用帶屏蔽雙絞線,屏蔽層應(yīng)單點(diǎn)接地。
帶單屏蔽層的CAN電纜剖析與連接線示范
通常電纜截面積越小,其分布電容、分布電感和直流電阻越大。當(dāng)通訊距離較遠(yuǎn)時,電容、電感和直流電阻會引起信號衰減,波形失真和抖動。
一般情況下,電纜供應(yīng)商會提供信號衰減圖表。
24-AWG電纜衰減和頻率的關(guān)系
差分信號電壓幅值
CAN電平幅值
如上圖所示,兩條信號線CAN_H和CAN_L靜態(tài)時均為2.5V左右,此時狀態(tài)表示邏輯1,稱作隱性;CAN_H比CAN_L高表示邏輯0,稱為顯性,此時通常CAN_H電壓3.5V、CAN_L電壓1.5V。
差分電壓幅值與電平極性關(guān)系
CAN標(biāo)準(zhǔn)規(guī)定,CAN總線上的差分電壓>0.9V才能被識別成顯性電平,<0.5V才能被識別成隱性電平,0.5~0.9之間的電平不能確定電平極性。如上圖所示。?
終端匹配電阻數(shù)目與差分電壓幅值關(guān)系
在實(shí)際項(xiàng)目布線時,容易漏加或者多加終端匹配電阻。我們可以通過測量CAN差分電壓幅值來評估是否漏加或多加終端匹配電阻。
如果不計導(dǎo)線電阻,終端電阻固定為120歐姆,單節(jié)點(diǎn)CAN總線差分電壓如上圖所示。
-
CAN總線
+關(guān)注
關(guān)注
145文章
1898瀏覽量
130333 -
差分信號
+關(guān)注
關(guān)注
3文章
361瀏覽量
27536 -
網(wǎng)絡(luò)拓?fù)?/span>
+關(guān)注
關(guān)注
0文章
95瀏覽量
11301 -
終端匹配
+關(guān)注
關(guān)注
0文章
3瀏覽量
6018
發(fā)布評論請先 登錄
相關(guān)推薦
評論