當(dāng)原有的CAN通訊無法滿足硬件節(jié)點(diǎn)和傳輸速率的增加時(shí),很多工程師會使用CAN FD來替代,從而實(shí)現(xiàn)數(shù)據(jù)量傳輸?shù)奶崴?。那么CAN可以通過哪些方式快速升級到CAN FD呢?哪種方式更適合你?一起來看看。
CAN FD升級的意義
當(dāng)今社會,汽車已經(jīng)成為了我們生活中不可缺少的一部分,人們希望汽車不僅僅是一種代步工具,更希望是生活及工作范圍的一種延伸。在汽車上就像坐在自己的辦公室和家里一樣,可以打電話、上網(wǎng)、娛樂、工作。因此,汽車制造商為了提高產(chǎn)品競爭力,將越來越多功能集成到了汽車上。ECU(電子控制單元)大量地增加使總線負(fù)載率急劇增大,傳統(tǒng)的CAN總線越來越顯得力不從心。因此,CAN FD(CAN with Flexible Data-Rate)協(xié)議誕生了。
它繼承了CAN總線的主要特性,提高了CAN總線的網(wǎng)絡(luò)通信帶寬,改善了錯(cuò)誤幀漏檢率,同時(shí)可以保持網(wǎng)絡(luò)系統(tǒng)大部分軟硬件特別是物理層不變。這種相似性使ECU供應(yīng)商不需要對ECU的軟件部分做大規(guī)模修改即可升級汽車通信網(wǎng)絡(luò)。
CAN FD與CAN的主要區(qū)別
圖1 CAN幀基本格式
圖2 CAN FD幀基本格式
如圖1、圖2所示分別是CAN幀和CAN FD幀的基本格式,區(qū)別主要分為兩大點(diǎn):
1.BRS(可變速率)
CAN FD的傳輸速率分為兩個(gè)頻段,從BRS位開始到CRC校驗(yàn)之前這一段是可變速率段,這一段的波特率可以進(jìn)行加速,理論最高可達(dá)到5Mbit/s,而其他位置則和CAN2.0一樣,最高速率可達(dá)到1Mbit/s。
2.數(shù)據(jù)場長度增加BRS
CAN FD對數(shù)據(jù)場的長度做了擴(kuò)充,從CAN的8字節(jié)增加到CAN FD的64字節(jié)。如圖3所示,當(dāng)DLC小于8字節(jié)時(shí)和CAN一樣是線性增長,當(dāng)大于8字節(jié)時(shí)是非線性增長。
圖3 DLC編碼方式
CAN FD的升級與CAN是否有沖突?
由于使用CAN FD網(wǎng)絡(luò)時(shí),需要ECU和CAN控制器、收發(fā)器均支持CAN FD通訊。所以當(dāng)CAN網(wǎng)絡(luò)中某些節(jié)點(diǎn)升級為CAN FD時(shí),車輛上CAN與CAN FD處于共存的情況,因?yàn)槠胀ǖ腃AN節(jié)點(diǎn)無法正常解析CAN FD報(bào)文,節(jié)點(diǎn)就會一直報(bào)錯(cuò),出現(xiàn)大量錯(cuò)誤報(bào)文,導(dǎo)致總線通訊異常。
圖4 CAN與CAN FD報(bào)文的波形對比
如圖4所示,可以看到CAN FD的傳輸速率是5Mbit/s,而CAN的傳輸速率為500Kbit/s,我們在平常使用上位機(jī)軟件解析CAN報(bào)文的時(shí)候需要設(shè)置對應(yīng)的波特率,否則報(bào)文就無法解析。那么用一種簡單的方式來理解,對于CAN節(jié)點(diǎn)來說,它的波特率是500K,那么5M的波特率與它不匹配,所以不能被正常解析,該節(jié)點(diǎn)就會報(bào)錯(cuò),導(dǎo)致CAN FD報(bào)文一直無法正常發(fā)送,干擾總線的正常運(yùn)行。
CAN FD升級的解決方案
盡管CAN FD繼承了絕大部分傳統(tǒng)CAN的特性,但是從傳統(tǒng)CAN到CAN FD的升級,我們?nèi)孕枰龊芏嗟墓ぷ鳌?
針對CAN FD升級的情況,一般有4種快速解決方案。
1.CANFDBridge- CAN/CANFD智能協(xié)議網(wǎng)橋
在原有的CAN網(wǎng)絡(luò)上通過CAN網(wǎng)橋與新的CAN FD節(jié)點(diǎn)進(jìn)行連接,將傳統(tǒng)的CAN總線網(wǎng)絡(luò)通過協(xié)議轉(zhuǎn)換與CAN FD網(wǎng)絡(luò)進(jìn)行融合,快速實(shí)現(xiàn)CAN設(shè)備的升級。工作原理如圖5所示,當(dāng)接收到CAN FD報(bào)文的時(shí)候,CAN網(wǎng)橋會采用直轉(zhuǎn)、合并、拆分三種方式實(shí)現(xiàn)傳統(tǒng)CAN的8字節(jié)長度和CAN FD的64字節(jié)長度的互相轉(zhuǎn)換,無損還原原有數(shù)據(jù)。
圖5 CANFDBridge界面