摘要:針對傳統溫濕度測量中的缺點,設計了以低功耗MSP430單片機為控制核心,利用溫濕度一體傳感器SHT11進行溫濕度信號的采集,結合無線傳輸模塊nRF24L01對數據進行無線傳輸的溫濕度測試系統,并在可靠可信、微功耗的基礎上能很好地滿足實際應用要求。
隨著科技的進步和現代工農業技術的發展,溫度和濕度的測量和控制對人類日常生活、工業生產、氣象預報、物資倉儲等都將起著越來越重要的作用。在傳統的溫濕度測量中,分別采用溫度傳感器和濕度傳感器采集溫度和濕度信號,并通過布置大量的電纜或導線進行有線傳輸。在多測點的情況下,這種方法無疑大大增加了成本和系統設計的復雜性,同時安裝拆卸繁瑣,不靈活,信號容易受到干擾。因此,本次設計運用了數字式溫濕度一體傳感器SHT11,能夠同時采集溫度和濕度信號,并直接輸出數字信號;采用無線收發一體射頻模塊nRF24L01,對數據進行無線傳輸;采用MSP430單片機設計低功耗采集存儲電路。
1 系統總體結構和工作原理
本次設計的無線溫濕度監控系統有上位機子系統和下位機子系統兩個部分組成。上位機子系統由主控芯片MSP430單片機、無線射頻接收模塊、天線、液晶顯示模塊、電源模塊、時鐘模塊、串口通信模塊、終端設備等組成。上位機子系統原理框圖如圖1所示;下位機子系統由主控芯片MSP430單片機、溫濕度傳感器、無線射頻發射模塊、天線、電源模塊以及時鐘模塊等組成。下位機子系統原理框圖如圖2所示。
在下位機子系統中,由數字溫濕度傳感器SHT11分別對溫度和濕度信號進行實時采集,在主控芯片MSP430單片機的控制下通過無線發送模塊nRF24L01將溫濕度數字信號發送到上位機子系統;在上位機子系統中,在MSP430主控單元的作用下,通過無線射頻接收模塊接收下位機子系統發送過來的溫濕度數字信號,一方面通過液晶顯示模塊實時顯示接收到的溫濕度數值,一方面通過串口通信模塊與終端設備進行通信,在終端設備中利用軟件讀取數據并繪制曲線。
2 系統硬件電路設計
2.1 微控制器的選擇
MSP430系列單片機是美國德州儀器(TI)公司推出的一種16位超低功耗的混合信號處理器。它的電源電壓采用1.8~3.6 V低電壓,RAM數據保持方式下耗電僅為0.1μA,活動模式耗電為250μA/MIPS,I/O輸入端口的漏電流最大僅為50 nA。此外,它共有一種活動模式和5種低功耗模式。MSP430具有強大的處理能力、高性能模擬技術及豐富的片上外圍模塊。由于本次設計的測試系統需要長期在測試環境中采集溫濕度信號,并利用電池供電,所以低功耗的要求就必須考慮。
2.2 溫濕度傳感器
SHT11是一款高度集成的溫濕度傳感器芯片,它采用專利的CMOSens技術,提供全量程標定的數字輸出;由于采用了優化的集成電路形式使其具有極高的可靠性與卓越的長期穩定性。該傳感器包括一個電容性聚合體濕度敏感元件和一個用能隙材料制成的溫度敏感元件,并在同一芯片上與14位的A/D轉換器以及串行接口電路實現無縫連接。每個傳感器芯片都在極為準確的濕度腔室中以鏡面冷凝式濕度計為參照進行標定;兩線制的串行接口與內部的電壓調整,使外圍系統集成變得快速而簡單。SHT11具有體積微小、功耗極低、抗干擾能力強、響應快速等優點。
2.3 nRF24L01無線傳輸模塊
nRF24L01是一款新型單片射頻收發一體器件,工作于2.4~2.5 GHz ISM頻段。其內置頻率合成器、功率放大器、晶體振蕩器、調制器等功能模塊,并融合了增強型ShockBurst技術,其中輸出功率和通信頻道可通過程序進行配置。nRF24L01功耗很低,在-6dBm的功率發射時,工作電流只有9 mA;接收模式時,工作電流只有12.3 mA;有掉電模式和待機模式兩種低功率工作模式使節能設計更方便。nRF24L01采用GFSK調制,具有自動應答和自動再發射功能,片內自動生成報頭和CRC校驗碼的特性。
2.4 SPI連接
MSP430單片機與nRF24L01無線收發模塊之間利用同步串行口SPI進行雙向通信。nRF24L01的SPI總線有SCK(SPI時鐘)、MISO(主入從出)、MOSI(主出從入)、CSN(SPI使能)。
MSP430通過控制PWR_UP、PRIM_RX以及CE3個引腳的高低電平使nRF24L01分別處于發射模式、接收模式、待機模式以及掉電模式,IRO是中斷標志位。MSP430與nRF24L01的連接圖如圖3所示。
3 系統的軟件設計
3.1 無線發送模式流程
1)MCU控制引腳CE為低,使nRF24L01進入待機模式I,配置其寄存器:
2)當MCU有數據要發送時,接收節點地址(TX_ADDR)和有效數據(TX_PLD)通過SPI接口寫入nRF24L01,當CSN為低時數據被不斷地寫入。發送端發送完數據后,將通道0設置為接收模式來接收應答信號,其接收地址(RX_ADDR_P0)與接收端地址(TX_ADDR)相同;
3)設置PRIM_RX為低、CE為高,啟動發射模塊,CE高電平持續時間最小為10μs;
4)nRF24L01 ShockBurst發送模式:無線系統上電、啟動內部16 MHz時鐘、無線發送數據打包、高速發送數據;
5)數據發送完后,立即進入接收模式。如果在有效應答時間范圍內收到應答信號,則認為數據成功發送到了接收端,此時狀態寄存器的TX_DS位置高并把數據從TX_FIFO中清除掉;如果在設定時間范圍內沒有接收到應答信號,則重新發送數據,如果自動重發計數器溢出,則狀態寄存器的MAX_RT位置高,不清除TX_FIFO中的數據。當MAX_RT或TX_DS為高電平時IRQ引腳產生中斷,IRQ中斷通過寫狀態寄存器來復位。如果重發次數在達到設定的最大重發次數時還沒有收到應答信號的話,在MAX_RX中斷清除之前不會重發數據包,數據包丟失計數器(PLOS_CNT)在每次產生MAX_RT中斷后加一;
6)如果CE置低,則系統進入待機模式I,如果不設置CE為低,則系統會發送TX_FIFO寄存器中下一包數據,如果TX_FIFO寄存器為空且CE為高則系統進入待機模式II;
7)如果系統在待機模式Ⅱ,當CE置低后系統立即進入待機模式I。
nRF24L01的發送模式的程序流程圖如圖4所示。
3.2 無線接收模式流程
1)MCU將nRF24L01的CE引腳置低,使其進入待機模式I,并對其寄存器進行配置;
2)將PWR_UP、PRIM_RX、CE引腳置高,使nRF24L01進入接收模式;
3)130μs后nRF24L01開始檢測空中信息;
4)接收到有效的數據包后(地址匹配、CRC校驗正確),將數據存儲在RX_FIFO中,同時RX_DR位置高,并產生中斷;
5)發送確認信號;
6)MCU設置CE腳為低,使nRF24L01進入待機模式I;
7)MCU通過SPI口以合適的速率將數據讀出。
nRF24L01的接收模式的程序流程圖如圖5所示。
4 結論
文中設計了一種低功耗、高可靠性的溫濕度測試系統。經測試本系統在空曠環境下可靠通信距離達到220 m,可以滿足實際測試需要。
評論
查看更多