摘 要: 利用短距離無線通信技術構成一個基于單片機的簡易、低功耗的無線多點溫度測量系統。系統以AT89C2051、AT89C51單片機為核心,采用數字式溫度傳感器DS18B20、無線收發芯片nRF24L01實現了溫度的采集、控制、無線收發等,給出了系統硬件及軟件的具體設計思想與實現方法。
關鍵詞: 無線傳感器網絡;單片機;溫度檢測;傳感器節點
無線傳感網絡WSNs(Wireless Sensor Networks)是當前在國際上備受關注的、涉及多學科高度交叉、知識高度集成的前沿熱點研究領域。其測量系統綜合了現代傳感器技術、微電子技術、通信技術、嵌入式計算技術和分布式處理技術等,能夠通過各類集成化的微型傳感器實時檢測、感知和采集網絡分布區域內的各種環境或檢測對象的信息,并對這些信息進行處理,從而獲得詳盡而準確的信息[1]。
無線測溫系統是通過無線傳感網絡建立的一種測溫系統,系統中包含大量的無線傳感節點。在任意時刻,傳感節點間通過無線通信完成溫度信息的處理。利用單片機、溫度傳感器及無線收發芯片等構成的無線多點測溫系統電路簡單,性能穩定,抗干擾能力強,可靠性高,功耗低,可廣泛應用于環境監測及工農業等領域。
1 無線測溫系統硬件電路設計
系統以短距離無線通信為基礎,實現環境的多點溫度檢測。系統由多個無線節點組成,每個節點由單片機構成,并配置一個溫度傳感器,每個節點既實時監視該點附近的溫度,同時也無線雙向中轉信息,將信息傳輸到天線范圍內的其他節點上,這樣使所有的節點都可以和接收節點鏈接起來。其系統框圖如圖1所示。
1.1 監測節點電路設計
1.1.1 溫度采集模塊[2-3]
溫度采集的方法有多種,但考慮簡單實用、易于實現、性能穩定、功耗低、可靠性高等因素,該模塊采用DS18B20數字式溫度傳感器來實現環境溫度的檢測。DS18B20是美國Dallas半導體公司生產的單總線溫度傳感器,其測溫范圍為-55 ℃~+125 ℃,最高分辨率可達0.062 5℃。信息經過單線接口送入DS18B20或從DS18B20送出。讀、寫和完成溫度變換所需的電源可以由數據線本身提供,而不需要外部電源。DS18B20的外圍接線如圖2所示。
1.1.2 無線收發模塊[4-5]
該模塊選用NORDIC公司推出的高速、低功耗、低成本的2 Mb/s工業級嵌人式2.4 GHz無線收發芯片nRF24L01,它具有增強型的ShockBurst功能,集成了雙向通信所需要的鏈路層。同時,內置速率高達8 Mb/s的SPI接口能很好地解決nRF24L01與單片機數據傳輸率的問題。nRF24L01采用PCB天線,為保證其頻率和阻抗與射頻芯片匹配,以獲取最大傳輸功率并抑制高頻噪聲,在nRF24L01外圍電路接入了電感和電容。nRF24L01的外圍部分接線如圖3所示。
1.2 接收節點電路設計
接收節點的能量由穩定的電源供給,無需考慮節能問題。但考慮到數據顯示控制等需要較多的管腳,故采用AT89C51作為控制芯片。此外,因為計算路由的過程非常繁瑣,程序較長,電路中用27C256芯片擴展了一個32 KB的ROM來滿足要求。另外,電路中的無線收發模塊仍采用nRF24L01無線收發芯片。接收節點部分接線如圖5所示。
2 無線測溫系統軟件設計
系統軟件采用了模塊化設計,主要包括監測節點的溫度采集、接收節點的路徑計算和溫度顯示、無線傳輸等。下面主要給出了主程序、溫度采集程序、無線傳輸程序的設計思想。
2.1 主程序設計
系統的主程序設計主要完成系統初始化、中斷優先級設定以及判斷調用各模塊程序,即主要實現各模塊的連接,然后再確定各個監測節點所在位置對于接收節點的相對坐標。
2.1.1 接收節點主程序
系統上電以后,接收節點先進行初始化設置。初始化的內容包括給相應的字符名稱賦值,打開中斷,等待中斷響應。當中斷響應后,單片機進入相應的中斷服務程序,接收來自所有監測節點的序列號信息,計算出每個節點的位置并存儲,再計算出到達每個監測節點的路徑,向監測節點發送溫度測試指令,等監測節點接收到完整數據后,將接收節點置接收方式,準備接收測得的數據。在接收節點接收完監測節點上傳的數據后,根據中斷指令進行顯示,保持一段時間以后,向第二個監測節點發送溫度測試指令。按此順序循環,直到所有監測節點的溫度被顯示。其流程圖如圖6所示。
2.1.2 監測節點主程序
監測節點主程序開始后首先進行初始化設置。初始化的內容包括給相應的字符名稱賦值,設置串口通信參數。然后開始發送自己的序列號,接收其他節點的序列號組,如果其中不包含自己的序列號,則轉發;若包含,則不發。進入睡眠模式,直到收到接收節點的溫度測試指令,開始向DS18B20發初始化脈沖,然后發送skipROM命令,執行溫度的檢測;然后將測得的數據發送給接收節點,復位中斷返回,準備進行新的測試。其流程圖如圖7所示。
2.3 無線傳輸程序設計
無線傳輸通過nRF24L01無線收發芯片實現。為使系統程序編制更加簡單且穩定性高,在設計中使nRF24L01工作于Enhanced ShockBurstTM 收發模式下。ShockBurstTM的配置字使nRF24L01能夠處理射頻協議,在配置完成后,在nRF24L01工作的過程中,只需改變其最低一個字節中的內容,就可以實現接收模式和發送模式之間切換,流程圖如圖9、圖10所示。
本系統經實驗室測試,取得了很好的效果且具有一定的實用性。傳感器節點間無障礙傳輸距離基本可達到50 m左右,當距離小于10 m時有很強的抗干擾能力,且溫度數據可完成多跳傳輸,準確無誤地到達接收節點。
參考文獻
[1] 王雪.無線傳感網絡測量系統[M].北京:機械工業出版社,2007:1-13.
[2] 求是科技.單片機典型模塊設計實例導航[M].北京:人民郵電出版社,2004:166-171.
[3] 湯競南,沈國琴.51單片機C語言開發與實例[M].北京:人民郵電出版社,2008:138-143.
[4] 曾勇,楊濤,馮月暉.基于nRF24L01的超低功耗無線傳感器網絡節點設計[J].電子技術應用,2008,34(7):45-48.
[5] 求是科技.單片機通信技術與工程實踐[M].北京:人民郵電出版社,2005:317-328.