《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > Modbus-Modbus TCP/IP的網(wǎng)關(guān)設(shè)計
Modbus-Modbus TCP/IP的網(wǎng)關(guān)設(shè)計
來源:微型機與應(yīng)用2013年第10期
李英奇,吳桂初
(溫州大學(xué) 物理與電子信息工程學(xué)院,浙江 溫州325000)
摘要: 介紹一種基于STM32芯片的Modbus-Modbus TCP/IP網(wǎng)關(guān)系統(tǒng),系統(tǒng)采用μCOSII嵌入式實時操作系統(tǒng),實現(xiàn)Modbus串行鏈路到以太網(wǎng)的協(xié)議轉(zhuǎn)換,利用多線程與存儲池技術(shù)解決速率不匹配問題,最后對系統(tǒng)的通信質(zhì)量進行相關(guān)測試。實驗結(jié)果表明,系統(tǒng)方案能夠在低廉的成本下,有效、準(zhǔn)確地進行Modbus串行鏈路與以太網(wǎng)的相互通信。
Abstract:
Key words :

摘  要: 介紹一種基于STM32芯片的Modbus-Modbus TCP/IP網(wǎng)關(guān)系統(tǒng),系統(tǒng)采用μCOSII嵌入式實時操作系統(tǒng),實現(xiàn)Modbus串行鏈路到以太網(wǎng)的協(xié)議轉(zhuǎn)換,利用多線程與存儲池技術(shù)解決速率不匹配問題,最后對系統(tǒng)的通信質(zhì)量進行相關(guān)測試。實驗結(jié)果表明,系統(tǒng)方案能夠在低廉的成本下,有效、準(zhǔn)確地進行Modbus串行鏈路與以太網(wǎng)的相互通信。
關(guān)鍵詞: Modbus協(xié)議移植;協(xié)議轉(zhuǎn)換;多線程與存儲池

    “十二五”規(guī)劃綱要將“智能電網(wǎng)”正式納入國家發(fā)展戰(zhàn)略,特別提出“現(xiàn)代電網(wǎng)體系要適應(yīng)大規(guī)模跨區(qū)輸電和新能源發(fā)電并網(wǎng)的要求。進一步擴大輸電規(guī)模,完善主干電網(wǎng),依托信息、控制和儲能等先進技術(shù),推進智能電網(wǎng)建設(shè)。”電網(wǎng)主要包含了發(fā)電、輸電、變電、配電、用電和其他輔助部分[1]。低壓的配電和用電端是智能電網(wǎng)的末端,是電能最主要的消耗部分,大約占到80%。因此智能電網(wǎng)的建設(shè)要求配電和用電所需要的低壓電器必須具備數(shù)據(jù)通信與采集等智能化特性[2]。
    當(dāng)前,國內(nèi)外許多大型低壓電器設(shè)備廠的產(chǎn)品都支持Modbus總線標(biāo)準(zhǔn)。但是,智能電網(wǎng)的信息化建設(shè)利用的是以太網(wǎng)等方式,而非現(xiàn)場總線技術(shù)[3]。這就要求數(shù)據(jù)能在以太網(wǎng)與現(xiàn)場總線之間進行交互。
    國外的幾大電器也都有相應(yīng)的網(wǎng)關(guān)設(shè)備,但是價格昂貴。國內(nèi)目前也有些類似的產(chǎn)品出現(xiàn),相對于國外的產(chǎn)品,雖然在價格上有極大的優(yōu)勢,但是通信速度較慢,只能簡單地實現(xiàn)單鏈路的連接,功能并不完善。
    開發(fā)一款價格低廉、性能優(yōu)越的網(wǎng)關(guān)設(shè)備是智能電網(wǎng)建設(shè)過程中一個必要的需求。因此提出了一個在STM32F107芯片上實現(xiàn)Modbus-Modbus TCP/IP協(xié)議轉(zhuǎn)化的解決方案,能在成本上和性能上同時滿足需求。
