便攜式多點溫度同步采集系統(tǒng)設(shè)計
摘要:以嵌入式ARM處理器STM32F103VC為核心,結(jié)合無線通信和溫度檢測技術(shù),設(shè)計了一套多點溫度同步采集系統(tǒng)。系統(tǒng)可根據(jù)設(shè)定的采集模式對多點溫度進行同步采集,并將時間信息及溫度數(shù)據(jù)存入SD卡,用戶可將SD卡內(nèi)數(shù)據(jù)本機回放,也可讀入上位機進行分析、存儲等。系統(tǒng)功耗極低,采用電池供電,采集過程無需人工干預(yù),也可適用于野外溫度數(shù)據(jù)的采集與存儲。給出了硬件組成與軟件編制方法。實驗表明,系統(tǒng)溫度檢測精確,同步精度高,稍作修改即可實現(xiàn)對其它信號的同步采集。
關(guān)鍵詞:ARM;M32F103 VC;同步采集;SD卡;FATFS
0 引言
目前在工業(yè)控制及野外勘測等領(lǐng)域經(jīng)常需要同步測量不同地點的溫度參數(shù),并進行長時間記錄,完成后將時間同步的溫度數(shù)據(jù)載入計算機進行分析。但實現(xiàn)精度較高的時間同步一般采用有線同步技術(shù),這樣就非常不便于應(yīng)用。因此設(shè)計一種便攜式的、基于無線同步技術(shù)的多點溫度同步采集與存儲系統(tǒng)就顯得尤為重要。本文給出了基于STM32F103VC微控制器和無線同步技術(shù)相結(jié)合的溫度采集系統(tǒng),能夠根據(jù)事先設(shè)定好的模式對溫度參數(shù)進行采集,并將同步時間及溫度數(shù)據(jù)存入SD卡進行長期存儲。系統(tǒng)采用電池供電,特別適合不便于取市電的應(yīng)用場合。
1 硬件組成及原理
置于不同位置的溫度采集系統(tǒng)硬件結(jié)構(gòu)上完全相同,只是不同系統(tǒng)有唯一的ID號,ID號可人為設(shè)置。同步采集溫度時有以下幾種啟動模式:溫度低越限、溫度高越限、溫度變化率越限、定時采集。任一滿足啟動條件的系統(tǒng)都會發(fā)出無線指令,通知其它系統(tǒng)同步啟動溫度采集。系統(tǒng)由微控制器模塊、電源模塊、人機接口、無線通信模塊、SD卡組成,總體結(jié)構(gòu)如圖1所示。下面就重要部分進行分別介紹。
1.1 微控制器模塊
本系統(tǒng)的主控制器采用STM32F103VC處理器,與電源電路、時鐘電路、存儲器系統(tǒng)及復(fù)位電路共同組成微控制系統(tǒng)。復(fù)位電路選用了系統(tǒng)監(jiān)視復(fù)位芯片IMP811S,可提供高效的電源監(jiān)視功能,確保系統(tǒng)工作正常。
STM32F103VC采用ARM公司的高性能“Cortex—M3”內(nèi)核。運行的頻率高達72 MHz,指令速度達1.25 DMipa/MHz。在此基礎(chǔ)上還擴展了一系列完整的通用外圍接口單元,能夠提供高性價比的嵌入式解決方案。STM32F103VC系統(tǒng)外圍接口單元主要包括支持60個中斷源的中斷控制器,2個DMA控制器,80個通用I/O口,1個SD卡接口,3個可編程波特率的UART,16路12位A/D轉(zhuǎn)換器,SD卡接口,2個多主機I2C總線控制器,3個SPI接口等。
1.2 無線通信接口
本設(shè)計各采集系統(tǒng)之間的無線同步采集采用單片射頻收發(fā)芯片NRF24L01,該芯片是真正的GFSK單收發(fā)芯片,內(nèi)置鏈路層,支持自動應(yīng)答及自動重發(fā)功能,帶有地址及CRC檢驗功能,數(shù)據(jù)傳輸率最高達2 Mbps,采用SPI接口進行數(shù)據(jù)傳輸,速率最高位8 Mbps?;贜RF24L01芯片的無線通信接口電路見圖2,該種方式下,若采用阻抗匹配的天線,無線傳輸距離可達150 m,完全滿足常規(guī)采集需求。
圖2中,NRF24L01的SPI總線直接與STM32F103VC的SPl0接口相連,TX/RX選擇端CE和片選CSN與STM32F103VC的GPIO相連即可,中斷口IRQ連接于STM32F103VC的外部中斷0,以提供中斷信號。
1.3 人機接口與信息存儲
為了便于模式設(shè)置和參數(shù)顯示,系統(tǒng)加入了矩陣鍵盤和LCD顯示器。矩陣鍵盤直接與STM32F103VC的GPIO相連,采用掃描方式進行按鍵檢測。顯示器選用LM9033四級灰度LCD模塊,該模塊功耗極低,帶有電源控制,特別適用于電池供電的系統(tǒng)。LM9033可采用并口或SPI接口方式,這里直接將其連接于STM32F103VC的SPI1接口。為了能夠?qū)r間信息及溫度數(shù)據(jù)進行長時間存儲,系統(tǒng)加入了SD卡存儲裝置。由于STM32 F103VC芯片本身帶有SD卡接口,因此只需將SD卡座與STM32F103VC的SD卡接口直接相連即可實現(xiàn)數(shù)據(jù)讀寫。
1.4 溫度檢測電路
溫度檢測采用熱電阻傳感器PT1000,信號調(diào)理電路如圖3所示。圖3中,PTl000與電阻R1、R2和Rt1組成電橋,調(diào)節(jié)電阻Rt1即可調(diào)零。由于信號較弱,所以后端采用A1和A2進行兩級放大,放大器選用零漂移、軌對軌輸出的集成運放LTC2051,該芯片內(nèi)部集成兩個獨立運放,一片即可滿足本系統(tǒng)需求,采用單電源供電。通過調(diào)節(jié)電阻Rt2即可實現(xiàn)量程的調(diào)節(jié)。因為溫度變化比較緩慢,所以采用R9和C1組成一階低通濾波電路,濾除由電源噪聲等引起的干擾,以提高測量精度。運放的輸出直接與STM32F103VC的內(nèi)置A/D轉(zhuǎn)換器相連。
2 系統(tǒng)軟件設(shè)計
在溫度同步采集系統(tǒng)中,STM32F103VC完成無線通信、溫度檢測、參數(shù)輸入與顯示、SD卡讀寫等功能。整個系統(tǒng)軟件部分包括主程序、人機接口程序、無線通信程序、SD卡讀寫程序、文件系統(tǒng)程序、溫度計算程序、實時時間讀取、自診斷等功能模塊。由于軟件較復(fù)雜,所以實際編程中嵌入了μC/OS-Ⅱ?qū)崟r操作系統(tǒng)。
2.1 μC/OS-Ⅱ?qū)崟r操作系統(tǒng)
μC/OS-Ⅱ?qū)崟r操作系統(tǒng)是真正源碼公開的,采用占先式的實時內(nèi)核,支持多達56個用戶任務(wù),穩(wěn)定性和可靠性高,而且移植方便,占用內(nèi)存小。μC/OS-Ⅱ?qū)崟r操作系統(tǒng)中各任務(wù)要分配不同的優(yōu)先級,優(yōu)先級用數(shù)字表示,數(shù)字越小其優(yōu)先級越高。針對本系統(tǒng)中各任務(wù)的重要性,為各任務(wù)分配了表1所示的優(yōu)先級。
2.2 無線通信程序
無線通信程序主要完成基于NRF24L01的數(shù)據(jù)發(fā)送和接收,要嚴格遵守其發(fā)送及接收時序。由于溫度采集時每個系統(tǒng)都可能成為發(fā)出同步啟動信號的主機,因此采集前NRF24L01都配置為接受模式。若某個系統(tǒng)檢測到已滿足啟動條件,則自動配置為發(fā)送模式,將同步啟動信號發(fā)送給其它系統(tǒng),于是同步采集開始。將NRF24L01配置為增強型ShockBurst模式并啟動自動應(yīng)答,這樣可以在接收方接收到信號后自動產(chǎn)生應(yīng)答以確認通信的正確性,發(fā)送方未收到應(yīng)答則會自動重發(fā),無需增加控制器的工作量。
2.3 SD卡讀寫程序
本系統(tǒng)SD卡采用了FatFS文件系統(tǒng)以方便將SD卡內(nèi)的數(shù)據(jù)通過讀卡器導(dǎo)入到上位計算機。FatFS是一種通用的文件系統(tǒng)模塊,在小型嵌入式系統(tǒng)中實現(xiàn)FAT文件系統(tǒng)。FatFS文件系統(tǒng)使用非常方便,因為FatFS模塊完全與磁盤I/O層分開,因此只需要改寫對應(yīng)的函數(shù)來實現(xiàn)底層物理磁盤的讀寫與獲取當前時間即可。本設(shè)計中應(yīng)用到這幾個函數(shù):disk_initialize用來初始化磁盤驅(qū)動器,這里初始化SD卡;disk_read用來讀SD卡扇區(qū);disk_write用來寫SD卡扇區(qū);disk_ioctl用來控制與設(shè)備相關(guān)的特性;get_fattime用來獲取當前時間,為文件加蓋時間戳。時間的獲取采用讀STM32內(nèi)部RTC的方式實現(xiàn),為此,要在RTC的備用電池引腳接3V的紐扣電池,以實現(xiàn)掉電后的時間維持。
3 實驗參數(shù)
實驗表明,NRF24L01芯片在2 Mbit/s的傳輸速率下,若SPI總線速率控制為4 Mbit/s,則主機發(fā)送從機地址與一個字節(jié)數(shù)據(jù)需要90μs左右的時間延遲,因此無線同步采集的時問誤差可控制在90μs。若主機發(fā)送完同步信號后延遲90μs再啟動采樣,則同步采集的時間誤差可控制在10μs內(nèi),可滿足絕大部分同步采集的需要。經(jīng)測試,只加板載天線時無線傳輸距離在空曠地可達50 m,若使用專用天線,則無線傳輸距離可達150 m,適用于多種測量領(lǐng)域。
4 結(jié)束語
本文所設(shè)計的溫度同步采集系統(tǒng)具有成本低、精度高及可靠性高、通信距離遠、存儲容量大等優(yōu)點,調(diào)節(jié)電位器即可實現(xiàn)溫度量程的調(diào)節(jié),既適用常溫范圍測量,又適用于工業(yè)溫度范圍測量。同步采集后的數(shù)據(jù)很容易在計算機中進行分析、處理及打印等。將溫度調(diào)理電路做少量修改即可實現(xiàn)對壓力、濕度等其它物理量的同步采集,因此應(yīng)用領(lǐng)域廣泛。