嵌入式網(wǎng)絡(luò)Canopen協(xié)議_第1頁
嵌入式網(wǎng)絡(luò)Canopen協(xié)議_第2頁
嵌入式網(wǎng)絡(luò)Canopen協(xié)議_第3頁
嵌入式網(wǎng)絡(luò)Canopen協(xié)議_第4頁
嵌入式網(wǎng)絡(luò)Canopen協(xié)議_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、由于其高可靠性和實時性的特點 ,CAN總線能夠滿足系統(tǒng)高性能的要求 ,已經(jīng)深入到各個行業(yè) ,例如專業(yè)車輛、工業(yè)控制、醫(yī)遼器械、海事應(yīng)用等。CAN的標準協(xié)議 CAN2.0協(xié)議和國際標準 ISO11898是設(shè)計 CAN應(yīng)用系統(tǒng)的基本依據(jù) ,但它們只是定義了物理層和數(shù)據(jù)鏈路層 ,沒有對應(yīng)用層進一步規(guī)范 ,本身并不完善 ,需要一個更開放的、標準化的高層協(xié)議來定義 CAN報文中的標識符和字節(jié)數(shù)據(jù)。在此背景下 ,由 CiA(CANin Automation)組織監(jiān)督開發(fā)了CANOpen高層協(xié)議。在 2002年,已經(jīng)形成歐洲標準 EN50

2、325-4。 CANOpen的最大優(yōu)點之一就是實現(xiàn)較為簡單。CANOpen協(xié)議是基于 CAN串行總線系統(tǒng)和應(yīng)用層 CAL的高層協(xié)議 ,也是一種針對于行業(yè)的標準化的協(xié)議。CANOpen協(xié)議為分布式控制及嵌入式系統(tǒng)的應(yīng)用提供了必要的實現(xiàn)方法 ,主要提供 :(1)不同 CAN設(shè)備間的互操作性、互換性。(2)標準化、統(tǒng)一的系統(tǒng)通訊模式。(3)設(shè)備描述方式和網(wǎng)絡(luò)功能。(4)網(wǎng)絡(luò)節(jié)點功能的任意擴展。CANOpen協(xié)議以通訊規(guī)范 CiA DS-301為基礎(chǔ) ,規(guī)定了一系列的設(shè)備規(guī)范 ,如 CiA DSP-401,CiA DSP-404等,從而提供了配置通訊參

3、數(shù)和數(shù)據(jù)的方王俊波 :博士研究生本工作得到國家自然科學基金重點項目 (60334010),國家自然科學基金項目 (60474047)高等學校博士學科點專項基金項目 (20030561013)以及廣東省自然科學基金項目 (31406)的資助 法,規(guī)定了設(shè)備間的通訊及特定設(shè)備間的特定行為 (如數(shù)字 I/O、模擬 I/O、RS485通訊等 ),并定義了標準化的應(yīng)用對象、基本功能以及網(wǎng)絡(luò)功能。CANOpen協(xié)議采用對象字典 (OD)、電子數(shù)據(jù)文檔 (EDS)等一系列概念來描述設(shè)備和協(xié)議的相關(guān)信息 ,還規(guī)定了服務(wù)數(shù)據(jù)對象 (SDO)、過程數(shù)據(jù)對象 PDO、網(wǎng)絡(luò)管理等多種通訊

4、機制。在本文中 ,主要是對對象字典、服務(wù)數(shù)據(jù)對象 (SDO)、過程數(shù)據(jù)對象 (PDO)進行了簡要的分析。1對象字典 (OD)對象字典是設(shè)備規(guī)范中最重要的部分。實際上 ,它是一組參數(shù)和變量的有序集合 ,包含了設(shè)備描述及設(shè)備網(wǎng)絡(luò)狀態(tài)的所有參數(shù) ,也就是說 ,通過網(wǎng)絡(luò)可以采用有序的預(yù)定義的方式來訪問的一組對象。CANOpen協(xié)議采用了帶有 16位索引和 8位子索引的對象字典 ,對象字典的結(jié)構(gòu)如表 1所示。一個主節(jié)點或配置工具能夠訪問從節(jié)點的對象字典中的所有值。表 1對象字典結(jié)構(gòu)對象字典的實現(xiàn)是整個 canopen協(xié)議的關(guān)鍵。所-:82-946以,在使

