CAN應(yīng)用層協(xié)議詳解之DeviceNet協(xié)議
DeviceNet是基于CAN總線技術(shù)并符合全球工業(yè)標(biāo)準(zhǔn)的開放型通信網(wǎng)絡(luò)。定位于工業(yè)控制的設(shè)備級網(wǎng)絡(luò),不僅降低了系統(tǒng)的復(fù)雜性,還減少了設(shè)備通信的電纜硬件接線,提高系統(tǒng)可靠性,降低安裝、維護(hù)成本,是分布式控制系統(tǒng)的理想解決方案。
本文引用地址:http://www.butianyuan.cn/article/201704/346569.htmDeviceNet規(guī)范定義了一個網(wǎng)絡(luò)通信標(biāo)準(zhǔn),以便組成工業(yè)控制系統(tǒng)的各個設(shè)備之間可以進(jìn)行數(shù)據(jù)通信。DeviceNet規(guī)范除了提供ISO模型的應(yīng)用層定義之外,還定義了部分物理層和數(shù)據(jù)鏈路層。規(guī)范中不僅對DeviceNet節(jié)點(diǎn)的物理連接也作了規(guī)定,連接器、電纜類型、長度以及與通信相關(guān)的指示器、開關(guān)、相關(guān)的室內(nèi)銘牌都作了詳細(xì)規(guī)定。
1.DeviceNet基本概念
DeviceNet是建立在CAN協(xié)議基礎(chǔ)之上,沿用了CAN協(xié)議所規(guī)定的物理層和數(shù)據(jù)鏈路層,并補(bǔ)充了不同的報文格式、總線訪問仲裁規(guī)則及故障檢測和隔離方法。DeviceNet的功能和特點(diǎn)如表1所示。
![](http://upload.semidata.info/new.eefocus.com/article/image/2017/04/12/58edfda6607b4-thumb.jpg)
表1 DeviceNet特點(diǎn)
DeviceNet的應(yīng)用層協(xié)議則采用的是通用工業(yè)協(xié)議(CIP)。CIP是一個在高層面上嚴(yán)格面向?qū)ο蟮膮f(xié)議。每個CIP對象具有屬性(數(shù)據(jù)),服務(wù)(命令),連接和行為(屬性值與服務(wù)間的關(guān)系),其主要功能有兩個:一是面向連接的通信;二是定義了標(biāo)準(zhǔn)的工業(yè)應(yīng)用對象。下文詳細(xì)介紹通信部分。
CIP通信最重要的特點(diǎn)是它用不同的方式傳輸不同類型的報文,根據(jù)報文質(zhì)量要求將需要發(fā)送的報文分為:顯式報文和隱式報文。
CIP另一個重要特點(diǎn)是通信基于連接的。因此DeviceNet網(wǎng)絡(luò)上任意兩個節(jié)點(diǎn)通信之前必須建立起連接,且連接是可以動態(tài)建立和撤銷。請注意這里的“連接”是邏輯上的關(guān)系,而非物理層的連接。
DeviceNet支持兩種類型的連接:顯式信息連接和I/O連接。
顯式信息連接是點(diǎn)對點(diǎn)的連接方式,報文接收方必須對接到的報文做出相應(yīng)的響應(yīng),通常這類報文對時間要求不高,主要用于上傳/下載程序、修改設(shè)備參數(shù)、趨勢分析和診斷等。
I/O連接則用于傳送實時性要求較高的I/O報文,可以一對一、一對多的數(shù)據(jù)傳送。DeviceNet支持多種I/O數(shù)據(jù)觸發(fā)方式,如位選通(Bit strobe)、輪詢(Poll)、狀態(tài)改變(COS:Change Of State)/循環(huán)(Cyclic)等。
位選通:利用8字節(jié)的廣播報文,每一位分別對應(yīng)著網(wǎng)絡(luò)上64個節(jié)點(diǎn),指定要求響應(yīng)的從節(jié)點(diǎn),響應(yīng)報文最大為8個字節(jié)。
輪詢:這種觸發(fā)方式適用于絕大多數(shù)設(shè)備,相比位選通的少量I/O數(shù)據(jù),輪詢命令可傳送任意數(shù)量的數(shù)據(jù)。輪詢命令依次發(fā)送到各從站設(shè)備,從站接收到命令后做出應(yīng)答。
狀態(tài)改變:此方式多用于離散的設(shè)備,當(dāng)設(shè)備狀態(tài)發(fā)生改變時,使用事件觸發(fā)方式,發(fā)生通信,而不是依靠主設(shè)備不斷查詢。為了防止設(shè)備掉線,增加了心跳報文,定時獲取設(shè)備運(yùn)行狀態(tài)。
循環(huán):適用于一些模擬設(shè)備,可以根據(jù)設(shè)備信號發(fā)生快慢,靈活的設(shè)定循環(huán)通信的時間間隔,可以降低不必要的網(wǎng)絡(luò)流量,循環(huán)時間設(shè)定值應(yīng)小于模擬量輸入發(fā)生變化的時間值。每臺設(shè)備中,循環(huán)和狀態(tài)改變是互斥的,同一時刻只能使用一種連接方式。
下面通過圖1介紹DeviceNet網(wǎng)絡(luò)中兩臺設(shè)備建立通信的一般流程。
![](http://upload.semidata.info/new.eefocus.com/article/image/2017/04/12/58edfda5e027e-thumb.jpg)
圖1 DeviceNet通信基本流程
DeviceNet網(wǎng)絡(luò)上最多可有64個節(jié)點(diǎn),節(jié)點(diǎn)地址(MAC ID)可為0~63,每一個節(jié)點(diǎn)都具有唯一的MAC ID。因此每個節(jié)點(diǎn)在上電之后、上線之前必須進(jìn)行重復(fù)MAC ID檢測,以確認(rèn)其MAC ID是否已被網(wǎng)絡(luò)上其它節(jié)點(diǎn)使用。節(jié)點(diǎn)在上電之后,將發(fā)送重復(fù)MAC ID檢測報文,間隔一秒,如果連續(xù)兩次發(fā)送都沒有接收到來自其它節(jié)點(diǎn)的重復(fù)MAC ID響應(yīng)報文,那么該節(jié)點(diǎn)可以使用此MAC ID并轉(zhuǎn)為在線狀態(tài),否則表示該MAC ID已被其它節(jié)點(diǎn)占用,該節(jié)點(diǎn)為離線狀態(tài)。然后,通過未連接顯式信息建立顯式信息連接,主從站通過顯式信息進(jìn)行各種配置和信息交換,主站通過顯式信息讀取從站的標(biāo)識信息,并與預(yù)先保存的配置信息進(jìn)行對比,只有完全一致時主站才會對從站進(jìn)行下一步操作,否則主站將會主動釋放顯式信息連接。最后,建立I/O連接,并通過I/O連接進(jìn)行實時數(shù)據(jù)收發(fā)。
注:不同的主站模塊建立I/O連接的流程有所差別,上文強(qiáng)調(diào)的是DeviceNet網(wǎng)絡(luò)是基于連接的一種通信網(wǎng)絡(luò)。
DeviceNet 是一個基于連接的網(wǎng)絡(luò)系統(tǒng)一個DeviceNet 的連接提供了多個應(yīng)用之間的路徑當(dāng)建立連接時與連接相關(guān)的傳送被分配一個連接ID CID 如果連接包含雙向交換那么應(yīng)當(dāng)分配兩個連接ID 值見圖2。
![](http://upload.semidata.info/new.eefocus.com/article/image/2017/04/12/58edfda65359c-thumb.jpg)
圖2 連接及連接ID
2.DeviceNet 關(guān)于CAN 標(biāo)識區(qū)的使用
在DeviceNet 上有效的11 位CAN 標(biāo)識位被分成4 個單獨(dú)的信息組組1 組2和組3 和組4。
![](http://upload.semidata.info/new.eefocus.com/article/image/2017/04/12/58edfda5e2bc7-thumb.jpg)
圖3 DeviceNet的CAN報文定義
信 息 ID (Message ID) :在一特定端點(diǎn)內(nèi)的信息組中識別一個信息信息ID 使得在一特定的端點(diǎn)內(nèi)單個信息組中可以建立多重連接連接建立時該端點(diǎn)利用信息ID與MAC ID 的結(jié)合生成一個連接ID 該連接ID 在與相應(yīng)傳輸有關(guān)的CAN 標(biāo)識區(qū)內(nèi)指定具體細(xì)節(jié)在本規(guī)范的后續(xù)部分中將被描述注意組2 和組3 預(yù)定義了確定信息ID 的使用;
源 MAC ID (Source MAC ID) :此 MAC ID 分配給發(fā)送節(jié)點(diǎn)組1 和3 需要在CAN標(biāo)識區(qū)內(nèi)指定源MAC ID;
目 的 MAC ID (Destination MAC ID): 此 MAC ID 分配給接收設(shè)備信息組2 允許在CAN 標(biāo)識區(qū)的MAC ID 部分指定源或目的MAC ID。
3.信息組1
DeviceNet 并不預(yù)定義組1 信息ID 的使用組1 信息ID 描述了通過一個特別端點(diǎn)交換的各種組1 信息。
![](http://upload.semidata.info/new.eefocus.com/article/image/2017/04/12/58edfda66f45a-thumb.jpg)
圖4 DeviceNet的信息組1定義
在組1 的傳輸中總線訪問優(yōu)先權(quán)被均勻地分配到網(wǎng)絡(luò)的所有設(shè)備上當(dāng)兩個或多個組1 信息進(jìn)行CAN 總線訪問仲裁時小數(shù)字的組1 信息ID 值的信息將贏得仲裁并獲得總線訪問權(quán)。例如device #20 message_ID = 2將先于 device #5 message_ID = 6 贏得仲裁。
如果兩個或多個信息ID 值相等的組1 信息進(jìn)行總線仲裁那么來自MAC ID 值較低的設(shè)備的發(fā)送將贏得仲裁,例如device #2 message_ID=5 將先于 device #3 message_ID=5 贏得仲裁。這樣在組1 中就提供了16 個級的優(yōu)先權(quán)均勻分配方案
4.信息組2
組2 信息ID 描述了在一個特定端點(diǎn)上交換各種組2 ,信息組2 中的信息ID 值為6 和7 的用法例外
DeviceNet 預(yù)定義了一組用于主/從應(yīng)用通訊的連接見第7 章這個定義保留組2 信息ID 值6。組 2 信息ID 值7 被保留用作被賦予相同MAC ID 節(jié)點(diǎn)的檢測見第6 章網(wǎng)絡(luò)訪問狀態(tài)機(jī)制。
![](http://upload.semidata.info/new.eefocus.com/article/image/2017/04/12/58edfda616f3b-thumb.jpg)
在組2 內(nèi)MAC ID 可以是發(fā)送節(jié)點(diǎn)的MAC ID 源MAC ID 也可以是接收節(jié)點(diǎn)的MAC ID 目的MAC ID 當(dāng)通過組2 建立連接時端點(diǎn)將確定是源MAC ID還是目的MAC ID在組2 傳輸中總線訪問優(yōu)先權(quán)是根據(jù)標(biāo)識符的MAC ID 部分的MAC ID 值來決定的當(dāng)兩個或多個組2 傳輸進(jìn)行CAN 總線仲裁時其 MAC ID 數(shù)值較小的信息將獲得總線訪問權(quán)。
目前,致遠(yuǎn)電子的CANScope總線綜合分析儀已免費(fèi)標(biāo)配CANPRO軟件,可以解析主流的DeviceNet協(xié)議。
![](http://upload.semidata.info/new.eefocus.com/article/image/2017/04/12/58edfda69bc48-thumb.jpg)
圖5 協(xié)議解析
評論