朱性偉,王子榮
(湖南大學(xué) 信息科學(xué)與工程學(xué)院,湖南 長沙 410072)
多深度土壤溫度無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計
朱性偉,王子榮
(湖南大學(xué) 信息科學(xué)與工程學(xué)院,湖南 長沙 410072)
針對多深度土壤溫度傳感器節(jié)點(diǎn)的設(shè)計要求,提出了一個二叉樹搜索算法。該算法通過單總線識別所有連接在單節(jié)點(diǎn)上的傳感器,并讀取它們采集的溫度。傳感器節(jié)點(diǎn)有低功耗和處理功能單一2個特性,算法采用遞歸方式使得其上代碼簡潔和緊湊。理論分析與實(shí)驗(yàn)結(jié)果證明了算法的可行性和有效性。該設(shè)計將廣泛應(yīng)用在無線傳感器網(wǎng)絡(luò)(WSNs)應(yīng)用背景下的實(shí)際生產(chǎn)和生活中。
多深度土壤溫度;單總線;無線傳感器網(wǎng)絡(luò);二叉樹搜索
無線傳感器網(wǎng)絡(luò)(wireless sensor networks,WSNs)系統(tǒng)中的節(jié)點(diǎn)使用內(nèi)置的傳感器采集周邊環(huán)境的信息,對這些信息進(jìn)行處理后,通過與其他節(jié)點(diǎn)協(xié)同工作,最終將有用的信息經(jīng)無線網(wǎng)絡(luò)發(fā)送出去。WSNs改變了人與自然界的交互方式,實(shí)現(xiàn)人與人、人與物、物與物之間的互聯(lián),把虛擬的信息世界與現(xiàn)實(shí)的物理世界鏈接起來,融為一體,擴(kuò)展了現(xiàn)有網(wǎng)絡(luò)的功能和人類認(rèn)識改造世界的能力。WSNs巨大的科學(xué)意義和應(yīng)用價值,已引起了世界各國學(xué)術(shù)界、軍事部門和工業(yè)界的極大關(guān)注,被譽(yù)為本世紀(jì)最有影響的技術(shù)革命和改變世界的技術(shù)[1]。傳感器網(wǎng)絡(luò)可有效地應(yīng)用于事件檢測、目標(biāo)定位、跟蹤和識別、信息無線傳輸和智能處理,在工業(yè)控制、農(nóng)業(yè)環(huán)境、國防軍事、安全反恐、交通管理、醫(yī)療衛(wèi)生和工業(yè)生產(chǎn)制造等領(lǐng)域應(yīng)用前景廣闊[2]。
隨著農(nóng)業(yè)現(xiàn)代化與信息化的快速發(fā)展和應(yīng)用需求的不斷擴(kuò)大,WSNs在現(xiàn)代精準(zhǔn)農(nóng)業(yè)中應(yīng)用會越來越廣泛。實(shí)際工程設(shè)計應(yīng)用中,單點(diǎn)往往需要采集多個傳感器信息,本文設(shè)計了具有多深度土壤溫度采集功能的單無線傳感器節(jié)點(diǎn)。硬件連接上直接通過單總線方式連接多個土壤溫度傳感器與節(jié)點(diǎn)單片機(jī)通信,在實(shí)際應(yīng)用中使用方便,可擴(kuò)展性強(qiáng)。軟件上根據(jù)識別多傳感器流程而設(shè)計二叉樹搜索算法,應(yīng)用在單片機(jī)上可行性高。結(jié)合硬件和軟件兩方面特性,本文設(shè)計的傳感器節(jié)點(diǎn)很好地滿足了監(jiān)測多深度土壤溫度應(yīng)用的需求。
1.1 WSNs架構(gòu)
WSNs由多功能網(wǎng)關(guān)和傳感器節(jié)點(diǎn)構(gòu)成,傳感器節(jié)點(diǎn)采集不同深度的土壤溫度信息,通過2.4 GHz無線射頻發(fā)送到多功能網(wǎng)關(guān),之后經(jīng)過GPRS/3G,LAN/WiFi傳到云端服務(wù)器,整個傳感器網(wǎng)絡(luò)拓?fù)浼軜?gòu)如圖1,每個傳感器節(jié)點(diǎn)具有路由功能,傳感器網(wǎng)絡(luò)具有多跳、自組織、自愈合的功能。
傳感器節(jié)點(diǎn)負(fù)責(zé)采集環(huán)境數(shù)據(jù),數(shù)據(jù)經(jīng)過網(wǎng)絡(luò)中的節(jié)點(diǎn)到達(dá)網(wǎng)關(guān)節(jié)點(diǎn)。傳感器節(jié)點(diǎn)通過周期性地采集數(shù)據(jù),設(shè)定時間間隔,通過定時器來實(shí)現(xiàn)中斷,而對查詢與控制命令采取信號中斷響應(yīng)的方式[3]。
圖1 網(wǎng)絡(luò)拓?fù)鋱DFig 1 Networks topology diagram
傳感器節(jié)點(diǎn)單片機(jī)基于CC2530,它是用于2.4 GHz IEEE 802.15.4,Zig Bee和RF4CE應(yīng)用的真正的片上系統(tǒng)解決方案,結(jié)合了領(lǐng)先的RF收發(fā)器的優(yōu)良性能、業(yè)界標(biāo)準(zhǔn)的增強(qiáng)型8051CPU、系統(tǒng)內(nèi)可編程閃存、8kB RAM以及其他強(qiáng)大的功能[4]。
WSNs比一般的網(wǎng)絡(luò)在設(shè)計和資源利用上有諸多的限制,設(shè)計限制來自所觀測的環(huán)境[5]。WSNs節(jié)點(diǎn)具有以下3個特點(diǎn):
1)傳感器網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量大,形成自組織、多跳、低功耗網(wǎng)絡(luò);
2)整個網(wǎng)絡(luò)的節(jié)點(diǎn)只需要部署一次,傳感節(jié)點(diǎn)功能固定;
3)傳感器節(jié)點(diǎn)功能單一,處理數(shù)據(jù)的能力有限,只負(fù)責(zé)采集環(huán)境信息和轉(zhuǎn)發(fā)數(shù)據(jù)包。
1.2 傳感器節(jié)點(diǎn)結(jié)構(gòu)
節(jié)點(diǎn)功能模塊組成如圖2所示,包括CC2530模塊組件、傳感采集組件、無線通信組件以及太陽能供電組件。
圖2 傳感器節(jié)點(diǎn)功能模塊圖Fig 2 Function module chart of sensor node
選用DS18B20作為傳感器采集部件,監(jiān)測多深度土壤溫度。DS18B20由DALLAS(達(dá)拉斯)半導(dǎo)體公司生產(chǎn),是一種超小體積、超低硬件開銷、抗干擾能力強(qiáng)、精度高的單線數(shù)字式智能溫度傳感器[6]。
DS18B20結(jié)構(gòu)框圖如圖3。首先,傳感器唯一的64位0和1序列號存儲在ROM中,算法據(jù)此識別單總線上連接的傳感器。其次,DQ接口與CC2530的I/O接口相連接,實(shí)現(xiàn)數(shù)據(jù)的雙向通信。
圖3 DS18B20結(jié)構(gòu)框圖Fig 3 Structure block diagram of DS18B20
傳感器節(jié)點(diǎn)傳感器連接圖如圖4。圖示的3只土壤溫度傳感器分別采集地表下30,60,90 cm處土壤的溫度。它們的DQ線通過單總線與傳感器節(jié)點(diǎn)的CC2530的 I/O接口連接。所有的VCC連接電源,所有的GND接地。
圖4 傳感器連接電路圖Fig 4 Connected circuit diagram of sensors
傳感器通過單總線與傳感器節(jié)點(diǎn)CC2530的I/O端口連接。電路結(jié)構(gòu)設(shè)計和硬件開銷大為簡化[7],節(jié)省能耗;此外簡便的連線方式極大地降低用戶的學(xué)習(xí)成本,提升用戶體驗(yàn)。
針對上述WSNs的特點(diǎn)和傳感器節(jié)點(diǎn)硬件的分析,傳感器節(jié)點(diǎn)軟件設(shè)計需考慮2個方面。首先,傳感器節(jié)點(diǎn)有著低功耗設(shè)計的應(yīng)用背景;其次,傳感器節(jié)點(diǎn)數(shù)據(jù)處理能力有限和嵌入式系統(tǒng)硬件如內(nèi)存的資源有限。
雖然TinyOS(專為WSNs設(shè)計的操作系統(tǒng))采用了事件驅(qū)動模型,這樣可以在很小的空間中處理高并發(fā)事件,并且達(dá)到節(jié)能的目的[8]。但是,應(yīng)用程序軟件上需要設(shè)計算法以適應(yīng)功能受限的系統(tǒng)和硬件。
3.1 節(jié)點(diǎn)傳感器數(shù)據(jù)采集設(shè)計
3.1.1 節(jié)點(diǎn)傳感器數(shù)據(jù)采集
根據(jù)上述節(jié)點(diǎn)傳感器數(shù)據(jù)采集分析,傳感器數(shù)據(jù)采集流程如圖5所示。通過單總線讀取多深度土壤溫度需要3步:1)搜索ROM,讀取單總線上連接的DS18B20的ROM中存儲的序列號;2)匹配ROM,根據(jù)搜索得到的64位序列號匹配識別DS18B20;3)讀取DS18B20的2bytes數(shù)字輸出。
圖5 傳感器數(shù)據(jù)采集流程圖Fig 5 Flow chart of sensor data collection
3.1.2 二叉樹遞歸搜索算法設(shè)計
針對搜索ROM過程總是在序列號的‘0’和‘1’2個分支之間進(jìn)行(圖6),從而設(shè)計二叉樹遞歸搜索算法。主方是CC2530,從方是DS18B20。主方搜索從方的ROM包括3個原子操作:通過單總線讀取序列號的一位,通過單總線讀取序列號一位的反碼,向單總線寫‘0’或者‘1’。二叉樹遞歸搜索算法流程如下:
1)主方從單總線連續(xù)接收2位,一位是從方向單總線發(fā)送自己序列號的一位,并且產(chǎn)生“線與”,另一位是從方向單總線發(fā)送序列號一位的反碼,并且產(chǎn)生“線與”。
2)主方判斷接收的序列,若是‘00’序列,說明單總線上既存在左子節(jié)點(diǎn)‘0’又存在右子節(jié)點(diǎn)‘1’,則主方先發(fā)送‘0’進(jìn)入左側(cè)分支,并記錄二叉樹分叉點(diǎn)的深度,跳轉(zhuǎn)第一步。遞歸返回至分叉點(diǎn)深度之前,主方發(fā)送前一個已識別傳感器在分叉深度之前的所有序列號位,再發(fā)送‘1’進(jìn)入右側(cè)分支。跳轉(zhuǎn)第一步;若是‘01’序列,說明單總線上只存在左子節(jié)點(diǎn)‘0’,主方發(fā)送‘0’進(jìn)入左側(cè)分支,跳轉(zhuǎn)第一步;若是‘10’序列,則單總線上只存在右子節(jié)點(diǎn)‘1’,主方發(fā)送‘1’進(jìn)入右側(cè)分支,跳轉(zhuǎn)第一步。遞歸讀取傳感器64位序列號,搜索至葉子節(jié)點(diǎn)并記錄下所有連接在單總線上的傳感器的序列號。
圖6 搜索ROM流程圖Fig 6 ROM searching flow chart
3.2 搜索ROM算法分析
算法完全結(jié)合了二叉樹功能簡便、結(jié)構(gòu)清晰和DS18B20單總線數(shù)據(jù)通信方式2個特性。
在多深度土壤溫度傳感器節(jié)點(diǎn)設(shè)計中,識別傳感器尤其是相鄰傳感器的流程類似于二叉樹遞歸搜索過程。但是由于傳感器節(jié)點(diǎn)的資源受限,在其上實(shí)現(xiàn)的算法與一般二叉樹搜索算法存在明顯差異。
3.2.1 算法空間特點(diǎn)分析
在開發(fā)應(yīng)用程序時,必須考慮內(nèi)存的分配情況并關(guān)注應(yīng)用程序需要運(yùn)行空間的大小[9]。算法中的遞歸函數(shù)具有64層嵌套遞歸,因此,使用函數(shù)局部變量記錄二叉樹分叉點(diǎn)的遞歸深度會占用大量內(nèi)存棧空間,最終造成內(nèi)存棧溢出。
使用一個全局?jǐn)?shù)組,記錄搜索序列號過程中二叉樹分叉點(diǎn)的深度。全局?jǐn)?shù)組在定義在堆空間,節(jié)省了程序運(yùn)行時所需的內(nèi)存??臻g。向葉子方向搜索二叉樹,數(shù)組存儲記錄分叉點(diǎn)深度。向樹根方向搜索二叉樹,即返回至分叉點(diǎn)所在深度時,讀出數(shù)組中記錄的分叉點(diǎn)深度。
3.2.2 算法時間特點(diǎn)分析
對于線性數(shù)據(jù)結(jié)構(gòu),適合用迭代循環(huán)方法,而對于樹狀數(shù)據(jù)結(jié)構(gòu),比如二叉樹,遞歸方法則非常簡捷。
讀取傳感器序列號流程緊湊,代碼實(shí)現(xiàn)簡捷。因?yàn)橄噜弬鞲衅鞯男蛄刑柨偸谴嬖诜植纥c(diǎn),而分叉點(diǎn)所在深度之上各個位是相同的,所以,在搜索當(dāng)前傳感器序列號時,連續(xù)發(fā)送上一個已搜索并且重復(fù)的序列號位,以省略條件判斷語句,節(jié)省算法時間開銷。
將所設(shè)計的傳感器節(jié)點(diǎn)安放在實(shí)際監(jiān)測環(huán)境中,多個DS18B20分別部署在不同深度的同一土壤中,實(shí)時采集多深度土壤溫度。圖7為某白天一時段中多深度土壤的溫度變化曲線。結(jié)果表明:設(shè)計的傳感器節(jié)點(diǎn)采集多深度土壤溫度是可行并且有效的。
圖7 多深度土壤溫度變化曲線Fig 7 Graph of temperature variation of multi-depth soil
在WSNs應(yīng)用背景下,針對傳感節(jié)點(diǎn)低功耗設(shè)計特性,和由此帶來的硬件以及系統(tǒng)上的功能受限,對二叉樹遞歸搜索算法進(jìn)行改進(jìn)以適應(yīng)之。實(shí)現(xiàn)搜索單總線上傳感器序列號以識別它們這一核心功能,之后傳感器節(jié)點(diǎn)讀取其上各個傳感器采集的數(shù)據(jù),完成監(jiān)測多深度土壤溫度的任務(wù)。在對土壤溫度要求嚴(yán)格的農(nóng)作物種植環(huán)境下,傳感器節(jié)點(diǎn)負(fù)責(zé)測試不同深度土壤溫度,便于生產(chǎn)者及時掌握土壤溫度值,以采取相應(yīng)措施。這樣農(nóng)業(yè)將有可能逐漸地從以人為中心,依賴于孤立機(jī)械的生產(chǎn)模式轉(zhuǎn)向以信息和軟件為中心的生產(chǎn)模式。
[1] 孫利民.無線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2009:1-25.
[2] 孫其博,劉 杰,黎 羴,等.物聯(lián)網(wǎng):概念、架構(gòu)與關(guān)鍵技術(shù)研究綜述[J].北京郵電大學(xué)學(xué)報,2010,33(3):3-4.
[3] 朱恒軍,于泓博,王發(fā)智,等.環(huán)境監(jiān)測物聯(lián)網(wǎng)傳感器節(jié)點(diǎn)設(shè)計與實(shí)現(xiàn)[J].計算機(jī)科學(xué),2012,39(8):128-129.
[4] 李外云.CC2530與無線傳感器網(wǎng)絡(luò)[M].北京:北京航空航天大學(xué)出版社,2013:172-173.
[5] 宮 鵬.無線傳感器網(wǎng)絡(luò)技術(shù)環(huán)境應(yīng)用進(jìn)展[J].遙感技術(shù),2010,14(2):387-388.
[6] DS18B20.PDF[EB/OL].[2010—03—15].http:∥www.dalsemi.com.
[7] 丁曉進(jìn),史小軍,朱 為,等.基于DS18B20的多點(diǎn)溫度檢測[J].電子工程師,2006,32(7):2-3.
[8] 王 漫,何 寧,裴 俊,等.面向無線傳感器網(wǎng)絡(luò)應(yīng)用的嵌入式操作系統(tǒng)綜述[J].計算機(jī)應(yīng)用與軟件,2006,24(6):45.
[9] 夏瑋瑋,沈連豐,肖 捷,等.嵌入式系統(tǒng)關(guān)鍵技術(shù)分析與開發(fā)應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003(2):5-6.
Design of multi-depth soil temperature sensor node for WSNs
ZHU Xing-wei, WANG Zi-rong
(College of Information Science and Engineering,Hunan University,Changsha 410072,China)
Aiming at requirement for design of multi-depth soil temperature sensor node,present a binary tree search algorithm. The algorithm recognizes sensors which connected to single node by 1-bus and reads the acquired temperature. The sensor node has features of low power consumption and single processing function,so the algorithm adopts recursive method to make the code concise and compact. Theoretical analysis and experimental results demonstrate feasibility and effectiveness of the algorithm. This design will be widely applied in actual production and life,under application background of wireless sensor networks(WSNs) development.
multi-depth soil temperature; 1-bus; WSNs; binary tree search
10.13873/J.1000—9787(2014)10—0073—03
2014—03—27
TP 212.9
A
1000—9787(2014)10—0073—03
朱性偉(1989-),女,河南新鄉(xiāng)人,碩士研究生,研究方向?yàn)槲锫?lián)網(wǎng)無線傳感網(wǎng)系統(tǒng)。