1 Modbus協(xié)議
    Modbus是Modicon(現(xiàn)為施耐德電氣公司的一個品牌)在1979年開發(fā)的一項在OSI模型第7層的應(yīng)用層報文傳輸協(xié)議,在過去幾十年已被大量地應(yīng)用于工業(yè)控制領(lǐng)域的開放的、標(biāo)準(zhǔn)的、免費的網(wǎng)絡(luò)通信協(xié)議[4]。它在連接至不同類型總線或網(wǎng)絡(luò)的設(shè)備之間提供客戶機/服務(wù)器通信:在串行鏈路上取決于TIA/EIA標(biāo)準(zhǔn)(232-F和485-A),在TCP/IP上取決于 IETF標(biāo)準(zhǔn)(RFC793和RFC791)。
1.1 串行鏈路的通信
    Modbus在串行鏈路采用主/從方式的通信協(xié)議,即Modbus通信由主站發(fā)起,從站在未收到主站請求時,不能主動發(fā)起數(shù)據(jù)。Modbus在串行鏈路上的通信幀包括地址域、功能域、數(shù)據(jù)域和校驗域。
    Modbus在串行鏈路上的通信幀分為RTU和ASCII兩種模式[5],其中RTU模式通信幀中的8 bit數(shù)據(jù)包括2個4 bit十六進制字符,相對于ASCII模式,在表達相同的數(shù)據(jù)信息時RTU需要的位數(shù)較少,在相同的傳輸速率下RTU有更高的數(shù)據(jù)吞吐量。
    在RTU傳輸模式中,用3.5個字符的時間間隔將報文幀區(qū)分開,幀內(nèi)兩個字符之間的間隔必須小于1.5個字符時間,當(dāng)傳輸速率大于19 200 b/s時,可以采用1.750 ms的固定值替代3.5個字符時間作為幀間的延遲時間,用750 ?滋s替代1.5個字符時間作為字符超時時間。
1.2 Modbus TCP/IP應(yīng)用數(shù)據(jù)單元
    在基于TCP/IP的Modbus中,每個應(yīng)用數(shù)據(jù)單元的結(jié)構(gòu)包含Modbus應(yīng)用報文頭、功能碼域和數(shù)據(jù)域。其中MBAP(Modbus Application Protocol Header)的報文頭長度為7 B,該報文的字段如表1所示。

1.3 Modbus串行鏈路和Modbus TCP/IP轉(zhuǎn)換
    要使在串行鏈路傳輸?shù)腗odbus數(shù)據(jù)包能在以太網(wǎng)進行無阻礙、準(zhǔn)確的傳輸,必須對串行鏈路上的數(shù)據(jù)包或以太網(wǎng)數(shù)據(jù)包進行處理、轉(zhuǎn)化。一般的辦法是以TCP/IP協(xié)議為基礎(chǔ),將數(shù)據(jù)量較小的串行鏈路上的數(shù)據(jù)包封裝在TCP/IP幀中。由于Modbus在串行鏈路中的幀格式不同于在TCP/IP中傳輸?shù)膸袷剑虼嗽谶M行TCP/IP封裝前必須將Modbus在串行鏈路中的幀格式轉(zhuǎn)換成Modbus TCP/IP應(yīng)用數(shù)據(jù)單元結(jié)構(gòu)。同樣地,對于在以太網(wǎng)上輸出的Modbus數(shù)據(jù)包,必須先對TCP/IP數(shù)據(jù)包進行拆包,之后再對數(shù)據(jù)內(nèi)容進行幀格式轉(zhuǎn)換,將Modbus TCP/IP的ADU轉(zhuǎn)換成串行鏈路上的ADU,最后才能在串行鏈路上進行通信。
