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

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

帶單屏蔽層的CAN電纜剖析與連接線示范
通常電纜截面積越小,其分布電容、分布電感和直流電阻越大。當通訊距離較遠時,電容、電感和直流電阻會引起信號衰減,波形失真和抖動。
一般情況下,電纜供應商會提供信號衰減圖表。

24-AWG電纜衰減和頻率的關系
差分信號電壓幅值

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。

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

終端匹配電阻數(shù)目與差分電壓幅值關系
在實際項目布線時,容易漏加或者多加終端匹配電阻。我們可以通過測量CAN差分電壓幅值來評估是否漏加或多加終端匹配電阻。
如果不計導線電阻,終端電阻固定為120歐姆,單節(jié)點CAN總線差分電壓如上圖所示。
-
CAN總線
+關注
關注
145文章
1986瀏覽量
132814 -
差分信號
+關注
關注
4文章
394瀏覽量
28313 -
網(wǎng)絡拓撲
+關注
關注
0文章
105瀏覽量
11963 -
終端匹配
+關注
關注
0文章
3瀏覽量
6067
發(fā)布評論請先 登錄
CAN網(wǎng)關的外形結(jié)構(gòu)及CAN信號轉(zhuǎn)發(fā)機制
高速CAN總線和低速CAN總線的特性

什么是CAN總線通信?CAN總線工作原理





國產(chǎn)C2000,P2P替代TMS320F280049C,獨立雙核32位CPU,主頻高達400MHz
基于數(shù)字伺服控制器的吊艙陀螺穩(wěn)定平臺設計

CAN總線輕松入門與實踐_部分2
CAN總線定義與CAN協(xié)議的基本概念

iMX6ULL開發(fā)板WIFI功能測試(一)

高速CAN總線和低速CAN總線區(qū)別分析
can總線負載節(jié)點數(shù)量

評論