關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > CANOpen輕松入門之過程數據對象(PDO)和服務數據對象(SDO)

        CANOpen輕松入門之過程數據對象(PDO)和服務數據對象(SDO)

        作者: 時間:2015-12-14 來源:網絡 收藏

          摘要:CANopen是一種架構在控制局域網路(Controller Area Network, CAN)上的高層通訊協議,對其協議的學習很多人都覺得有難度,看來看去都覺得是云里來霧里去的,本文將讓CANOpne協議不再那么神秘,帶你跨過學習道路的第一道門檻。

        本文引用地址:http://www.104case.com/article/284308.htm

          應用CANopen時,需要傳遞的配置信息和應用信息都放在過程數據對象PDO(Process data object)和服務數據對象 (Service data object)里面。這些對象就和市場上賣水果的籮筐,大小是一樣的,只是裝的東西(應用數據)不一樣,如圖1所示。這就是CiA301協議所規定的基礎協議——“籮筐”,而CiA4xx的子協議或者用戶自定義的對象就是“籮筐”里面的東西。


          圖1 PDO和就像水果籮筐

          PDO和的通訊區別在于,PDO屬于過程數據,即單向傳輸,無需接收節點回應CAN報文來確認,從通訊術語上來說是屬于“生產消費”模型。如圖2所示。


          圖2 生產消費模型

          而SDO屬于服務數據,有指定被接收節點的地址(Node-ID),并且需要指定的接收節點回應CAN報文來確認已經接收,如果超時沒有確認,則發送節點將會重新發送原報文。這種通訊方式屬于常見的“服務器客戶端”的通信模型,即我們通常所說的輪詢式。如圖3所示。


          圖3 服務器客戶端模型

          對于PDO和SDO的報文ID分配,為了減少網絡的組態工作量,CANopen預定義了強制性的缺省標識符(CAN-ID)分配表,該分配表是基于11位CAN-ID的標準幀格式。將其劃分為4位的功能碼(Function-ID)和7位的節點號(Node-ID)。如圖4所示.


          圖4 PDO和SDO的預定義連接ID分配

          在CANopen里也通常把 CAN-ID 稱為COB-ID(通信對象編號)。所以我們可以分清楚兩個易于混淆的名稱:

          COB-ID:Communication Object Identifier,即 CANopen中對某種通訊對象的報文幀ID,即CAN報文的11位ID。代表了一種通訊含義。

          Node-ID:節點ID號,即CANopen網絡中的節點地址,CANopen規定了邏輯上最大128個節點,所以Node-ID最大為128(7位)。

          COB-ID和Node-ID無必然聯系,但在過程數據對象(PDO)和服務數據對象(SDO)中,COB-ID中包含了Node-ID。

          由于需要區分每個CANopen節點的輸入和輸出,所以PDO分為TPDO(發送PDO)和(接收RPDO),發送和接收是以CANopen從站節點為參考(如果CAN主站就相反)。TPDO和RPDO分別有4個數據對象(如TPDO有TPDO1、TPDO2、TPDO3、TPDO4;RPDO有RPDO1、RPDO2、RPDO3、RPDO4),每種數據對象就是1條CAN報文封裝,如表1所示,這些都是數據收發的容器,就像圖 1所示,水果籮筐為使用者準備好,就看使用者在里面放什么水果了。

          而SDO就相對比較簡單固定,發起通訊的“問”SDO的CAN幀ID就是600h +node-ID,這里的Node-ID是被問的節點地址,而被問的節點應“答”SDO的CAN幀ID就是580h +node-ID。一般在CANopen網絡中,只有NMT主機能發起SDO通訊,進行節點參數配置或者關鍵性參數的傳遞。當然從節點也可以對其他從節點發起SDO通訊。

          如表1所示。為CANopen預定義報文的PDO報文和SDO報文中的ID分類。使用者務必牢記!


          表1 PDO與SDO的CAN-ID定義

          XGate-COP10嵌入式CANOPEN從站模塊是ZLG致遠電子開發的一款擁有自主知識產權的CANopen從站通信模塊。內部已經集成了CANopen從站協議棧代碼,使用簡單的串口通信協議即可實現與XGate-COP10的通信,并提供串口通信協議標準C文件,使現有的設備以最快的速度擁有CANopen通信能力。








        關鍵詞: CANOpen SDO

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 綦江县| 崇州市| 逊克县| 沛县| 内乡县| 临猗县| 烟台市| 新巴尔虎右旗| 泽州县| 庐江县| 浦北县| 南江县| 平利县| 民乐县| 岑巩县| 民勤县| 云林县| 榆树市| 大兴区| 淳化县| 确山县| 星子县| 金秀| 白玉县| 衡阳县| 苏尼特右旗| 左权县| 丽江市| 上犹县| 武定县| 延吉市| 大关县| 孙吴县| 永兴县| 固安县| 依安县| 娄底市| 信宜市| 陇西县| 耿马| 墨玉县|