2 系統(tǒng)硬件電路
    STM32系列芯片是意法半導(dǎo)體專為要求高性能、低成本、低功耗的嵌入式應(yīng)用設(shè)計的ARM Cortex-M3內(nèi)核芯片。其中STM32F107互連型系列微控制器內(nèi)部集成高性能以太網(wǎng)模塊,支持通過以太網(wǎng)進行數(shù)據(jù)的收發(fā)。基于STM32F107的硬件電路如圖1所示。

    整個系統(tǒng)電路包含STM32F107最小單元、以太網(wǎng)接口電路、電平轉(zhuǎn)換電路和電源電路四部分。
    STM32F107最小系統(tǒng)單元包括復(fù)位電路、晶振電路和程序下載電路。晶振電路中,選用25 MHz的無源器件作為系統(tǒng)時鐘源,同時通過配置芯片的相關(guān)寄存器使系統(tǒng)工作在最高的72 MHz。
    在以太網(wǎng)接口電路中由于STM32F107內(nèi)部已經(jīng)集成了以太網(wǎng)模塊,因此只需要增加一個DP83848物理層芯片并通過RMII連接方式,再接上標(biāo)準(zhǔn)的RJ45接口,就能形成10/100 M以太網(wǎng)電路。
    Modbus在串行鏈路中一般采用RS485通信接口,它是一種差動半雙工的通信方式,而STM32F107自帶的是USART異步串行通信接口,因此通過SP3485電平轉(zhuǎn)換芯片將STM32F107芯片的USART接口轉(zhuǎn)換成RS485接口,才能與工業(yè)設(shè)備進行信息通信。
    STM32F107等芯片需要的工作電源一般都在3.3 V,而電源變壓器輸出的電壓為5 V,這就需要將輸入的5 V電源電壓轉(zhuǎn)成3.3 V,用來提供給芯片工作。
3 系統(tǒng)軟件設(shè)計
    軟件設(shè)計部分的關(guān)鍵主要在于μCOSII移植、兩個事務(wù)處理任務(wù)和多線程與緩沖區(qū)設(shè)計。
3.1 μCOSII移植
    μCOSII是一種專門為嵌入式設(shè)備設(shè)計的源代碼公開、可移植、可固化、可裁減、搶占式的實時多任務(wù)操作系統(tǒng),自1992年發(fā)布以來就獲得廣泛的使用。在將μCOSII移植到STM32的固件平臺時,必須對其進行修改、編寫。其中主要的內(nèi)容有:(1)基本配置和定義。包括與編譯器相關(guān)的數(shù)據(jù)類型和定義棧的增長方向。(2)編寫與處理器相關(guān)的函數(shù)。包括運行優(yōu)先級最高的就緒任務(wù)函數(shù)OSStartHighRdy()、任務(wù)優(yōu)先級切換函數(shù)OSCtxSw()、中斷級的任務(wù)切換函數(shù)OSInitCtxSw()和時鐘節(jié)拍中斷服務(wù)函數(shù)OSTickISR()。(3)編寫與操作系統(tǒng)相關(guān)的函數(shù)。
    在μCOSII中的OS_CPU_C.C的文件中包含6個與CPU相關(guān)的函數(shù),其中在移植中必不可少的任務(wù)是堆棧初始化函數(shù)OSTaskStkInit()。
