隨著CAN-bus相關(guān)芯片價(jià)格的下降,內(nèi)置CAN控制器MCU的增多,CAN-bus當(dāng)前已經(jīng)進(jìn)入了眾多早期由于成本問題無法使用的領(lǐng)域,成為極具生命力的現(xiàn)場(chǎng)總線。今天我們就來探討如何構(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é)議,常見的CAN-bus應(yīng)用層協(xié)議如下。
圖1
接下來,我們看一下如何構(gòu)建CAN-bus應(yīng)用層協(xié)議。構(gòu)建一個(gè)現(xiàn)場(chǎng)總線網(wǎng)絡(luò),需要解決的關(guān)鍵技術(shù)問題有:
?總線傳輸信息的速度、容量、優(yōu)先等級(jí)、節(jié)點(diǎn)容量等;
?高電磁干擾環(huán)境下的可靠數(shù)據(jù)傳輸;
?最大傳輸距離時(shí)延時(shí)大小的確定;