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