新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式Modbus/TCP網(wǎng)關(guān)的設(shè)計與實(shí)現(xiàn)

嵌入式Modbus/TCP網(wǎng)關(guān)的設(shè)計與實(shí)現(xiàn)

作者: 時間:2010-05-21 來源:網(wǎng)絡(luò) 收藏
隨著企業(yè)信息化進(jìn)程的深入發(fā)展,企業(yè)上層的管理網(wǎng)絡(luò)與現(xiàn)場控制網(wǎng)絡(luò)的無縫連接顯得越來越重要?;谫|(zhì)量分析的生產(chǎn)管理、與安全相關(guān)的測試監(jiān)控都要求現(xiàn)場的儀器儀表能對現(xiàn)場的信息進(jìn)行處理并能及時被上級監(jiān)控和管理網(wǎng)絡(luò)訪問與控制,最終納入到企業(yè)信息管理系統(tǒng)統(tǒng)一的框架中。
  目前,構(gòu)成底層控制網(wǎng)絡(luò)的現(xiàn)場總線技術(shù)已獲得了廣泛的應(yīng)用。多種現(xiàn)場總線標(biāo)準(zhǔn)并存而相互間無法兼容的問題一直困擾著工業(yè)界。將工業(yè)以太網(wǎng)應(yīng)用到現(xiàn)場控制網(wǎng)絡(luò)已成為當(dāng)前研究的熱點(diǎn)和未來發(fā)展的趨勢。如何使這種網(wǎng)絡(luò)結(jié)構(gòu)與工業(yè)以太網(wǎng)技術(shù)相結(jié)合,底層生產(chǎn)與上層管理的緊密集成是當(dāng)前研究的熱點(diǎn)。
1 Modbus協(xié)議及拓?fù)浣Y(jié)構(gòu)
  Modbus現(xiàn)場總線協(xié)議是Modicon公司于1978年提出的一種現(xiàn)場總線協(xié)議[1]。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)和其他設(shè)備之間可以進(jìn)行通信。該協(xié)議內(nèi)容可以免費(fèi)獲得,因此Modbus的串行鏈路版本在市場上長期占有主導(dǎo)地位。大量的產(chǎn)品已直接運(yùn)行或兼容Modbus串行鏈路版本。
  工業(yè)以太網(wǎng)協(xié)議是1999年被開發(fā)的Modbus協(xié)議的另一版本[2],允許用戶通過以太網(wǎng)訪問設(shè)備。協(xié)議的開放性及簡單易學(xué),使它比很多受商業(yè)利益驅(qū)使的協(xié)議取得更快的發(fā)展,受到眾多第三方產(chǎn)品廠商、終端用戶、系統(tǒng)集成商的廣泛支持[3]。
  本文了一種協(xié)議轉(zhuǎn)換,通過協(xié)議將傳統(tǒng)的串行鏈路通信的Modbus現(xiàn)場總線與以太網(wǎng)相連。用戶經(jīng)由以太網(wǎng)對Modbus設(shè)備進(jìn)行數(shù)據(jù)采集并對Modbus設(shè)備進(jìn)行遠(yuǎn)程訪問和控制。同時還提供Web服務(wù)功能,允許通過Web瀏覽器直接配置網(wǎng)關(guān)的IP地址等信息并保存到網(wǎng)關(guān)的非易失性存儲器中。圖1是網(wǎng)關(guān)的連接示意圖。

本文引用地址:http://m.butianyuan.cn/article/151848.htm

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

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

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

tcp/ip相關(guān)文章:tcp/ip是什么



上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