摘要
每一種通訊都有其短板的地方,這就需要一些特殊的處理方式來彌補(bǔ),本文將運(yùn)用國(guó)際規(guī)范的通訊協(xié)議來展示怎樣才能讓控制更加可靠。
特殊協(xié)議(Special protocols)
為了方便CANopen主站對(duì)從站管理。在CANopen協(xié)議中,已經(jīng)為特殊的功能預(yù)定義了COB-ID,其主要有以下幾種特殊報(bào)文。
同步協(xié)議(Sync protocol)
同步(SYNC),該報(bào)文對(duì)象主要實(shí)現(xiàn)整個(gè)網(wǎng)絡(luò)的同步傳輸,如圖 1所示,就像閱兵分列式上的方陣,所有士兵邁著整齊的步伐行進(jìn)。

圖1 同步協(xié)議與閱兵分列式
每個(gè)節(jié)點(diǎn)都以該同步報(bào)文作為PDO觸發(fā)參數(shù),因此該同步報(bào)文的COB-ID 具有比較高的優(yōu)先級(jí)以及最短的傳輸時(shí)間。 一般選用80h作為同步報(bào)文的CAN-ID,如圖2所示。

圖2 同步報(bào)文
一般同步報(bào)文由NMT主機(jī)發(fā)出,CAN報(bào)文的數(shù)據(jù)為0字節(jié)。但如果一個(gè)網(wǎng)絡(luò)內(nèi)有2個(gè)同步機(jī)制,就需要設(shè)置不同的同步節(jié)拍,比如某些節(jié)點(diǎn)按1個(gè)同步幀發(fā)送1次PDO,其他的節(jié)點(diǎn)收到2個(gè)同步幀才發(fā)送1此PDO,所以這里PDO參數(shù)中的同步起始值就起了作用。
在同步協(xié)議中,有2個(gè)約束條件:
- 同步窗口時(shí)間:索引1007h約束了同步幀發(fā)送后,從節(jié)點(diǎn)發(fā)送PDO的時(shí)效,即在這個(gè)時(shí)間內(nèi)發(fā)送的PDO才有效,超過時(shí)間的PDO將被丟棄;
- 通訊循環(huán)周期:索引1006h規(guī)定了同步幀的循環(huán)周期。
時(shí)間戳協(xié)議(Time-stamp protocol)
時(shí)間標(biāo)記對(duì)象(Time Stamp),NMT主機(jī)發(fā)送自身的時(shí)鐘,為網(wǎng)絡(luò)各個(gè)節(jié)點(diǎn)提供公共的時(shí)間參考,即網(wǎng)絡(luò)對(duì)時(shí),如圖3所示。這在故障診斷中非常需要,比如列車中火災(zāi)報(bào)警,檢修人員需要準(zhǔn)確獲知報(bào)警的時(shí)刻,然后關(guān)聯(lián)查看其它設(shè)備在這個(gè)時(shí)刻的工作狀態(tài)。

圖3 時(shí)間戳協(xié)議與校時(shí)
時(shí)間戳協(xié)議采用廣播方式,無需節(jié)點(diǎn)應(yīng)答,CAN-ID為100h,數(shù)據(jù)長(zhǎng)度為6,數(shù)據(jù)為當(dāng)前時(shí)刻與1984年1月1日0時(shí)的時(shí)間差。如圖 4所示。節(jié)點(diǎn)將此時(shí)間存儲(chǔ)在對(duì)象字典1012h的索引中。

圖4 時(shí)間戳協(xié)議
由于時(shí)間換算起來非常費(fèi)勁,這里特地準(zhǔn)備好了換算函數(shù),方便讀者使用。
緊急報(bào)文協(xié)議(Emergency protocol)
緊急事件對(duì)象(Emergency),是當(dāng)設(shè)備內(nèi)部發(fā)生錯(cuò)誤,觸發(fā)該對(duì)象,發(fā)送設(shè)備內(nèi)部錯(cuò)誤代碼,提示NMT主站。緊急報(bào)文屬于診斷性報(bào)文,一般不會(huì)影響CANopen通訊,其CAN-ID存儲(chǔ)在1014h的索引中,一般會(huì)定義為080h +node-ID,數(shù)據(jù)包含8個(gè)字節(jié),如圖5所示。

圖5 緊急報(bào)文
其中包括EEC:緊急時(shí)間錯(cuò)誤代碼,ER:錯(cuò)誤寄存器,MEF:廠商自定義的錯(cuò)誤代碼。當(dāng)然這些都需要查表才能獲知,進(jìn)行診斷。
表1 Emergency error codes(緊急報(bào)文錯(cuò)誤代碼)
與PDO的生產(chǎn)禁止時(shí)間類似,緊急報(bào)文也有生產(chǎn)禁止時(shí)間,存儲(chǔ)在對(duì)象字典的1015h中,為了限制節(jié)點(diǎn)不斷發(fā)送緊急報(bào)文,導(dǎo)致總線負(fù)載過大。
USBCAN-E-P與PCI-5010-P主站卡可為PC機(jī)拓展出CANOpen通訊接口,實(shí)現(xiàn)CANOpen協(xié)議的數(shù)據(jù)通信。作為CANOpen網(wǎng)絡(luò)的管理者,實(shí)現(xiàn)全部的CANOpen網(wǎng)絡(luò)管理(NMT)功能。
|