国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于μC/OS-III多參數(shù)RTU的設(shè)計(jì)

2015-12-15 07:58:25孫遠(yuǎn)徐群
電子設(shè)計(jì)工程 2015年7期
關(guān)鍵詞:輸出模塊主站以太網(wǎng)

孫遠(yuǎn),徐群

(河海大學(xué) 能源與電氣學(xué)院,江蘇 南京 210000)

基于μC/OS-III多參數(shù)RTU的設(shè)計(jì)

孫遠(yuǎn),徐群

(河海大學(xué) 能源與電氣學(xué)院,江蘇 南京 210000)

文中提出了一種基于μC/OS-III操作系統(tǒng)的多功能、模塊化、多參數(shù)RTU的設(shè)計(jì)思路。硬件上采用cortex-m3內(nèi)核的stm32處理器,同時(shí)具有數(shù)字量輸入輸出模塊、模擬量輸入模塊、SDI-12接口電路模塊、RS232通信模塊、RS485通信模塊以及以太網(wǎng)模塊。通信協(xié)議采用Modbus-RTU和Modbus-TCP協(xié)議。相較于普通RTU,本設(shè)計(jì)具有模塊化、多功能、并且支持SDI-12接口標(biāo)準(zhǔn)的優(yōu)點(diǎn),并且硬件上具有低功耗、強(qiáng)大的計(jì)算能力和存儲(chǔ)能力,軟件上具有多任務(wù)、實(shí)時(shí)性等優(yōu)點(diǎn)。

模塊化;RTU;μC/OS-III;SDI-12;Modbus

遙測(cè)終端(Remote Tenninal Unit,RTU)是一種用于遠(yuǎn)方數(shù)據(jù)采集、處理與傳輸?shù)闹悄芑b置。可廣泛應(yīng)用于水情自動(dòng)測(cè)報(bào)、水利工情監(jiān)測(cè)、油田油井工況監(jiān)測(cè)等諸多領(lǐng)域。系統(tǒng)以cortex-m3處理器為核心,采用μC/OS-III操作系統(tǒng),相比于arm9處理器,cortex-m3在功耗上和價(jià)格上更具優(yōu)勢(shì),因此比較適合遙測(cè)終端的開(kāi)發(fā)。

1 RTU硬件設(shè)計(jì)

基于μC/OS-III的遙測(cè)終端結(jié)構(gòu)圖如圖1所示,終端系統(tǒng)包括核心模塊和I/O模塊兩部分。其中,核心模塊集成有MCU、存儲(chǔ)器、電源、鍵盤及液晶顯示、SDI-12接口電路、以太網(wǎng)接口、RS485接口、RS232接口以及ZigBee模塊。I/O模塊則包括數(shù)字量輸入模塊、數(shù)字量輸出模塊、模擬量輸入模塊等。其中I/O模塊屬于可配置模塊,可根據(jù)實(shí)際I/O接點(diǎn)數(shù)量靈活配置。文中MCU通過(guò)I/O總線,可以實(shí)現(xiàn)對(duì)I/O模塊的輸入輸出操作[1]。

圖1 遙測(cè)終端結(jié)構(gòu)圖Fig.1 Structure of the remote tenninal unit

1.1 MCU選取

MCU處理芯片選用意法半導(dǎo)體的STM32系列,采用cortex-m3內(nèi)核,其具有低功耗、低成本、高性能等優(yōu)點(diǎn)。相較于同級(jí)別的ARM7,其在性能上有大約30%的優(yōu)勢(shì)。它結(jié)合了Thumb兼容的Thumb-2指令集架構(gòu),對(duì)代碼結(jié)構(gòu)起到了明顯的優(yōu)化作用。cortex-m3是一個(gè)32位的內(nèi)核,具有32位的數(shù)據(jù)路徑、寄存器和存儲(chǔ)器接口。同時(shí),采用哈佛結(jié)構(gòu)的cortex-m3內(nèi)核,擁有獨(dú)立的指令總線和數(shù)據(jù)總線,可以讓數(shù)據(jù)訪問(wèn)和取指同時(shí)進(jìn)行,因此性能上得到了進(jìn)一步加強(qiáng)[2]。

