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

應(yīng)用層協議的(de)開發和使用(yong)方法,下面定(dìng)義一個簡單(dan)的應用協議棧(zhan),該協議棧中(zhong)隻用到标準幀(zhen)中的數據幀(zhen),幀ID中的11個位的分(fen)配和使用方(fang)法如下表所(suo)列,協議中另(ling)外還定義了(le)功能參數長(zhǎng)度變量的功能(néng)參數數組FunData,該數(shù)組在需要時(shí)可以爲某些(xie)特定功能函(hán)數提供足夠(gòu)的控制參數(shu)。

今天(tian)的交流先到(dào)這裏,如想了(le)解更多,可關(guan)注緻遠電子(zǐ)官網微信,或(huo)參考緻遠電(dian)子國際現場總(zǒng)線教學科研(yan)平台,幫您了(le)解更多CAN-bus應用層(céng)協議構建知(zhī)識。




