新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 基于DeviceNet 的嵌入式I/O模塊設計

        基于DeviceNet 的嵌入式I/O模塊設計

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

        DeviceNet是一種基于CAN總線技術的符合全球工業標準的開放型現場總線通信網絡,它用于控制,配置和數據采集等方面。CAN 總線具有布線簡單、典型的總線型結構、穩定可靠、實時、抗干擾能力強、傳輸距離遠、布線成本低等特點。由于具備了這些特點,Devi-ceNet總線被廣泛應用于工業自動化控制,它不僅可以接入更多,更復雜的設備,還可以為上層提供更多的信息和服務。在很多歐美國家,越來越多的系統方案設計采用DeviceNet來實現。

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

        ModBus協議是應用于電子控制器上的一種通用語言,是全球第一個真正用于工業現場的總線協議,由于該協議的產生,使控制器之間、控制器經由網絡和其他設備之間實現相互通信。ModBus協議現在已經成為一種通用的工業標準,應用該協議技術可以使不同廠商生產的控制設備連成一個工業網絡,進行集中監控管理。此協議定義了一個控制器能認識使用的消息結構體,從而使用戶不需要關心它們使用哪種網絡進行通信。它描述了一個控制器請求訪問其他設備的過程,如何回應來自其他設備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內容的公共格式。

        本文主要解決DeviceNet 與ModBus 之間的協議轉換問題。標準的ModBus口是使用RS-232C兼容串行接口,它定義了連接口的針腳、電纜、信號位、傳輸波特率、奇偶校驗。控制器能直接或經由Modem 組網。基于DeviceNet 的嵌入式I/O 模塊通過I/O 口發送和接收數據,ModBus通過串口與嵌入式I/O模塊進行通信。通過此過程完成DeviceNet與ModBus之間的協議轉換問題。

        1 嵌入式I/O模塊的設計與實現

        DeviceNet是一種上層的應用層協議,其物理層和數據鏈路層采用CAN總線技術,ModBus協議只是用于數據鏈路層上的協議[1].這兩種現場總線是異構的,因此要實現兩種協議之間的通信,必須要進行協議轉換。協議轉換的轉換過程是分層次進行的。首先把總線設備發送過來的設備逐層解包,得到需要的數據,然后再把數據按另一協議所需的方式打包,發送到相應的設備上。

        DeviceNet與ModBus協議都采用主從通信模式,所以它們之間的通信只能是單向的,主站發送命令報文而從站被動接收命令報文。本設計中的嵌入式I/O模塊既是De-viceNet從站,又是ModBus的主站。通過該模塊可以實現DeviceNet主站的數據與ModBus從站的數據進行傳輸。

        嵌入式I/O模塊的功能是把DeviceNet格式的報文轉換為ModBus的報文命令,再傳給底層的ModBus設備,設備在接收到ModBus命令之后,會向報文轉換模塊發送ModBus格式的響應報文,最后經協議轉換模塊將報文轉換為DeviceNet格式的報文傳輸給DeviceNet主站。本嵌入式I/O模塊既是DeviceNet的從站實現接收主站報文并做出響應的功能,同時又可以作為ModBus的主站向其他ModBus設備發送報文并接收響應報文。

        本設計采用的處理器為LPC2129,硬件結構如圖1所示。它是NXP 公司的32 位工業級ARM7 處理器,其內部集成了兩個CAN 控制器,在一片處理器內首先將主站端的DeviceNet協議數據轉換成中間協議數據,之后轉換成ModBus可以識別的協議數據。

        撥碼開關用來設置DeviceNet 端的波特率及MAC地址,其中波特率的開關為3 位,分別代表125 Kb/s,250 Kb/s,500 Kb/s;MAC地址的開關為6位,地址為0~63.

        RS 232 既可作為程序下載接口,也可作為通用的RS 232串口實現與上位機的通信。系統的供電電源采用24 V的直流供電,并在內部將24 V電源轉化為模塊需要的5 V,3.3 V及1.8 V電壓電源。

        2 DeviceNet 和ModBus 協議介紹

        2.1 DeviceNet協議規范

        DeviceNetTM規范由Rockwell 公司開發,并將其作為一個基于CAN協議的開放式現場總線標準而公布。與其他現場總線相比,它具有突出的高可靠性、實時性和靈活性。其主要技術特點可歸納為:

        (1)采用CAN物理層和數據鏈路層規約,使用CAN規約芯片,從而有強大的支持。

        (2)可以容納64個節點地址,每個節點支持無限個的I/O口;

        (3)網絡拓撲結構,節點設備配電方式靈活,可網絡統一配電或自行供電;

        (4)網絡速度可選125 Kb/s,250 Kb/s 和500 Kb/s;有誤接線保護功能;

        (5)數據傳送方式多樣,支持選通、輪詢、循環、狀態變化等方式;

        (6)采用逐位仲裁機制實現按優先級發送信息;

        (7)支持輪詢或狀態改變(基于事件),多主站和主從,支持從設備的即用即拔,無需網絡斷電。

        DeviceNet是面向連接服務的網絡,任意兩個節點的通信必須建立在邏輯連接的基礎上。建立連接時與連接相關的傳送會分配一個11位連接標識符(Connec-tion ID,CID),連接標識符由設備媒體訪問控制標識符(MAC ID)和信息標識符(Message ID)兩部分組成。連接建立后設備可通過發送釋放連接或刪除連接請求服務來斷開連接。在某個特定的連接上長時間沒有進行通信,這個通信將自動斷開以釋放資源。其中,MAC ID可通過硬件設定,也可通過軟件來配置。標識符分為四組,如圖2所示。DeviceNet連接分為顯式信息連接和I/O連接。

        2.2 DeviceNet與CAN

        DeviceNet總線協議是基于CAN總線技術的。它的數據鏈路層完全遵循CAN 規范的定義,并通過CAN 控制器芯片實現。它只使用CAN 2.0A 中的定義,不支持CAN 2.0B中的擴展報文格式。DeviceNet只用125 Kb/s,250 Kb/s,500 Kb/s 三種可選速率,達不到CAN 的最高通信速率1 Mb/s.DeviceNet 只使用數據幀,錯誤幀和超載幀三種幀表示和控制,并未使用CAN 中定義的遠程幀。

        DeviceNet 在CAN 總線的基礎上又增加了面向對象、基于連接的現代通信技術理念,并開發了應用層。

        其應用層規定了CAN 數據幀的使用方法、重復節點地址檢測機制、對象模型及設備的標準化。使DeviceNet的應用更廣泛,安全性更好。

        2.3 ModBus協議介紹

        ModBus 是一種應用于工業控制器的網絡通信協議,它是由Modicon 公司開發的,主要應用于電子控制器方面,現已成為一種通用工業標準。該協議支持傳統的RS 232,RS 422,RS 485和以太網設備。它定義了一個控制器能認識使用的消息結構,使用者不需要關心它們內部的網絡通信方式。控制器與控制器,控制器與其他設備之間(通過網絡)的通信都要通過ModBus協議來實現。ModBus 協議制定了消息域格局和內容的公共格式,并詳細描述了一個控制器請求訪問其他設備的過程以及如何回應其他設備的請求,以及偵測錯誤并記錄的過程。當使用ModBus網絡進行通信時,按照此協議的規定,每個控制器需要知道它們的設備地址,并能識別按地址發來的消息,根據這些信息決定要產生的動作。

        ModBus協議的消息也能在其他網絡上進行傳輸,只需要將消息轉換為適用于其他網絡上使用的幀或包結構即可。

        ModBus分為兩種傳輸模式,ASCII和RTU模式。本文采用RTU模式進行說明。控制器使用主/從技術進行通信,能直接或經由調制解調器(Modem)組網。網絡上的每個從站必須有惟一的地址。地址范圍為1~247.

        從站地址用于尋址從站設備。ModBus通信由主節點發起,即僅主設備能發起數據傳輸(即查詢),從設備根據主設備查詢提供的數據做出回應信息或響應動作。主設備以單播或廣播模式與從設備通信。在單播模式下,從設備返回消息作為回應,在廣播模式下,不作任何回應(地址0作為廣播地址)。ModBus協議建立了主設備查詢的格式:設備(或廣播)地址、功能代碼、所有要發送的數據、錯誤檢測域,具體的ModBus 協議通信過程如圖3所示。

        從設備回應消息也由ModBus協議構成,包括確認要行動的域、要返回的數據、和錯誤檢測域。如果在消息接收過程中發生錯誤,或從設備不能執行其命令,從設備將建立錯誤消息并把它作為回應發送出去。

        對于ModBus通信協議,信息傳輸為異步方式,以字節為單位傳送。報文的信息幀格式分為獨立的信息頭和發送的編碼數據兩部分,其報文結構如圖4所示,下面分別介紹。

        地址碼為通信傳送的第一個字節。每個從機都有具有惟一的地址碼,響應回送以各自的地址碼開始。主機發送的地址碼表明將發送到的從機地址,而從機發送的地址碼表明回送的從機地址。

        功能碼為通信傳送的第二個字節。ModBus通信規約定義功能號為1~127.作為主機請求發送,通過功能碼告訴從機執行什么動作。作為從機響應,從機發送的功能碼與從主機發送來的功能碼一樣,并表明從機已響應主機進行操作。

        數據區是根據不同的功能碼而不同。數據區可以是實際數值、設置點、主機發送給從機或從機發送給主機的地址。CRC碼為字節的錯誤檢測碼。

        當通信命令發送給接收設備時,符合相應地址碼的設備接通信命令,將地址碼去掉,獲取真正的命令內容,判斷是否有誤,無誤則執行相應的任務并把執行結果返送給發送者。回送的信息中包括地址碼、執行動作的功能碼、執行動作后結果的數據以及錯誤校驗碼,如果出錯就不發送任何信息。

        3 嵌入式I/O模塊的設計與實現

        協議轉換模塊的功能是把DeviceNet格式的命令報文轉換為ModBus的報文命令,再傳給底層的ModBus設備,設備在接收到ModBus命令之后,會向報文轉換模塊發送ModBus格式的響應


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 新河县| 石棉县| 孟连| 景宁| 大余县| 赤水市| 旬邑县| 乐都县| 舟曲县| 凤庆县| 博爱县| 齐河县| 新绛县| 任丘市| 兴宁市| 固镇县| 大丰市| 尼木县| 桦甸市| 迭部县| 淮南市| 思南县| 霍林郭勒市| 九龙县| 新竹市| 勃利县| 年辖:市辖区| 安远县| 玉门市| 沙雅县| 根河市| 当涂县| 仙居县| 乐东| 井陉县| 北辰区| 根河市| 白水县| 兴宁市| 交口县| 敦煌市|