胡慧
(天津鐵道職業(yè)技術(shù)學(xué)院 鐵道動力系,天津 300240)
基于STM32無線數(shù)據(jù)采集單元的設(shè)計
胡慧
(天津鐵道職業(yè)技術(shù)學(xué)院 鐵道動力系,天津 300240)
針對監(jiān)測控制系統(tǒng)中對前端參數(shù)采集部分的設(shè)計需求,設(shè)計了基于STM32F030(采用ARM Cortex-M0內(nèi)核)處理器的多參數(shù)采集單元,采集單元可完成溫濕度、氣壓等參數(shù)數(shù)據(jù)的采集和存儲并通過無線模塊NRF24L01實現(xiàn)數(shù)據(jù)的無線收發(fā);單元配有按鍵及液晶顯示器,便于查看當(dāng)前參數(shù)數(shù)據(jù)。通過選取性價比高的數(shù)字傳感器簡化了電路結(jié)構(gòu)并降低硬件成本,通過合理的軟件程序設(shè)計進一步降低系統(tǒng)的功耗。經(jīng)測試單元工作穩(wěn)定,可實現(xiàn)參數(shù)的采集傳輸?shù)裙δ堋M瑫r,采集單元方便移植,可應(yīng)用于環(huán)境監(jiān)測,工業(yè)數(shù)據(jù)檢測,智能溫室等監(jiān)控系統(tǒng)中。
STM32處理器;數(shù)據(jù)采集;無線通信;低功耗
在現(xiàn)代監(jiān)測控制系統(tǒng)中,獲取前端參數(shù)數(shù)據(jù)至關(guān)重要,可以說參數(shù)采集是實現(xiàn)控制的基礎(chǔ)。在工業(yè)自動化控制、農(nóng)業(yè)生產(chǎn)自動化、環(huán)境質(zhì)量監(jiān)測、智能醫(yī)療監(jiān)護等眾多領(lǐng)域都離不開數(shù)據(jù)的采集和處理。本文設(shè)計了采用以32位處理器為核心的無線數(shù)據(jù)采集單元。選用ST公司的STM32F030處理器作為控制核心,單元集參數(shù)采集、數(shù)據(jù)存儲與顯示、無線轉(zhuǎn)發(fā)為一體,采用電池供電且具有低電壓告警功能。
數(shù)據(jù)采集單元的電路設(shè)計在滿足基本功能的基礎(chǔ)上按照低成本、低功耗的設(shè)計原則。在實際采集系統(tǒng)中,前端采集單元數(shù)量眾多,硬件設(shè)計應(yīng)盡量降低成本;另外,單元采用電池供電,為避免頻繁更換電池,單元電路功耗設(shè)計要盡量低,以延長電池的使用時間。單元整體結(jié)構(gòu)框圖如圖1所示。
圖1 單元框圖
1.1 處理器
單元選用ST(意法半導(dǎo)體)公司的STM32F030C8T6控制器作為處理器,STM32F030系列是意法半導(dǎo)體推出的超值系列32位微控制器,該系列芯片基于超低功耗的ARM Cortex-M0處理器內(nèi)核,其價格與8位微控制器相當(dāng),有豐富的外設(shè)數(shù)量和種類,內(nèi)核頻率高達48 MHz[1]。
STM32F030內(nèi)置高速12位ADC、先進且靈活的定時器(支持ADC同步、死時管理和電機控制PWM時序功能)、溫度傳感器、日歷RTC和通信接口(如 I2C、USART、SPI等)[2]。因此,選用該處理器可以減少外圍元件的數(shù)目、提高電路性能、降低系統(tǒng)的成本。
設(shè)計中為了降低微處理器的功耗,可采用32.768 kHz的晶體振蕩器作為時鐘,另外,STM32F030有3種低功耗模式,在完成數(shù)據(jù)采集任務(wù)后,處理器進入低功耗模式[6]。
1.2 傳感器
傳感器部分實現(xiàn)空氣溫濕度及大氣壓的數(shù)據(jù)檢測,在具體應(yīng)用中可以更換傳感器類型實現(xiàn)不同參數(shù)采集。
溫濕度傳感器:選用數(shù)字溫濕度傳感器DHT11,DHT11是一款有已校準(zhǔn)數(shù)字信號輸出的溫濕度傳感器。工作電壓3.3~5.5V,量程濕度20~90%RH,溫度0~50℃;濕度精度+-5%RH,溫度+-2℃。DHT11與處理器之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時間4 ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分。操作流程如下:一次完整的數(shù)據(jù)傳輸為40 bit,高位先出。數(shù)據(jù)格式:8 bit濕度整數(shù)數(shù)據(jù)+8 bit濕度小數(shù)數(shù)據(jù)+8 bit溫度整數(shù)數(shù)據(jù)+8 bit溫度小數(shù)數(shù)據(jù)+8 bit校驗和數(shù)據(jù),傳送正確時校驗和數(shù)據(jù)等于 “8 bit濕度整數(shù)數(shù)據(jù)+8 bit濕度小數(shù)數(shù)據(jù)+8 bit溫度整數(shù)數(shù)據(jù)+8 bit溫度小數(shù)數(shù)據(jù)”所得結(jié)果的末8位[3]。
氣壓傳感器:采用數(shù)字氣壓傳感器BMP085,BMP085是一款高精度、超低能耗的壓力傳感器,絕對精度可達到0.03 hPa,工作電壓為1.8~3.6 V,且耗電極低,只有3 μA;BMP085內(nèi)部由壓阻傳感器、AD轉(zhuǎn)換器、和EEPROM與I2C接口控制單元組成。它采用標(biāo)準(zhǔn)的I2C接口,可以方便的與主設(shè)備(單片機)連接通信,其測壓范圍在300~1 100 hPa。本單元硬件設(shè)計中處理器使用硬件I2C接口與傳感器進行通信。
在讀取BMP085時會直接傳送沒有經(jīng)過補償?shù)臏囟戎岛蛪毫χ?。而在EEPROM中則儲存了176位單獨的校準(zhǔn)數(shù)據(jù),這些數(shù)據(jù)將對讀取的溫度壓力值進行補償[4]。176位的EEPROM被劃分為11個字,每個字16位,這樣就包含有11個校準(zhǔn)系數(shù)。每個器件模塊都有自己單獨的校準(zhǔn)系數(shù),在第一次計算溫度壓力數(shù)據(jù)之前,單片機就應(yīng)該先讀出EEPROM中的這些校準(zhǔn)數(shù)據(jù),然后再開始采集數(shù)據(jù)溫度和壓力數(shù)據(jù)。BMP085的器件地址:0xEE讀地址,0xEF寫地址,控制寄存器地址0xF4,圖2為不同模式下控制寄存器的命令字及最大的轉(zhuǎn)換時間。
圖2 BMP085的模式控制命令字和轉(zhuǎn)換時間
1.3 無線通信
采用低功耗、小體積的 NRF24L01無線收發(fā)模塊,NRF24L01的工作頻段為2.4~2.5 GHz,該頻段無需授權(quán)許可。芯片內(nèi)置了多個功能模塊,如功放模塊、晶振、頻率合成器等;可通過程序?qū)δK的工作頻道和輸出功率進行配置。
NRF24L01的引腳排列及應(yīng)用電路如圖3所示。各引腳功能如下:CE:使能發(fā)射或接收;CSN,SCK,MOSI,MISO:SPI引腳端,微處理器可通過此引腳配置nRF24L01;IRQ:中斷標(biāo)志位;VDD,VSS:電源;XC2,XC1:晶體振蕩器引腳;VDD_PA:為功率放大器供電,輸出為1.8 V;ANT1,ANT2:天線接口;IREF:參考電流輸入。模塊工作電壓為1.9~3.6 V,本設(shè)計中采用3.3 V為其供電,調(diào)制方式為GFSK,高達10 Mbps的SPI接口速率可與控制器進行快速的數(shù)據(jù)通信,最高2 Mbps數(shù)據(jù)傳輸速率滿足設(shè)計中無線通信的需求。模塊在以-6 dBm的功率發(fā)射時,工作電流僅為9mA;接收時工作電流為12.3 mA,可通過配置命令設(shè)置模塊工作于掉電或空閑等模式,以降低系統(tǒng)的功耗。
圖3 NRF24L01的引腳排列及應(yīng)用電路
1.4 存儲單元
數(shù)據(jù)的存儲選用AT24C512,為Atmel公司生產(chǎn)的64 kB串行電可擦的可編程存儲器(EEPROM)。AT24C512內(nèi)部共有512頁,每一頁有128個字節(jié),任一單元的地址為16位,地址范圍為0000H~0FFFFH。它采用8引腳封裝,圖4為芯片引腳圖及應(yīng)用電路,芯片結(jié)構(gòu)緊湊、存儲容量大等特點,特別適用于具有大容量數(shù)據(jù)存儲要求的數(shù)據(jù)采集系統(tǒng)[5],因此在測控系統(tǒng)中被大量采用。
圖4 AT24C512芯片引腳圖及應(yīng)用電路
其中SDA和SCL引腳是數(shù)據(jù)交換線,用做CPU與AT24C512之間的數(shù)據(jù)交換和命令寫入。WP為寫保護口,WP為高時寫禁止,WP為低時寫允許。A1、A0是器件地址選擇引腳,因此在同一總線上允許同時掛接4個同類器件。在讀/寫器件時要注意器件的地址,如下所示,其中高5位10100為器件類型標(biāo)志符,最低位為讀寫位,R/W位高時為讀器件,低時為寫器件。
存儲器的前3個存儲字節(jié)預(yù)留,用于存放當(dāng)前單元的ID號,其余存儲空間用于存放采集的參數(shù)數(shù)據(jù)。
1.5 鍵盤與液晶顯示
因采集單元所需按鍵較少,所以鍵盤部分采用獨立式按鍵設(shè)計,實現(xiàn)存儲數(shù)據(jù)的查詢功能;液晶顯示使用NOKIA5110單色點陣液晶模塊,模塊為84*48的點陣LCD,可顯示4行漢字,工作電壓3.3 V,采用串行接口與處理器通信,支持多種串行通信協(xié)議,通信速率可高達4 Mbps;接口電路見圖5所示。數(shù)據(jù)采集單元的部分電路如圖5所示。
圖5 采集單元電路原理圖
1.6 電源模塊
單元采用3.7 V鋰電池作為電源,經(jīng)過TPS62291DC-DC電源轉(zhuǎn)換模塊,將電壓降至3.3 V為整個單元供電。TPS62291是TI的一款寬電壓輸入,固定電壓輸出的高效率降壓轉(zhuǎn)換芯片,轉(zhuǎn)換效率在95%左右,最高輸出電流為1000 mA。芯片的典型應(yīng)用電路如圖5所示。
處理器內(nèi)置ADC對電池電壓進行實時監(jiān)測,當(dāng)電池電壓過低時,發(fā)送報警信號,以便及時更換電池。
采集單元能量受限,處理器大部分時間處于睡眠模式,定時喚醒對參數(shù)進行采集、存儲并轉(zhuǎn)發(fā),為了降低處理器的功耗,對于閑置的IO端口設(shè)置成IPU/IPD模式。
軟件整體設(shè)計流程:上電后處理器進行初始化自檢,執(zhí)行數(shù)據(jù)采集程序并進行顯示,無按鍵操作,關(guān)閉顯示并對外圍電路進行設(shè)置,然后進入睡眠模式;若有按鍵操作或者是定時時間到可喚醒處理器去執(zhí)行相關(guān)程序;如:讀取鍵值,調(diào)用顯示程序,使能內(nèi)部ADC,配置無線模塊,執(zhí)行數(shù)據(jù)采集程序,進行數(shù)據(jù)處理和存儲,轉(zhuǎn)發(fā)數(shù)據(jù)等;在完成當(dāng)前任務(wù)結(jié)束后,關(guān)閉內(nèi)部ADC,配置IO,設(shè)置無線模塊進入偵聽模式,再次進入低功耗模式。
若沒有按鍵操作,液晶顯示處于關(guān)閉狀態(tài)以降低單元功耗,若有按鍵操作,液晶顯示打開并顯示最近一次采集的參數(shù)值和當(dāng)前電池電壓情況。通過上下按鍵可查看參數(shù)得歷史數(shù)據(jù),若長時間沒有按鍵操作,顯示器再次關(guān)閉。圖6和圖7為采集單元主程序流程圖和中斷子程序流程圖。
圖6 主程序流程圖
本采集單元可對參數(shù)進行實時監(jiān)測、存儲和無線轉(zhuǎn)發(fā),單元配有獨立按鍵和液晶顯示器,方便隨時查看當(dāng)前各參數(shù)值;存儲器中存放著本單元的ID號,用于區(qū)分不同的采集單元;處理器對外圍電路進行合理配置后進入睡眠模式有效降低了系統(tǒng)的功耗。采集單元按設(shè)定時間間隔進行數(shù)據(jù)采集,自動完成數(shù)據(jù)的存儲和轉(zhuǎn)發(fā)。電池電量過低時,報警數(shù)據(jù)會通過無線模塊發(fā)送給上位機,以便及時更換電池。對于整個采集系統(tǒng),上位機可以通過無線模塊發(fā)送指令,對數(shù)據(jù)采集單元進行控制。
圖7 中斷子程序流程圖
采集單元有較強的可移植性,實際中可根據(jù)需求更換傳感器類型,應(yīng)用于工業(yè)數(shù)據(jù)監(jiān)測,環(huán)境監(jiān)測,智能溫室等其他監(jiān)控系統(tǒng)中。
[1]劉軍.例說STM32[M].北京:北京航空航天大學(xué)出版社,2011.
[2]喻金錢,喻斌,袁芳.STM32F0系列ARM Cortex-M0核微控制器開發(fā)與應(yīng)用[M].北京:清華大學(xué)出版社,2015.
[3]倪天龍.單總線傳感器DHT11在溫濕度測控中的應(yīng)用[J].單片機與嵌入式系統(tǒng)應(yīng)用,2010(6):60-62.
[4]梁勝展,郭雪梅,余曉填.基于BMP085氣壓傳感器及BP算法的高度測量研究與實現(xiàn)[J].傳感技術(shù)學(xué)報,2013,26(5):654-659.
[5]郝雯,沈金鑫,梅成.基于STM32單片機的存儲式數(shù)據(jù)采集系統(tǒng)設(shè)計[J].電子設(shè)計工程,2013,21(17):80-82.
[6]李晶,李東澤,石堅.基于STM32F103的時間壓力采集系統(tǒng)[J].自動化與儀表,2013(12):42-45.
The designing of wireless data acquisition unit based on STM32
HU Hui
(Railway Power Department,Tianjin Railway Technical and Vocational College,Tianjin 300240,China)
In monitoring and control systems,for the front-end parameter acquisition part design requirements,design a kind of multi-parameter acquisition unit which is based on STM32F030(using the ARM Cortex-M0 inner core),the unit can gather and store the temperature,humidity and atmospheric pressure data,it can realize the wireless transmission depending on NRF24L01.The unit include keys and LCD,which is easy to view the current parameter data.By choosing cost-effective digital sensors simplifies the circuit structure and reduce the hardware cost,and through rational software program design to further reduce the power consumption of the system.After testing the unit can work stably,and achieve the designing functions.The unit also has the advantage of be apt to transplant,it can be used in many fields,such as environment monitoring,industry data detection and intelligent control system.
STM32 processor;data acquisition;wireless communication;low power consumption
TP368.1
A
1674-6236(2016)18-0097-04
2015-08-13 稿件編號:201508067
胡 慧(1981—),女,河北邢臺人,碩士,講師。研究方向:嵌入式系統(tǒng)應(yīng)用。