3.2 事務(wù)處理任務(wù)
    μCOSII是一個多任務(wù)的實時操作系統(tǒng),最多可以管理64個任務(wù),根據(jù)實際需求創(chuàng)建兩個任務(wù):
    與以太網(wǎng)通信的TaskModbusTCP任務(wù)一:系統(tǒng)開始運行后,任務(wù)一處于空閑狀態(tài),同時監(jiān)聽以太網(wǎng)的502端口,此端口是Modbus TCP/IP的默認(rèn)端口;當(dāng)端口接收到有效數(shù)據(jù)時,程序?qū)ζ溥M行拆包分析后,再經(jīng)過μCOS的郵箱機制將數(shù)據(jù)發(fā)送給任務(wù)二,之后任務(wù)一進入等待響應(yīng)狀態(tài),同時開啟超時響應(yīng)定時器;當(dāng)在超時響應(yīng)時間內(nèi)接收到郵箱中來自任務(wù)二的響應(yīng)數(shù)據(jù)時,任務(wù)一進入到處理應(yīng)答狀態(tài),對其數(shù)據(jù)進行打包封裝等處理后送至502端口,然后重新進入到空閑狀態(tài)。至此完成一次正確的Modbus TCP/IP的通信過程。其任務(wù)的狀態(tài)流圖如圖2所示。

    與從站通信的TaskMastertask任務(wù)二:系統(tǒng)開始運行后,任務(wù)二進入空閑狀態(tài);當(dāng)μCOS的郵箱收到數(shù)據(jù)后,任務(wù)二提取郵箱中的數(shù)據(jù),首先進行數(shù)據(jù)有效性分析,然后再對數(shù)據(jù)添加CRC校驗,使數(shù)據(jù)符合Modbus在串行鏈路上的通信幀,接著通過RS485接口將數(shù)據(jù)發(fā)送到總線上,同時超時響應(yīng)定時器開啟,任務(wù)二進入等待響應(yīng)狀態(tài);若在超時響應(yīng)時間內(nèi)接收到從站的響應(yīng),則進入應(yīng)答處理,并對數(shù)據(jù)進行處理分析。如果數(shù)據(jù)正確且有效,則通過郵箱發(fā)送給任務(wù)一,然后進入空閑狀態(tài)中等待下一次的郵箱數(shù)據(jù)。其任務(wù)的狀態(tài)流圖如圖3所示。

3.3 多線程與緩沖區(qū)
    由于工業(yè)控制系統(tǒng)的通信速率普遍較低,當(dāng)數(shù)據(jù)在現(xiàn)場總線與以太網(wǎng)進行交互時,通信速率受限于工業(yè)控制端的速率,采用多線程與存儲池相結(jié)合的技術(shù)來匹配現(xiàn)場總線和以太網(wǎng)的傳輸速率。即當(dāng)多線程的類似指令連接時,網(wǎng)關(guān)的現(xiàn)場總線端只發(fā)送一次指令,將得到的數(shù)據(jù)放到存儲池中,然后再解析給各個線程。
4 測試結(jié)果
    測試中,采用環(huán)宇集團的HUM8D-400型和HUM8D-225型塑料外殼智能斷路器作為Modbus的從站設(shè)備,利用第三方軟件Modbus Poll模擬主站設(shè)備如圖4所示。

    對于以太網(wǎng)通信的可靠性的重要參數(shù)有:IP包傳輸延時、IP包的誤碼率、IP包的丟失率等[6]。然而現(xiàn)場總線的網(wǎng)絡(luò)性能與以太網(wǎng)有很大的不同,其主要指標(biāo)包含傳輸距離、傳輸速率、丟包率等,同時這些指標(biāo)隨著負(fù)載的變化而變化,因此本文對于以太網(wǎng)到現(xiàn)場總線的通信性能從不同的負(fù)載和傳輸速率方面對IP包的響應(yīng)時間、誤碼率和丟失率進行測試。其中數(shù)據(jù)接收準(zhǔn)確性測試參數(shù)為500 000次數(shù)據(jù)指令,RS485接口通信距離100 m;響應(yīng)時間為以太網(wǎng)數(shù)據(jù)包從發(fā)送到接收到響應(yīng)數(shù)據(jù)包的整體時間,包括設(shè)備的響應(yīng)時間和數(shù)據(jù)包在線路的傳輸時間。單線程測試結(jié)果整理后如表2所示。多線程存儲池結(jié)果整理后如表3所示。

    表2與表3的測試結(jié)果說明,網(wǎng)關(guān)能夠很好地保證數(shù)據(jù)通信的準(zhǔn)確性和可靠性。同時響應(yīng)時間受網(wǎng)關(guān)波特率的制約,提高波特率能有效地提高響應(yīng)時間。同時利用多線程與存儲池技術(shù),可以大大減少單線程情況下運行多指令所消耗的時間。
    利用STM32所設(shè)計的網(wǎng)關(guān)不僅能夠有效地進行通信,同時對比于目前市場上售價高達數(shù)千元的類似設(shè)備,僅需要不到百元的成本,大大提高了其推廣的可能性。
    當(dāng)前的工業(yè)現(xiàn)場設(shè)備在通信中基本都能夠支持Modbus,通過網(wǎng)關(guān)進行數(shù)據(jù)交互,為遠程的遙信提供有力的支持。