5、用對象字典來建立對象的描述時 ,要能夠正確描述所建立的對象含義。例如 ,一個節(jié)點的兩個模擬通道的對象字典的描述 ,如表 2所示。對于這樣的描述 ,可以通過建立包含所有對象信息的庫文件來實現(xiàn),以類似于 C語言的方式來實現(xiàn)。表 2對象字典的描述用于實現(xiàn)上述對象字典的 C語言結(jié)構(gòu) :typedefstruct UNSIGNED8 Entries_Number;UNSIGNED32 An_Input1;UNSIGNED32 An_Input2;Analog_Input;2服務(wù)數(shù)據(jù)對象 (SDO)SDO用于建立客戶 /服務(wù)器關(guān)系 ,客戶設(shè)備具有讀寫訪問

6、,且一個 canopen設(shè)備必須至少實現(xiàn)一個服務(wù)器的 SDO,基于 CAL的通訊報文規(guī)范來訪問設(shè)備的對象字典。通過 SDO服務(wù) ,可以訪問對象字典的條目 ,這些條目可能包含有任意長度的數(shù)據(jù)和數(shù)據(jù)類型。所以 SDO服務(wù)可以用于在服務(wù)器和客戶間互相傳送多個數(shù)據(jù)集合。SDO的傳送機制有三種 :(1)分段傳送 :大于 4個字節(jié)的數(shù)據(jù) ,如果設(shè)備支持大于 4個字節(jié)傳送時,則此項是必需的。(2)加速傳送 :數(shù)據(jù)長度小于或等于 4個字節(jié) ,此項是必需的。(3)分塊傳送 :用于較長數(shù)據(jù)的傳送 ,此項是可選的。為了進行標準的分段&#

7、160;/加速傳送 ,SDO定義了 6個確認服務(wù) (SDO下載 ,SDO上傳 ,啟動 SDO上傳 ,啟動 SDO下載 ,下載 SDO段和上傳 SDO段)和一個非確認服務(wù) (中止 SDO傳送 )。對于啟動 SDO下載協(xié)議。由客戶向服務(wù)器發(fā)出請求,我們可以看看是如何來訪問 CANOpen設(shè)備中的對象字典的。啟動 SDO下載協(xié)議與對象字典的關(guān)系 ,如圖 1所示。注意 :對象字典中的文本描述或數(shù)據(jù)類型是不能夠被傳送的。圖 1啟動 SDO下載協(xié)議與對象字典的關(guān)系一個節(jié)點向其它節(jié)點發(fā)送&

8、#160;SDO時,所使用報文 CAN-ID為 600h+Node-ID。例如 ,將值 0x31FF寫入節(jié)點 0x01的索引為 0x6012,子索引為 2的對象字典中 ,對應(yīng)的字節(jié)賦值 ,如圖 2所示。根據(jù) SDO協(xié)議 ,連接對象報文的標識符 (COB-ID)為 600h+01h=601h。Byte0為 2B,表示客戶向服務(wù)器發(fā)出下載請求 ,采用加速傳送方式 ,并且顯示字節(jié)長度。Byte1和 2表示索引和子索引分別為6012h和 2h。Byte3為 02h,表示傳送的數(shù)據(jù)為 2個字節(jié)。Byte4和 5表示

