如何實現(xiàn)CAN與CANFD的總線橋接?
摘要:CANFD節(jié)點如何與經(jīng)典CAN總線正常通信呢?本文為您介紹CANFD與經(jīng)典CAN快速融合的思路與方法。
本文引用地址:http://www.ex-cimer.com/article/201912/408173.htm一、CANFD的來源
隨著汽車電子行業(yè)的快速發(fā)展,越來越多的安全輔助ECU、影音娛樂ECU加入到車身總線中,這就對CAN總線數(shù)據(jù)傳送速率提出了更高的要求?;谑袌鲂枨?,更高傳輸速率,更多數(shù)據(jù)載荷的CANFD應(yīng)運而生。
相比于經(jīng)典CAN,CANFD有兩個顯著特點:
一是可變速率,CAN FD的傳輸速率分為兩個頻段,從BRS位開始到CRC校驗之前這一段是可變速率段,這一段的波特率可以進行加速,理論最高可達到5Mbit/s,而其他位置則和CAN2.0一樣,最高速率可達到1Mbit/s;
二是數(shù)據(jù)場長度增加,CAN FD對數(shù)據(jù)場的長度做了擴充,從CAN的8字節(jié)增加到CAN FD的64字節(jié)。
圖1 CANFD的提速與擴容
二、兼容性問題
從經(jīng)典CAN升級到CANFD需要更換哪些硬件呢?硬件更換包括兩部分:其一,CAN收發(fā)器,通信速率需要從滿足1Mbit/s提升到滿足5Mbit/s;其二,CAN控制器,鏈路層協(xié)議需完全按照CANFD設(shè)計,對于CAN控制包含在微控制器內(nèi)的節(jié)點,則需要更換MCU。
圖2 CAN與CANFD的鏈路層對比
雖然CANFD設(shè)計時考慮到向下兼容,但鏈路層的根本改變使我們不得不面臨以下問題:經(jīng)典CAN節(jié)點發(fā)送的CAN幀能被CANFD節(jié)點識別,但CANFD節(jié)點發(fā)送的CANFD幀不能被經(jīng)典CAN節(jié)點識別,甚至被經(jīng)典CAN判定為錯誤幀導(dǎo)致總線嚴重錯誤。
三、 解決思路
解決CANFD與經(jīng)典CAN兼容性的方法有兩種,一是將所有經(jīng)典CAN節(jié)點全部升級為CANFD,二是在經(jīng)典CAN網(wǎng)絡(luò)與CANFD網(wǎng)絡(luò)間加入合適的橋接器。顯然,設(shè)備的更新?lián)Q代不能一蹴而就,方法一必然帶來成本激增,因此方法二將是短期內(nèi)最優(yōu)解決方案。
CANFD網(wǎng)橋的設(shè)計思路是當接收到CAN FD報文時采用直轉(zhuǎn)、合并、拆分三種方式實現(xiàn)傳統(tǒng)CAN的8字節(jié)長度和CAN FD的64字節(jié)長度的互相轉(zhuǎn)換,無損還原原有數(shù)據(jù)。
圖3 CANFD橋接方法
四、 CANFD網(wǎng)橋
CANFDBridge 作為 CAN(FD)智能網(wǎng)橋,支持ISO標準CANFD與Bosch CANFD標準,支持 CAN 轉(zhuǎn) CAN、CAN 轉(zhuǎn)CANFD、CANFD轉(zhuǎn) CAN、CANFD轉(zhuǎn)CANFD 等報文默認轉(zhuǎn)換處理。除此之外,還提供幀映射、合并和拆分等特殊轉(zhuǎn)換處理。用戶可自由設(shè)定 CAN(FD)報文的轉(zhuǎn)發(fā)映射、組包拆包等規(guī)則,滿足自身應(yīng)用需求。
圖4 工業(yè)級CANFD網(wǎng)橋CANFDBridge
1、每通道獨立的控制器類型設(shè)置、CANFD標準設(shè)置
每個通道都支持設(shè)置控制器類型,如圖5所示。當選擇類型為 CAN 時,只能收發(fā) CAN報文。用戶可將接到 CAN 總線的端口控制器類型設(shè)置為 CAN,可防止 CANFD 報文轉(zhuǎn)發(fā)到CAN 總線。當選擇類型為 CANFD 時, CAN 報文和 CANFD 報文都可以收發(fā)。
圖5 控制器類型
每個通道支持設(shè)置 CANFD 協(xié)議標準,如圖6所示。支持 ISO 標準和 Non-ISO 標準。
圖6 CANFD協(xié)議
2、幀類型高級設(shè)置
可設(shè)置 CAN轉(zhuǎn)CANFD或CAN、CANFD轉(zhuǎn)CANFD或CAN,當在 CAN→CAN、 CANFD→CANFD 時不改變幀數(shù)據(jù)。當使用勾選“填充”功能后,CAN 報文數(shù)據(jù)長度等于 8 字節(jié)時,會用填充數(shù)據(jù)將 CANFD報文填充至設(shè)置的 CANFD 報文數(shù)據(jù)長度,當 CAN 幀數(shù)據(jù)長度為 0~7 時填充無效, 轉(zhuǎn)換后的 CANFD 幀數(shù)據(jù)長度與 CAN 幀數(shù)據(jù)長度一樣;
圖7 轉(zhuǎn)換設(shè)置
3、數(shù)據(jù)合并
合并功能用于將多個 CAN 報文合并后轉(zhuǎn)換為 CANFD 報文。設(shè)置如圖8所示, 此設(shè)置使 CAN0 將 ID 為 0x01、 0x02、 0x03 的三個數(shù)據(jù)長度為8 的標準 CAN 幀合并成 ID 為 0x123,數(shù)據(jù)長度為 24 的 CANFD 標準幀。
圖8 經(jīng)典CAN數(shù)據(jù)合并CANFD
4、數(shù)據(jù)拆分
拆分功能用于將 CANFD 報文拆分成多個 CAN 報文發(fā)送,設(shè)備最多支持設(shè)置 64 條拆分規(guī)則, 每條規(guī)則指定待拆分 CANFD 的幀 ID、幀類型及幀長度。如圖9所示設(shè)置,此設(shè)置將 ID 為 0xF1,長度為 64 字節(jié)的 CANFD 標準幀拆分為 8個數(shù)據(jù)長度為 8 字節(jié)的 CAN 標準幀, ID 分別為 0x00~0x07。
圖9 CANFD拆分為經(jīng)典CAN幀
5、可靠性保證
為保證數(shù)據(jù)幀轉(zhuǎn)換的可靠性,CANFDBridge提供失敗回送設(shè)置。設(shè)置使能后 CANFDBridge 轉(zhuǎn)發(fā)失敗時,會發(fā)送指定幀來告知發(fā)送方轉(zhuǎn)發(fā)失敗。示意圖如圖10所示。
圖10 失敗回送機制
CAN與CANFD的橋接依靠CANFDBridge靈活的配置實現(xiàn),更多應(yīng)用細節(jié)請參閱相關(guān)產(chǎn)品手冊。
評論