如何規范通訊數據類(lèi)型
摘要:當前的通訊方式各式各樣,通訊協(xié)議也是五花八門(mén),如何讓通訊更加穩定可靠,這是很多工程師的棘手問(wèn)題。本文將運用國際規范的通訊標準解說(shuō)其通訊協(xié)議的定義方式。
本文引用地址:http://dyxdggzs.com/article/201601/286222.htm過(guò)程數據對象PDO(Process data object)
PDO屬于過(guò)程數據用來(lái)傳輸實(shí)時(shí)數據,即單向傳輸,無(wú)需接收節點(diǎn)回應CAN報文來(lái)確認,從通訊術(shù)語(yǔ)上來(lái)說(shuō)是屬于“生產(chǎn)消費”模型PDO,如圖 1所示,就像食品銷(xiāo)售柜臺,生產(chǎn)者擺出“食品”,但只有“需要”的消費者才會(huì )來(lái)買(mǎi),沒(méi)有指向性。
圖 1 生產(chǎn)者消費者模型
數據長(cháng)度被限制為1~8 字節。最多只要1幀就可以把一條信息或者一個(gè)變量傳遞結束。
PDO的CAN-ID定義
PDO通信比較靈活,廣義上只要符合PDO范圍內的所有CANID都可以作為節點(diǎn)自身的TPDO或者RPDO使用,也稱(chēng)為COB-ID,不受功能碼和Node-ID限制,如圖 2所示。
圖 2 PDO的CANID規則
而在PDO預定義中,人為規定了TPDO和RPDO,規定了Node-ID在PDO中的位置,規定了PDO的編號,如表 1所示。
表 1 PDO的CAN-ID定義
PDO分為T(mén)PDO(發(fā)送PDO)和(接收RPDO),發(fā)送和接收是以CANopen節點(diǎn)自身為參考(如果CAN主站或者其他從站就相反)。TPDO和RPDO分別有4個(gè)數據對象,每種數據對象就是1條CAN報文封裝,這些都是數據收發(fā)的容器,就像圖 3所示,水果籮筐為使用者準備好,就看使用者在里面放什么水果了。
圖 3 PDO和SDO就像水果籮筐
當然,如果某個(gè)節點(diǎn)需要傳遞的資源特別多,則有出現例如TPDO5之類(lèi)的數據對象,而它們的CAN-ID定義就需要打破預定義的規則,比如我們可以定義Node-ID為1的節點(diǎn)中TPDO5是182h,這里的PDO的COB-ID中的低7位不再是表示Node-ID。其實(shí)所有的PDO的COB-ID與Node-ID無(wú)必然規則上的聯(lián)系。
PDO的傳輸形式
PDO的兩種傳輸方式:同步傳輸和異步傳輸。 如圖 4所示,1、2為異步傳輸,3、4為同步傳輸。
圖 4 PDO的傳輸形式
異步傳輸(由特定事件觸發(fā))
其觸發(fā)方式可有兩種,第一種是由設備子協(xié)議中規定的對象特定事件來(lái)觸發(fā)(例如,定時(shí)傳輸,數據變化傳輸等)。第二種是通過(guò)發(fā)送與PDO的COB-ID相同的遠程幀來(lái)觸發(fā)PDO的發(fā)送。目前應用中的異步傳輸基本都采用第一種。
同步傳輸(通過(guò)接收同步對象實(shí)現同步)
同步傳輸就是通過(guò)同步報文讓所有節點(diǎn)能在同一時(shí)刻進(jìn)行上傳數據或者執行下達的應用指令,可以有效避免異步傳輸導致的應用邏輯混亂和總線(xiàn)負載不平衡的問(wèn)題。一般發(fā)送同步報文的節點(diǎn)是NMT主機。
同步傳輸又可分為周期傳輸(循環(huán))和非周期傳輸(無(wú)循環(huán))。周期傳輸則是通過(guò)接收同步對象(SYNC)來(lái)實(shí)現,可以設置1~240個(gè)同步對象觸發(fā)。 非周期傳輸是由遠程幀預觸發(fā)或者由設備子協(xié)議中規定的對象特定事件預觸發(fā)傳送。
PDO的通信參數
PDO通信參數,定義了該設備所使用的COB-ID、傳輸類(lèi)型、定時(shí)周期等。RPDO通訊參數位于對象字典索引的1400h to 15FFh,TPDO通訊參數位于對象字典索引的1800h to 19FFh。每條索引代表一個(gè)PDO的通信參數集,其中的子索引分別指向具體的各種參數。如表 2所示。
表 2 PDO的通信參數
Number of entries參數條目數量:即本索引中有幾條參數;
?COB-ID:即這個(gè)PDO發(fā)出或者接收的對應CAN幀ID;
?發(fā)送類(lèi)型:即這個(gè)PDO發(fā)送或者接收的傳輸形式,通常使用循環(huán)同步和異步制造商特定事件較多;
?Inhibit time生產(chǎn)禁止約束時(shí)間(1/10ms):約束PDO發(fā)送的最小間隔,避免導致總線(xiàn)負載劇
?烈增加,比如數字量輸入過(guò)快,導致?tīng)顟B(tài)改變發(fā)送的TPDO頻繁發(fā)送,總線(xiàn)負載加大,所以需要一個(gè)約束時(shí)間來(lái)進(jìn)行“濾波”,這個(gè)時(shí)間單位為0.1ms;
?Event timer事件定時(shí)器觸發(fā)的時(shí)間(單位ms):定時(shí)發(fā)送的PDO,它的定時(shí)時(shí)間,如果這個(gè)時(shí)間為0,則這個(gè)PDO為事件改變發(fā)送。
?SYNC start value同步起始值:同步傳輸的PDO,收到諾干個(gè)同步包后,才進(jìn)行發(fā)送,這個(gè)同步起始值就是同步包數量。比如設置為2,即收到2個(gè)同步包后才進(jìn)行發(fā)送。
PDO的映射參數
PDO映射參數是初學(xué)者學(xué)習CANopen時(shí)的一個(gè)難點(diǎn),它包含了一個(gè)對象字典中的對象列表,這些對象映射到相應的PDO,其中包括數據的長(cháng)度(單位,位),對于生產(chǎn)者和消費者都必須要知道這個(gè)映射參數,才能夠正確的解釋PDO內容。就是將通信參數、應用數據和具體CAN報文中數據聯(lián)系起來(lái)。
RPDO通訊參數1400h to 15FFh,映射參數1600h to 17FFh,數據存放為2000h 之后廠(chǎng)商自定義區域;TPDO通訊參數1800h to 19FFh,映射參數1A00h to 1BFFh,數據存放為2000h 之后廠(chǎng)商自定義區域。
為了更加直觀(guān)地表現映射,表 3模擬TPDO1,將參數、應用數據、CAN報文數據聯(lián)合起來(lái)展示,不同的映射采用不同的顏色。
表 3 PDO在對象字典中的映射關(guān)系
CAN transmission( CAN發(fā)送報文)
TPDO1(CAN-ID = 181h) Data field:數據域4個(gè)字節
表 4 TPDO的數據域
請讀者閱讀3遍以上,如果還是無(wú)法理解。請打開(kāi)廣州致遠電子的CANopen主站卡管理軟件CANManager for CANopen,導入XGate-COP10模塊從站協(xié)議棧模塊的EDS文件,來(lái)真實(shí)感受一下。點(diǎn)擊配置從站,“高級”中進(jìn)行感性認識。
USBCAN-E-P與PCI-5010-P主站卡可為PC機拓展出CANOpen通訊接口,實(shí)現CANOpen協(xié)議的數據通信。作為CANOpen網(wǎng)絡(luò )的管理者,實(shí)現全部的CANOpen網(wǎng)絡(luò )管理(NMT)功能。
評論