胡中玉+岳強+馮維杰+佘東
摘 要: 根據無線傳感器網絡節點的硬件體系結構,設計出了節點,極大地降低了功耗。系統以AT89C2051單片機為核心,采用數字式溫度傳感器DS18B20、無線收發芯片nRF24L01實現了溫度的采集、無線收發等,給出了系統硬件及軟件的具體設計思想與實現方法,最后進行了實際測試。
關鍵詞: 無線傳感器網絡; AT89C2051單片機; 溫度檢測; 傳感器節點
中圖分類號: TN911?34; TP273 文獻標識碼: A 文章編號: 1004?373X(2014)07?0012?03
Design of wireless sensor network node based on nRF24L01
HU Zhong?yu1, YUE Qiang1, FENG Wei?jie1, SHE Dong2
(1. Kunming University, Kunming 650214, China; 2. Sichuan Electromechanical Institute of Vocation and Technology, Panzhihua 617000, China)
Abstract: According to the hardware architecture of wireless sensor network node, the nodes were designed, which can greatly reduce the power consumption. The system uses AT89C2051 single?chip microcomputer as the core. The temperature collection and wireless transceiver are realized by using the digital temperature sensor DS18B20 and wireless transceiver chip nRF24L01. The specific design thought and realization method of the hardware and software of the system are also provided. Finally, the practical test was conducted.
Keywords: wireless sensor network; AT89C2051 MCU; temperature measurement; sensor node
無線傳感網絡是當前的新興的前沿熱點研究領域。它綜合了傳感技術、嵌入式技術、無線通信和網絡技術[1]。無線傳感器網絡在軍事、地震預測、農業、醫療等領域都得到了廣泛的應用[2]。無線傳感器網絡系統能實時監測、感知和采集各種檢測對象的信息,通過嵌入式系統對信息進行加工和處理,然后利用無線通信技術,通過多跳中繼方式傳輸信息到遠處的終端和用戶[3]。所以無線傳感器網絡的設計可以建立在普通的無線溫度采集電路之上,結合無線通信技術來實現。本文將利用無線傳感器網絡的這一特點,采用低功耗的器件,設計一個簡易的無線傳感器網絡節點。
1 無線傳感器網絡節點的構成
傳感器網絡節點一般由數據采集模塊、數據處理和存儲模塊、數據傳輸模塊和電源四部分組成[4]。如圖1所示。
在節點設計的過程中,功耗是一個主要考慮的問題,因為大量的節點都是放置在野外的,只能靠電池供電,功耗太大的話,需要頻繁的更換電池,維護成本會提高[5]。所以在本系統中采用的器件都是相對低功耗的。傳感器模塊采用DS18B20數字式溫度傳感器來實現環境溫度的檢測;處理器模塊采用AT89C2051;無線通信模塊采用2.4 GHz無線收發芯片nRF24L01。
圖1 傳感器網絡節點的體系結構
2 硬件設計
2.1 數據采集模塊[6]
DS18B20為美國Dallas半導體公司生產的單線總線型溫度傳感器,測溫范圍為-55~125 ℃,最高分辨率可達0.062 5 ℃,可以滿足一般的測量需要。信息經過單線接口送入DS18B20或從DS18B20送出。讀、寫和完成溫度變換所需的電源由數據線本身提供,不需要額外供電,這樣功耗低且可以簡化電源電路。DS18B20的接線電路如圖2所示,控制命令和溫度信息通過單片機的P1.7口來控制。
圖2 DS18B20的外圍接線
2.2 數據傳輸模塊
該模塊選用NORDIC公司推出的2.4 GHz無線收發芯片nRF24L01,它具有增頻率發生器、增強型的ShockBursTM模式控制器、功率放大器、晶體振蕩器、調制器和解調器。它功耗低,發射時的工作電流只有9 mA,接收時的工作電流只有12.3 mA,空閑模式使節能更方便。nRF24L01的部分接線電路如圖3所示。
圖3 nRF24L01的外圍部分接線
2.3 處理器模塊[7]
對于網絡節點的處理器來說,要實現將自己所檢測到的溫度信息發射出去;作為中繼節點,先接收然后再轉發其他節點的溫度數據兩個功能。而在其他時間,進入睡眠狀態,節約能量。AT89C2051單片機具備用軟件設置的睡眠省電功能,所以能夠實現以上功能。為了指示數據的接收和發送情況,又額外接入2只發光二極管。AT89C2051的接線如圖4所示。
3 軟件設計
在軟件設計的時候,主要考慮的問題仍然是節能,所以需要采用一些可以降低功耗的設計方法,比如:精簡冗余指令、優化系統的時鐘和優化工作時序等。
3.1 主程序設計
主程序開始后首先進行初始化,包括給相應的字符名稱賦值,設置串口通信參數等,然后進行通信鏈路的確定,這一步需要根據每個節點所在的位置和相鄰節點的位置來確定,所以需要先發送本身的序列號,再接收其他節點的信息,通過確認其他節點的序列號來得知相鄰的,可互相通信的節點,再將其他節點的序列號加在本身序列號之后進行發送,這樣,監控中心可根據接收的序列號的順序得到該條通信線路上所包含的所有節點。在序列號發完以后進入睡眠模式,直到被溫度測試指令喚醒以后,給DS18B20發初始化脈沖,發送skipROM命令,進行溫度的檢測,將測得的數據發送,復位中斷返回,再次進入睡眠模式[8],流程圖如圖5所示。
圖4 AT89C2051的外圍部分接線
圖5 主程序流程圖
3.2 溫度采集程序設計[9]
由于DS18B20由一根單線實現數據的讀和寫,所以使用的關鍵是總線時序設置。先初始化,接著主機釋放總線進入接收狀態。流程圖如圖6所示。
3.3 無線傳輸程序設計[10]
nRF24L01的設置包括:頻道設置、本地地址設置和發射速率設置等。本設計中,使用Enhanced ShockBurstTM 收發模式。設置完成后,可以由單片機進行查詢模式的數據發送,流程圖如圖7,圖8所示。
圖6 DS18B20溫度檢測部分流程圖
圖7 nRF24L01發送流程圖
圖8 nRF24L01接收流程圖
4 性能測試
4.1 節點功耗測試
檢測狀態時功率=DS18B20的典型功率+AT89C2051在工作狀態時的功率+nRF24L01工作在RX和TX模式下的功率=3 V×1 mA+3 V×2.5 mA+3 V×(11.3+12.3) mA=3 V×27.1 mA=81.3 mW
數據轉發時功率=AT89C2051在工作狀態時的功率+nRF24L01工作在RX和TX模式下的功率=3 V×2.5 mA+3 V×(11.3+12.3) mA=80.3 mW
休眠時功率=AT89C2051在休眠時的功率+ nRF24L01工作在休眠模式下的功率 =3 V×2.5 μA+3 V×900 nA=3 V×3.4 μA=10.2 μW
4.2 通信質量測試
在室外無障礙的環境下進行測試,分別選取5個測試距離,接收到的正確率見表1。
表1 通信距離和正確率的關系
[通信距離 /m\&正確率 /%\&5\&100\&10\&100\&20\&99\&50\&10\&80\&0\&]
5 結 語
該無線傳感器網絡節點電路簡單,功耗低,性能穩定,可靠性高,可以應用于檢測環境、糧庫及展廳等封閉空間或其他需要多點溫度檢測的場合。
參考文獻
[1] 孫利民,李建中,陳渝,等.無線傳感網絡[M].北京:清華大學出版社,2005.
[2] AKYILDIZ I F, SU W, CAYIRCI E. Wireless sensor networks: a survey [J]. Computer Ne tworks, 2002, 38(3): 393?422.
[3] 張曉彤.無線傳感器網絡與人工生命[M].北京:國防工業出版社,2008.
[4] 曾勇,楊濤,馮月暉.基于nRF24L01的超低功耗無線傳感器網絡節點設計[J].電子技術應用,2008(7):45?48.
[5] 焦鳳昌,龔仁喜,臧慧,等. 一種新型的無線低功耗環境指數傳感器[J].傳感器與微系統,2013(8):81?84.
[6] 求是科技.單片機典型模塊設計實例導航[M].北京:人民郵電出版社,2004.
[7] 胡漢才.單片機原理及其接口技術[M].北京:清華大學出版社,2004.
[8] 佘東,胡中玉.基于單片機的無線測溫系統設計[J].微型機與應用,2012,31(13):78?80.
[9] 蔡美琴,張為民.MCS?51系列單片機系統及其應用[M].2版.北京:高等教育出版社,2004.
[10] 張培仁.基于C語言編程MCS?51單片機原理與應用[M].北京:清華大學出版社,2003.
3 軟件設計
在軟件設計的時候,主要考慮的問題仍然是節能,所以需要采用一些可以降低功耗的設計方法,比如:精簡冗余指令、優化系統的時鐘和優化工作時序等。
3.1 主程序設計
主程序開始后首先進行初始化,包括給相應的字符名稱賦值,設置串口通信參數等,然后進行通信鏈路的確定,這一步需要根據每個節點所在的位置和相鄰節點的位置來確定,所以需要先發送本身的序列號,再接收其他節點的信息,通過確認其他節點的序列號來得知相鄰的,可互相通信的節點,再將其他節點的序列號加在本身序列號之后進行發送,這樣,監控中心可根據接收的序列號的順序得到該條通信線路上所包含的所有節點。在序列號發完以后進入睡眠模式,直到被溫度測試指令喚醒以后,給DS18B20發初始化脈沖,發送skipROM命令,進行溫度的檢測,將測得的數據發送,復位中斷返回,再次進入睡眠模式[8],流程圖如圖5所示。
圖4 AT89C2051的外圍部分接線
圖5 主程序流程圖
3.2 溫度采集程序設計[9]
由于DS18B20由一根單線實現數據的讀和寫,所以使用的關鍵是總線時序設置。先初始化,接著主機釋放總線進入接收狀態。流程圖如圖6所示。
3.3 無線傳輸程序設計[10]
nRF24L01的設置包括:頻道設置、本地地址設置和發射速率設置等。本設計中,使用Enhanced ShockBurstTM 收發模式。設置完成后,可以由單片機進行查詢模式的數據發送,流程圖如圖7,圖8所示。
圖6 DS18B20溫度檢測部分流程圖
圖7 nRF24L01發送流程圖
圖8 nRF24L01接收流程圖
4 性能測試
4.1 節點功耗測試
檢測狀態時功率=DS18B20的典型功率+AT89C2051在工作狀態時的功率+nRF24L01工作在RX和TX模式下的功率=3 V×1 mA+3 V×2.5 mA+3 V×(11.3+12.3) mA=3 V×27.1 mA=81.3 mW
數據轉發時功率=AT89C2051在工作狀態時的功率+nRF24L01工作在RX和TX模式下的功率=3 V×2.5 mA+3 V×(11.3+12.3) mA=80.3 mW
休眠時功率=AT89C2051在休眠時的功率+ nRF24L01工作在休眠模式下的功率 =3 V×2.5 μA+3 V×900 nA=3 V×3.4 μA=10.2 μW
4.2 通信質量測試
在室外無障礙的環境下進行測試,分別選取5個測試距離,接收到的正確率見表1。
表1 通信距離和正確率的關系
[通信距離 /m\&正確率 /%\&5\&100\&10\&100\&20\&99\&50\&10\&80\&0\&]
5 結 語
該無線傳感器網絡節點電路簡單,功耗低,性能穩定,可靠性高,可以應用于檢測環境、糧庫及展廳等封閉空間或其他需要多點溫度檢測的場合。
參考文獻
[1] 孫利民,李建中,陳渝,等.無線傳感網絡[M].北京:清華大學出版社,2005.
[2] AKYILDIZ I F, SU W, CAYIRCI E. Wireless sensor networks: a survey [J]. Computer Ne tworks, 2002, 38(3): 393?422.
[3] 張曉彤.無線傳感器網絡與人工生命[M].北京:國防工業出版社,2008.
[4] 曾勇,楊濤,馮月暉.基于nRF24L01的超低功耗無線傳感器網絡節點設計[J].電子技術應用,2008(7):45?48.
[5] 焦鳳昌,龔仁喜,臧慧,等. 一種新型的無線低功耗環境指數傳感器[J].傳感器與微系統,2013(8):81?84.
[6] 求是科技.單片機典型模塊設計實例導航[M].北京:人民郵電出版社,2004.
[7] 胡漢才.單片機原理及其接口技術[M].北京:清華大學出版社,2004.
[8] 佘東,胡中玉.基于單片機的無線測溫系統設計[J].微型機與應用,2012,31(13):78?80.
[9] 蔡美琴,張為民.MCS?51系列單片機系統及其應用[M].2版.北京:高等教育出版社,2004.
[10] 張培仁.基于C語言編程MCS?51單片機原理與應用[M].北京:清華大學出版社,2003.
3 軟件設計
在軟件設計的時候,主要考慮的問題仍然是節能,所以需要采用一些可以降低功耗的設計方法,比如:精簡冗余指令、優化系統的時鐘和優化工作時序等。
3.1 主程序設計
主程序開始后首先進行初始化,包括給相應的字符名稱賦值,設置串口通信參數等,然后進行通信鏈路的確定,這一步需要根據每個節點所在的位置和相鄰節點的位置來確定,所以需要先發送本身的序列號,再接收其他節點的信息,通過確認其他節點的序列號來得知相鄰的,可互相通信的節點,再將其他節點的序列號加在本身序列號之后進行發送,這樣,監控中心可根據接收的序列號的順序得到該條通信線路上所包含的所有節點。在序列號發完以后進入睡眠模式,直到被溫度測試指令喚醒以后,給DS18B20發初始化脈沖,發送skipROM命令,進行溫度的檢測,將測得的數據發送,復位中斷返回,再次進入睡眠模式[8],流程圖如圖5所示。
圖4 AT89C2051的外圍部分接線
圖5 主程序流程圖
3.2 溫度采集程序設計[9]
由于DS18B20由一根單線實現數據的讀和寫,所以使用的關鍵是總線時序設置。先初始化,接著主機釋放總線進入接收狀態。流程圖如圖6所示。
3.3 無線傳輸程序設計[10]
nRF24L01的設置包括:頻道設置、本地地址設置和發射速率設置等。本設計中,使用Enhanced ShockBurstTM 收發模式。設置完成后,可以由單片機進行查詢模式的數據發送,流程圖如圖7,圖8所示。
圖6 DS18B20溫度檢測部分流程圖
圖7 nRF24L01發送流程圖
圖8 nRF24L01接收流程圖
4 性能測試
4.1 節點功耗測試
檢測狀態時功率=DS18B20的典型功率+AT89C2051在工作狀態時的功率+nRF24L01工作在RX和TX模式下的功率=3 V×1 mA+3 V×2.5 mA+3 V×(11.3+12.3) mA=3 V×27.1 mA=81.3 mW
數據轉發時功率=AT89C2051在工作狀態時的功率+nRF24L01工作在RX和TX模式下的功率=3 V×2.5 mA+3 V×(11.3+12.3) mA=80.3 mW
休眠時功率=AT89C2051在休眠時的功率+ nRF24L01工作在休眠模式下的功率 =3 V×2.5 μA+3 V×900 nA=3 V×3.4 μA=10.2 μW
4.2 通信質量測試
在室外無障礙的環境下進行測試,分別選取5個測試距離,接收到的正確率見表1。
表1 通信距離和正確率的關系
[通信距離 /m\&正確率 /%\&5\&100\&10\&100\&20\&99\&50\&10\&80\&0\&]
5 結 語
該無線傳感器網絡節點電路簡單,功耗低,性能穩定,可靠性高,可以應用于檢測環境、糧庫及展廳等封閉空間或其他需要多點溫度檢測的場合。
參考文獻
[1] 孫利民,李建中,陳渝,等.無線傳感網絡[M].北京:清華大學出版社,2005.
[2] AKYILDIZ I F, SU W, CAYIRCI E. Wireless sensor networks: a survey [J]. Computer Ne tworks, 2002, 38(3): 393?422.
[3] 張曉彤.無線傳感器網絡與人工生命[M].北京:國防工業出版社,2008.
[4] 曾勇,楊濤,馮月暉.基于nRF24L01的超低功耗無線傳感器網絡節點設計[J].電子技術應用,2008(7):45?48.
[5] 焦鳳昌,龔仁喜,臧慧,等. 一種新型的無線低功耗環境指數傳感器[J].傳感器與微系統,2013(8):81?84.
[6] 求是科技.單片機典型模塊設計實例導航[M].北京:人民郵電出版社,2004.
[7] 胡漢才.單片機原理及其接口技術[M].北京:清華大學出版社,2004.
[8] 佘東,胡中玉.基于單片機的無線測溫系統設計[J].微型機與應用,2012,31(13):78?80.
[9] 蔡美琴,張為民.MCS?51系列單片機系統及其應用[M].2版.北京:高等教育出版社,2004.
[10] 張培仁.基于C語言編程MCS?51單片機原理與應用[M].北京:清華大學出版社,2003.