便攜式多點(diǎn)溫度同步采集系統設計
2 系統軟件設計
在溫度同步采集系統中,STM32F103VC完成無(wú)線(xiàn)通信、溫度檢測、參數輸入與顯示、SD卡讀寫(xiě)等功能。整個(gè)系統軟件部分包括主程序、人機接口程序、無(wú)線(xiàn)通信程序、SD卡讀寫(xiě)程序、文件系統程序、溫度計算程序、實(shí)時(shí)時(shí)間讀取、自診斷等功能模塊。由于軟件較復雜,所以實(shí)際編程中嵌入了μC/OS-Ⅱ實(shí)時(shí)操作系統。
2.1 μC/OS-Ⅱ實(shí)時(shí)操作系統
μC/OS-Ⅱ實(shí)時(shí)操作系統是真正源碼公開(kāi)的,采用占先式的實(shí)時(shí)內核,支持多達56個(gè)用戶(hù)任務(wù),穩定性和可靠性高,而且移植方便,占用內存小。μC/OS-Ⅱ實(shí)時(shí)操作系統中各任務(wù)要分配不同的優(yōu)先級,優(yōu)先級用數字表示,數字越小其優(yōu)先級越高。針對本系統中各任務(wù)的重要性,為各任務(wù)分配了表1所示的優(yōu)先級。本文引用地址:http://dyxdggzs.com/article/194741.htm
2.2 無(wú)線(xiàn)通信程序
無(wú)線(xiàn)通信程序主要完成基于NRF24L01的數據發(fā)送和接收,要嚴格遵守其發(fā)送及接收時(shí)序。由于溫度采集時(shí)每個(gè)系統都可能成為發(fā)出同步啟動(dòng)信號的主機,因此采集前NRF24L01都配置為接受模式。若某個(gè)系統檢測到已滿(mǎn)足啟動(dòng)條件,則自動(dòng)配置為發(fā)送模式,將同步啟動(dòng)信號發(fā)送給其它系統,于是同步采集開(kāi)始。將NRF24L01配置為增強型ShockBurst模式并啟動(dòng)自動(dòng)應答,這樣可以在接收方接收到信號后自動(dòng)產(chǎn)生應答以確認通信的正確性,發(fā)送方未收到應答則會(huì )自動(dòng)重發(fā),無(wú)需增加控制器的工作量。
2.3 SD卡讀寫(xiě)程序
本系統SD卡采用了FatFS文件系統以方便將SD卡內的數據通過(guò)讀卡器導入到上位計算機。FatFS是一種通用的文件系統模塊,在小型嵌入式系統中實(shí)現FAT文件系統。FatFS文件系統使用非常方便,因為FatFS模塊完全與磁盤(pán)I/O層分開(kāi),因此只需要改寫(xiě)對應的函數來(lái)實(shí)現底層物理磁盤(pán)的讀寫(xiě)與獲取當前時(shí)間即可。本設計中應用到這幾個(gè)函數:disk_initialize用來(lái)初始化磁盤(pán)驅動(dòng)器,這里初始化SD卡;disk_read用來(lái)讀SD卡扇區;disk_write用來(lái)寫(xiě)SD卡扇區;disk_ioctl用來(lái)控制與設備相關(guān)的特性;get_fattime用來(lái)獲取當前時(shí)間,為文件加蓋時(shí)間戳。時(shí)間的獲取采用讀STM32內部RTC的方式實(shí)現,為此,要在RTC的備用電池引腳接3V的紐扣電池,以實(shí)現掉電后的時(shí)間維持。
3 實(shí)驗參數
實(shí)驗表明,NRF24L01芯片在2 Mbit/s的傳輸速率下,若SPI總線(xiàn)速率控制為4 Mbit/s,則主機發(fā)送從機地址與一個(gè)字節數據需要90μs左右的時(shí)間延遲,因此無(wú)線(xiàn)同步采集的時(shí)問(wèn)誤差可控制在90μs。若主機發(fā)送完同步信號后延遲90μs再啟動(dòng)采樣,則同步采集的時(shí)間誤差可控制在10μs內,可滿(mǎn)足絕大部分同步采集的需要。經(jīng)測試,只加板載天線(xiàn)時(shí)無(wú)線(xiàn)傳輸距離在空曠地可達50 m,若使用專(zhuān)用天線(xiàn),則無(wú)線(xiàn)傳輸距離可達150 m,適用于多種測量領(lǐng)域。
4 結束語(yǔ)
本文所設計的溫度同步采集系統具有成本低、精度高及可靠性高、通信距離遠、存儲容量大等優(yōu)點(diǎn),調節電位器即可實(shí)現溫度量程的調節,既適用常溫范圍測量,又適用于工業(yè)溫度范圍測量。同步采集后的數據很容易在計算機中進(jìn)行分析、處理及打印等。將溫度調理電路做少量修改即可實(shí)現對壓力、濕度等其它物理量的同步采集,因此應用領(lǐng)域廣泛。
評論