參考文獻
[1] 國網(wǎng)能源研究院.2012國內(nèi)外智能電網(wǎng)發(fā)展分析報告[M].北京:中國電力出版社,2012.
[2] 尹天文.智能電網(wǎng)用戶端[J].低壓電器,2012(5):59-64.
[3] 何瑞華.我國新一代低壓電器發(fā)展與展望[J].低壓電器,2012(1):1-6.
[4] 華镕.從Modbus到透明就緒:施耐德電氣工業(yè)網(wǎng)絡(luò)的協(xié)議、設(shè)計、安裝[M].北京:機械工業(yè)出版社,2009.
[5] Modicon Inc.Modicon Modbus protocol reference guide[EB/OL].[2002-7].www.schneider-electric.com.
[6] 李揚繼,范寶峰,楊洋.網(wǎng)絡(luò)性能測量技術(shù)分析[J].網(wǎng)絡(luò)與信息技術(shù),2006,25(10):34-35.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美在线一区二区| 欧美专区在线观看一区| 久久精品视频免费播放| 国产精品无码永久免费888| 久久精品夜色噜噜亚洲a∨| 亚洲黄色影院| 99在线|亚洲一区二区| 国产精品久久久久久久久久久久久久| 午夜视频在线观看一区二区| 亚洲一区二区不卡免费| 国产亚洲欧美激情| 农村妇女精品| 亚洲欧美在线高清| 亚洲成人中文| 亚洲免费观看高清在线观看 | 国内成人自拍视频| 欧美xx视频| 性色av一区二区三区红粉影视| 久久国产精品99国产| 亚洲人成在线免费观看| 国产精品久久二区二区| 免费试看一区| 欧美在线观看网址综合| 亚洲每日在线| 欧美一区二区三区四区夜夜大片| 永久久久久久| 国产精品女主播| 欧美华人在线视频| 久久高清福利视频| 亚洲视频1区| 亚洲福利在线观看| 亚洲专区一区二区三区| 亚洲国内精品在线| 国产日韩1区| 亚洲综合不卡| 国产精品久久久久久久第一福利| 国产精品久久久久影院色老大| 久久综合成人精品亚洲另类欧美| 欧美色图首页| 亚洲国产视频一区| 性久久久久久| 蜜桃久久av一区| 午夜精品福利视频| 午夜在线视频一区二区区别| 久久精品夜色噜噜亚洲a∨| 亚洲精品少妇30p| 亚洲综合日韩| 国产伦精品一区二区| 欧美日本免费一区二区三区| 久久亚洲风情| 欧美在线啊v| 亚洲中字黄色| 99国内精品久久久久久久软件| 欧美一区二区观看视频| 亚洲精品久久久久久久久| 国产欧美日韩精品丝袜高跟鞋| 欧美精品在线免费播放| 久久久亚洲一区| 亚洲欧美久久| 亚洲视频在线一区| 亚洲精品一区二区在线| 亚洲国产精品一区| 亚洲国产高潮在线观看| 欧美一区免费视频| 午夜国产精品视频免费体验区| 99re66热这里只有精品3直播| 亚洲黄页视频免费观看| 在线观看欧美激情| 18成人免费观看视频| 好吊色欧美一区二区三区四区| 国产性做久久久久久| 国产日韩精品电影| 国产欧美日韩中文字幕在线| 国产精品亚洲精品| 国产精品制服诱惑| 国产欧美日本一区二区三区| 国产欧美高清| 国产亚洲一区在线| 狠狠色丁香久久婷婷综合丁香 | 一本色道久久综合亚洲精品不| 亚洲精品日产精品乱码不卡| 亚洲人在线视频| 亚洲国产精品成人va在线观看| 亚洲缚视频在线观看| 亚洲国产天堂久久综合| 亚洲精品美女久久7777777| 日韩视频免费观看| 日韩亚洲精品电影| 一区二区三区四区五区精品视频 | 亚洲婷婷在线| 亚洲女同同性videoxma| 亚洲永久视频| 欧美一级网站| 久久精品成人一区二区三区| 亚洲高清在线| 亚洲精品一区在线观看香蕉| av成人天堂| 亚洲一级黄色片| 午夜精品短视频| 欧美一区影院| 久久久亚洲成人| 欧美精品 国产精品| 欧美日韩久久不卡| 国产精品久久久久久亚洲毛片| 国产日韩欧美自拍| 在线看片一区| 在线视频精品| 久久av最新网址| 亚洲精品免费一区二区三区| 一区二区三区四区五区精品| 欧美亚洲一区二区在线| 久久综合伊人77777尤物| 欧美日本一区| 国产视频一区二区在线观看 | 亚洲激情婷婷| 亚洲视频视频在线| 久久精品免费播放| 99精品欧美| 久久都是精品| 欧美另类专区| 国产亚洲欧洲| 亚洲麻豆国产自偷在线| 亚洲欧美怡红院| 亚洲每日在线| 久久成人精品无人区| 欧美精品一区二区蜜臀亚洲| 国产精品免费在线| 136国产福利精品导航网址应用| 一区二区高清在线| 亚洲电影在线| 亚洲欧美国产精品va在线观看| 久久久亚洲精品一区二区三区| 欧美日韩成人综合| 国产一级久久| 亚洲最新视频在线| 亚洲二区在线视频| 亚洲欧美日韩一区二区| 麻豆精品在线视频| 欧美特黄视频| 狠狠爱综合网| 亚洲一区国产一区| 亚洲精品少妇| 久久色在线观看| 国产精品久久久久久久久久直播 | 国产精品综合久久久| 亚洲国产女人aaa毛片在线| 亚洲综合精品自拍| 在线一区日本视频| 欧美**字幕| 国产亚洲精品自拍| 亚洲视频电影在线| 日韩系列欧美系列| 久久性色av| 国产亚洲毛片| 亚洲欧美另类在线观看| 亚洲社区在线观看| 欧美—级高清免费播放| 激情av一区二区| 午夜精品久久久久久久久久久| 在线视频日韩精品| 欧美激情一区二区| 亚洲成人直播| 久久高清国产| 久久精品国产一区二区三| 欧美亚日韩国产aⅴ精品中极品| 亚洲激情啪啪| 亚洲精品你懂的| 麻豆亚洲精品| 精品福利av| 亚洲国产黄色| 久久综合伊人77777尤物| 国产亚洲一区二区精品| 亚洲欧美网站| 亚洲免费一在线| 欧美调教vk| 妖精视频成人观看www| 一区二区三区高清不卡| 欧美日韩p片| 亚洲乱码日产精品bd| aa级大片欧美| 欧美日韩久久久久久| 日韩一区二区精品| 亚洲视频综合| 欧美午夜电影网| 中文av字幕一区| 亚洲影院高清在线| 国产精品乱子久久久久| 亚洲一区二区精品视频| 亚洲一区日韩在线| 国产精品每日更新| 亚洲欧美一区二区在线观看| 久久国产精品毛片| 黑人巨大精品欧美一区二区小视频| 欧美在线免费一级片| 久久久之久亚州精品露出| 一区二区三区在线高清| 亚洲精品久久久久| 欧美日韩国产精品| 中文国产一区| 欧美在线观看视频在线|