標題: 如何設(shè)計通訊方式能夠更加可靠 [打印本頁]

作者: hubaba    時間: 2016-3-28 15:32
標題: 如何設(shè)計通訊方式能夠更加可靠
摘要

每一種通訊都有其短板的地方,這就需要一些特殊的處理方式來彌補,本文將運用國際規(guī)范的通訊協(xié)議來展示怎樣才能讓控制更加可靠。


特殊協(xié)議(Special protocols)

為了方便CANopen主站對從站管理。在CANopen協(xié)議中,已經(jīng)為特殊的功能預(yù)定義了COB-ID,其主要有以下幾種特殊報文。

同步協(xié)議(Sync protocol)

同步(SYNC),該報文對象主要實現(xiàn)整個網(wǎng)絡(luò)的同步傳輸,如圖 1所示,就像閱兵分列式上的方陣,所有士兵邁著整齊的步伐行進。


圖1  同步協(xié)議與閱兵分列式

每個節(jié)點都以該同步報文作為PDO觸發(fā)參數(shù),因此該同步報文的COB-ID 具有比較高的優(yōu)先級以及最短的傳輸時間。 一般選用80h作為同步報文的CAN-ID,如圖2所示。


圖2  同步報文

一般同步報文由NMT主機發(fā)出,CAN報文的數(shù)據(jù)為0字節(jié)。但如果一個網(wǎng)絡(luò)內(nèi)有2個同步機制,就需要設(shè)置不同的同步節(jié)拍,比如某些節(jié)點按1個同步幀發(fā)送1次PDO,其他的節(jié)點收到2個同步幀才發(fā)送1此PDO,所以這里PDO參數(shù)中的同步起始值就起了作用。

在同步協(xié)議中,有2個約束條件:


時間戳協(xié)議(Time-stamp protocol)

時間標記對象(Time Stamp),NMT主機發(fā)送自身的時鐘,為網(wǎng)絡(luò)各個節(jié)點提供公共的時間參考,即網(wǎng)絡(luò)對時,如圖3所示。這在故障診斷中非常需要,比如列車中火災(zāi)報警,檢修人員需要準確獲知報警的時刻,然后關(guān)聯(lián)查看其它設(shè)備在這個時刻的工作狀態(tài)。


圖3  時間戳協(xié)議與校時

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


圖4  時間戳協(xié)議

由于時間換算起來非常費勁,這里特地準備好了換算函數(shù),方便讀者使用。

緊急報文協(xié)議(Emergency protocol)

緊急事件對象(Emergency),是當設(shè)備內(nèi)部發(fā)生錯誤,觸發(fā)該對象,發(fā)送設(shè)備內(nèi)部錯誤代碼,提示NMT主站。緊急報文屬于診斷性報文,一般不會影響CANopen通訊,其CAN-ID存儲在1014h的索引中,一般會定義為080h +node-ID,數(shù)據(jù)包含8個字節(jié),如圖5所示。


圖5  緊急報文

其中包括EEC:緊急時間錯誤代碼,ER:錯誤寄存器,MEF:廠商自定義的錯誤代碼。當然這些都需要查表才能獲知,進行診斷。

表1  Emergency error codes(緊急報文錯誤代碼)


與PDO的生產(chǎn)禁止時間類似,緊急報文也有生產(chǎn)禁止時間,存儲在對象字典的1015h中,為了限制節(jié)點不斷發(fā)送緊急報文,導(dǎo)致總線負載過大。

USBCAN-E-P與PCI-5010-P主站卡可為PC機拓展出CANOpen通訊接口,實現(xiàn)CANOpen協(xié)議的數(shù)據(jù)通信。作為CANOpen網(wǎng)絡(luò)的管理者,實現(xiàn)全部的CANOpen網(wǎng)絡(luò)管理(NMT)功能。






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1