技術交流
在CAN-bus網絡上,CAN報文以廣播的形(xíng)式發送,CAN報文不包含地址(zhi)信息,是否處理接(jie)收到的CAN報文由接收點的(de)軟件确定。CAN-bus隻提供可靠的(de)報文傳輸服務,CAN報文的使(shǐ)用由應用者定義(yì), 所以CAN網絡中的節點(diǎn)要相互通信就必(bi)須制定一個統一(yī)的規則。CAN應用層協議就是(shi)這樣一個規則。
這個規則(ze),定義了CAN報文中幀ID及幀數據的使(shǐ)用方式,如将幀ID定義爲需(xū)要處理該幀數據(ju)的CAN節點(diǎn)地址等。根據應用(yòng)場合的不同,國際(jì)上出現了多種CAN應用層協(xié)議,常見的CAN-bus應用層協議如(rú)下:
接下來,我們看一(yi)下如何構建CAN-bus應用(yong)層協議
構建(jian)一個現場總線網(wang)絡,需要解決的關(guān)鍵技術問題有:
-
總線傳輸信息(xī)的速度、容量、優先(xiān)等級、節點容量等(děng);
-
高電磁幹擾(rǎo)環境下的可靠數(shù)據傳輸;
-
最大(dà)傳輸距離時延時(shi)大小的确定;
-
網絡的容錯技術(shu);
-
網絡的監控(kòng)和故障診斷功能(neng)。
要(yào)解決以上問題,需(xu)要充分考慮現場(chang)總線網絡所采用(yòng)的總線類型,因爲(wei)以上問題和總線(xian)的性能特點是密(mi)切相關的,那麽我(wǒ)們就看一下CAN-bus總線的上述(shu)特性:
-
CAN-bus網絡傳輸速度最(zuì)高可達1Mbps,并采用無損仲裁(cai),通過報文标識符(fú)指示報文優先級(jí)。
-
CAN-bus
-
CAN-bus采用幀傳輸,每(měi)個報文允許傳輸(shu)最多8個(gè)字節,幀結構有嚴(yan)格規定,能夠确定(ding)最大傳輸延時。
-
CAN-bus具有可(kě)靠的錯誤機制和(he)檢測機制,發送的(de)信息遭到破壞後(hòu)可以重新發送;節(jie)點在錯誤嚴重的(de)情況下,具有自動(dong)退出總線的功能(neng)。
-
CAN-bus應用層協議(yi)解決網絡監控和(he)診斷。
CAN報(bào)文的分配
包含報文标識(shí)符的分配和報文(wen)數據的分配,報文(wén)格式的定義,實質(zhi)是将報(bào)文的分配規則進(jin)行詳細的描述。
CAN2.0A幀:11位ID
CAN2.0B幀:29ID
報文數據(ju)的定義:
每幀報文最多包(bāo)含8字節(jie)數據
CAN網(wǎng)絡數據通信的實(shí)現
在CAN網絡(luo)中,通過報文的标(biāo)識符進行信息的(de)區分,因此通過報(bao)文的各種标識符(fú)分配來達到建立(li)信息鏈接的目的(de)。
/響應模式通信
CAN應用層協議:面(mian)向節點和面向報(bao)文的協議
數(shù)據通信協議基本(ben)上可以劃分爲“面(mian)向節點的協議”和(he)“面向報文的協議(yi)”兩種類型,如下圖(tu):

應用層(ceng)協議的開發和使(shǐ)用方法,下面定義(yì)一個簡單的應用協議棧(zhàn),該協議棧中隻用(yòng)到标準(zhǔn)幀中的數據幀,幀(zhen)ID中的11個位的分(fen)配和使用方法如(rú)下表所列,協議中(zhong)另外還定義了功(gong)能參數長度變量(liàng)的功能(neng)參數數組FunData,該數組在需要(yao)時可以爲某些特(te)定功能函數提供(gòng)足夠的控制參數(shu)。

今天的交流先(xian)到這裏,如想了解(jiě)更多,可關注緻遠(yuan)電子官網微信,或(huò)參考緻遠電子國際現場(chang)總線教學科研平(ping)台,幫您了解更多(duo)CAN-bus應用層(céng)協議構建知識。


