導讀
隨著工業的發展,工業總線上的數據量越來越多,這使得CAN總線的逐漸達到負荷極限,這就需要改進原有的總線來提高總線傳輸速率,CAN-FD便在這樣的背景下誕生了。
隨著當今工業的發展,尤其是在CAN總線運用較多的汽車領域,總線通訊的數據量越來越大,例如電動汽車上,汽車內部出現更多的輔助系統和人機交互系統,這就使得傳統的CAN總線在傳輸速率和帶寬方面越來越力不從心。因此CAN-FD孕育而生。
圖1
根據CAN規范ISO11898-2所定義的標準幀結構,一幀報文最大只能傳輸64位(8個字節)的數據,在最好的情況下總線負載達到70%左右,不過如果報文數據少于8個字節的情況下總線負載可能會更小。我們或者會提出疑問,為什么不可以把CAN標準的通信波特率改高一點呢?其實是有一個很重要的因素,CAN采用仲裁機制來判定不同節點CAN報文傳輸的優先級,在仲裁期同一總線上的所有節點必須在一個位的時間內到達。另一方面電信號有一個有限的傳播速度。從大量經驗中得出CAN總線以1Mbit/s運行的最長距離為40米。通信波特率越高,通信距離則越短。
?CAN-FD與CAN主要區別
CAN-FD和CAN主要的區別有兩點:
1. 可變速率
CAN-FD采用了兩種位速率:從控制場中的BRS位到ACK場之前(含CRC分界符)為可變速率,其余部分為原CAN總線用的速率。兩種速率各有一套位時間定義寄存器,它們除了采用不同的位時間單位TQ外,位時間各段的分配比例也可不同。
2. 新的數據場長度
CAN-FD對數據場的長度作了很大的擴充,DLC最大支持64個字節,在DLC小于等于8時與原CAN總線是一樣的,大于8時有一個非線性的增長,所以最大的數據場長度可達64字節。
圖2
?CAN-FD簡介
1. CAN-FD 數據幀幀格式
CAN-FD 數據幀在控制場新添加EDL位、BRS位、ESI位,采用了新的DLC編碼方式、新的CRC算法(CRC場擴展到21位)。CAN-FD數據幀格式如圖 3所示。
圖3
2. 新添加位介紹
2.1EDL位(Extended Data Length),原CAN數據幀中的保留位r, 該位功能為:
- 隱性:表示CAN-FD 報文 (采用新的DLC編碼和CRC算法);
- 顯性:表示CAN報文。
2.2BRS位( Bit Rate Switch),該位功能為:
隱性:表示轉換可變速率;
顯性:表示不轉換速率。
2.3 ESI(Error State Indicator),該位的功能為:
隱性:表示發送節點處于被動錯誤狀態(Error Passive);
顯性:表示發送節點處于主動錯誤狀態(Error Active)。
EDL位可以表示CAN報文還是CAN-FD報文;BRS表示位速率轉換,該位為隱性位時,從BRS位到CRC界定符使用轉換速率傳輸,其他位場使用標準位速率,該位為顯性時,以正常的CAN-FD總線速率傳輸;通過添加ESI位,可以很方便的知道當前發送節點所處的狀態。
圖43. 新的CRC算法CAN總線由于位填充規則對CRC的干擾,造成錯幀漏檢率未達到設計意圖。CAN-FD對CRC算法作了改變,即CRC以含填充位的位流進行計算。在校驗和部分為避免再有連續位超過6個,就確定在第一位以及以后每4位添加一個填充位加以分割,這個填充位的值是上一位的反碼,作為格式檢查,如果填充位不是上一位的反碼,就作出錯處理。CAN-FD的CRC場擴展到了21位。由于數據場長度有很大變化區間,所以要根據DLC大小應用不同的CRC生成多項式,CRC_17,適合于幀長小于210位的幀,CRC_21,適適合于幀長小于1023位的幀。
4. 新的DLC編碼
CAN-FD 數據幀采用了新的新的DLC編碼方式,在數據場長度在0-8個字節時,采用線性規則,數據場長度為12-64個字節時,使用非線性編碼。如圖 5所示。
圖5
? 4路CANFD 2路LIN
?XCP/CCP標定
? 兼容CAN2.0A/B模式收發
參考價格:3300元起
-
CAN總線
+關注
關注
145文章
1955瀏覽量
130954 -
工業
+關注
關注
3文章
1861瀏覽量
46808 -
CAN協議
+關注
關注
1文章
36瀏覽量
12694
發布評論請先 登錄
相關推薦
評論