如何構(gòu)建專屬自己的CAN-bus應(yīng)用層協(xié)議
發(fā)布時間:2017-05-09 責(zé)任編輯:susan
【導(dǎo)讀】隨著CAN-bus相關(guān)芯片價格的下降,內(nèi)置CAN控制器MCU的增多,CAN-bus當(dāng)前已經(jīng)進(jìn)入了眾多早期由于成本問題無法使用的領(lǐng)域,成為極具生命力的現(xiàn)場總線,今天我們就來探討如何構(gòu)建專屬自己的CAN-bus應(yīng)用層協(xié)議。
在CAN-bus網(wǎng)絡(luò)上,CAN報(bào)文以廣播的形式發(fā)送,CAN報(bào)文不包含地址信息,是否處理接收到的CAN報(bào)文由接收點(diǎn)的軟件確定。CAN-bus只提供可靠的報(bào)文傳輸服務(wù),CAN報(bào)文的使用由應(yīng)用者定義, 所以CAN網(wǎng)絡(luò)中的節(jié)點(diǎn)要相互通信就必須制定一個統(tǒng)一的規(guī)則。CAN應(yīng)用層協(xié)議就是這樣一個規(guī)則。
這個規(guī)則,定義了CAN報(bào)文中幀ID及幀數(shù)據(jù)的使用方式,如將幀ID定義為需要處理該幀數(shù)據(jù)的CAN節(jié)點(diǎn)地址等。根據(jù)應(yīng)用場合的不同,國際上出現(xiàn)了多種CAN應(yīng)用層協(xié)議,常見的CAN-bus應(yīng)用層協(xié)議如下:
圖1
接下來,我們看一下如何構(gòu)建CAN-bus應(yīng)用層協(xié)議
l構(gòu)建一個現(xiàn)場總線網(wǎng)絡(luò),需要解決的關(guān)鍵技術(shù)問題有:
l總線傳輸信息的速度、容量、優(yōu)先等級、節(jié)點(diǎn)容量等;
l高電磁干擾環(huán)境下的可靠數(shù)據(jù)傳輸;
l最大傳輸距離時延時大小的確定;
l網(wǎng)絡(luò)的容錯技術(shù);
l網(wǎng)絡(luò)的監(jiān)控和故障診斷功能。
要解決以上問題,需要充分考慮現(xiàn)場總線網(wǎng)絡(luò)所采用的總線類型,因?yàn)橐陨蠁栴}和總線的性能特點(diǎn)是密切相關(guān)的,那么我們就看一下CAN-bus總線的上述特性:
lCAN-bus網(wǎng)絡(luò)傳輸速度最高可達(dá)1Mbps,并采用無損仲裁,通過報(bào)文標(biāo)識符指示報(bào)文優(yōu)先級;
lCAN-bus采用差分信號傳輸,并采用可靠的數(shù)據(jù)校驗(yàn)和錯誤檢測機(jī)制;
lCAN-bus采用幀傳輸,每個報(bào)文允許傳輸最多8個字節(jié),幀結(jié)構(gòu)有嚴(yán)格規(guī)定,能夠確定最大傳輸延時;
lCAN-bus具有可靠的錯誤機(jī)制和檢測機(jī)制,發(fā)送的信息遭到破壞后可以重新發(fā)送;節(jié)點(diǎn)在錯誤嚴(yán)重的情況下,具有自動退出總線的功能;
l可以通過制定嚴(yán)禁的CAN-bus應(yīng)用層協(xié)議解決網(wǎng)絡(luò)監(jiān)控和診斷。
CAN報(bào)文的分配
包含報(bào)文標(biāo)識符的分配和報(bào)文數(shù)據(jù)的分配,報(bào)文格式的定義,實(shí)質(zhì)是將CAN報(bào)文的分配規(guī)則進(jìn)行詳細(xì)的描述。
報(bào)文ID的定義:
CAN2.0A幀:11位ID
CAN2.0B幀,29位ID
報(bào)文數(shù)據(jù)的定義:每幀報(bào)文最多包含8字節(jié)數(shù)據(jù)
CAN網(wǎng)絡(luò)數(shù)據(jù)通信的實(shí)現(xiàn)
在CAN網(wǎng)絡(luò)中,通過報(bào)文的標(biāo)識符進(jìn)行信息的區(qū)分,因此通過報(bào)文的各種標(biāo)識符分配來達(dá)到建立信息鏈接的目的。
圖2.命令/響應(yīng)模式通信
CAN應(yīng)用層協(xié)議:面向節(jié)點(diǎn)和面向報(bào)文的協(xié)議
數(shù)據(jù)通信協(xié)議基本上可以劃分為“面向節(jié)點(diǎn)的協(xié)議”和“面向報(bào)文的協(xié)議”兩種類型,如下圖:
圖3.面向節(jié)點(diǎn)和面向報(bào)文的數(shù)據(jù)通信
制定一個CAN應(yīng)用層協(xié)議
為了給讀者演示CAN應(yīng)用層協(xié)議的開發(fā)和使用方法,下面定義一個簡單的CAN應(yīng)用協(xié)議棧,該協(xié)議棧中只用到CAN標(biāo)準(zhǔn)幀中的數(shù)據(jù)幀,幀ID中的11個位的分配和使用方法如下表所列,協(xié)議中另外還定義了功能參數(shù)長度變量FunDataLen的功能參數(shù)數(shù)組FunData,該數(shù)組在需要時可以為某些特定功能函數(shù)提供足夠的控制參數(shù)。
圖4
特別推薦
- 數(shù)字儀表與模擬儀表:它們有何區(qū)別?
- 基于APM32F411的移動電源控制板應(yīng)用方案
- 基于GD32F407VET6主控芯片的永磁同步電機(jī)控制器設(shè)計(jì)
- 光迅科技發(fā)布O波DWDM光模塊
- 長光辰芯發(fā)布16MP全局快門CMOS圖像傳感器
- Murata推出更適合薄型設(shè)計(jì)應(yīng)用場景的3.3V輸入、12A輸出的DCDC轉(zhuǎn)換IC
- 合熠智能推出超小型激光光電傳感器,堅(jiān)固耐用,精準(zhǔn)檢測
技術(shù)文章更多>>
- 從幾大典型場景,看安森美賦能邊緣智能應(yīng)用的高性能“產(chǎn)品力”
- 【測試案例分享】 如何評估熱載流子引導(dǎo)的MOSFET衰退
- 深入探討適用于低功耗工業(yè)電機(jī)控制的CANopen協(xié)議
- 是德科技掀起新革命:通用示波器正式邁入14bit ADC時代
- DigiKey與 Lippincott 合作品牌煥新項(xiàng)目榮獲2025年度 Graphis 設(shè)計(jì)大賽金獎
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
保護(hù)器件
保險絲管
北斗定位
北高智
貝能科技
背板連接器
背光器件
編碼器型號
便攜產(chǎn)品
便攜醫(yī)療
變?nèi)荻O管
變壓器
檳城電子
并網(wǎng)
撥動開關(guān)
玻璃釉電容
剝線機(jī)
薄膜電容
薄膜電阻
薄膜開關(guān)
捕魚器
步進(jìn)電機(jī)
測力傳感器
測試測量
測試設(shè)備
拆解
場效應(yīng)管
超霸科技
超級本
超級電容