張 飛, 何雅琴
(常州機電職業(yè)技術(shù)學(xué)院 a.電氣工程學(xué)院,b.信息工程學(xué)院,江蘇 常州 213164)
基于UCOS-II的礦用數(shù)據(jù)采集單元(DTU)系統(tǒng)設(shè)計
張 飛a, 何雅琴b
(常州機電職業(yè)技術(shù)學(xué)院 a.電氣工程學(xué)院,b.信息工程學(xué)院,江蘇 常州 213164)
為了實現(xiàn)礦用數(shù)據(jù)采集單元(DTU)的相關(guān)功能,提出了采用基于UCOS-II的DTU系統(tǒng)設(shè)計。該DTU的處理器選用STM32F103VE,并把實時操作系統(tǒng)UCOS-II移植到該CPU上。介紹了系統(tǒng)硬件和軟件的設(shè)計方案。通過使用實時操作系統(tǒng),簡化了軟件的編寫過程,增加了軟件的可維護性。通過調(diào)試,該DTU系統(tǒng)能夠滿足企業(yè)的需求。
礦用; 中央處理器; 實時操作系統(tǒng); 硬件; 軟件
礦用DTU(數(shù)據(jù)采集單元)主要用于礦上環(huán)境及參數(shù)等的數(shù)據(jù)采集。由于DTU工作環(huán)境多樣,而且一般都要長時間運行,所以設(shè)計的DTU系統(tǒng)必須具備高可靠性。本文根據(jù)企業(yè)的實際需求,采用STM32F103VE(ARM)設(shè)計的一種高可靠礦用DTU系統(tǒng),為了簡化軟件設(shè)計難度,增加軟件可維護性和可擴展性,系統(tǒng)還移植了UCOS-II實時操作系統(tǒng)。
1.1 UCOS-II簡介
實時操作系統(tǒng)UCOS-II自1992年發(fā)布以來,得到了各行各業(yè)的廣泛應(yīng)用。該RTOS的核心代碼都采用C語言編寫,很容易移植到各種CPU上,而且源代碼公開[1-4],方便軟件的開發(fā)和根據(jù)需要對相關(guān)代碼進行改寫。UCOS-II的任務(wù)可以處于休眠態(tài),就緒態(tài)、運行態(tài)、掛起態(tài)和被中斷態(tài)5種不同的狀態(tài)[5]。
1.2 Modbus協(xié)議
Modbus是一種使用與工業(yè)現(xiàn)場的總線協(xié)議,支持RS232、RS485以及網(wǎng)絡(luò)通信等,很多智能儀表都在采用此協(xié)議通信。該協(xié)議提供RTU和ASCII兩種傳輸模式供用戶選擇。RTU模式一般使用 CRC校驗,ASCII模式采用LRC校驗來保障數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。使用Modbus協(xié)議構(gòu)建的通信網(wǎng)絡(luò)中,一般只有一個主機,Modbus協(xié)議的數(shù)據(jù)格式如表1所示[6]。
表1 Modbus協(xié)議的數(shù)據(jù)格式表
DTU系統(tǒng)可以單獨一個DTU使用,也可以多個DTU組網(wǎng)使用,一般都是以組網(wǎng)的形式使用。多DTU組網(wǎng)使用過程如圖1所示。
圖1 多DTU組網(wǎng)圖
多個DTU可以通過RS485總線與服務(wù)器相連,也可以通過GPRS與服務(wù)器連接。當(dāng)采用RS485總線時,服務(wù)器發(fā)送數(shù)據(jù)采集命令給每個DTU,DTU分別從前端采集器(一般為傳感器模塊、也可以是數(shù)字量)采集數(shù)據(jù),并把相關(guān)數(shù)據(jù)打包發(fā)送給服務(wù)器做進一步分析和統(tǒng)計。數(shù)據(jù)傳送的時候采用MODBUS協(xié)議。一般企業(yè)要求每個DTU要支持多種通信接口,如:RS232,RS485,RS422等,以此滿足DTU在不同應(yīng)用領(lǐng)域的需求。而且DTU必須提供各種工作電壓,為前端采集器供電,如5 V、3.3 V等。本文設(shè)計的DTU主要包括:CPU模塊、電源模塊、通信模塊、存儲模塊(用于系統(tǒng)參數(shù)保存)、溫度檢測模塊、GPRS模塊等。系統(tǒng)框圖見圖2。
圖2 系統(tǒng)框圖
3.1 防爆說明
由于本DTU要在煤礦企業(yè)使用,必須考慮防爆性。該系統(tǒng)被安裝到金屬型DTU安裝盒內(nèi),系統(tǒng)采用Exibmb[ib]d IIB T4及防爆(本安關(guān)聯(lián)+澆封+本安+隔爆組合型)設(shè)計,并通過國家防爆電器產(chǎn)品認(rèn)證。
3.2 電源部分
電源部分設(shè)計采用了一片LM2596和一片LM1117-3.3電源芯片。LM2596將24 V電壓轉(zhuǎn)變成5 V電壓,LM1117-3.3芯片進一步將5 V電壓轉(zhuǎn)變成3.3 V電壓為CPU和相關(guān)芯片供電。5 V電壓和3.3 V電壓也可以用于對前端采集器供電。電源部分原理圖如圖3所示。
圖3 電源部分原理圖
3.3 CPU和調(diào)試接口部分
系統(tǒng)采用STM32F103VE為CPU,該CPU采用了Cortex-M3內(nèi)核,具有512KB內(nèi)部FLASH和64KB RAM[7],能夠滿足移植實時操作系統(tǒng)的需求。而且,STM32F103VE包含5個串行通信口、7個定時器/計數(shù)器,18通道12位模數(shù)轉(zhuǎn)換接口[8],完全能滿足DTU的設(shè)計需要。系統(tǒng)所有的數(shù)字量通信都采用CPU的輸入輸出引腳。CPU原理圖如圖4所示。
圖4 CPU部分原理圖
系統(tǒng)調(diào)試接口采用了JTAG接口。JTAG是一種片上調(diào)試系統(tǒng)與外部調(diào)試器之間的通信接口[9]。通過該接口,可以對系統(tǒng)進行調(diào)試,并把程序下載到STM32F103VE ARM。
3.4 GPRS部分
GPRS部分采用了通過國家防爆認(rèn)證的本安型GSM/GPRS無線通信Modem。Modem與DTU之間采用RS232通信,Modem與DTU的連接如圖5所示。
圖5 Modem與DTU的連接圖
3.5 通信部分
不同的模塊級礦用傳感器模塊生產(chǎn)廠家,前端采集器的通信口可能不同,一般為RS232,RS485,RS422 3種,為了增加DTU的兼容性,系統(tǒng)必須實現(xiàn)RS232,RS485,RS422通信。RS232通信采用了一片SP3232芯片,如圖6所示。
圖6 RS232接口原理圖
RS485通信采用了Maxim公司生產(chǎn)的MAX485芯片[10-11],原理圖如圖7所示。
圖7 MAX485接口原理圖
由于MAX485芯片是一款半雙工通信芯片,通過控制引腳實現(xiàn)雙向通信,而本設(shè)計的RS422接口必須實現(xiàn)全雙工通信,故可以采用兩片MAX485芯片實現(xiàn)RS422通信。
3.6 其他設(shè)計說明
對于接盤部分,采用了獨立式的按鈕。溫度的檢測采用了一片DS18B20芯片。聲音提示部分采用了直流蜂鳴器。D/A部分輸出電壓主要為一些特殊的采集器提供高精度電壓,采用了一片TI公司生產(chǎn)的串行D/A芯片DAC8411實現(xiàn)[12]。存儲部分用于存儲系統(tǒng)參數(shù),具備掉電保存功能,采用了一片AT24C256實現(xiàn),該芯片采用IIC與CPU通信。
4.1 UCOS-II的移植
軟件的開發(fā)使用了KEIL軟件,該軟件可以實現(xiàn)函數(shù)的可重入性能夠滿足移植UCOS-II對軟件重入性的需求。由于UCOS-II的作者在設(shè)計該操作系統(tǒng)時就考慮了該系統(tǒng)的可移植性,故移植UCOS-II比移植嵌入式Linux、Wince等要簡單的多。移植過程如下:在OS_CPU.H中設(shè)置時鐘節(jié)拍、聲明數(shù)據(jù)類型和相關(guān)宏;在OS_CPU_C.C和OS_CPU_A.S中編寫任務(wù)切換、堆棧保存等函數(shù)[13-15]。
4.2 應(yīng)用軟件設(shè)計
由于系統(tǒng)移植了實時操作系統(tǒng)UCOS-II,故軟件的設(shè)計采用了多任務(wù)編程的方式。根據(jù)系統(tǒng)的需求,將整個軟件功能分解成一個個的小任務(wù),各個任務(wù)共同實現(xiàn)系統(tǒng)功能。根據(jù)DTU的功能,把系統(tǒng)功能分解成8個任務(wù):起始任務(wù)、主通信任務(wù)、從通信任務(wù)、DA任務(wù)、存儲任務(wù)、I/O任務(wù)、聲音提示任務(wù)、溫度探測任務(wù)。同時還包括主通信中斷、從通信中斷、按鍵中斷3個中斷服務(wù)程序。任務(wù)中斷劃分表如表2所示。
表2 任務(wù)中斷分配表
系統(tǒng)啟動后,通過起始任務(wù)初始化系統(tǒng),然后該任務(wù)放棄運行權(quán)利,系統(tǒng)進入多任務(wù)運行狀態(tài)。按下開始按鍵,按鍵中斷發(fā)送信號量給主通信任務(wù),主通信任務(wù)等待主通信中斷發(fā)送的信號量。當(dāng)服務(wù)器端發(fā)送數(shù)據(jù)采集命令后,觸發(fā)主通信中斷,主通信中斷服務(wù)程序發(fā)送信號量給主通信任務(wù)。主通信任務(wù)解包服務(wù)器發(fā)送的命令,根據(jù)命令發(fā)送信號量給其他任務(wù)。當(dāng)主通信任務(wù)接收到參數(shù)保存命令,就發(fā)送信號量給參數(shù)保存任務(wù),參數(shù)保存任務(wù)就保存當(dāng)前參數(shù),并發(fā)送信號量給聲音提示任務(wù),聲音提示任務(wù)控制蜂鳴器發(fā)出“滴”的一聲作為提示。當(dāng)主通信任務(wù)接收到DA設(shè)置命令,主通信任務(wù)發(fā)送信號量給DA任務(wù),DA任務(wù)控制DA輸出值。當(dāng)主通信任務(wù)接收到溫度采集命令,就發(fā)送信號量給溫度采集任務(wù),該任務(wù)采集DTU工作環(huán)境溫度。當(dāng)主通信任務(wù)接收到I/O信號采集命令,就發(fā)送信號量給I/O任務(wù),該任務(wù)采集DTU的輸入輸出相關(guān)信息。當(dāng)主通信任務(wù)接收到數(shù)據(jù)采集任務(wù),就發(fā)送信號量給從通信任務(wù),從通信任務(wù)從前端采集器采集相關(guān)數(shù)據(jù)并打包存儲,然后發(fā)送信號量給主通信任務(wù),主通信任務(wù)采用Modbus協(xié)議把數(shù)據(jù)發(fā)送到服務(wù)器。各任務(wù)以及中斷之間的關(guān)系如圖8所示。
圖8 任務(wù)以及中斷之間關(guān)系圖
4.3 信號量的分配
為了協(xié)調(diào)各任務(wù)以及任務(wù)和中斷間的協(xié)調(diào)運行,系統(tǒng)創(chuàng)建了7個信號量,如表3所示。
表3 信號量說明表
4.4 任務(wù)說明
(1) 起始任務(wù)。該任務(wù)執(zhí)行后完成系統(tǒng)初始化,創(chuàng)建各個信號量和其他7個任務(wù),然后通過OSTaskDel(OS_PRIO_SELF)把自身刪除。
(2) 主通信任務(wù)。該任務(wù)是整個系統(tǒng)的核心任務(wù),優(yōu)先級最高。它接收按鍵中斷、從通信中斷以及其他任務(wù)發(fā)送的信號量Sem_mcom,同時該任務(wù)還根據(jù)服務(wù)器端不同的命令向其它各任務(wù)發(fā)送相關(guān)信號量。
(3) 從通信任務(wù)。該任務(wù)負(fù)責(zé)采集前端采集器的數(shù)據(jù)。接收主通信中斷發(fā)送的Sem_scom信號量,同時也能發(fā)送Sem_mcom給主通信任務(wù)。
(4) DA任務(wù)。該任務(wù)接收到主通信任務(wù)發(fā)送的信號量Sem_da后,根據(jù)參數(shù)設(shè)定D/A輸出值,然后發(fā)送Sem_mcom給主通信任務(wù)。
(5) 存儲任務(wù)和聲音提示任務(wù)。存儲任務(wù)接收到主通信任務(wù)發(fā)送的信號量Sem_save后保存相關(guān)參數(shù),并發(fā)送信號量Sem_vo給聲音提示任務(wù),發(fā)出提示音,聲音提示任務(wù)發(fā)送Sem_mcom給主通信任務(wù)。
(6) 溫度探測任務(wù)。該任務(wù)接收到主通信任務(wù)發(fā)送的信號量Sem_tmp后,完成溫度檢測任務(wù),然后發(fā)送Sem_mcom給主通信任務(wù)。
(7) I/O任務(wù)。該任務(wù)接收到主通信任務(wù)發(fā)送的信號量Sem_io后,記錄相關(guān)IO口的狀態(tài),并發(fā)送Sem_mcom給主通信任務(wù)。
為了驗證設(shè)計的有效性,在實驗室構(gòu)建了密閉實驗房,DTU聯(lián)網(wǎng)后采集溫度、濕度、瓦斯?jié)舛饶K檢測的數(shù)據(jù),并發(fā)送到服務(wù)器,圖9為某次探測上位機監(jiān)測畫面。實驗表明,本文設(shè)計的礦用DTU系統(tǒng)能準(zhǔn)確采集傳感器模塊探測到的數(shù)據(jù)信息。通過60次數(shù)據(jù)采集統(tǒng)計發(fā)現(xiàn),該系統(tǒng)通過Modbus協(xié)議的數(shù)據(jù)傳送丟包率為0%。
圖9 上位機監(jiān)測畫面
本文將UCOS-II移植到STM32F103VE芯片上,實現(xiàn)了礦用DTU系統(tǒng)的開發(fā),服務(wù)器和DTU之間可以采用RS485或GPRS通信, DTU和前端采集器的通信都采用MODBUS協(xié)議。經(jīng)過調(diào)試和試用,該DTU完全能夠滿足企業(yè)要求的性能指標(biāo)。通過使用嵌入式實時操作系統(tǒng),使軟件的開發(fā)和維護變得更為簡單。
[1] 包化偉,肖小庭,龍 飛,等. 基于UCOSⅡ的恒溫槽自動檢測儀設(shè)計實現(xiàn)[J].電子科技,2014,24(10):163-166,174.
[2] 王 念,盛 榮,郝宇浩. 基于嵌入式ucos的智能礦井機器人設(shè)計[J]. 煤礦機械,2014,35(1):19-21.
[3] 麥源振,谷 剛,王志平. 基于STM32和uCOS—Ⅱ的注塑車間MES數(shù)據(jù)采集與監(jiān)控系統(tǒng)設(shè)計[J].制造業(yè)自動化,2015,37(7):151-154.
[4] 張 峰,郭玲玲,徐 釗. 基于CC2530/uCOS-Ⅱ的井下數(shù)據(jù)采集器[J].儀表技術(shù)與傳感器,2014(1):34-36.
[5] Labrosse JJ. C/OS The real-time kernel[C]//Kansas:R&D Publication Inc,1992:1-80.
[6] 宋 磊,彭道剛,趙斌斌,等. 基于嵌入式STM32的Modbus RTU協(xié)議實現(xiàn)[J].儀表技術(shù),2014(11):33-36,54.
[7] 徐 偉. 探地雷達顯控單元中的HPI應(yīng)用技術(shù)研究[J].現(xiàn)代電子技術(shù),2013,36(5):10-12.
[8] 李勇軍. 基于STM32F103VE單片機的AT自耦變壓器保護裝置設(shè)計[J].科技創(chuàng)新與應(yīng)用,2015(4):35-36.
[9] 陳 銳. 基于JTAG的SoC片上調(diào)試系統(tǒng)設(shè)計[J].電子設(shè)計工程,2015,23(3):154-156.
[10] 江賢志,劉華章,張教育,等. 基于C8051F020單片機的RS485串行通信設(shè)計[J].電子測量技術(shù),2014,37(3):121-124.
[11] 孟仕印,羅天蘭,孟傳良.回轉(zhuǎn)窯分布式控制系統(tǒng)RS485總線通信系統(tǒng)設(shè)計[J].自動化與儀器儀表,2015(5):112-113.
[12] 馮 洋.低功耗數(shù)字式對講機設(shè)計[J].電子設(shè)計工程,2016,24(8):182-184.
[13] 何雅琴,張 飛,仲 潘. 基于uCOS-II的空氣質(zhì)量檢測系統(tǒng)設(shè)計[J]. 軟件導(dǎo)刊,2015,14(2):119-121.
[14] 諶 進,馬尚昌. 基于UCOS-Ⅱ和LwIP的串口設(shè)備聯(lián)網(wǎng)技術(shù)研究[J].電子設(shè)計工程,2015(10):75-78.
[15] 朱東亮. 基于LPC1343的UCOS—II移植[J].中國新通信,2013,15(17):111-112.
Design of Mine-used DTU System Based on UCOS-II
ZHANGFeia,HEYaqinb
(a. Department of Electrical Engineering, b. Department of Information Engineering, Changzhou Institute of Mechatronic Technology, Changzhou 213164, Jiangsu, China)
In order to realize the function of DTU, a design of mine-used DTU system based on UCOS-II is given. The DTU uses the STM32F103VE as processor, and the real-time operating system (UCOS-II ) is transplanted to this CPU. The design scheme of the hardware and software of the system is introduced in this paper. The software is simplified, and the maintainability of the software is increased by using the real-time operating system. Through the debugging, the DTU system can meet the needs of the enterprises.
mine-used; central processing unit(CPU); real-time operating system; hardware; software
2016-09-20
江蘇高校品牌專業(yè)建設(shè)工程資助項目(PPZY2015C238);江蘇省前瞻性研究專項資金項目(BY2014043)
張 飛(1981-),男,江蘇常州人,碩士,講師、工程師,主要研究方向:自動化技術(shù)、人工智能。E-mail:czmeczf@163.com
TD 65
A
1006-7167(2017)05-0131-04