9、傳送數(shù)據(jù)值為 0x31FF。圖 2對應(yīng)的字節(jié)賦值3過程數(shù)據(jù)對象 (PDO)3.1 PDO概述PDO主要提供了對設(shè)備內(nèi)的應(yīng)用對象的直接訪問,用于實現(xiàn)優(yōu)先級較高的數(shù)據(jù)實時傳送 ,例如 :一個 canopen設(shè)備可以直接讀取另一個 CANOpen設(shè)備的實時過程數(shù)據(jù)信息。但是 ,傳送的數(shù)據(jù)長度必須小于或等于 8個字節(jié)。PDO對應(yīng)于設(shè)備對象字典中的條目 ,并且為應(yīng)用對象提供訪問接口。數(shù)據(jù)類型和應(yīng)用對象的映射是由設(shè)備字典中的相應(yīng)的缺省 PDO映射結(jié)構(gòu)來確定的。PDO可以用于數(shù)據(jù)的發(fā)送和接收 ,分為 TPDOs (Transmi

10、t-PDOs)和 RPDOs(Recive-PDOs)。支持 TPDOs的設(shè)備稱為 PDO的生產(chǎn)者 ,能夠接收 PDO的設(shè)備稱為PDO的消費者。PDO的生產(chǎn)者和消費者必須知道 PDO報文所含信息的含義 ,報文的每個字節(jié)的含義都是通過 PDO映射消息來預(yù)定義的。PDOs必須由 PDO通訊參數(shù)和映射參數(shù)來描述。3.2 PDO發(fā)送類型及映射對于 PDO的發(fā)送來說 ,既要考慮系統(tǒng)的實時性的要求 ,又要考慮總線帶寬的有效使用 ,所有選擇通訊類型也是十分重要的。PDO的傳送類型有多種 :一個 PDO的 傳送類型參數(shù)規(guī)

11、定了傳送模式和觸發(fā)模式。傳送模式分為同步傳送和異步傳送。值得注意的是 :同步對象的產(chǎn)生可以是周期性的 ,也可以非周期性的。報文的觸發(fā)模式有 :事件驅(qū)動、定時器驅(qū)動和遠程請求。一個報文可以通過節(jié)點內(nèi)部的定時器以固定的時間間隔來發(fā)送 ,也可以由主節(jié)點發(fā)送同步對象或遠程幀來啟動從節(jié)點的發(fā)送。通過寫訪問與 PDO相關(guān)的映射結(jié)構(gòu) ,可以將數(shù)據(jù)映射到 PDO報文的不同的字節(jié)。多個變量可以映射到一個 TPDO。設(shè)備規(guī)范定義了映射的缺省對象字典條目 ,可以方便不同設(shè)備間的互用性。3.3實例郵局訂閱號 :82-946 360/年-105例如 ,一個 canope

12、n節(jié)點 (Node_ID為 0x01)具有兩路模擬輸入 ,必須滿足 PDO鏈接和映射機制。PDO映射參數(shù)、節(jié)點的對象字典、PDO通訊參數(shù)及 TPDO的數(shù)據(jù)格式如表 3、4、5和 6所示。在對象字典的索引 1A00h中,存儲了兩個對象 ,它們是數(shù)據(jù)變量 An_Input1和 An_Input2,數(shù)據(jù)長度都為 8位。它們對應(yīng)于對象字典中的索引為 6000h,子索引 01h和 02,所以 PDO映射參數(shù)結(jié)構(gòu)中的 1st TPDO映射項為 6000108和 6000208。表

13、0;5反映了 PDO的通訊參數(shù)。對于通訊參數(shù)索引為 1800h,子索引為 2,所表示的就是傳送類型 ,值 255表示 PDO的 COB-ID為 181h(十進制為 385)的對象可以采用周期性或非周期性的同步的傳送方式。對于 TPDO而言 ,可以設(shè)定事件定時器 ,利用事件驅(qū)動傳送。定時事件由 TPDO的索引 1800,子索引 5來設(shè)置。當節(jié)點檢測到輸入通道的測量值發(fā)生變化時 ,就產(chǎn)生觸發(fā) PDO傳送的事件。在本例中 ,采用定時 150ms發(fā)送一次 TPDO的事件。通

14、過對映射結(jié)構(gòu)中的參數(shù)進行寫訪問 ,可以配置 TPDO報文的數(shù)據(jù)格式 ,但是在一般情況下 ,可以采用由設(shè)備規(guī)范定義的缺省數(shù)據(jù)格式。如表 6所示 ,4網(wǎng)絡(luò)管理 (NMT)網(wǎng)絡(luò)管理是基于主從結(jié)構(gòu)的概念 ,一個 canopen網(wǎng)絡(luò)中只有個主節(jié)點 ,其它為從節(jié)點。它可以用于控制和管理網(wǎng)絡(luò)設(shè)備 ,包括參數(shù)配置、ID分配、節(jié)點狀態(tài)控制、錯誤控制等。NMT服務(wù)可以實現(xiàn)網(wǎng)絡(luò)節(jié)點狀態(tài)的轉(zhuǎn)換 ,網(wǎng)絡(luò)節(jié)點狀態(tài)結(jié)構(gòu)框圖 ,如圖 3所示。在完成初始化 (Initialisation)后,節(jié)點可以直接進入預(yù)操作 (Pre-Operational)狀態(tài) ,此時就可以通過 SD

