深度解析CAN-FD與CAN協(xié)議的差別
根據(jù)CAN規(guī)范ISO11898-2所定義的標(biāo)準(zhǔn)幀結(jié)構(gòu),一幀報文最大只能傳輸64位(8個字節(jié))的數(shù)據(jù),在最好的情況下總線負(fù)載達(dá)到70%左右,不過如果報文數(shù)據(jù)少于8個字節(jié)的情況下總線負(fù)載可能會更小。我們或者會提出疑問,為什么不可以把CAN標(biāo)準(zhǔn)的通信波特率改高一點呢?其實是有一個很重要的因素,CAN采用仲裁機(jī)制來判定不同節(jié)點CAN報文傳輸?shù)膬?yōu)先級,在仲裁期同一總線上的所有節(jié)點必須在一個位的時間內(nèi)到達(dá)。另一方面電信號有一個有限的傳播速度。從大量經(jīng)驗中得出CAN總線以1Mbit/s運(yùn)行的最長距離為40米。通信波特率越高,通信距離則越短。
CAN-FD與CAN主要區(qū)別
CAN-FD和CAN主要的區(qū)別有兩點:
1、可變速率
CAN-FD采用了兩種位速率:從控制場中的BRS位到ACK場之前(含CRC分界符)為可變速率,其余部分為原CAN總線用的速率。兩種速率各有一套位時間定義寄存器,它們除了采用不同的位時間單位TQ外,位時間各段的分配比例也可不同。
2、新的數(shù)據(jù)場長度
CAN-FD對數(shù)據(jù)場的長度作了很大的擴(kuò)充,DLC最大支持64個字節(jié),在DLC小于等于8時與原CAN總線是一樣的,大于8時有一個非線性的增長,所以最大的數(shù)據(jù)場長度可達(dá)64字節(jié)。
CAN-FD簡介
1、CAN-FD 數(shù)據(jù)幀幀格式
CAN-FD 數(shù)據(jù)幀在控制場新添加EDL位、BRS位、ESI位,采用了新的DLC編碼方式、新的CRC算法(CRC場擴(kuò)展到21位)。CAN-FD數(shù)據(jù)幀格式如圖 3所示。
2、新添加位介紹
EDL位:(Extended Data Length)原CAN數(shù)據(jù)幀中的保留位r, 該位功能為:
隱性:表示CAN-FD 報文 (采用新的DLC編碼和CRC算法)
顯性:表示CAN報文
BRS位:( Bit Rate Switch)該位功能為:
隱性:表示轉(zhuǎn)換可變速率
顯性:表示不轉(zhuǎn)換速率
ESI(Error State Indicator),該位的功能為:
隱性:表示發(fā)送節(jié)點處于被動錯誤狀態(tài)(Error Passive)
顯性:表示發(fā)送節(jié)點處于主動錯誤狀態(tài)(Error Active)
EDL位可以表示CAN報文還是CAN-FD報文;BRS表示位速率轉(zhuǎn)換,該位為隱性位時,從BRS位到CRC界定符使用轉(zhuǎn)換速率傳輸,其他位場使用標(biāo)準(zhǔn)位速率,該位為顯性時,以正常的CAN-FD總線速率傳輸;通過添加ESI位,可以很方便的知道當(dāng)前發(fā)送節(jié)點所處的狀態(tài)。
3、新的CRC算法
CAN總線由于位填充規(guī)則對CRC的干擾,造成錯幀漏檢率未達(dá)到設(shè)計意圖。CAN-FD對CRC算法作了改變,即CRC以含填充位的位流進(jìn)行計算。在校驗和部分為避免再有連續(xù)位超過6個,就確定在第一位以及以后每4位添加一個填充位加以分割,這個填充位的值是上一位的反碼,作為格式檢查,如果填充位不是上一位的反碼,就作出錯處理。CAN-FD的CRC場擴(kuò)展到了21位。由于數(shù)據(jù)場長度有很大變化區(qū)間,所以要根據(jù)DLC大小應(yīng)用不同的CRC生成多項式,CRC_17,適合于幀長小于210位的幀,CRC_21,適適合于幀長小于1023位的幀。
4、新的DLC編碼
CAN-FD 數(shù)據(jù)幀采用了新的新的DLC編碼方式,在數(shù)據(jù)場長度在0-8個字節(jié)時,采用線性規(guī)則,數(shù)據(jù)場長度為12-64個字節(jié)時,使用非線性編碼。如圖 5所示。
廣州致遠(yuǎn)電子股份有限公司是CAN-FD在中國的伙伴,ZLG致遠(yuǎn)電子在2009年就加入了CiA協(xié)會,是國內(nèi)最早成為CiA會員公司的中國本土公司之一。ZLG致遠(yuǎn)電子示波器可支持CAN-FD協(xié)議解碼功能,可助力您跟好的學(xué)習(xí)、研究、開發(fā)CAN-FD。
ZDS2024 Plus解碼效果圖
ZDS2024Plus 示波器
評論