1.2 I/O總線設(shè)計(jì)

RTU共配置兩組8位I/O總線,兩組16位I/O總線,如圖2所示。

圖2 I/O總線設(shè)計(jì)圖Fig.2 The design of the I/O bus

8位I/O總線可外接8位數(shù)字量輸入/輸出模塊、8位并行輸出A/D轉(zhuǎn)換器,同時(shí),8位I/O總線還具備SPI總線功能,可外接串行輸入/輸出模塊和串行A/D轉(zhuǎn)換器。16位I/O總線可外接12/16位并行輸出A/D轉(zhuǎn)換器以及16位數(shù)字量輸入/輸出模塊。每一位總線接口都和MCU上一個(gè)GPIO引腳相連接,當(dāng)需要使用輸入輸出模塊時(shí),只需要將模塊安裝在I/O總線接口上,并進(jìn)行軟件上的配置就可以實(shí)現(xiàn)。這樣設(shè)計(jì)可以有效利用MCU資源,用戶可根據(jù)實(shí)際需求,選擇連接模塊的數(shù)量和類型。

1.3 SDI-12接口電路

SDI-12接口標(biāo)準(zhǔn)是美國(guó)水文、氣象、水質(zhì)儀器生產(chǎn)廠家根據(jù)美國(guó)地質(zhì)調(diào)查局水資源處的要求統(tǒng)一商定的。該接口具有如下適用范圍:

1)邊遠(yuǎn)地區(qū)電池供電且電流較小的智能儀器;

2)系統(tǒng)整體低成本;

3)記錄器和傳感器之間的連接電纜可達(dá)60 m;

4)數(shù)據(jù)記錄器可通過(guò)一根電纜連接多個(gè)傳感器。

在我國(guó),傳統(tǒng)的水文數(shù)據(jù)采集系統(tǒng)一般采用RS232、RS485、RS422等接口標(biāo)準(zhǔn),相比而言,SDI-12接口標(biāo)準(zhǔn)有如下優(yōu)勢(shì):

1)統(tǒng)一了硬件接口協(xié)議和通信協(xié)議,便于數(shù)據(jù)記錄器的批量生產(chǎn)以及傳感器的互換;

2)降低系統(tǒng)集成成本,可連接多個(gè)傳感器并且儀器通信功耗低;

3)安裝與維護(hù)方便。

SDI-12總線的工作原理如圖3所示,帶有SDI-12接口電路的數(shù)據(jù)記錄器,通過(guò)SDI-12總線,僅有數(shù)據(jù)線、電源線、地線三根線,就可以連接多臺(tái)符合SDI-12接口標(biāo)準(zhǔn)的傳感器[3]。

圖3 SDI-12總線工作原理圖Fig.3 Operating principle of the SDI-12 bus

2 RTU軟件設(shè)計(jì)

RTU內(nèi)嵌μC/OS-III實(shí)時(shí)操作系統(tǒng),采用Modbus通訊協(xié)議。μC/OS-III是一個(gè)可升級(jí),可固化的基于優(yōu)先級(jí)的實(shí)時(shí)內(nèi)核。Modbus協(xié)議包括 3種方式:ASCII、RTU和 Modbus/ TCP。ASCII和RTU方式是通過(guò)串口形式通訊,而TCP則是通過(guò)以太網(wǎng)形式通訊。

2.1 μC/OS-III操作系統(tǒng)移植

