嵌入式Modbus/TCP網關的設計與實現
目前,構成底層控制網絡的現場總線技術已獲得了廣泛的應用。多種現場總線標準并存而相互間無法兼容的問題一直困擾著工業界。將工業以太網應用到現場控制網絡已成為當前研究的熱點和未來發展的趨勢。如何使這種網絡結構與工業以太網技術相結合,實現底層生產與上層管理的緊密集成是當前研究的熱點。
1 Modbus協議及網關拓撲結構
Modbus現場總線協議是Modicon公司于1978年提出的一種現場總線協議[1]。通過此協議,控制器相互之間、控制器經由網絡和其他設備之間可以進行通信。該協議內容可以免費獲得,因此Modbus的串行鏈路版本在市場上長期占有主導地位。大量的產品已直接運行或兼容Modbus串行鏈路版本。
Modbus/TCP工業以太網協議是1999年被開發的Modbus協議的另一版本[2],允許用戶通過以太網訪問設備。協議的開放性及簡單易學,使它比很多受商業利益驅使的協議取得更快的發展,受到眾多第三方產品廠商、終端用戶、系統集成商的廣泛支持[3]。
本文設計和實現了一種嵌入式協議轉換網關,通過Modbus/TCP協議將傳統的串行鏈路通信的Modbus現場總線與以太網相連。用戶經由以太網對Modbus設備進行數據采集并對Modbus設備進行遠程訪問和控制。同時網關還提供Web服務功能,允許通過Web瀏覽器直接配置網關的IP地址等信息并保存到網關的非易失性存儲器中。圖1是嵌入式Modbus/TCP網關的連接示意圖。

2 網關總體設計
網關選用了ATMEL公司生產的AT91RM9200高性能32位工業級嵌入式微處理器作為網關硬件系統的核心。網關的軟件系統將移植μC/OS-II嵌入式實時操作系統和實現TCP/IP協議棧,并在此基礎上設計應用層程序。網關的總體設計結構如圖2。網關的設計方案將采用開放源代碼的嵌入式操作系統和TCP/IP協議棧,因此在取得較高性價比的基礎上可取得最佳的擴展性。
3 硬件設計
AT91RM9200是著名半導體廠商ATMEL力推的一款基于ARM920T內核的工業級嵌入式微處理器,為最大功能、最低功耗、最低成本的嵌入式系統提供了一個完整的解決方案[4],它除具備ARM微處理器傳統優勢以外,其性能、可靠性和擴展性都大大超過普通的商業級ARM7核心的嵌入式微處理器。硬件系統的結構如圖3。

4 軟件系統設計
嵌入式實時操作系統在目前的嵌入式應用中使用越來越廣泛,尤其在功能復雜、系統龐大的應用中顯得愈來愈重要[5]。網關采用了μC/OS-II實時操作系統。μC/OS-II實時操作系統是專門為嵌入式應用設計的,除了與CPU硬件相關部分是用匯編語言編寫外,其他絕大部分代碼用C語言編寫。μC/OS-II具有執行效率高、占用空間小、實時性能優良、可靠性高、可擴展性強和移植性好等特點[6]。
選擇合適的ARM處理器的開發工具可以加快嵌入式系統的開發進度、節約成本、提高效率。CodeWarrior for ARM Developer Suite V1.2集成開發環境是ARM公司推出的新一代ARM集成開發工具,網關的所有程序代碼均在此集成開發環境中編譯、鏈接、調試。
4.1 μC/OS-II初始化程序設計
μC/OS-II操作系統運行前需要對硬件系統的片內和片外存儲器、系統堆棧等進行初始化。這些工作與硬件系統相關,難以用C語言實現,需要用匯編語言實現。系統在執行完初始化程序之后就將系統的軟硬件環境帶到一個合適的狀態,為啟動μC/OS-II準備好正確的環境,最后通過跳轉指令執行μC/OS-II主函數main中的第一條C語句[7]。
初始化程序的設計不屬于μC/OS-II操作系統的移植,但是其質量的好壞關系到整個系統程序的運行。初始化程序的執行步驟如下:(1)定義程序的入口點;(2)設置異常向量; (3)執行硬件初始化;(4)在CP15控制寄存器中,將AT91RM9200配置成小端模式; (5)初始化堆棧指針寄存器SP; (6)開放系統中斷;(7)初始化C變量;(8)運行μC/OS-II操作系統。
tcp/ip相關文章:tcp/ip是什么








評論