随(sui)着CAN-bus相(xiàng)關芯片(pian)價格的(de)下降,内(nei)置CANMCU的增多(duō),CAN-bus當前(qián)已經進(jin)入了衆(zhong)多早期(qī)由于成(chéng)本問題(tí)無法使(shǐ)用的領(lǐng)域,成爲(wei)極具生(shēng)命力的(de)現場總(zǒng)線,今天(tian)我們就(jiù)來探讨(tao)如何構(gou)建專屬(shu)自己的(de)CAN-bus應用(yòng)層協議(yì)。
在CAN-busCANCAN報(bao)文不包(bāo)含地址(zhi)信息,是(shì)否處理(lǐ)接收到(dào)的CAN報(bao)文由接(jiē)收點的(de)軟件确(què)定。CAN-bus隻(zhi)提供可(kě)靠的報(bao)文傳輸(shu)服務,CAN報文的(de)使用由(you)應用者(zhe)定義, 所以(yǐ)CAN網絡(luò)中的節(jie)點要相(xiang)互通信(xin)就必須(xu)制定一(yī)個統一(yī)的規則(ze)。CAN應用(yong)層協議(yi)就是這(zhe)樣一個(ge)規則。
這個規(guī)則,定義(yi)了CAN報(bào)文中幀(zhen)ID及幀(zhēn)數據的(de)使用方(fang)式,如将(jiang)幀ID定(ding)義爲需(xu)要處理(lǐ)該幀數(shu)據的CAN節點地(dì)址等。根(gēn)據應用(yong)場合的(de)不同,國(guó)際上出(chū)現了多(duo)種CAN應(yīng)用層協(xié)議,常見(jiàn)的CAN-bus應(yīng)用層協(xié)議如下(xia):

接下來(lái),我們看(kàn)一下如(ru)何構建(jiàn)CAN-bus應用層(céng)協議
構建(jiàn)一個現(xian)場總線(xiàn)網絡,需(xū)要解決(jué)的關鍵(jian)技術問(wèn)題有:
-
總線(xian)傳輸信(xin)息的速(sù)度、容量(liàng)、優先等(děng)級、節點(dian)容量等(děng);
-
最大(dà)傳輸距(ju)離時延(yán)時大小(xiao)的确定(ding);
-
網(wang)絡的容(róng)錯技術(shu);
-
要(yao)解決以(yǐ)上問題(ti),需要充(chong)分考慮(lü)現場總(zǒng)線網絡(luo)所采用(yòng)的總線(xiàn)類型,因(yīn)爲以上(shang)問題和(hé)總線的(de)性能特(tè)點是密(mi)切相關(guan)的,那麽(me)我們就(jiu)看一下(xia)CAN-bus總線(xian)的上述(shu)特性:
-
CAN-bus網(wǎng)絡傳輸(shu)速度最(zui)高可達(da)1Mbps,
-
CAN-bus采用(yong)差分信(xìn)号傳輸(shū),并采用(yòng)可靠的(de)數據校(xiào)驗和錯(cuò)誤檢測(cè)機制。
CAN報文的(de)分配
包含報(bào)文标識(shí)符的分(fen)配和報(bào)文數據(jù)的分配(pèi),報文格(ge)式的定(dìng)義,實質(zhi)是将CAN報文的(de)分配規(gui)則進行(háng)詳細的(de)描述。
報文(wen)ID的定義(yì):
CAN2.0A幀:位(wèi)ID
報(bào)文數據(jù)的定義(yì):
8字節(jiē)數據
CAN網絡數(shù)據通信(xin)的實現(xiàn)
在CAN網(wang)絡中,通(tōng)過報文(wen)的标識(shí)符進行(háng)信息的(de)區分,因(yīn)此通過(guo)報文的(de)各種标(biāo)識符分(fen)配來達(dá)到建立(li)信息鏈(lian)接的目(mù)的。

CAN應(ying)用層協(xie)議:面向(xiàng)節點和(he)面向報(bao)文的協(xié)議
數據通(tong)信協議(yi)基本上(shàng)可以劃(hua)分爲“面(mian)向節點(dian)的協議(yì)”和“面向(xiàng)報文的(de)協議”兩(liǎng)種類型(xíng),如下圖(tu):

面向節(jiē)點和面(miàn)向報文(wen)的數據(jù)通信
制定(ding)一個CAN

今天(tiān)的交流(liú)先到這(zhe)裏,如想(xiǎng)了解更(gèng)多,可關(guan)注緻遠(yuǎn)電子官(guan)網微信(xin),或參考(kǎo)緻遠電(dian)子國(guó)際現場(chang)總線教(jiāo)學科研(yan)平台,幫(bāng)您了解(jiě)更多CAN-bus應用層(ceng)協議構(gou)建知識(shi)。