μC/OS-III是Micrium公司推出的,源于μC/OS-II的新版操作系統(tǒng)。與μC/OS-II一樣,其源碼遵循ANSI C標(biāo)準(zhǔn),因此具有良好的移植性。相較于μC/OS-II,μC/OS-III操作系統(tǒng)作出了很大的改進(jìn)。任務(wù)的數(shù)量不再受限于系統(tǒng)本身,僅受限于系統(tǒng)存儲(chǔ)器的大小。而基本的μC/OS-II系統(tǒng)最大僅能支持64個(gè)任務(wù)。在μC/OS-III系統(tǒng)中,多個(gè)任務(wù)可以運(yùn)行于同一優(yōu)先級(jí)上,這些相同優(yōu)先級(jí)的任務(wù)通過(guò)時(shí)間片輪轉(zhuǎn)調(diào)度。由于采用了延遲中斷處理機(jī)制,因此系統(tǒng)的中斷延遲被大大的縮短了。引入了時(shí)間戳的概念,系統(tǒng)通過(guò)32位計(jì)數(shù)器精確計(jì)算各個(gè)任務(wù)的CPU使用率、最長(zhǎng)關(guān)中斷時(shí)間、最長(zhǎng)關(guān)調(diào)度器時(shí)間等??傊藽/OS-III在μC/OS-II的基礎(chǔ)上進(jìn)行了全面的升級(jí)于改進(jìn),但是其對(duì)硬件的要求并沒(méi)有提高[4]。

μC/OS-III系統(tǒng)的移植方法與μC/OS-II類似,都是修改與內(nèi)核、CPU相關(guān)的文件以及創(chuàng)建板級(jí)支持包(BSP),具體過(guò)程可以歸納為如下:

1)編寫(xiě)os_cpu.h文件。該頭文件的功能包括統(tǒng)一使用的數(shù)據(jù)類型、設(shè)置堆棧屬性以及對(duì)時(shí)間戳獲取函數(shù)和任務(wù)切換函數(shù)進(jìn)行宏定義。

2)編寫(xiě)os_cpu_a.asm文件。該文件包括OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()等任務(wù)切換相關(guān)的底層函數(shù)。OSStartHighRdy()函數(shù)的功能是設(shè)置系統(tǒng)運(yùn)行標(biāo)志位OSRunning=TRUE;將就緒表中最高優(yōu)先級(jí)任務(wù)的棧指針加載到SP中并強(qiáng)制中斷返回。OSCtxSw()是在任務(wù)級(jí)任務(wù)切換函數(shù)中調(diào)用,其功能是保存任務(wù)的環(huán)境變量,保存當(dāng)前任務(wù)SP并載入最高優(yōu)先級(jí)任務(wù)的SP,恢復(fù)就需最高優(yōu)先級(jí)任務(wù)的環(huán)境變量,實(shí)現(xiàn)任務(wù)級(jí)切換。OSIntCtxSw()實(shí)現(xiàn)中斷級(jí)任務(wù)切換,該過(guò)程無(wú)需進(jìn)行堆棧操作,只需要對(duì)棧指針進(jìn)行調(diào)整即可。

3)編寫(xiě)os_cpu_c.c文件。該文件包含OSTaskStkInit()函數(shù)和用于擴(kuò)展用戶功能的鉤子函數(shù)。OSTaskStk Init()函數(shù)的功能是用于初始化任務(wù)堆棧,并返回新的棧頂位置。

圖4 RTU系統(tǒng)配置流程圖Fig.4 The configuration flow chart of RTU system

4)編寫(xiě)cpu.h文件。cpu.h是與cpu相關(guān)的頭文件,其主要包括標(biāo)準(zhǔn)數(shù)據(jù)類型、字長(zhǎng)、堆棧、臨界區(qū)等的相關(guān)定義。

5)編寫(xiě)cpu_a.asm文件。其主要功能是臨界區(qū)函數(shù)的實(shí)現(xiàn),通過(guò)用戶設(shè)置的臨界區(qū)方法中斷使能函數(shù)。

