唐先登,楊經國,李賀威,陳勁松
(湖北汽車工業學院 電氣與信息工程學院,湖北 十堰 442002)
作為信息領域的一項新技術,無線數據監測網絡解決了傳統有線數據監測與傳輸在多點測量及特殊環境下布線復雜困難且功耗高等問題,在工農業及軍事等通信領域正得到廣泛應用。本文設計的基于nRF24L01的多點無線環境監測系統采用超低功耗單片機MSP430F149做主控,采用高速無線收發器nRF24L01進行多點組網,實現了多個節點的多個環境數據的采集與監測,并運用超低功耗短時突發式無線發射技術、低功耗休眠機制結合太陽能電池供電技術,從而大大降低了系統功耗,解決了系統長期自持的耗能量供應問題,提高了系統使用的靈活性,且各節點互不影響,容易擴展,便于維護,節約了成本[2]。基于此本系統可廣泛應用于城市交通路口監測車輛尾氣指標或用于工農業環境氣象監測。
系統總體結構如圖1所示,采用主從拓撲結構,以適用多節點的數據采集與無線通信。
系統主控MCU采用TI公司的低功耗單片機MSP430F149,從站配傳感器等數據采集模、LCD顯示模塊、nRF24L01無線通信模塊和電源模塊,并預編號,傳感器采集到的數據通過單片機處理后在LCD液晶屏顯示并連同本站編號由nRF24L01發送給主站;主站的nRF24L01接收到從站發來的數據后通過SPI總線將數據傳給MCU判斷其編號在LCD屏上顯示編號和相應數據并通過串口通信將數據反饋給監測終端。從站給主站發送數據采用循環輪換方式,依次將采集到的數據發給主站,主站能夠顯示所有監測節點的所有數據。異常情況下,主站可通過預置編號控制nRF24L01發送控制命令針對一個從站實時監控。

圖1 系統總體結構圖Fig.1 Total structure chart of system
硬件系統包括電源供電模塊、數據采集模塊、nRF24L01無線收發模塊及控制顯示模塊;本文以環境溫度為例對主要的硬件電路進行說明。
主站采用固定穩壓電源供電,從機采用太陽能電池板和鋰電池供電,強光照環境下由太陽能電池板產生電能供給系統用電,夜晚和弱光條件下由鋰電池供電,以期達到最低功耗。
系統各模塊采用3.3 V低壓穩壓源供電,由于外電源的波動,可能導致數據采集和傳輸誤差、系統異常甚至癱瘓,所以需要為系統設計穩定的供電電源。電源DC-DC模塊原理圖如圖2所示,外電源經單片同步降壓源MP2307后為系統提供穩定的3.3 V電壓。該器件集成可調MOSFET,用于提供快速瞬態響應和逐周期電流限制,啟動方式為可調軟啟動,用于防止浪涌電流,靜態電流低于1μA。
nRF24L01是一款新型嵌入式2.4 G無線收發芯片,集頻率合成器、功率放大器、晶體振蕩器、調制器等功能模塊于一體,并融合了增強型Shock Burst技術,其中輸出功率和通信頻道可通過程序進行配置。nRF24L01本身功耗低,且有多種低功率工作模式(掉電模式和空閑模式)使節能設計更方便。其外圍電路如圖3所示[3]。

圖2 電源模塊原理圖Fig.2 Theory picture of power source

圖3 nRF24L01外圍電路Fig.3 Peripheral electric circuit of nRF24l01
本系統無線傳輸業務以環境溫度為例,采用溫度傳感器DS18B20,由于DS18B20采用數字單總線技術,使得系統電路簡單,易于擴展,且支持“一線總線”接口,在于微處理器連接時只占用一個I/O口即可實現與微處理器的雙向通信,同時可傳送CRC校驗碼,大大提高了系統的抗干擾能力。
系統的控制采用超低功耗MSP430FF149實現,MSP430系列單片機的片內外資源豐富中斷源較多,并且可以任意嵌套,使用時靈活方便。本系統主控MSP430F149通過SPI接口與NRF24L01模塊連接,硬件接口設計如圖4所示。

圖4 MCU與nRF24L01連接圖Fig.4 Link of MCU and nRF24l01
無線通信系統的軟件設計采用模塊化思想,將整個系統的軟件劃分為兩個部分即主站和從站以便于軟件的設計、調試和維護。根據系統的功能要求,主站主要完成發送命令、接收信息、數據顯示等功能,從站完成命令接收、信息采集、數據發送和信息顯示等功能。主從站采用輪詢方式,從機在未被輪詢時進入睡眠模式,當主機對從機進行詢問時,nRF24L01產生中斷,喚醒從機,起減小功耗的作用;其中,掌握SPI總線時序對NRF24L01的控制是實現通信的關鍵,本文將給出設計要點和nRF24L01的控制流程。
軟件系統包括主從機,從機主要完成數據的采集,并將采集到的數據在液晶屏上顯示同時通過SPI總線將數據連同其編號由nRF24L01將信息發送給主機;主機通過SPI總線從主機的nRF24L01讀取從站發來的信息經串口將接收到的數據送到液晶屏上顯示,并將信息反饋給終端設備,進行實時監測。在此過程中,通過對主站接收到的數據的判斷實現對檢測節點的控制。其程序流程如圖5所示[4]。

