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