6)編寫(xiě)板級(jí)支持包(BSP)。根據(jù)需要移植相關(guān)硬件的初始化函數(shù)和驅(qū)動(dòng)程序,包括RCC、GPIO、NVIC、LEDLCD等。

2.2 M odbus通訊協(xié)議

Modbus通訊協(xié)議為不同控制器之間,控制器與其它設(shè)備之間實(shí)現(xiàn)雙向數(shù)據(jù)通信。Modbus通訊協(xié)議定義了控制器能夠識(shí)別的消息結(jié)構(gòu),采用主/從總線型連接方式,規(guī)定了命令和響應(yīng)的交互機(jī)制。該協(xié)議支持RS-232、RS-485、RS-422以及以太網(wǎng)設(shè)備。Modbus協(xié)議包括的3種方式,這里主要用到的有Modbus/RTU和Modbus/TCP兩種。Modbus/TCP協(xié)議是一種基于以太網(wǎng)的協(xié)議,通過(guò)該協(xié)議可以實(shí)現(xiàn)RTU與計(jì)算機(jī)之間的以太網(wǎng)通信。而Modbus/RTU協(xié)議運(yùn)行于RS-232、RS485等串行接口設(shè)備,實(shí)現(xiàn)Modbus主站站與Modbus從站之間的通信[5]。Modbus/RTU協(xié)議在通信時(shí)除了需要進(jìn)行奇偶校驗(yàn)外還需要進(jìn)行16位CRC校驗(yàn),而Modbus/TCP協(xié)議則沒(méi)有規(guī)定額外的校驗(yàn)。

在實(shí)際使用中,當(dāng)RTU與計(jì)算機(jī)進(jìn)行以太網(wǎng)通信時(shí),則采用Modbus/TCP協(xié)議,此時(shí),RTU將不斷接收來(lái)自網(wǎng)絡(luò)的查詢命令,并實(shí)時(shí)響應(yīng)。當(dāng)RTU作為從站進(jìn)行串口通信時(shí),則采用Modbus/RTU協(xié)議。得益于RTU模塊化的設(shè)計(jì),所以無(wú)論作為主站還是作為從站,只需要在軟件上進(jìn)行相關(guān)配置即可。

RTU系統(tǒng)設(shè)計(jì)流程圖如圖4所示。系統(tǒng)上電后,首先初始化開(kāi)發(fā)板和μC/OS-III,然后進(jìn)行串口配置,主要配置系統(tǒng)數(shù)據(jù)傳輸?shù)牡刂?、波特率、?shù)據(jù)位和停止位,接下來(lái)配置以太網(wǎng)的IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)等,然后再對(duì)輸入輸出模塊以及SDI-12接口進(jìn)行配置,最后,作為主站的RTU和作為從站的RTU將分別執(zhí)行主站服務(wù)程序和從站服務(wù)程序,主站服務(wù)程序如圖5所示,從站服務(wù)程序如圖6所示。

圖5 主站服務(wù)程序Fig.5 Service program of the main station

圖6 從站服務(wù)程序Fig.6 Service program of the slave station

主站RTU通過(guò)RS485總線或者ZigBee模塊與各從站RTU連接,主要執(zhí)行輪詢各從站,接收各從站數(shù)據(jù)并存儲(chǔ)在指定的存儲(chǔ)設(shè)備中。同時(shí),通過(guò)Modbus-TCP協(xié)議,創(chuàng)建以太網(wǎng)服務(wù)器任務(wù),與上位機(jī)(計(jì)算機(jī))進(jìn)行數(shù)據(jù)交換[6]。

Zigbee模塊通過(guò)與RTU的RS-232接口相連接,組成一個(gè)傳感器終端節(jié)點(diǎn),可與路由節(jié)點(diǎn)、協(xié)調(diào)器節(jié)點(diǎn)組建一個(gè)基于ZigBee的無(wú)線傳感器網(wǎng)絡(luò)。

