如何實現可靠的CAN長字節通訊
來源: 發布時間:2017-10-18 10:39:00 次瀏覽
CAN總線從上個世紀80年代開始,逐漸在汽車電子、軌道交通、醫療電子、工程機械等廣泛的工業場合應用。這個“古老”的總線,最讓人“不爽”的地方,就是一幀只能傳輸八字節數據,如果要一次傳輸更長字節,需要分幀,而選擇一種可靠的分幀方法就是使用者一定要注意的。
CAN總線作為汽車電子而生的總線,提出了“優先級自動仲裁”和“短幀快速傳輸”的控制概念,為了達到“高實時性”的快速控制目標。使用一幀八字節的通訊單元具有了一系列的優點缺點:
一、CAN通訊的優缺點:
l優點
(1)8個字節正好是8個字節、4個16位、2個32位、1個64位的變量的存放“容器”。那么用戶只要在ID中存放“寄存器地址”,然后通過1幀來“讀取”或者“修改”,對應的“數值”,這樣比較方便;
(2)短幀提高總線共享速度。任何一個CAN節點發送報文,在發送一幀后,需要重新和其他節點競爭總線,這樣只要用戶設計適當的發送間隔,就可以保證所有的點“共享”總線,提高總線利用率,也保證每個節點的發送周期大致保證一致。
l缺點
(1)長數據傳輸時數據負載偏低。在多幀發送時,由于每幀發送都要發送CANID,所以實際的CAN數據所占的比例就很低了,以CAN擴展幀為例,其29位ID和64位的數據,導致數據承載只能達到60%。所以在長數據傳輸時,CAN甚至比不上同樣波特率下的RS485/Modbus;
(2)長數據傳輸分幀丟幀,會導致整包傳輸失敗。當需要一次傳輸超過8字節數據時,需要分多幀傳輸,如果其中一幀“丟失”,則會導致整個發送包的無效。這就要求接收節點對每一個分幀進行確認,以保證每一個分幀的到達,而這么做就會大大降低效率;
(3)長數據傳輸時同步性差。比如要同時輸出動作超過8字節的控制命令時,由于每個幀到達有先后,先到的先動作,后到的后動作,就會引起輸出的不同步性。
可見CAN總線在當前的主流應用中,主要矛盾集中在其8字節短幀的長數據傳輸上。因此世界廣大科技工作者制定出一系列的改進和改革方法來解決這些缺點。
二、可靠CAN長數據通訊:
l升級為CANFD協議提高數據負載率
幾年前,梅賽德斯奔馳的工程師們對CAN總線的制定單位CiA(CAN in Automatic)協會提出,奔馳已經將CAN用盡了。因為奔馳的工程師們通過不斷優化通訊機制,已經將奔馳的CAN總線利用率提高到90%以上,已經無帶寬可用,只能通過網關不斷增加新的CAN網絡來擴展數據通道。這樣導致整車的總線區域越來越多。
車載以太網雖然可以解決數據量的問題,但其布線改變過大,成本上升過多,只適合于網關之間的通訊。所以CiA協議就聯合各大車廠,制定出新一代的CANFD協議,以快速升級現有的CAN2.0B。其主要的內容就是將一幀的數據段由8字節提升到64字節,同時可以提升數據段的波特率,以縮短通訊時間。如圖1所示。
圖 1 CANFD報文提升數據負載率
這樣,不需要每8字節就要發一次CANID,即使不提升波特率,也提升了8倍的數據負載率。如果提升了8倍波特率,則可以達到64倍的數據負載率,相當于擴充了64倍帶寬。其提升效果非常明顯。
l采用可靠的分幀協議
成熟的應用層協議都有可靠的分幀協議,比如CANopen,DeviceNET,J1939協議等,總的方針都是“握手”“傳輸”“確認”“結束”這四個過程循環。這里只介紹CANopen協議中的SDO多幀傳輸。
發送方(客戶端)發送的報文CAN-ID為600h+Node-ID,接收方(服務器)成功接收后,回應CAN-ID為580h+Node-ID的報文。下載協議download protocol 如圖2所示。
圖2 普通SDO下載協議
上傳協議upload protocol 如圖3所示。
圖 3普通SDO上傳協議
l采用同步傳輸協議
同步傳輸,解決的就是實現整個網絡的同步傳輸,如圖4所示,就像閱兵分列式上的方陣,所有士兵邁著整齊的步伐行進。這里以CANopen的同步報文為例講解。
圖4同步協議與閱兵分列式
每個節點都以同步報文作為PDO(過程數據的)觸發參數,為了保證時間準確性,該同步報文的COB-ID 具有比較高的優先級以及最短的傳輸時間。 CANopen選用80h作為同步報文的CAN-ID,如圖5所示。
圖5 同步報文
一般同步報文由NMT(網絡管理)主機發出,CAN報文的數據為0字節。但如果一個網絡內有2個同步機制,就需要設置不同的同步節拍,比如某些節點按1個同步幀發送1次PDO,其他的節點收到2個同步幀才發送1此PDO,
在同步協議中,有2個約束條件:
l同步窗口時間:索引1007h約束了同步幀發送后,從節點發送PDO的時效,即在這個時間內發送的PDO才有效,超過時間的PDO將被丟棄,當同步窗口結束后,開始同時執行動作。
l通訊循環周期:索引1006h規定了同步幀的循環周期,就是同步包發送的周期。
CAN總線在諸多愛好者的推動下,不斷改進和改革自身,讓這個古老的總線煥發出勃勃生機。廣州致遠電子有限公司,作為CAN總線在國內的重要推廣者,CANScope總線綜合分析儀已免費標配CANPRO軟件,可以解析主流的CANOpen,DeviceNet,J1939協議。