圖5 系統流程圖Fig.5 Flow diagram of system
通信方式使用半雙工方式,主站發送控制命令,從站收到命令后將信息發給主站發送完畢后進入等待接收狀態,主站收到數據后發送應答信號以便檢測從站所發數據有無丟失,一旦數據丟失即刻啟動數據重發功能將丟失的數據恢復。通過切換從機編號命令實現多節點的信息監控。
nRF24L01控制程序的編寫是系統通信的關鍵,nRF24L01通過SPI接口和控制器件MSP430F149進行數據交換。 SPI口為同步串行通信接口,最大傳輸速率為10 Mb/s,傳輸時先傳送低位字節,再傳送高位字節;但針對單個字節而言,要先送高位再送低位,nRF24L0l所有的配置字都由配置寄存器定義,這些配置寄存器可通過SPI口訪問[5]。

發射數據時,先將nRF24L01配置為發射模式,接著把地址TX_ADDR和數據TX_PLD按照時序由SPI口寫入nRF24L01緩存區,然后CE置高并保持至少10μs,延遲130μs后發射數據;如果收到應答,則認為此次通信成功,TX_DS置高,同時TX_PLD從發送堆棧中清除;若未收到應答,則啟動自動重發功能再次發射。最后發射成功時,若CE為低,則nRF24L01進入待機模式1;若發送堆棧中有數據且CE為高,則進入下一次發射;若發送堆棧中無數據且CE為高,則進入待機模式2[6]。
接收數據時,先將nRF24L01配置為接收模式,延遲130 μs進入接收狀態等待數據的到來。當接收方檢測到有效的地址和CRC時,就將數據包存儲在接收堆棧中,同時中斷標志位RX_DR置高,IRQ變低,以便通知MCU去取數據。若此時自動應答開啟,接收方則同時進入發射狀態回傳應答信號。最后接收成功時,若CE變低,則nRF24L01進入空閑模式1[7]。
根據系統設計目標及性能指標,筆者制作了樣機以DS18B20采集環境溫度進行數據傳輸,采用3個監測節點和一個監測終端實時通信。通過測試,考慮了傳輸過程中的電磁干擾、傳輸的延遲性及系統誤差,在50 m距離內傳輸的溫度誤差小于1℃,總功耗小于0.2 W,通信效率高,傳輸數據可靠,系統運行穩定。各從站可設置為中繼節點為遠程無線通信和網絡節點數據監測提供了依據。
本文所設計的基于2.4G無線收發芯片nRF24L01和超低功耗單片機MSP430F149的無線數據采集與通信系統采用SPI總線協議,系統穩定可靠,電路結構簡單,易于維護,功耗低,能實現一對一、多對一的無線通訊,根據需要可加入更多傳感器實現更多的數據采集與無線傳輸,由于超低功耗在光照充裕地帶可實現太陽能供電,具有實際應用價值。
[1]洪利,章揚,李世寶.MSP430單片機原理與應用實例詳解[M].北京航空航天大學出版社,2010.
[2]曾勇.基于nRF24L01的超低功耗無線傳感器網絡節點設計[J].電子應用技術,2008(7):45-48.ZENG Yong.Ultra-low power wireless sensor network node design based on nRF24l01[J].Electronic Application Technology,2008(7):45-48.
[3]劉靖.基于nRF24L01的無線數字傳輸系統[J].天津理工大學學報,2007,23(3):38-40.LIU Jing.Design of wireless communication system based on nRF24L01[J].Journal of Tianjin University of Technology,2007,23(3):38-40.
[4]郝文延.基于DSP和nRF24L01的無線環境監測系統設計[J].單片機與嵌入式系統應用,2011(3):51-54.HAO Wen-yan.Wireless environment monitoring system based on DSP and nRF24L01[J].Single Chip Micyoco and Embedded System Application,2011(3):51-54.
[5]王濤.基于nRF24L01的2.4 GHz無線通信系統設計[J].通信系統與網絡技術,2011,37(3):4-7.WANG Tao.2.4 GHz wireless communication system design Based on Nrf24l01[J].Radio Communications Technology,2011,37(3):4-7.
[6]王軍輝.無線高速數據傳輸技術的研究[J].計算機測量與控制,2011,19(9):2305-2318.WANG Jun-hui.Research on wireless high-speed data transmission technology[J].Computer Measureand Control,2011,19(9):2305-2318.
[7]周遠舉.基于AT89S52和nRF24L01的無線溫度監測系統[J].信息技術,2012(2):175-176.ZHOU Yuan-ju.Wireless temperature sensor system based on AT89S52 and nRF24l01[J].Information Technology,2012(2):175-176.