嚴 妍, 孫 桐, 嚴錫君
(1.河海大學 水利水電學院,江蘇 南京 210098;2.河海大學 計算機與信息學院,江蘇 南京 210098)
精準農(nóng)業(yè)被稱為人類農(nóng)業(yè)生產(chǎn)的一場革命,并依托于信息技術(shù)。準確實時的信息供給是精準農(nóng)業(yè)的首要條件,它的實現(xiàn)依賴于大氣溫濕度、風速、光照強度況等多種先進的傳感器。近年來,出現(xiàn)了許多采用無線公共網(wǎng)絡(luò)等無線通訊方式進行農(nóng)、林、牧業(yè)的遠程監(jiān)測的研究。這些無線通信技術(shù)的優(yōu)勢是傳輸速度快、信息量大、傳距離輸遠,但因其功耗高、時延長、通信費用高等因素,在農(nóng)業(yè)環(huán)境監(jiān)測中未得到廣泛的應(yīng)用[1-2]。
無線傳感器網(wǎng)絡(luò)有監(jiān)測精度高、實時性好、容量大、覆蓋區(qū)域大、功耗和成本低等顯著優(yōu)點,適合于精準農(nóng)業(yè)環(huán)境監(jiān)控系統(tǒng)的實現(xiàn)。開發(fā)用于精準農(nóng)業(yè)監(jiān)測的無線傳感器網(wǎng)絡(luò),研究降低其能耗、提高其生命周期和可靠性等關(guān)鍵技術(shù),具有重要的實用價值。
大多數(shù)精準農(nóng)業(yè)監(jiān)測系統(tǒng)中,各個監(jiān)測區(qū)域相距較近,所布設(shè)的光照、濕度和溫度等傳感器節(jié)點可在同一無線節(jié)點的輻射區(qū)域內(nèi);同時,控制中心一般都可持續(xù)提供能量,匯聚節(jié) 點能量不限。為此,監(jiān)測WSN采用星型拓撲結(jié)構(gòu),系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 精準農(nóng)業(yè)監(jiān)測WSN總體架構(gòu)圖Fig.1 Structure of precision agriculture WSN
1)信息中心 即管理節(jié)點,負責接收匯聚節(jié)點通過GPRS網(wǎng)絡(luò)上行發(fā)送的數(shù)據(jù),并提供Web服務(wù)功能;當傳感器節(jié)點工作失常,或者“死亡”時,應(yīng)能及時采取相應(yīng)措施。
2)匯聚節(jié)點 周期性發(fā)送信標幀,接收傳感器節(jié)點發(fā)送的數(shù)據(jù)幀并通過GPRS網(wǎng)絡(luò)向信息中心轉(zhuǎn)發(fā);接受信息中心查詢命令,并向傳感器節(jié)點下傳完成查詢?nèi)蝿?wù)。
3)傳感器節(jié)點 采集監(jiān)測信息,并及時地向匯聚節(jié)點上傳數(shù)據(jù);當某個節(jié)點的能量低于一定門限時能及時上傳低電量告警信息。傳感器節(jié)點采用電池供電,在非工作狀態(tài)時一般處于休眠狀態(tài)。
精準農(nóng)業(yè)監(jiān)測WSN具有單覆蓋、匯聚節(jié)點能量不限、實時性要求不高等特點,為了降低節(jié)點功耗、延長網(wǎng)絡(luò)生命周期,改進傳統(tǒng)的MAC協(xié)議,提出一種基于TDMA的星型MAC協(xié)議—START-MAC協(xié)議。
START-MAC協(xié)議采用信標幀、確認幀和數(shù)據(jù)幀3種幀格式。其中信標幀用于匯聚節(jié)點的廣播同步;確認幀用于匯聚節(jié)點應(yīng)答傳感器節(jié)點;數(shù)據(jù)幀則用于承載傳感器節(jié)點向匯聚節(jié)點發(fā)送的數(shù)據(jù)。
協(xié)議中匯聚節(jié)點始終處于發(fā)送/接收轉(zhuǎn)換的狀態(tài),處于發(fā)送和處于接收狀態(tài)的時間比為1:1。匯聚節(jié)點每隔周期T即發(fā)送一定數(shù)目的廣播幀對全網(wǎng)進行廣播,該廣播幀包括了匯聚節(jié)點的同步信息。網(wǎng)內(nèi)要傳送數(shù)據(jù)的節(jié)點任意接收一幀廣播幀,否則就丟棄。接收了廣播幀的節(jié)點延時一段時間后待匯聚節(jié)點轉(zhuǎn)入接收狀態(tài),在規(guī)定的時隙里發(fā)送數(shù)據(jù),否則轉(zhuǎn)入睡眠。這樣既避免了數(shù)據(jù)碰撞,又降低了能量的損耗。
將傳感器節(jié)點一個周期內(nèi)協(xié)議步驟歸納如下:
1)控制傳感器模塊采集數(shù)據(jù),判斷是否為新數(shù)據(jù),是則進入步驟2)否則進入步驟4);
2)接收一幀信標幀,然后進入低功耗狀態(tài);
3)延時至規(guī)定時隙,向匯聚節(jié)點發(fā)送數(shù)據(jù);
4)進入低功耗,延時至下一周期。
匯聚節(jié)點一個周期內(nèi)協(xié)議步驟如下:
1)進入發(fā)送狀態(tài);
2)若有確認幀需要發(fā)送,則發(fā)送確認幀,然后發(fā)送信標幀對全網(wǎng)進行時間同步;
3)轉(zhuǎn)入接收狀態(tài),接收數(shù)據(jù);
4)若接收狀態(tài)接收到數(shù)據(jù),需要進行存儲、串口操作或LCD顯示,則進行該操作,結(jié)束后轉(zhuǎn)到步驟1。
一個完整的START-MAC協(xié)議如圖2所示。
圖2 通信協(xié)議結(jié)構(gòu)圖Fig.2 Communication-structure protocol
低功耗是設(shè)計傳感器節(jié)點的關(guān)鍵指標,MSP430F149MCU芯片因具有超低功耗、較高的數(shù)據(jù)處理速度快和系統(tǒng)工作穩(wěn)定而廣泛地應(yīng)用于的傳感器節(jié)點設(shè)計[3-4]。選用MSP430F149和CC1000射頻芯片設(shè)計溫濕度傳感器節(jié)點和光照傳感器節(jié)點。
1)溫濕度傳感器節(jié)點硬件設(shè)計
選用SHT10作溫濕度傳感器,采集農(nóng)田的大氣溫度和濕度,溫濕度傳感器節(jié)點硬件原理圖如圖3所示。
圖3 溫濕度傳感器節(jié)點硬件原理圖Fig.3 Hardware diagram of temperature and humidity sensor node
MSP430F149通過I/O口對SHT10的配置操作以及兩者間的數(shù)據(jù)通信,采用模擬串行方式對CC1000芯片進行配置操作、設(shè)置無線傳輸模塊的收發(fā)頻率、發(fā)送功率、數(shù)據(jù)速率等參數(shù),采用中斷方式,對CC1000寫入待發(fā)送的數(shù)據(jù)或讀出接收到的數(shù)據(jù)。
2)光照傳感器節(jié)點硬件設(shè)計
選用TSL230B作光照強度傳感器,采集農(nóng)田作物的光照情況,硬件原理圖如圖4所示。
MSP430F149通過I/O口對TSL230B進行配置操作,通過P1.1讀取芯片的輸出信號,計算頻率值,并通過換算,獲得最終的光照值。
圖4 光照強度傳感器節(jié)點硬件原理圖Fig.4 Hardware diagram of light intensity sensor node
3)傳感器節(jié)點軟件設(shè)計
上電后,進行系統(tǒng)初始化。然后,節(jié)點進行判斷,若節(jié)點為新節(jié)點,則進行申請入網(wǎng)操作。若不為新節(jié)點,則操作傳感器模塊進行數(shù)據(jù)采集,并與上一周期采集數(shù)據(jù)進行比較,若相同則丟棄,直接進入下一步,若不同,則記錄該數(shù)據(jù)。若檢測電量周期超時,則啟動ADC模塊進行低電量監(jiān)測,若達到門限值,則標記告警數(shù)據(jù)幀。如果當前周期內(nèi),傳感器節(jié)點有數(shù)據(jù)幀或告警數(shù)據(jù)幀需要發(fā)送,則等待兩個信標幀的時長接收一幀信標幀,然后關(guān)閉無線傳輸模塊進入LPM3低功耗狀態(tài),延時一段時間到規(guī)定時隙發(fā)送數(shù)據(jù),完成后再進入低功耗狀態(tài)等待下一周期。傳感器節(jié)點主程序流程圖如圖5所示。
圖5 傳感器節(jié)點主程序流程圖Fig.5 Main program flow chat of sensor nodes
1)匯聚節(jié)點硬件設(shè)計
選用高性能的ARM處理器LM3S6918設(shè)計匯聚節(jié)點,無低功耗要求,該節(jié)點硬件主要有時鐘模塊、射頻模塊、外部存儲模塊、電源模塊、串口模塊、看門狗及復(fù)位電路、LCD顯示模塊等模塊組成。匯聚節(jié)點的硬件結(jié)構(gòu)如圖6所示。
圖6 匯聚節(jié)點硬件結(jié)構(gòu)圖Fig.6 Sink Node hardware structure chart
當匯聚節(jié)點進行數(shù)據(jù)上傳及存儲時,要記錄當前的時間信息,選用PCF8563作實時鐘芯片,MCU通過I2C控制該芯片,由鋰電池為實時時鐘提供后備電源,采用CN3052A芯片控制鋰電池的充電過程[5]。LM3S6918提供2個全雙工同步/異步串口,擴展成一個RS232和一個RS485,分別用于連接顯示設(shè)備和GPRS模塊。
2)匯聚節(jié)點軟件設(shè)計
匯聚節(jié)點上電后,首先進行系統(tǒng)初始化。然后進入周期的開始狀態(tài),即信標幀發(fā)送階段。在此階段中,若上一周期匯聚節(jié)點接收到來自傳感器節(jié)點的加入申請或是告警數(shù)據(jù)幀,則需在該階段的開始對傳感器節(jié)點回復(fù)確認幀。接下來,匯聚節(jié)點開始發(fā)送信標幀,對網(wǎng)內(nèi)欲發(fā)送數(shù)據(jù)的傳感器節(jié)點進行時間同步。發(fā)送完所有的信標幀后,匯聚節(jié)點即轉(zhuǎn)入接收狀態(tài),接收數(shù)據(jù)幀。等待接收周期結(jié)束后,匯聚節(jié)點進行其他操作,若接收到傳感器數(shù)據(jù),則讀當前時間值,將其存儲在外部Flash中,并通過串口上傳信息中心。若接收到加入申請或告警數(shù)據(jù),則也通過串口操作上傳信息中心,待處理完成后標記確認幀。完成這些操作后,匯聚節(jié)點進入下一周期。匯聚節(jié)點的主程序流程圖如圖7所示。
1)丟包率測試
實驗條件:射頻收發(fā)頻率為433.3 MHz,節(jié)點發(fā)送增益為10 dBm,數(shù)據(jù)傳輸速率為9.6 kbit/s,數(shù)據(jù)編碼格式為NRZ碼,調(diào)制方式為FSK。
圖7 匯聚節(jié)點主程序流程Fig.7 Main program process of sink node
取一傳感器節(jié)點于實驗室環(huán)境下,傳感器節(jié)點共發(fā)送3 000個數(shù)據(jù)包,根據(jù)匯聚節(jié)點接收到的數(shù)據(jù)包數(shù),得到單點通信時網(wǎng)絡(luò)的丟包率,實驗結(jié)果如表1所示;取3個傳感器節(jié)點于實驗室環(huán)境下,對匯聚節(jié)點發(fā)送不同數(shù)據(jù)。每個節(jié)點均發(fā)送3 000個數(shù)據(jù),根據(jù)匯聚節(jié)點接收到的數(shù)據(jù)包數(shù),得到多點通信時網(wǎng)絡(luò)的丟包率,實驗結(jié)果如表2所示。從表中數(shù)據(jù)可以看到,系統(tǒng)的每個節(jié)點丟包率都在1%以下,能滿足系統(tǒng)的要求。
表1 單點通信丟包率Tab.1 Packet loss rate of one-point
表2 多點通信丟包率Tab.2 Packet loss rate of multi-point communication
2)功耗測試
傳感器節(jié)點主要有發(fā)射數(shù)據(jù)、接收數(shù)據(jù)、采集數(shù)據(jù)和休眠狀態(tài)4個狀態(tài)。經(jīng)實驗測得,傳感器節(jié)點發(fā)射狀態(tài)電流為24.72 mA,接收狀態(tài)電流為12.74 mA,活動狀態(tài)電流為2.53 mA,溫濕度傳感器節(jié)點采集數(shù)據(jù)時電流為3.20 mA,光照傳感器節(jié)點采集數(shù)據(jù)時電流為3.40 mA,節(jié)點處于休眠狀態(tài)時電流為2.1 μA。
射頻模塊從休眠狀態(tài)轉(zhuǎn)入接收或發(fā)射狀態(tài)所需時間為4.3 ms和4.6 ms。傳感器節(jié)點接收信標幀和發(fā)送數(shù)據(jù)幀的時間經(jīng)試驗測得分別為9.45 ms和7.95 ms。同時溫濕度傳感器采集一次完整數(shù)據(jù)的時間為4.1 ms,光照傳感器采集一次完整數(shù)據(jù)的時間約為100 μs。
當系統(tǒng)采用電池供電時,系統(tǒng)的平均工作電流決定了系統(tǒng)的壽命[6]。根據(jù)系統(tǒng)平均工作電流的計算公式,Iavg為系統(tǒng)活動狀態(tài)時的工作電流與活動時間的乘積與休眠狀態(tài)電流與休眠時間的乘積之和再去除以總的工作時間。假設(shè)節(jié)點每個工作周期為2 s,節(jié)點每兩個周期上傳一次數(shù)據(jù),每個周期都采集數(shù)據(jù)??梢杂嬎愠鰷貪穸葌鞲衅鞴?jié)點平均工作電流為。
因為光照傳感器節(jié)點采集數(shù)據(jù)時間遠小于溫濕度傳感器節(jié)點,因此平均工作電流小于0.111 8 mA。節(jié)點的工作截止電壓為2.7 V。假設(shè)采用常見的兩節(jié)1.5 V、容量為2 700 mAh左右的鋰電池供電,根據(jù)鋰電池放電特性,當放電至2.7 V時,電池容量損耗約2 000 mAh??梢源致怨烙嫵龉?jié)點的使用壽命約為2 000/0.1118=17 889 h=745.4天??梢钥吹剑瑐鞲衅鞴?jié)點應(yīng)當可以使用1年以上。
無線傳感器網(wǎng)絡(luò)的生命周期是其應(yīng)用的關(guān)鍵,從硬件設(shè)計和通訊協(xié)議兩個方面降低節(jié)點功耗,是目前普遍采用的主要措施。選用低功耗的MCU和射頻器件,可降低節(jié)點的工作功耗,選用具有微靜態(tài)功耗的MCU,能夠大大降低節(jié)點的平均功耗。針對小規(guī)模的農(nóng)田WSN星型結(jié)構(gòu)的特殊性,采用改進的MAC協(xié)議,可進一步降低節(jié)點功耗,延長網(wǎng)絡(luò)的生命周期。對中、大規(guī)模的農(nóng)田WSN,研究其網(wǎng)絡(luò)結(jié)構(gòu)及其通訊協(xié)議,以達到各種精準農(nóng)業(yè)監(jiān)測WSN的實際需要。
[1]韓安太,何勇,李劍鋒,等.基于無線傳感器網(wǎng)絡(luò)的多參數(shù)糧情自動檢測系統(tǒng)設(shè)計[J].農(nóng)業(yè)工程學報,2011,27(7):231-237.HAN An-tai,HE Yong,LI Jian-feng,et al.Design multiparameter grain for automatic detection system based on wireless sensor networks[J].Agricultural Engineering,2011,27(7):231-237.
[2]李建中,高宏.無線傳感器網(wǎng)絡(luò)的研究進展[J].計算機研究與發(fā)展,2008,45(1):1-15.LI Jian-zhong,GAO Hong.The development of study on wirelesssensornetworks[J].Study and developmentof computer,2008,45(1):1-15.
[3]秦龍.MSP430應(yīng)用系統(tǒng)開發(fā)典型實例[M].北京:中國電力出版社,2005.
[4]沈建華,楊艷琴,翟驍曙.MSP430系列16位超低功耗單片機實踐與系統(tǒng)設(shè)計[M].北京:清華大學出版社,2005.
[5]Fei Ldp.Energy-efficient MAC protocols for Wireless Sensor Networks[J].Information and Communications Technologies,2009,3(3):32-36.
[6]孫利民,李建中,陳渝.無線傳感器網(wǎng)絡(luò)[M].北京:清華大學出版社,2005.