從站RTU主要執(zhí)行一些現(xiàn)場(chǎng)的參數(shù)遙測(cè)任務(wù),包括輸入輸出模塊任務(wù)、SDI-12數(shù)據(jù)采集任務(wù)、讀取保持寄存器任務(wù)等。

系統(tǒng)上電后,若RTU工作在主站狀態(tài),將獲取各從站的配置信息,并根據(jù)實(shí)際情況配置各從站,配置成功后,主站開(kāi)始對(duì)各從站進(jìn)行掃描,并處理從站發(fā)出的報(bào)文;每掃描完一個(gè)從站,主站便存儲(chǔ)從站輪詢到的信息;若上位機(jī)有請(qǐng)求命令,則主站RTU將會(huì)根據(jù)Modbus/TCP協(xié)議將數(shù)據(jù)打包上傳。若RTU工作在從站狀態(tài),則采集I/O總線接口以及SDI-12接口電路傳輸來(lái)的數(shù)據(jù),并等待主站RTU的輪詢;當(dāng)收到輪詢信號(hào)后,將按照Modbus/RTU協(xié)議將數(shù)據(jù)上傳。

任務(wù)調(diào)度由μC/OS-III操作系統(tǒng)來(lái)執(zhí)行,μC/OS-III是多任務(wù)操作系統(tǒng),對(duì)于不同的通信任務(wù)、輸入/輸出任務(wù)、鍵盤顯示任務(wù),系統(tǒng)通過(guò)優(yōu)先級(jí)來(lái)進(jìn)行任務(wù)的中斷與切換,對(duì)于相同優(yōu)先級(jí)的任務(wù),系統(tǒng)通過(guò)時(shí)間片輪轉(zhuǎn)算法來(lái)調(diào)度,及為每個(gè)任務(wù)分配固定的時(shí)間片做為允許運(yùn)行時(shí)間,當(dāng)任務(wù)時(shí)間片運(yùn)行結(jié)束時(shí),cpu將被剝奪并分配給另一個(gè)任務(wù)。

3 結(jié)束語(yǔ)

本文主要介紹了一款基于μC/OS-III的模塊化RTU的設(shè)計(jì)思路。其中對(duì)于SDI-12接口電路模塊的原理以及I/O總線設(shè)計(jì)進(jìn)行了較為詳細(xì)的介紹。另外,本文還介紹了μC/OSIII這款新型的操作系統(tǒng)以及它的移植方法。本設(shè)計(jì)中,RTU主要采用了Modbus通信協(xié)議。同時(shí),結(jié)合操作系統(tǒng)與通信協(xié)議,引出了本文軟件的設(shè)計(jì)思路。該RTU可廣泛應(yīng)用于水文、土壤、環(huán)境、電力、計(jì)量站等有多參數(shù)遙測(cè)的各行業(yè)。當(dāng)然,由于個(gè)人的時(shí)間和精力有限,本設(shè)計(jì)還有不足之處,在功能模塊的擴(kuò)展方面,還有待更深入的研究。

[1]彭道剛,張浩,李輝,等.基于Modbus協(xié)議的ARM嵌入式監(jiān)測(cè)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].電力自動(dòng)化設(shè)備,2009,29(1):115-119. PENG Dao-gang,ZHANG Hao,LI Hui,et al.Design and implementation of ARM embedded monitoring platform based on Modbus protocol[J].Electric Power Automation Equipment,2009,29(1):115-119.

[2]丁力,宋志平,徐萌萌,等.基于STM32的嵌入式測(cè)控系統(tǒng)設(shè)計(jì)[J].中南大學(xué)學(xué)報(bào),2013(44):260-265. DING Li,SONG Zhi-ping,XU Meng-meng,et al.Design of embedded measurement and control system based on STM32 [J].Journal of Central South University,2013(44):260-265.

