新聞中心

        EEPW首頁 > 設計應用 > 如何規范通訊數據類型?

        如何規范通訊數據類型?

        作者: 時間:2016-10-10 來源:網絡 收藏

        摘要:當前的通訊方式各式各樣,通訊協議也是五花八門,如何讓通訊更加穩定可靠,這是很多工程師的棘手問題。本文將運用國際規范的通訊標準解說其通訊協議的定義方式。

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

        過程數據對象PDO(Process data object)

        PDO屬于過程數據用來傳輸實時數據,即單向傳輸,無需接收節點回應CAN報文來確認,從通訊術語上來說是屬于“生產消費”模型PDO,如圖 1所示,就像食品銷售柜臺,生產者擺出“食品”,但只有“需要”的消費者才會來買,沒有指向性。

        圖片1.jpg

        圖 1 生產者消費者模型

        數據長度被限制為1~8 字節。最多只要1幀就可以把一條信息或者一個變量傳遞結束。

        PDO的CAN-ID定義

        PDO通信比較靈活,廣義上只要符合PDO范圍內的所有CANID都可以作為節點自身的TPDO或者RPDO使用,也稱為COB-ID,不受功能碼和Node-ID限制,如圖 2所示。

        圖片2.jpg

        圖 2 PDO的CANID規則

        而在PDO預定義中,人為規定了TPDO和RPDO,規定了Node-ID在PDO中的位置,規定了PDO的編號,如表 1所示。

        3.png

        表 1 PDO的CAN-ID定義

        PDO分為TPDO(發送PDO)和(接收RPDO),發送和接收是以CANopen節點自身為參考(如果CAN主站或者其他從站就相反)。TPDO和RPDO分別有4個數據對象,每種數據對象就是1條CAN報文封裝,這些都是數據收發的容器,就像圖 3所示,水果籮筐為使用者準備好,就看使用者在里面放什么水果了。

        圖片4.png

        圖 3 PDO和SDO就像水果籮筐

        當然,如果某個節點需要傳遞的資源特別多,則有出現例如TPDO5之類的數據對象,而它們的CAN-ID定義就需要打破預定義的規則,比如我們可以定義Node-ID為1的節點中TPDO5是182h,這里的PDO的COB-ID中的低7位不再是表示Node-ID。其實所有的PDO的COB-ID與Node-ID無必然規則上的聯系。

        PDO的傳輸形式

        PDO的兩種傳輸方式:同步傳輸和異步傳輸。 如圖 4所示,1、2為異步傳輸,3、4為同步傳輸。

        圖片5.jpg

        圖 4 PDO的傳輸形式

        異步傳輸(由特定事件觸發)

        其觸發方式可有兩種,第一種是由設備子協議中規定的對象特定事件來觸發(例如,定時傳輸,數據變化傳輸等)。第二種是通過發送與PDO的COB-ID相同的遠程幀來觸發PDO的發送。目前應用中的異步傳輸基本都采用第一種。

        同步傳輸(通過接收同步對象實現同步)

        同步傳輸就是通過同步報文讓所有節點能在同一時刻進行上傳數據或者執行下達的應用指令,可以有效避免異步傳輸導致的應用邏輯混亂和總線負載不平衡的問題。一般發送同步報文的節點是NMT主機。

        同步傳輸又可分為周期傳輸(循環)和非周期傳輸(無循環)。周期傳輸則是通過接收同步對象(SYNC)來實現,可以設置1~240個同步對象觸發。 非周期傳輸是由遠程幀預觸發或者由設備子協議中規定的對象特定事件預觸發傳送。

        PDO的通信參數

        PDO通信參數,定義了該設備所使用的COB-ID、傳輸類型、定時周期等。RPDO通訊參數位于對象字典索引的1400h to 15FFh,TPDO通訊參數位于對象字典索引的1800h to 19FFh。每條索引代表一個PDO的通信參數集,其中的子索引分別指向具體的各種參數。如表 2所示。

        6.png

        表 2 PDO的通信參數

        Number of entries參數條目數量:即本索引中有幾條參數;

        COB-ID:即這個PDO發出或者接收的對應CAN幀ID;

        發送類型:即這個PDO發送或者接收的傳輸形式,通常使用循環同步和異步制造商特定事件較多;

        Inhibit time生產禁止約束時間(1/10ms):約束PDO發送的最小間隔,避免導致總線負載劇

        烈增加,比如數字量輸入過快,導致狀態改變發送的TPDO頻繁發送,總線負載加大,所以需要一個約束時間來進行“濾波”,這個時間單位為0.1ms;

        Event timer事件定時器觸發的時間(單位ms):定時發送的PDO,它的定時時間,如果這個時間為0,則這個PDO為事件改變發送。

        SYNC start value同步起始值:同步傳輸的PDO,收到諾干個同步包后,才進行發送,這個同步起始值就是同步包數量。比如設置為2,即收到2個同步包后才進行發送。

        PDO的映射參數

        PDO映射參數是初學者學習CANopen時的一個難點,它包含了一個對象字典中的對象列表,這些對象映射到相應的PDO,其中包括數據的長度(單位,位),對于生產者和消費者都必須要知道這個映射參數,才能夠正確的解釋PDO內容。就是將通信參數、應用數據和具體CAN報文中數據聯系起來。

        RPDO通訊參數1400h to 15FFh,映射參數1600h to 17FFh,數據存放為2000h 之后廠商自定義區域;TPDO通訊參數1800h to 19FFh,映射參數1A00h to 1BFFh,數據存放為2000h 之后廠商自定義區域。

        為了更加直觀地表現映射,表 3模擬TPDO1,將參數、應用數據、CAN報文數據聯合起來展示,不同的映射采用不同的顏色。

        7.png

        表 3 PDO在對象字典中的映射關系

        CAN transmission( CAN發送報文)

        TPDO1(CAN-ID = 181h) Data field:數據域4個字節

        8.png

        表 4 TPDO的數據域

        請讀者閱讀3遍以上,如果還是無法理解。請打開廣州致遠電子的CANopen主站卡管理軟件CANManager for CANopen,導入XGate-COP10模塊從站協議棧模塊的EDS文件,來真實感受一下。點擊配置從站,“高級”中進行感性認識。

        USBCAN-E-P與PCI-5010-P主站卡可為PC機拓展出CANOpen通訊接口,實現CANOpen協議的數據通信。作為CANOpen網絡的管理者,實現全部的CANOpen網絡管理(NMT)功能。



        關鍵詞: 通訊數據

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 南华县| 晋宁县| 深泽县| 霸州市| 利辛县| 辽阳县| 长沙县| 清苑县| 马龙县| 太保市| 古蔺县| 措勤县| 哈巴河县| 南京市| 延津县| 炎陵县| 宁远县| 宝兴县| 灵川县| 沛县| 松原市| 涞源县| 博乐市| 大同县| 文化| 镇安县| 潢川县| 图们市| 前郭尔| 惠东县| 唐山市| 中江县| 江达县| 怀宁县| 梓潼县| 六枝特区| 苏尼特左旗| 稻城县| 梧州市| 理塘县| 保山市|