15、O對節(jié)點的進行設(shè)置參數(shù)和配置信息。但是不能進行用于實時數(shù)據(jù)傳送的 PDO服務(wù)。然后 ,就可以切換到操作 (Operational)狀態(tài)。在預(yù)操作和操作狀態(tài)可以使節(jié)點進入初始化和停止狀態(tài) (Stopped),在任何情況下,都可以對節(jié)點進行初始化 ,體現(xiàn)了 CANOpen系統(tǒng)的靈活特性。圖 3網(wǎng)絡(luò)節(jié)點狀態(tài)結(jié)構(gòu)框圖在網(wǎng)絡(luò)管理機制中 ,其中一個重要的特性就是 Heartbeat協(xié)議。一個節(jié)點可以產(chǎn)生周期性的報文稱為 Heartbeat報文。不需要主節(jié)點發(fā)送遠程幀 ,從節(jié)點就可以向主節(jié)點或其它節(jié)點報告自己的狀態(tài)。Heartbeat生產(chǎn)者和消費者的關(guān)系可以

16、由對象字典來配置建立。一個生產(chǎn)者可以周期性地發(fā)送 heartbeat報文。Heartbeat協(xié)議如圖 4所示。圖 4Heartbeat協(xié)議值得注意的是 :根據(jù) canopen的錯誤控制協(xié)議 ,在初始化之后 ,從節(jié)點會發(fā)出一個 Boot-Up報文 ,向主節(jié)點說明已經(jīng)進行預(yù)操作狀態(tài)。例如 :Node-ID為 0x01的節(jié)點在初始化會向主節(jié)點發(fā)送一個 Boot-Up報文 ,對象連接標識符 COB-ID為 0x700h+Node-ID= 0x701h,數(shù)據(jù)字節(jié) Byte0為 0。由 Heartbeat協(xié)議可知 ,

17、該報文也是一個節(jié)點發(fā)出的第一個 Heartbeat報文。另外 ,有關(guān)網(wǎng)絡(luò)管理機制的其它協(xié)議 ,如模塊控制協(xié)議、Node Guarding協(xié)議等 ,不再詳細分析和介紹。5結(jié)束語CANOpen協(xié)議的應(yīng)用在國外已經(jīng)深入到各個領(lǐng)域,而且正在進一步完善和發(fā)展 ,特別是在嵌入式系統(tǒng)、工業(yè)機械裝置等方面的應(yīng)用已經(jīng)體現(xiàn)了其優(yōu)異的特性 ,將對我國測控自動化、計算機測量等都將產(chǎn)生重要影響。本文具有參考價值和實用性 ,(轉(zhuǎn) 158頁)算控制量 ,最后將計算結(jié)果通過雙口 RAM送到脈沖發(fā)生器。由于 DSP的運算速度很快 ,所以完全可以在 500s的周期內(nèi)實現(xiàn)

18、采樣、讀取數(shù)據(jù)及實現(xiàn)各種復(fù)雜的控制算法并查表計算出 STATCOM逆變器輸出電壓與系統(tǒng)電壓間的相位差 ,實際的程序編制運行中已經(jīng)證明了這一點。圖 3是主控制器主程序流程圖和定時器中斷服務(wù)程序流程圖。82-9464控制算法仿真結(jié)果本次仿真軟件用 MATLAB6.1 PSB(電源系統(tǒng)模塊 )控制工具箱 ,將含有采用電流間接控制方法的 STATCOM接入一個單機無窮大系統(tǒng) ,假設(shè)系統(tǒng)其中的一條線路在 0.3秒發(fā)生瞬時兩相對地短路 ,在 0.45秒切除故障線路 ,記錄發(fā)電機機端電壓、功角的動態(tài)仿真特性曲線 ,無 STATCOM的系統(tǒng)和裝有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論