新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 現場總線CANopen學習總結筆記三---基本原理和通信對象

        現場總線CANopen學習總結筆記三---基本原理和通信對象

        作者: 時間:2016-12-14 來源:網絡 收藏
        第四章,應用層,為重點章。

        主要包含知識點基本原理、通信對象、對象字典、網絡管理系統、CAN標識符分配、節點ID分配。

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

        這篇筆記主要是先記錄基本原理和通信對象。

        4.1基本原理

        為了便于統一觀察CANopen設備,我們引入一種基本的設備模型,其包含:通信單元、應用過程、對象字典。

        通信單元由CAN收發器、CAN控制器和CANopen協議棧組成,協議棧中包括通信對象(PDO和SDO)和狀態機。

        對象字典是應用單元與通信單元之間的接口,實際上是設備的所有參數列表。

        CANopen協議中定義了3種不同類型的通信關系:分別為主機-從機模型、客戶端-服務端模型以及生產者-消費者模型。

        主機-從機模型僅用于網絡管理(NMT),每組主機-從機模型都需要一個CAN標識符。

        客戶端-服務器描述的是兩個設備之間的通信關系。需要兩個CAN標識符,只用于SDO通信。

        生產者-消費者模型描述一個生產者和一個或多個消費者的一對多通信關系,只需要一個CAN標識符。

        4.2通信對象

        CANopen應用層詳細描述了各種不同類型的通信對象(COB),分4種類型:

        過程數據對象(PDO)

        服務數據對象(SDO)

        預定義對象

        網絡管理對象

        過程數據對象(PDO):

        1.通信參數

        通信參數用來描述PDO特性。通信參數按照定義好的地址保存在設備對象,用戶可以通過服務數據對象對通信參數進行訪問。

        通信參數記錄有5個可用的子條目:COB標識符、傳輸類型、禁止時間、事件計數器和同步初始值。前兩項為必選。

        2.PDO的CAN標識符

        COB標識符(COB-ID)位于通信參數的子索引01h上,COB標識符是一個32位值,0~10位是CAN標準幀標識符。只有在預操作狀態下才能對PDO的COB標識符進行訪問。

        3.PDO鏈路

        如果使用生產者-消費者模型在不可編程的NMT從機之間直接進行數據交換,用戶還必須為這些從機配置適當的CAN標識符,使生產者的CAN標識符和消費者的CAN標識符一致,這種方法叫做PDO鏈路。

        4.PDO的通信類型

        PDO的通信類型有事件驅動、遠程請求或輪詢、同步傳輸。

        事件驅動是當輸入值發生改變的時候,數據立即被發送出去。

        PDO通信參數索引02h為PDO傳輸類型,其定義了觸發TPDO傳輸或處理收到的RPDO的方法。

        傳輸類型有01~240241~251,252,253,254、255。書中的表4.2PDO傳輸類型“×”表示選中的類型,而并非是不支持的意思。

        5.禁止時間和事件計時器

        禁止時間(子索引03h)的功能相當于PDO發送過濾器,在PDO輸入數據第一次變化時,無等待地直接發送該PDO數據,之后PDO輸入數據再發生變化時就不會立即觸發PDO發送。禁止時間可以避免PDO占用全部總線帶寬,從而妨礙發送最低優先級的PDO

        子索引(05h)為異步PDO傳輸設置一個事件計時器。

        子索引06h(同步初始值)定義了同步計數器的初始值,在傳輸同步信息時,同步計數器不斷遞增以進行同步。

        6.PDO通信的優化

        在優化中具有決定性意義的是保留足夠的總線帶寬可供其他功能使用。

        需要注意PDO通信的優缺點,總線負載,“浪涌”的概念,其中總線負載是指多個循環范圍內的CAN總線占有率的平均值。

        另外,還有一個相當重要的PDO通信參數---PDO映射參數。PDO映射參數包含指向PDO需要發送的過程數據的指針(利用索引和子索引表示)。那么說明索引與子索引的組合就是一個指針,應該可以這樣理解。

        PDO映射參數的子索引00h表示的是映射對象的數量。

        所有映射過程參數的最大長度都不能超過8字節,分為靜態PDO映射、可變PDO映射、動態PDO映射。其中靜態PDO無法修改,可變PDO可以修改,不過要遵守修改方法。

        而動態PDO映射是指設備處于操作狀態時,對其進行PDO配置。

        7.復用PDO

        MPDO融合了PDO和SDO的主要特性,其指定了地址(索引和子索引)的過程數據將通過一個獨有的CAN消息以高速廣播的方式傳播。

        (11.28)

        其中有兩個尋址方式,一個是源模式尋址,一個是目標模式尋址。主要應用領域一是通過傳輸過程數據地址實現傳輸任意數量的數據,無需設置PDO。二是群發消息。

        優點:MPDO映射記錄子索引值為255,而普通PDO在0~64之間。

        缺點:需要更多的帶寬。

        總結一個:PDO是用來傳輸實時數據。

        4.2.2服務數據對象SDO

        CANopen設備為用戶提供了一種訪問內部設備數據的標準途徑,設備由一種固定的結構(對象字典)管理。對象字典的條目可以通過服務數據對象(SDO)來訪問,由此需要成對的SDO服務器和客戶端。SDO之間的數據交換通常都是由SDO客戶端發起的,這好比是對象字典是在一間房子里面的管家,SDO服務器是門禁系統,SDO客戶端是郵遞員,當有郵遞員來的時候,會發起門鈴以告訴門禁要來送信(數據)。

        SDO之間交換至少需要兩個CAN報文才能實現,而且兩個CAN報文的CAN標識符不能一樣。一個CAN標識符為節點地址(有服務器的設備)+1536(600h)的CAN報文用于確定的協議信息。一個CAN標識符為節點地址(有服務器的設備)+1408(580h)的CAN報文來應答。

        SDO傳輸有三個類型:加速SDO傳輸、分段SDO傳輸、塊傳輸。

        加速SDO傳輸適用于:傳輸數據不超過4字節,所以整個傳輸過程只需要2條CAN報文。傳輸效率為0.0625~0.25。

        分段SDO傳輸適用于:超過4字節的傳輸數據。傳輸效率為0.218~0.432。

        為了彌補這一不足,引入一種擴展SDO傳輸方式,效率更高,速度更快,傳輸量更大------塊傳輸。其中塊傳輸進行寫操作和讀操作有所不同,不過兩者都要求有較高的緩沖能力,否則會發生溢出。在傳輸發生溢出時,寫操作和讀操作可以不需要重新發新之前發送過的塊段,而是重新安排塊大小以適合傳輸。塊傳輸的效率為0.142~0.836。

        4.2.3同步

        在通過網絡進行通信的應用中,發送和接收之間必須相互協調和同步。CANopen便引入同步對象。同步對象是指不含數據字節或只含有一個數據字節的CAN報文。

        同步對象的CAN標識符為80h,用戶可通過“循環周期”和“同步窗口長度”來對同步機制進行參數設置。循環周期是指同步對象通過總線發送的這段時間。同步PDO必須在同步對象發送完畢之后的同步時間窗口范圍內發送。

        同步對象只適用于已經工作在同步模式的PDO。如果只將發送方的TPDO配置成同步傳輸,且把接收方的RPDO定義為事件驅動,可以大大改變時間特性。

        如果使用了同步計數器,還可以在PDO通信參數中配置同步初始值。

        4.2.4發送設備錯誤信號

        CANopen網絡設備中出現的錯誤大致分為兩類:一是通信錯誤,二是應用錯誤。其中緊急報文由標準化機制發送。緊急報文包含以下信息:緊急錯誤代碼、索引1001h(錯誤寄存器)和協議或制造商定義信息。緊急錯誤代碼中有不同的代碼值,代表不同的錯誤




        評論


        技術專區

        關閉
        主站蜘蛛池模板: 噶尔县| 鲜城| 皮山县| 马山县| 曲靖市| 颍上县| 腾冲县| 赞皇县| 南乐县| 西昌市| 景东| 内丘县| 星子县| 祁东县| 蒲江县| 盐津县| 化州市| 长兴县| 和龙市| 诏安县| 南召县| 牙克石市| 苏州市| 丘北县| 横峰县| 深泽县| 衡南县| 左云县| 贡觉县| 信丰县| 本溪市| 扶绥县| 滨海县| 保山市| 三都| 林西县| 沭阳县| 湘阴县| 柳江县| 宾阳县| 仙桃市|