如何構建專屬自己的CAN-bus應用層協議
發布時間:2017-05-09 責任編輯:susan
【導讀】隨著CAN-bus相關芯片價格的下降,內置CAN控製器MCU的增多,CAN-bus當前已經進入了眾多早期由於成本問題無法使用的領域,成為極具生命力的現場總線,今天我們就來探討如何構建專屬自己的CAN-bus應用層協議。
在CAN-bus網絡上,CAN報文以廣播的形式發送,CAN報文不包含地址信息,是否處理接收到的CAN報文由接收點的軟件確定。CAN-bus隻提供可靠的報文傳輸服務,CAN報文的使用由應用者定義, 所以CAN網絡中的節點要相互通信就必須製定一個統一的規則。CAN應用層協議就是這樣一個規則。
這個規則,定義了CAN報文中幀ID及幀數據的使用方式,如將幀ID定義為需要處理該幀數據的CAN節點地址等。根據應用場合的不同,國際上出現了多種CAN應用層協議,常見的CAN-bus應用層協議如下:

圖1
接下來,我們看一下如何構建CAN-bus應用層協議
l構建一個現場總線網絡,需要解決的關鍵技術問題有:
l總線傳輸信息的速度、容量、優先等級、節點容量等;
l高電磁幹擾環境下的可靠數據傳輸;
l最大傳輸距離時延時大小的確定;
l網絡的容錯技術;
l網絡的監控和故障診斷功能。
要解決以上問題,需要充分考慮現場總線網絡所采用的總線類型,因為以上問題和總線的性能特點是密切相關的,那麼我們就看一下CAN-bus總線的上述特性:
lCAN-bus網絡傳輸速度最高可達1Mbps,並采用無損仲裁,通過報文標識符指示報文優先級;
lCAN-bus采用差分信號傳輸,並采用可靠的數據校驗和錯誤檢測機製;
lCAN-bus采用幀傳輸,每個報文允許傳輸最多8個字節,幀結構有嚴格規定,能夠確定最大傳輸延時;
lCAN-bus具有可靠的錯誤機製和檢測機製,發送的信息遭到破壞後可以重新發送;節點在錯誤嚴重的情況下,具有自動退出總線的功能;
l可以通過製定嚴禁的CAN-bus應用層協議解決網絡監控和診斷。
CAN報文的分配
包含報文標識符的分配和報文數據的分配,報文格式的定義,實質是將CAN報文的分配規則進行詳細的描述。
報文ID的定義:
CAN2.0A幀:11位ID
CAN2.0B幀,29位ID
報文數據的定義:每幀報文最多包含8字節數據
CAN網絡數據通信的實現
在CAN網絡中,通過報文的標識符進行信息的區分,因此通過報文的各種標識符分配來達到建立信息鏈接的目的。

圖2.命令/響應模式通信
CAN應用層協議:麵向節點和麵向報文的協議
數據通信協議基本上可以劃分為“麵向節點的協議”和“麵向報文的協議”兩種類型,如下圖:

圖3.麵向節點和麵向報文的數據通信
製定一個CAN應用層協議
為了給讀者演示CAN應用層協議的開發和使用方法,下麵定義一個簡單的CAN應用協議棧,該協議棧中隻用到CAN標準幀中的數據幀,幀ID中的11個位的分配和使用方法如下表所列,協議中另外還定義了功能參數長度變量FunDataLen的功能參數數組FunData,該數組在需要時可以為某些特定功能函數提供足夠的控製參數。

圖4
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 邊緣AI的發展為更智能、更可持續的技術鋪平道路
- 每台智能體PC,都是AI時代的新入口
- IAR作為Qt Group獨立BU攜兩項重磅汽車電子應用開發方案首秀北京車展
- 構建具有網絡彈性的嵌入式係統:來自行業領袖的洞見
- 數字化的線性穩壓器
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
SATA連接器
SD連接器
SII
SIM卡連接器
SMT設備
SMU
SOC
SPANSION
SRAM
SSD
ST
ST-ERICSSON
Sunlord
SynQor
s端子線
Taiyo Yuden
TDK-EPC
TD-SCDMA功放
TD-SCDMA基帶
TE
Tektronix
Thunderbolt
TI
TOREX
TTI
TVS
UPS電源
USB3.0
USB 3.0主控芯片
USB傳輸速度


