文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.01.013
中文引用格式: 王晨輝,,吳悅,楊凱. 基于STM32的多通道數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2016,,42(1):51-53,57.
英文引用格式: Wang Chenhui,,Wu Yue,,Yang Kai. Design of multi-channel data acquisition system based on STM32[J].Application of Electronic Technique,,2016,42(1):51-53,,57.
0 引言
在地質(zhì)災(zāi)害監(jiān)測(cè)中,,需要監(jiān)測(cè)泥位,、地聲、次聲,、位移等多種監(jiān)測(cè)數(shù)據(jù),,數(shù)據(jù)采集系統(tǒng)被廣泛應(yīng)用,監(jiān)測(cè)人員關(guān)注的不再是采集系統(tǒng)的功能,,而是其基本性能,如采集速度,、采集精度,、抗干擾能力[1]。而且,,以往人工到現(xiàn)場(chǎng)定時(shí)采集數(shù)據(jù)的監(jiān)測(cè)方法已不能滿足當(dāng)前地質(zhì)災(zāi)害監(jiān)測(cè)技術(shù)要求,,本文利用ARM微控制器STM32F103和低噪聲雙通道模數(shù)轉(zhuǎn)換芯片ADS1256共同構(gòu)建低功耗多通道數(shù)據(jù)采集系統(tǒng),實(shí)現(xiàn)多通道數(shù)據(jù)不間斷實(shí)時(shí)采集,,通過(guò)串口與GPRS模塊或北斗衛(wèi)星模塊實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)的遠(yuǎn)程無(wú)線傳輸,,有效提高監(jiān)測(cè)參數(shù)精度,提升系統(tǒng)穩(wěn)定性與可靠性,,降低系統(tǒng)功耗,。
1 系統(tǒng)總體設(shè)計(jì)
多通道數(shù)據(jù)采集系統(tǒng)主要由ARM微控制器STM32F103、A/D轉(zhuǎn)換電路,、電源電路,、數(shù)據(jù)存儲(chǔ)電路、數(shù)據(jù)傳輸電路和數(shù)據(jù)監(jiān)控中心組成[2],。STM32F103作為多通道數(shù)據(jù)采集系統(tǒng)的核心,,控制協(xié)調(diào)具體的數(shù)據(jù)采集、存儲(chǔ)與傳輸,。A/D轉(zhuǎn)換電路可采集泥位,、地聲,、次聲、位移等現(xiàn)場(chǎng)數(shù)據(jù),,STM32F103將采集的現(xiàn)場(chǎng)數(shù)據(jù)簡(jiǎn)單分析處理后通過(guò)數(shù)據(jù)傳輸電路傳輸?shù)竭h(yuǎn)程數(shù)據(jù)監(jiān)控中心,,數(shù)據(jù)傳輸主要通過(guò)GPRS或北斗衛(wèi)星模塊上傳,后臺(tái)數(shù)據(jù)監(jiān)控中心可實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)數(shù)據(jù)的實(shí)時(shí)在線查看及歷史查詢,,數(shù)據(jù)存儲(chǔ)電路可將采集數(shù)據(jù)實(shí)時(shí)保存到SD卡中,,方便以后數(shù)據(jù)處理。系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示,。
2 系統(tǒng)硬件電路設(shè)計(jì)
2.1 微控制器簡(jiǎn)介
微控制器采用STM32系列的32位微控制器STM32F103R8,。它采用ARM32位Cortex TM-M3的CPU,主頻可達(dá)72 MHz,,內(nèi)置高達(dá)512 KB的閃存和64 KB的SRAM,,具備豐富的外設(shè)資源,主要包括ADC,、RTC,、I2C及SPI等接口??商峁┧?、停機(jī)和待機(jī)三種省電模式,有效保證系統(tǒng)的低功耗性,,而且Thumb-2指令集可有效提高系統(tǒng)運(yùn)行的效率與實(shí)時(shí)性,。
2.2 A/D轉(zhuǎn)換電路
A/D轉(zhuǎn)換電路選用TI公司推出的針對(duì)工業(yè)應(yīng)用的模數(shù)轉(zhuǎn)換器ADS1256,其24位Δ-ΣADC適用于科學(xué)儀器,、工藝控制等工業(yè)應(yīng)用領(lǐng)域,,提供了最高23位的無(wú)噪聲精度、最高30 kS/s的數(shù)據(jù)速率,、±0.001 0% 非線性特性,,非常適合用于高速、高精度數(shù)據(jù)采集,,其內(nèi)部集成有輸入多路復(fù)用器,、輸入緩沖器、可編程增益放大器[3],。
2.3 電源電路
電源電路采用太陽(yáng)能浮充鋰電池作為供電電源,,鋰電池組基本參數(shù)為12 V/16 Ah,通過(guò)電源轉(zhuǎn)換為系統(tǒng)提供12 V,、5 V及3.3 V三路工作電源,,微控制器通過(guò)程序管理協(xié)調(diào)實(shí)現(xiàn)各部分電源供給,實(shí)現(xiàn)系統(tǒng)的低功耗。5 V電源由TPS54229E轉(zhuǎn)化提供,,支持寬電壓輸入,,集成高效率FET,電路PCB空間較小,,適合多通道數(shù)據(jù)采集系統(tǒng)的多電源總線調(diào)節(jié)設(shè)計(jì)[4],,3.3 V電源采用功耗非常低的降壓模塊LTC3631轉(zhuǎn)化提供。
2.4 數(shù)據(jù)存儲(chǔ)電路
數(shù)據(jù)存儲(chǔ)電路主要由內(nèi)部Flash和外部MicroSD卡兩部分組成[5],。內(nèi)部Flash用于系統(tǒng)內(nèi)部傳感器的數(shù)據(jù)存儲(chǔ),,MicroSD卡用于采集野外現(xiàn)場(chǎng)監(jiān)測(cè)傳感器的數(shù)據(jù)存儲(chǔ)。微控制器STM32F103采用SDIO模式驅(qū)動(dòng)MicroSD卡工作,,微控制器控制CLK作為MicroSD卡的時(shí)鐘信號(hào)線,,在每個(gè)時(shí)鐘內(nèi)可傳輸一位命令或數(shù)據(jù);CMD是命令信號(hào)線,,用于傳輸微控制器發(fā)出的命令或命令響應(yīng),;監(jiān)測(cè)數(shù)據(jù)通過(guò)DATA0~DATA3四根數(shù)據(jù)線進(jìn)行傳輸。此外,,系統(tǒng)擴(kuò)展EEPROM存儲(chǔ)器,,采用Microchip公司的24LC512,用于存儲(chǔ)系統(tǒng)的ID,、采集時(shí)間,、采集頻率、工作模式,、數(shù)據(jù)傳輸目標(biāo)地址等相關(guān)參數(shù),,EEPROM內(nèi)部存儲(chǔ)的信息為系統(tǒng)的定時(shí)與實(shí)時(shí)在線兩種工作模式提供標(biāo)準(zhǔn)參考。
2.5 數(shù)據(jù)傳輸電路
數(shù)據(jù)傳輸電路分為GPRS和北斗衛(wèi)星傳輸,,系統(tǒng)通過(guò)RS232串口分別與GPRS和北斗衛(wèi)星傳輸模塊連接。GPRS傳輸作為常規(guī)的傳輸模式,,傳輸模式簡(jiǎn)單,、可靠、穩(wěn)定,,在數(shù)據(jù)傳輸時(shí)優(yōu)先選擇,,無(wú)法滿足GPRS信號(hào)時(shí)選擇北斗衛(wèi)星傳輸模式。GPRS傳輸模塊選用華為GTM900C模塊,,通過(guò)GPRS網(wǎng)絡(luò)以TCP/IP數(shù)據(jù)包方式將現(xiàn)場(chǎng)監(jiān)測(cè)數(shù)據(jù)實(shí)時(shí)傳輸?shù)竭h(yuǎn)程監(jiān)控中心,。北斗衛(wèi)星傳輸模塊選用國(guó)智恒集團(tuán)的BGT-500模塊,可實(shí)現(xiàn)RDSS的雙向定位和短報(bào)文通信功能,,具有較高的集成度和更低的功耗,,系統(tǒng)通過(guò)北斗通信模塊以短報(bào)文方式將監(jiān)測(cè)數(shù)據(jù)傳輸?shù)竭h(yuǎn)程監(jiān)控中心。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)主要包括微控制器軟件設(shè)計(jì),、數(shù)據(jù)采集軟件設(shè)計(jì),、數(shù)據(jù)存儲(chǔ)軟件設(shè)計(jì),、數(shù)據(jù)傳輸軟件設(shè)計(jì)及數(shù)據(jù)監(jiān)控中心軟件設(shè)計(jì)。
3.1 微控制器軟件設(shè)計(jì)
在微控制器的協(xié)調(diào)下完成現(xiàn)場(chǎng)數(shù)據(jù)采集,、存儲(chǔ)與傳輸,。微控制器軟件設(shè)計(jì)主要涉及系統(tǒng)工作狀態(tài)初始化、A/D轉(zhuǎn)換初始化,、SDIO和MicroSD卡初始化及串口初始化,。初始化完成后,微控制器進(jìn)入到低功耗工作模式,,相關(guān)數(shù)據(jù)采集通道自動(dòng)進(jìn)行相應(yīng)的數(shù)據(jù)采集模式,,當(dāng)各個(gè)通道采集到數(shù)據(jù)后會(huì)發(fā)出采集完成中斷來(lái)喚醒微控制器,中斷子程序流程圖如圖2所示[6],。
3.2 A/D轉(zhuǎn)換軟件設(shè)計(jì)
數(shù)據(jù)采集程序由微控制器與ADS1256共同完成,,數(shù)據(jù)采集包括A/D數(shù)據(jù)和數(shù)字量數(shù)據(jù)采集,A/D數(shù)據(jù)采集包括被測(cè)現(xiàn)場(chǎng)信號(hào)的帶寬,、被測(cè)信號(hào)精度,、采集功耗,A/D數(shù)據(jù)采集在設(shè)置時(shí)要將ADS1256設(shè)置為可調(diào)模式,,數(shù)據(jù)的輸出在模式選擇后與芯片時(shí)鐘頻率CLK有關(guān),,數(shù)據(jù)采集通過(guò)SPI通信協(xié)議,數(shù)據(jù)轉(zhuǎn)換后用TDM模式輸出,,軟件流程圖如圖3所示,。
3.3 數(shù)據(jù)存儲(chǔ)軟件設(shè)計(jì)
微控制器通過(guò)SDIO模式完成現(xiàn)場(chǎng)數(shù)據(jù)的存儲(chǔ),主要包括MicroSD卡的初始化,、卡識(shí)別,、采集數(shù)據(jù)的讀寫[7]。上電初始化后,,微控制器通過(guò)庫(kù)函數(shù)SDIO_Init()配置SD卡時(shí)鐘,,發(fā)送命令檢測(cè)是否有SD卡存在并對(duì)接入系統(tǒng)的卡進(jìn)行歸類,同時(shí)對(duì)操作電壓進(jìn)行范圍驗(yàn)證以保證CID和CSD數(shù)據(jù)能正常讀寫,;STM32F103以時(shí)鐘頻率開(kāi)始MicroSD卡的識(shí)別流程,,發(fā)送ALL_SEND_CID獲取MicroSD的CID(unique card identification),發(fā)送SEND_RELATIVE_ADDR獲取RCA(Relative Card Address),,RCA用于對(duì)MicroSD進(jìn)行尋址,,一旦RCA被接收,代表卡已進(jìn)入待機(jī)狀態(tài),;接下來(lái)STM32F103發(fā)送SEND_CSD來(lái)獲取卡的CSD(Card Specific Data)寄存器內(nèi)容,,包括塊長(zhǎng)度、卡存儲(chǔ)容量、最大時(shí)鐘速率等,;然后進(jìn)入讀寫狀態(tài),,通過(guò)調(diào)用SD_ReadDisk()函數(shù)與SD_WriteDisk()函數(shù)實(shí)現(xiàn)微控制器與MicroSD卡之間的數(shù)據(jù)讀寫操作。
3.4 數(shù)據(jù)傳輸軟件設(shè)計(jì)
微控制器啟動(dòng)數(shù)據(jù)傳輸程序后,,對(duì)系統(tǒng)進(jìn)行工作方式初始化,,通過(guò)EEPROM讀取相關(guān)通信配置,比如設(shè)定服務(wù)器IP地址,、端口號(hào),、設(shè)備號(hào)、工作時(shí)間等,;然后由微處理器發(fā)出指令檢測(cè)現(xiàn)場(chǎng)傳輸信號(hào),,首先查詢GPRS模塊網(wǎng)絡(luò)是否注冊(cè)成功;成功后即可建立與數(shù)據(jù)監(jiān)控中心服務(wù)器的連接,,并進(jìn)行數(shù)據(jù)傳輸處理,;根據(jù)需要發(fā)送一定格式的心跳信息。一旦發(fā)現(xiàn)現(xiàn)場(chǎng)無(wú)GPRS網(wǎng)絡(luò)信號(hào)自動(dòng)切換到北斗衛(wèi)星傳輸模式,,現(xiàn)場(chǎng)北斗傳輸模塊上電后微處理器向北斗發(fā)送IC卡檢測(cè)命令,,回復(fù)正確后向數(shù)據(jù)監(jiān)控中心發(fā)送通信申請(qǐng),收到命令后才發(fā)送現(xiàn)場(chǎng)數(shù)據(jù),。數(shù)據(jù)傳輸軟件流程圖如圖4所示,。
3.5 數(shù)據(jù)監(jiān)控中心程序流程圖
數(shù)據(jù)監(jiān)控中心(服務(wù)器)軟件作為TCP服務(wù)器端和北斗服務(wù)器端,具有公網(wǎng)固定IP地址且開(kāi)放監(jiān)聽(tīng)端口,,分別接收來(lái)自GPRS客戶端的TCP數(shù)據(jù)包與北斗客戶端的數(shù)據(jù),,并向客戶端發(fā)送應(yīng)答數(shù)據(jù)。主要任務(wù)是完成對(duì)通信數(shù)據(jù)的接收,、分析,、處理和存儲(chǔ)。首先服務(wù)器端啟動(dòng)TCP/IP監(jiān)聽(tīng)和打開(kāi)串口,,監(jiān)聽(tīng)TCP端口和串口,,將接收到數(shù)據(jù)包/數(shù)據(jù)進(jìn)行分析、處理,,然后將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,便于以后數(shù)據(jù)查詢與分析[8],。數(shù)據(jù)監(jiān)控中心程序流程圖如圖5所示,。
4 系統(tǒng)測(cè)試與分析
為驗(yàn)證測(cè)試多通道數(shù)據(jù)采集系統(tǒng)的性能功能,搭建野外模擬數(shù)據(jù)測(cè)試平臺(tái),,給4個(gè)數(shù)據(jù)采集通道輸入模擬野外監(jiān)測(cè)傳感器的電壓信號(hào),,將系統(tǒng)采集到的數(shù)據(jù)與采集通道的輸入電壓進(jìn)行對(duì)比分析,測(cè)試結(jié)果如表1所示。
從兩組測(cè)試結(jié)果可以看出,,系統(tǒng)4個(gè)采集通道均可準(zhǔn)確對(duì)輸入電壓進(jìn)行數(shù)據(jù)采樣,,采集數(shù)據(jù)可以精確到小數(shù)點(diǎn)后3位,系統(tǒng)采樣結(jié)果相對(duì)誤差較小,,完全滿足對(duì)野外監(jiān)測(cè)數(shù)據(jù)的精度要求,。
5 結(jié)語(yǔ)
本文以嵌入式微處理器STM32F103與ADS1256共同構(gòu)建多通道數(shù)據(jù)采集系統(tǒng),充分發(fā)揮STM32F103的控制協(xié)調(diào)作用,,可實(shí)時(shí)在線采集0~5 V電壓輸出型的不同傳感器信號(hào),,有效保證數(shù)據(jù)采集精度、實(shí)時(shí)性及數(shù)據(jù)處理能力,,并實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)傳輸,,遠(yuǎn)程數(shù)據(jù)監(jiān)控中心與地質(zhì)災(zāi)害現(xiàn)場(chǎng)可進(jìn)行實(shí)時(shí)在線通信,對(duì)現(xiàn)場(chǎng)數(shù)據(jù)可進(jìn)行實(shí)時(shí)查詢,、分析及數(shù)據(jù)處理,。軟硬件架構(gòu)的合理設(shè)計(jì)有效降低了系統(tǒng)的成本與功耗,實(shí)現(xiàn)系統(tǒng)的微型化與智能化采集,,可廣泛應(yīng)用于地質(zhì)災(zāi)害野外現(xiàn)場(chǎng)數(shù)據(jù)采集,,在地質(zhì)災(zāi)害監(jiān)測(cè)中有較好的應(yīng)用前景。
參考文獻(xiàn)
[1] 徐航,,羅?。谇度胧降亩嗤ǖ栏咚贁?shù)據(jù)采集系統(tǒng)[J].自動(dòng)化與儀器儀表,2013(1):148-150.
[2] 楊振江.智能儀器與數(shù)據(jù)采集系統(tǒng)中的新器件及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,,2001:95-163.
[3] 陳紅遠(yuǎn),,郭天太,吳俊杰,,等.多通道微弱電壓信號(hào)同步采集系統(tǒng)開(kāi)發(fā)[J].電子技術(shù)應(yīng)用,,2014(40):79-84.
[4] 鐘文濤,劉強(qiáng).基于單片機(jī)的野外信息檢測(cè)記錄系統(tǒng)[J].機(jī)電工程技術(shù),,2013,,42(5):26-30.
[5] 胡祥超,李艷潔,,趙新華,,等.便攜式野外傳感器原位數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].傳感器與微系統(tǒng),2014,,33(10):69-72.
[6] 丁凡,,周永明.基于ZigBee的多路溫度數(shù)據(jù)無(wú)線采集系統(tǒng)設(shè)計(jì)[J].儀表技術(shù)與傳感器,2013(8):72-78.
[7] 潘玲嬌,,張自嘉,,樊延虎,,等.嵌入式16通道同步數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].儀表技術(shù)與傳感器,2013(11):91-94.
[8] 馬軍,,李志華.基于STM32的無(wú)線次聲采集系統(tǒng)的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2014,40(4):92-95.