王🔞丽丹妮㊙️福州江閩儀器技術有限公司
産品搜(sōu)索:

技(jì)術交流(liu)

構建專(zhuan)屬于你(ni)的CAN-bus應用(yong)層協議(yi)

随(suí)着CAN-bus相(xiàng)關芯片(pian)價格的(de)下降,内(nei)置CAN控(kòng)制器MCU的增多(duo),CAN-bus當前(qian)已經進(jìn)入了衆(zhōng)多早期(qī)由于成(cheng)本問題(ti)無法使(shi)用的領(ling)域,成爲(wèi)極具生(shēng)命力的(de)現場總(zǒng)線,今天(tiān)我們就(jiu)來探讨(tǎo)如何構(gou)建專屬(shǔ)自己的(de)CAN-bus應用(yòng)層協議(yi)。

CAN-bus網(wǎng)絡上,CAN報文以(yǐ)廣播的(de)形式發(fā)送,CAN報(bào)文不包(bāo)含地址(zhǐ)信息,是(shì)否處理(li)接收到(dao)的CAN報(bào)文由接(jie)收點的(de)軟件确(que)定。CAN-bus隻(zhi)提供可(kě)靠的報(bào)文傳輸(shū)服務,CAN報文的(de)使用由(you)應用者(zhě)定義, 所以(yi)CAN網絡(luò)中的節(jie)點要相(xiàng)互通信(xìn)就必須(xū)制定一(yī)個統一(yi)的規則(zé)。CAN應用(yòng)層協議(yi)就是這(zhè)樣一個(ge)規則。

這個規(guī)則,定義(yì)了CAN報(bào)文中幀(zhēn)ID及幀(zhēn)數據的(de)使用方(fang)式,如将(jiang)幀ID定(dìng)義爲需(xu)要處理(li)該幀數(shù)據的CAN節點地(dì)址等。根(gen)據應用(yòng)場合的(de)不同,國(guó)際上出(chū)現了多(duō)種CAN應(yīng)用層協(xié)議,常見(jian)的CAN-bus應(yīng)用層協(xie)議如下(xia):

接下來(lái),我們看(kàn)一下如(rú)何構建(jian)CAN-bus應用層(ceng)協議

構建(jiàn)一個現(xiàn)場總線(xian)網絡,需(xū)要解決(jué)的關鍵(jian)技術問(wèn)題有:

  • 總線(xian)傳輸信(xin)息的速(su)度、容量(liang)、優先等(děng)級、節點(diǎn)容量等(děng);
  • 高(gao)電磁幹(gan)擾環境(jing)下的可(kě)靠數據(jù)傳輸;
  • 最大(dà)傳輸距(ju)離時延(yan)時大小(xiao)的确定(ding);
  • 網(wǎng)絡的容(rong)錯技術(shù);
  • 網(wang)絡的監(jiān)控和故(gù)障診斷(duan)功能。

要(yao)解決以(yi)上問題(ti),需要充(chong)分考慮(lü)現場總(zong)線網絡(luò)所采用(yong)的總線(xiàn)類型,因(yin)爲以上(shàng)問題和(he)總線的(de)性能特(te)點是密(mi)切相關(guan)的,那麽(me)我們就(jiu)看一下(xia)CAN-bus總線(xian)的上述(shu)特性:

  •  CAN-bus網(wang)絡傳輸(shu)速度最(zuì)高可達(da)1Mbps,并采(cai)用無損(sǔn)仲裁,通(tōng)過報文(wén)标識符(fú)指示報(bào)文優先(xian)級。
  •  CAN-bus采用(yòng)差分信(xin)号傳輸(shū),并采用(yòng)可靠的(de)數據校(xiao)驗和錯(cuo)誤檢測(ce)機制。
  • CAN-bus采(cǎi)用幀傳(chuán)輸,每個(gè)報文允(yun)許傳輸(shu)最多8個字節(jie),幀結構(gòu)有嚴格(ge)規定,能(neng)夠确定(dìng)最大傳(chuan)輸延時(shí)。
  •  CAN-bus具有可(kě)靠的錯(cuò)誤機制(zhì)和檢測(ce)機制,發(fā)送的信(xin)息遭到(dào)破壞後(hòu)可以重(zhong)新發送(song);節點在(zài)錯誤嚴(yan)重的情(qíng)況下,具(ju)有自動(dong)退出總(zǒng)線的功(gōng)能。
  •  可(ke)以通過(guo)制定嚴(yan)禁的CAN-bus應用層(céng)協議解(jiě)決網絡(luo)監控和(hé)診斷。

CAN報文的(de)分配

包含報(bào)文标識(shi)符的分(fen)配和報(bào)文數據(ju)的分配(pei),報文格(gé)式的定(ding)義,實質(zhi)是将CAN報文的(de)分配規(guī)則進行(hang)詳細的(de)描述。

報文(wén)ID的定義(yì):

CAN2.0B幀(zhen):29ID

報(bào)文數據(jù)的定義(yì):

每幀(zhen)報文最(zuì)多包含(hán)8字節(jiē)數據

CAN網絡數(shu)據通信(xìn)的實現(xian)

CAN網(wang)絡中,通(tōng)過報文(wén)的标識(shí)符進行(hang)信息的(de)區分,因(yin)此通過(guo)報文的(de)各種标(biāo)識符分(fen)配來達(da)到建立(li)信息鏈(lian)接的目(mù)的。

                                       命令/響應模(mó)式通信(xin)

CAN應(ying)用層協(xié)議:面向(xiang)節點和(hé)面向報(bào)文的協(xié)議

數據通(tōng)信協議(yi)基本上(shang)可以劃(huà)分爲“面(miàn)向節點(dian)的協議(yi)”和“面向(xiàng)報文的(de)協議”兩(liang)種類型(xíng),如下圖(tu):

                                                        面向節(jiē)點和面(miàn)向報文(wen)的數據(ju)通信

制定(ding)一個CAN應(yīng)用層協(xié)議

爲(wèi)了給讀(du)者演示(shì)CAN應用(yòng)層協議(yi)的開發(fa)和使用(yòng)方法,下(xia)面定義(yi)一個簡(jiǎn)單的CAN應用協(xie)議棧,該(gai)協議棧(zhan)中隻用(yòng)到CAN标(biao)準幀中(zhong)的數據(ju)幀,幀ID中的11個位的(de)分配和(hé)使用方(fāng)法如下(xià)表所列(liè),協議中(zhong)另外還(hai)定義了(le)功能參(can)數長度(dù)變量FunDataLen的功能(néng)參數數(shu)組FunData,該(gāi)數組在(zài)需要時(shí)可以爲(wèi)某些特(te)定功能(neng)函數提(tí)供足夠(gòu)的控制(zhi)參數。

今天(tiān)的交流(liú)先到這(zhè)裏,如想(xiang)了解更(gèng)多,可關(guān)注緻遠(yuan)電子官(guān)網微信(xìn),或參考(kao)緻遠電(dian)子CANOpen國(guó)際現場(chǎng)總線教(jiao)學科研(yán)平台,幫(bāng)您了解(jiě)更多CAN-bus應用層(céng)協議構(gou)建知識(shí)。

总 公 司急 速 版WAP 站H5 版无线端AI 智能3G 站4G 站5G 站6G 站
·
·
··
·