劉波
摘要:針對監測控制系統中對前端參數采集部分的設計需求,設計了基于STM32F030(采用ARMCORTEX-M0內核)處理器的多參數采集單元,采集單元可完成溫濕度、氣壓等參數數據的采集和存儲并通過無線模塊NRF24L01實現數據的無線收發;單元配有按鍵及液晶顯示器,便于查看當前參數數據。通過選取性價比高的數字傳感器簡化了電路結構并降低硬件成本,通過合理的軟件程序設計進一步降低系統的功耗。經測試單元工作穩定,可實現參數的采集傳輸等功能。同時,采集單元方便移植,可應用于環境監測,工業數據檢測,智能溫室等監控系統中。
關鍵詞:STM32處理器;數據采集;無線通信;低功耗
在現代監測控制系統中,獲取前端參數數據至關重要,可以說參數采集是實現控制的基礎。在工業自動化控制、農業生產自動化、環境質量監測、智能醫療監護等眾多領域都離不開數據的采集和處理。本文設計了采用以32位處理器為核心的無線數據采集單元。選用ST公司的STM32F030處理器作為控制核心,單元集參數采集、數據存儲與顯示、無線轉發為一體,采用電池供電且具有低電壓告警功能。[1]
1單元硬件電路設計
數據采集單元的電路設計在滿足基本功能的基礎上按照低成本、低功耗的設計原則。在實際采集系統中,前端采集單元數量眾多,硬件設計應盡量降低成本;另外,單元采用電池供電,為避免頻繁更換電池,單元電路功耗設計要盡量低,以延長電池的使用時間。單元整體結構框如1所示。
1.1 處理器
單元選用ST(意法半導體)公司的STM32F030C8T6控制器作為處理器,STM32F030系列是意法半導體推出的超值系列32位微控制器,該系列芯片基于超低功耗的ARMCORTEX-M0處理器內核,其價格與8位微控制器相當,有豐富的外設數量和種類,內核頻率高達48MHz。
STM32F030內置高速12位ADC、先進且靈活的定時器(支持ADC同步、死時管理和電機控制PWM時序功能)、溫度傳感器、日歷RTC和通信接口(如I2C、USART、SPI等)[2]。因此,選用該處理器可以減少外圍元件的數目、提高電路性能、降低系統的成本。
設計中為了降低微處理器的功耗,可采用32.768kHz的晶體振蕩器作為時鐘,另外,STM32F030有3種低功耗模式,在完成數據采集任務后,處理器進入低功耗模式[3]。
1.1傳感器
傳感器部分實現空氣溫濕度及大氣壓的數據檢測,在具體應用中可以更換傳感器類型實現不同參數采集。
溫濕度傳感器:選用數字溫濕度傳感器DHT11,DHT11是一款有已校準數字信號輸出的溫濕度傳感器。工作電壓3.3~5.5V,量程濕度20~90%RH,溫度0~5℃;濕度精度+-5%RH,溫度±2℃。DHT11與處理器之間的通訊和同步,采用單總線數據格式,一次通訊時間4ms左右,數據分小數部分和整數部分。操作流程如下:一次完整的數據傳輸為40bit,高位先出。數據格式:8bit濕度整數數據+8bit濕度小數數據+8bit溫度整數數據+8bit溫度小數數據+8bit校驗和數據,傳送正確時校驗和數據等于“8bit濕度整數數據+8bit濕度小數數據+8bit溫度整數數據+8bit溫度小數數據”所得結果的末8位[3] 。氣壓傳感器:采用數字氣壓傳感器BMP085,BMP085是一款高精度、超低能耗的壓力傳感器,絕對精度可達到0.03hPa,工作電壓為1.8~3.6V,且耗電極低,只有3μA;BMP085內部由壓阻傳感器、AD轉換器、和EEPROM與I2C接口控制單元組成。它采用標準的I2C接口,可以方便的與主設備(單片機)連接通信,其測壓范圍在300~1100hPa。本單元硬件設計中處理器使用硬件I2C接口與傳感器進行通信。[4]
1.2無線通信
采用低功耗、小體積的NRF24L01無線收發模塊,NRF24L01的工作頻段為2.4~2.5GHz,該頻段無需授權許可。芯片內置了多個功能模塊,如功放模塊、晶振、頻率合成器等;可通過程序對模塊的工作頻道和輸出功率進行配置。可通過配置命令設置模塊工作于掉電或空閑等模式,以降低系統的功耗。
1.3存儲單元
數據的存儲選用AT24C512,為Atmel公司生產的64kB串行電可擦的可編程存儲器(EEPROM)。AT24C512內部共有512頁,每一頁有128個字節,任一單元的地址為16位,地址范圍為0000H~0FFFFH。它采用8引腳封裝,芯片引腳及應用電路,芯片結構緊湊、存儲容量大等特點,特別適用于具有大容量數據存儲要求的數據采集系統,因此在測控系統中被大量采用。[5]
1.4鍵盤與液晶顯示
因采集單元所需按鍵較少,所以鍵盤部分采用獨立式按鍵設計,實現存儲數據的查詢功能;液晶顯示使用NOKIA5110單色點陣液晶模塊,模塊為84*48的點陣LCD,可顯示4行漢字,工作電壓3.3V,采用串行接口與處理器通信,支持多種串行通信協議,通信速率可高達4Mbps。
1.5電源模塊
單元采用3.7V鋰電池作為電源,經過TPS62291DC-DC電源轉換模塊,將電壓降至3.3V為整個單元供電。TPS62291是TI的一款寬電壓輸入,固定電壓輸出的高效率降壓轉換芯片,轉換效率在95%左右,最高輸出電流為1000mA。處理器內置ADC對電池電壓進行實時監測,當電池電壓過低時,發送報警信號,以便及時更換電池。
2軟件設計
采集單元能量受限,處理器大部分時間處于睡眠模式,定時喚醒對參數進行采集、存儲并轉發,為了降低處理器的功耗,對于閑置的IO端口設置成IPU/IPD模式。[6]
軟件整體設計流程:上電后處理器進行初始化自檢,執行數據采集程序并進行顯示,無按鍵操作,關閉顯示并對外圍電路進行設置,然后進入睡眠模式;若有按鍵操作或者是定時時間到可喚醒處理器去執行相關程序;如:讀取鍵值,調用顯示程序,使能內部ADC,配置無線模塊,執行數據采集程序,進行數據處理和存儲,轉發數據等;在完成當前任務結束后,關閉內部ADC,配置IO,設置無線模塊進入偵聽模式,再次進入低功耗模式。
若沒有按鍵操作,液晶顯示處于關閉狀態以降低單元功耗,若有按鍵操作,液晶顯示打開并顯示最近一次采集的參數值和當前電池電壓情況。通過上下按鍵可查看參數得歷史數據,若長時間沒有按鍵操作,顯示器再次關閉。
3 結論
本采集單元可對參數進行實時監測、存儲和無線轉發,單元配有獨立按鍵和液晶顯示器,方便隨時查看當前各參數值;存儲器中存放著本單元的ID號,用于區分不同的采集單元;處理器對外圍電路進行合理配置后進入睡眠模式有效降低了系統的功耗。采集單元按設定時間間隔進行數據采集。
參考文獻:
[1] 李帥男.基于STM32的無線病房呼叫管理系統的設計[J].數字技術與應用,2018,36(09):167-168.
[2] 王朝陽,鄒存芝,金小雪,宋曉丹,趙雪松,孫通.基于STM32的無線脈搏檢測系統的設計[J].科學技術創新,2018(09):91-92.
[3] 宋霞萍.基于STM32的小型智能家居系統設計[D].中南林業科技大學,2014.
[4] 許永通.基于si4432的高性能無線收發系統設計[D].杭州電子科技大學,2014.
[5] 徐國平.智能感控視力保護儀的設計[D].華中師范大學,2013.
[6] 何哲.基于nRF24L01和STM32的無線文件收發系統[J].可編程控制器與工廠自動化,2011(04):91-93.
(作者單位:德州聯合石油科技股份有限公司)