摘 要: DeviceNet與ModBus協議轉換系統由DeviceNet主站,嵌入式I/O模塊,ModBus從站三部分組成,實現DeviceNet與ModBus之間的數據交互。嵌入式I/O模塊采用ARM7控制器LPC2129實現DeviceNet與ModBus之間的通信,同時以軟件的形式實現了一個僅限組2的DeviceNet從站和一個ModBus主站。DeviceNet從站用來解碼從DeviceNet主站端接收到的數據,解碼后的數據由MCU通過另一個UART接口發送給ModBus從站。UART接口旨在向ModBus從站發送讀/寫指令。結果表明,基于DeviceNet總線的嵌入式I/O模塊可以很好地與基于ModBus總線的設備進行通信。
關鍵詞: DeviceNet; ModBus; 嵌入式I/O模塊; LPC2129
中圖分類號: TN711?34 文獻標識碼: A 文章編號: 1004?373X(2013)11?0134?05
0 引 言
DeviceNet是一種基于CAN總線技術的符合全球工業標準的開放型現場總線通信網絡,它用于控制,配置和數據采集等方面。CAN總線具有布線簡單、典型的總線型結構、穩定可靠、實時、抗干擾能力強、傳輸距離遠、布線成本低等特點。由于具備了這些特點,DeviceNet總線被廣泛應用于工業自動化控制,它不僅可以接入更多,更復雜的設備,還可以為上層提供更多的信息和服務。在很多歐美國家,越來越多的系統方案設計采用DeviceNet來實現。
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模塊既是DeviceNet從站,又是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電壓電源。