[3]擺玉龍,董存輝,單吉明.基于SDI-12總線的生態(tài)水文數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].遙感技術(shù)與應(yīng)用,2013,28(3): 453-458. BAI Yu-long,DONG Cun-hui,SHAN Ji-ming.Design and implementation of eco-hydrological data acquisition system based on SDl-12 Bus[J].Remote Sensing Technology and Application,2013,28(3):453-458.

[4]Jean J.Labrosse.μC/OS-III The Real-tim-Kernel User’s Manual[M].USA:CMP Book,2010.

[5]李永強(qiáng),單鳴雷,朱昌平.基于Modbus協(xié)議的多功能數(shù)據(jù)采集器設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2014,22(3):839-841. LI Yong-qiang,SHAN Ming-lei,ZHU Chang-ping.Design of modbus protocol一 based multifunction data acquisition device[J].Computer Measurement and Control,2014,22(3): 839-841.

[6]劉沛津,谷立臣.基于Modbus/TCP的火電廠實(shí)時(shí)數(shù)據(jù)集成及網(wǎng)絡(luò)通信控制器研制[J].電力自動(dòng)化設(shè)備,2009,29(8):128-131. LIU Pei-jin,GU Li-chen.Controller for real-time data collection and network communication based on modbus/TCP in thermal power plant[J].Electric Power Automation Equipment,2009,29(8):128-131.

Design of multi parameter RTU based on μC/OS-III

SUN Yuan,XU Qun
(College of Energy and Electrical,Hohai University,Nanjing 210000,China)

This paper proposes a design idea of RTU which is multi-function,modular and based on μ C/OS-III operating system.The hardware adopts STM32 processor with Cortex-M3 core.It mainly has digital input and output module,analog input module,SDI-12 interface module,RS232 communication module,RS485 communication module and Ethernet module. Communication protocol using Modbus-RTU and Modbus-TCP protocol.Compared with ordinary RTU,it has the advantages of modular,multifunctional and can be used with the SDI-12 interface standards.It alos has much advantages in the lower power consumption,powerful computing ability,storage ability,multi task,real-time,etc.

module;RTU;C/OS-III;SDI-12;Modbus

TN98

A

1674-6236(2015)07-0155-04

2014-07-02 稿件編號(hào):201407015

孫 遠(yuǎn)(1989—),男,江蘇淮安人,碩士研究生。研究方向:嵌入式理論與應(yīng)用。

猜你喜歡
輸出模塊主站以太網(wǎng)
基于1500以太網(wǎng)養(yǎng)豬場(chǎng)的智能飼喂控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于MSP430的輸入輸出模塊設(shè)計(jì)與實(shí)現(xiàn)
微信控制6路輸出開(kāi)關(guān)
基于OS2主站系統(tǒng)的海量數(shù)據(jù)共享技術(shù)研究
多表遠(yuǎn)程集抄主站系統(tǒng)
電子制作(2017年23期)2017-02-02 07:17:07
談實(shí)時(shí)以太網(wǎng)EtherCAT技術(shù)在變電站自動(dòng)化中的應(yīng)用
電子制作(2017年24期)2017-02-02 07:14:44
一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計(jì)
淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應(yīng)用
基于改進(jìn)經(jīng)濟(jì)壓差算法的主站AVC的研究
關(guān)口電能計(jì)量故障監(jiān)測(cè)報(bào)警裝置及主站研究
绥滨县| 万全县| 渑池县| 平果县| 昆山市| 会东县| 郯城县| 昌吉市| 密山市| 柳州市| 华阴市| 锡林郭勒盟| 南宁市| 河间市| 多伦县| 铁力市| 喀喇沁旗| 慈溪市| 长泰县| 龙南县| 昌图县| 禄劝| 凌云县| 枞阳县| 汝州市| 朝阳市| 嵩明县| 无为县| 云南省| 古蔺县| 景泰县| 岳池县| 永嘉县| 咸宁市| 开江县| 临猗县| 建宁县| 安溪县| 汾西县| 正蓝旗| 安新县|