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