技術交流
相關芯片價(jià)格的下降,内(nèi)置CAN控制器MCU的增多(duō),CAN-bus當(dāng)前已經進入(rù)了衆多早期(qi)由于成本問(wen)題無法使用(yòng)的領域,成爲(wei)極具生命力(lì)的現場總線(xiàn),今天我們就(jiu)來探讨如何(he)構建專屬自(zì)己的CAN-bus應用層協(xié)議。
在網絡上(shàng),CAN報(bào)文以廣播的(de)形式發送,CAN報文(wén)不包含地址(zhǐ)信息,是否處(chu)理接收到的(de)報(bao)文由接收點(diǎn)的軟件确定(dìng)。CAN-busCAN報文的使用(yong)由應用者定(dìng)義, 所以(yǐ)網(wang)絡中的節點(diǎn)要相互通信(xin)就必須制定(dìng)一個統一的(de)規則。CAN應用層協(xie)議就是這樣(yang)一個規則。
這個(ge)規則,定義了(le)CAN報(bào)文中幀ID及幀數(shù)據的使用方(fang)式,如将幀ID定義(yi)爲需要處理(lǐ)該幀數據的(de)節(jie)點地址等。根(gen)據應用場合(he)的不同,國際(ji)上出現了多(duo)種CAN應用層協議(yi),常見的CAN-bus應用層(céng)協議如下:

接下來,我們(men)看一下如何(hé)構建CAN-bus
構(gou)建一個現場(chang)總線網絡,需(xu)要解決的關(guān)鍵技術問題(tí)有:
-
總線(xiàn)傳輸信息的(de)速度、容量、優(you)先等級、節點(diǎn)容量等;
-
-
網絡(luò)的容錯技術(shù);
-
要解決以上(shang)問題,需要充(chōng)分考慮現場(chǎng)總線網絡所(suo)采用的總線(xian)類型,因爲以(yǐ)上問題和總(zǒng)線的性能特(te)點是密切相(xiàng)關的,那麽我(wo)們就看一下(xia)總(zǒng)線的上述特(te)性:
-
CAN-bus網絡(luò)傳輸速度最(zuì)高可達1Mbps,并采用(yong)無損仲裁,通(tong)過報文标識(shi)符指示報文(wen)優先級。
-
CAN-bus采用差分信(xin)号傳輸,并采(cai)用可靠的數(shu)據校驗和錯(cuò)誤檢測機制(zhi)。
-
CAN-bus采用幀傳(chuán)輸,每個報文(wén)允許傳輸最(zui)多8個字節,幀結(jie)構有嚴格規(guī)定,能夠确定(dìng)最大傳輸延(yan)時。
CAN報文的分(fèn)配
包含報文标(biāo)識符的分配(pei)和報文數據(ju)的分配,報文(wén)格式的定義(yi),實質是将CAN
ID的定義:
CAN2.0B幀(zhēn):29位(wèi)ID
8字(zi)節數據
在CAN網絡中(zhōng),通過報文的(de)标識符進行(háng)信息的區分(fen),因此通過報(bao)文的各種标(biāo)識符分配來(lái)達到建立信(xìn)息鏈接的目(mù)的。

命(mìng)令/響應模式通(tong)信
CAN應用(yòng)層協議:面向(xiàng)節點和面向(xiàng)報文的協議(yi)

面(miàn)向節點和面(miàn)向報文的數(shù)據通信
制定一個應(yīng)用層協議
爲了(le)給讀者演示(shi)CAN應(yīng)用層協議的(de)開發和使用(yòng)方法,下面定(ding)義一個簡單(dan)的CANCAN标準幀(zhēn)中的數據幀(zhēn),幀ID中的11個位的分(fen)配和使用方(fang)法如下表所(suo)列,協議中另(lìng)外還定義了(le)功能參數長(zhǎng)度變量FunDataLen的功能(néng)參數數組FunData,該數(shu)組在需要時(shi)可以爲某些(xie)特定功能函(hán)數提供足夠(gòu)的控制參數(shù)。

今天(tiān)的交流先到(dao)這裏,如想了(le)解更多,可關(guān)注緻遠電子(zǐ)官網微信,或(huò)參考緻遠電(dian)子CAN-bus應用層(céng)協議構建知(zhī)識。
