如何構(gòu)建專屬自己的CAN-bus應(yīng)用層協(xié)議
發(fā)布時(shí)間:2017-05-09 責(zé)任編輯:susan
【導(dǎo)讀】隨著CAN-bus相關(guān)芯片價(jià)格的下降,內(nèi)置CAN控制器MCU的增多,CAN-bus當(dāng)前已經(jīng)進(jìn)入了眾多早期由于成本問(wèn)題無(wú)法使用的領(lǐng)域,成為極具生命力的現(xiàn)場(chǎng)總線,今天我們就來(lái)探討如何構(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)要相互通信就必須制定一個(gè)統(tǒng)一的規(guī)則。CAN應(yīng)用層協(xié)議就是這樣一個(gè)規(guī)則。
這個(gè)規(guī)則,定義了CAN報(bào)文中幀ID及幀數(shù)據(jù)的使用方式,如將幀ID定義為需要處理該幀數(shù)據(jù)的CAN節(jié)點(diǎn)地址等。根據(jù)應(yīng)用場(chǎng)合的不同,國(guó)際上出現(xiàn)了多種CAN應(yīng)用層協(xié)議,常見(jiàn)的CAN-bus應(yīng)用層協(xié)議如下:
圖1
接下來(lái),我們看一下如何構(gòu)建CAN-bus應(yīng)用層協(xié)議
l構(gòu)建一個(gè)現(xiàn)場(chǎng)總線網(wǎng)絡(luò),需要解決的關(guān)鍵技術(shù)問(wèn)題有:
l總線傳輸信息的速度、容量、優(yōu)先等級(jí)、節(jié)點(diǎn)容量等;
l高電磁干擾環(huán)境下的可靠數(shù)據(jù)傳輸;
l最大傳輸距離時(shí)延時(shí)大小的確定;
l網(wǎng)絡(luò)的容錯(cuò)技術(shù);
l網(wǎng)絡(luò)的監(jiān)控和故障診斷功能。
要解決以上問(wèn)題,需要充分考慮現(xiàn)場(chǎng)總線網(wǎng)絡(luò)所采用的總線類型,因?yàn)橐陨蠁?wèn)題和總線的性能特點(diǎn)是密切相關(guān)的,那么我們就看一下CAN-bus總線的上述特性:
lCAN-bus網(wǎng)絡(luò)傳輸速度最高可達(dá)1Mbps,并采用無(wú)損仲裁,通過(guò)報(bào)文標(biāo)識(shí)符指示報(bào)文優(yōu)先級(jí);
lCAN-bus采用差分信號(hào)傳輸,并采用可靠的數(shù)據(jù)校驗(yàn)和錯(cuò)誤檢測(cè)機(jī)制;
lCAN-bus采用幀傳輸,每個(gè)報(bào)文允許傳輸最多8個(gè)字節(jié),幀結(jié)構(gòu)有嚴(yán)格規(guī)定,能夠確定最大傳輸延時(shí);
lCAN-bus具有可靠的錯(cuò)誤機(jī)制和檢測(cè)機(jī)制,發(fā)送的信息遭到破壞后可以重新發(fā)送;節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下,具有自動(dòng)退出總線的功能;
l可以通過(guò)制定嚴(yán)禁的CAN-bus應(yīng)用層協(xié)議解決網(wǎng)絡(luò)監(jiān)控和診斷。
CAN報(bào)文的分配
包含報(bào)文標(biāo)識(shí)符的分配和報(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ò)中,通過(guò)報(bào)文的標(biāo)識(shí)符進(jìn)行信息的區(qū)分,因此通過(guò)報(bào)文的各種標(biāo)識(shí)符分配來(lái)達(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ù)通信
制定一個(gè)CAN應(yīng)用層協(xié)議
為了給讀者演示CAN應(yīng)用層協(xié)議的開(kāi)發(fā)和使用方法,下面定義一個(gè)簡(jiǎn)單的CAN應(yīng)用協(xié)議棧,該協(xié)議棧中只用到CAN標(biāo)準(zhǔn)幀中的數(shù)據(jù)幀,幀ID中的11個(gè)位的分配和使用方法如下表所列,協(xié)議中另外還定義了功能參數(shù)長(zhǎng)度變量FunDataLen的功能參數(shù)數(shù)組FunData,該數(shù)組在需要時(shí)可以為某些特定功能函數(shù)提供足夠的控制參數(shù)。
圖4
特別推薦
- 授權(quán)代理商貿(mào)澤電子供應(yīng)Same Sky多樣化電子元器件
- 使用合適的窗口電壓監(jiān)控器優(yōu)化系統(tǒng)設(shè)計(jì)
- ADI電機(jī)運(yùn)動(dòng)控制解決方案 驅(qū)動(dòng)智能運(yùn)動(dòng)新時(shí)代
- 倍福推出采用 TwinSAFE SC 技術(shù)的 EtherCAT 端子模塊 EL3453-0090
- TDK推出新的X系列環(huán)保型SMD壓敏電阻
- Vishay 推出新款采用0102、0204和 0207封裝的精密薄膜MELF電阻
- Microchip推出新款交鑰匙電容式觸摸控制器產(chǎn)品 MTCH2120
技術(shù)文章更多>>
- 中微公司成功從美國(guó)國(guó)防部中國(guó)軍事企業(yè)清單中移除
- 華邦電子白皮書(shū):滿足歐盟無(wú)線電設(shè)備指令(RED)信息安全標(biāo)準(zhǔn)
- 功率器件熱設(shè)計(jì)基礎(chǔ)(九)——功率半導(dǎo)體模塊的熱擴(kuò)散
- 準(zhǔn) Z 源逆變器的設(shè)計(jì)
- 第12講:三菱電機(jī)高壓SiC芯片技術(shù)
技術(shù)白皮書(shū)下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門(mén)搜索