低功耗無(wú)線(xiàn)傳感器網(wǎng)絡(luò )系統實(shí)現
為了支持低功耗應用,CC1110芯片除正常的Active模式外還支持四種省電模式,即PM0、PM1、PM2和PM3。在本網(wǎng)絡(luò )協(xié)議中,傳感采集節點(diǎn)存在以下三種工作狀態(tài):數據采集、數據傳輸及睡眠狀態(tài)。其中,數據采集和數據傳輸均對應于CC1110的Active模式,在這兩種狀態(tài)下,節點(diǎn)工作于13 MHz內部時(shí)鐘或外部高頻時(shí)鐘。不同的是,在數據采集狀態(tài)下,節點(diǎn)將使能傳感器電源從而讀取傳感器數據;而在數據傳輸狀態(tài)下,節點(diǎn)打開(kāi)射頻接口進(jìn)行數據傳輸,此時(shí)可關(guān)閉傳感器電源以節約能源;睡眠狀態(tài)對應于芯片的PM2省電模式,CPU將停止工作而僅有內部睡眠定時(shí)器仍然處于工作狀態(tài),睡眠時(shí)鐘可選擇內部34 kHz低頻時(shí)鐘或外部32.768 kHz輸入,芯片可借助內部睡眠時(shí)鐘實(shí)現喚醒,在該狀態(tài)下,由于所有外部接口均處于關(guān)閉狀態(tài),因此,系統電流可維持在10 μA以?xún)?。借助于Sensor-Push傳感器網(wǎng)絡(luò )協(xié)議,節點(diǎn)將在大部分時(shí)間內保持在睡眠狀態(tài),從而保證了網(wǎng)絡(luò )的低功耗。
網(wǎng)關(guān)節點(diǎn)可采取與傳感采集節點(diǎn)相類(lèi)似的硬件設計,但有以下同之處:
(1)網(wǎng)關(guān)節點(diǎn)除了與傳感采集節點(diǎn)相通信外,還需要裝備相應的無(wú)線(xiàn)或有線(xiàn)主干網(wǎng)絡(luò )連接設備,本設計采用串口轉以太網(wǎng)模塊連接無(wú)線(xiàn)網(wǎng)橋實(shí)現遠程通信;
(2)網(wǎng)關(guān)節點(diǎn)一般沒(méi)有嚴格的體積限制,因此可裝備大容量鋰電池、蓄電池或者直接連接外部電源;
(3)網(wǎng)關(guān)節點(diǎn)一般不需要裝備傳感器模塊;
(4)網(wǎng)關(guān)節點(diǎn)一般對內存空間有一定要求,需要能夠緩存一定時(shí)間的節點(diǎn)傳感信息。
2 低功耗Sensor-Push傳感器網(wǎng)絡(luò )協(xié)議
一個(gè)健壯、低功耗的網(wǎng)絡(luò )協(xié)議是無(wú)線(xiàn)傳感器網(wǎng)絡(luò )系統運行的關(guān)鍵,本系統采取了自主研發(fā)的低功耗Sensor-Push傳感器網(wǎng)絡(luò )協(xié)議。該協(xié)議針對無(wú)線(xiàn)傳感器網(wǎng)絡(luò )的典型周期性數據采集應用進(jìn)行深度優(yōu)化,具有實(shí)現簡(jiǎn)單、自組織、低功耗、高可靠性、可擴展等特點(diǎn)。
2.1 傳感器網(wǎng)絡(luò )周期性數據采集應用的特點(diǎn)
在眾多無(wú)線(xiàn)傳感器網(wǎng)絡(luò )應用中,周期性的數據采集最為典型。該類(lèi)型的應用一般要求網(wǎng)絡(luò )內的傳感采集節點(diǎn)以一定的采樣周期對感興趣的環(huán)境數據進(jìn)行采樣,并在指定時(shí)間內將該采樣數據傳輸至遠程終端。一般情況下,其對數據延時(shí)并不敏感,節點(diǎn)只要能保證在下一個(gè)采樣來(lái)臨前將數據成功上傳即可。傳感采集節點(diǎn)通常只需和網(wǎng)關(guān)節點(diǎn)通信,而無(wú)需相互通信,如圖1所示。
可根據該應用的數據特征對網(wǎng)絡(luò )協(xié)議進(jìn)行充分優(yōu)化,從而更好地達到低功耗、高可靠性的設計要求。本文的Sensor-Push協(xié)議即在此背景下研究而成,協(xié)議中采集節點(diǎn)將主動(dòng)向網(wǎng)關(guān)節點(diǎn)推入采樣數據而無(wú)需網(wǎng)關(guān)節點(diǎn)進(jìn)行控制或輪詢(xún),大大簡(jiǎn)化了上層應用的編寫(xiě),提升了用戶(hù)體驗。
2.2 Sensor-Push協(xié)議詳述
Sensor-Push協(xié)議是一個(gè)融合了傳統意義上的媒體訪(fǎng)問(wèn)接入層及應用層的綜合協(xié)議。該協(xié)議的主要創(chuàng )新點(diǎn)在于實(shí)現了低復雜度的時(shí)分媒體訪(fǎng)問(wèn),并與推入方式為主的應用相結合,從而達到了系統層面的優(yōu)化。該協(xié)議對物理層除要求使用無(wú)線(xiàn)射頻技術(shù)外不做特殊要求,但推薦使用頻移鍵控(FSK)或高斯頻移鍵控(GFSK)方式的射頻模塊,并最好能夠支持多個(gè)頻點(diǎn),以便在不同子網(wǎng)內配置不同的頻點(diǎn),在最大程度上防止子網(wǎng)間沖突,但這并非強制要求。
與其他協(xié)議一樣,Sensor-Push協(xié)議同樣要求網(wǎng)絡(luò )內的節點(diǎn)擁有唯一的節點(diǎn)地址。協(xié)議中的節點(diǎn)地址由子網(wǎng)ID與網(wǎng)內ID拼接組成,其具體位長(cháng)由網(wǎng)絡(luò )設計要求決定。例如,假定網(wǎng)絡(luò )所要求支持的最大子網(wǎng)數目為4,每個(gè)子網(wǎng)內支持的節點(diǎn)數目為64,那么節點(diǎn)地址可選擇為1 B,其中高2 bit表示節點(diǎn)所處的子網(wǎng)編號,而低6 bit則表示了節點(diǎn)在相應子網(wǎng)內的序列號。在具體實(shí)現中,節點(diǎn)地址可事先燒錄或通過(guò)焊接不同上下拉電阻改變外部IO管腳電平的方式為每個(gè)節點(diǎn)分配唯一的地址,當然實(shí)現方法也并不局限于此。為區別傳感采集節點(diǎn)及網(wǎng)關(guān)節點(diǎn),本設計限定網(wǎng)關(guān)節點(diǎn)的網(wǎng)內ID為全0。
Sensor-Push協(xié)議從媒體介入角度上看,屬于時(shí)分接入協(xié)議,與常用的CSMA協(xié)議相比,時(shí)分協(xié)議能更加有效地防止沖突且具有更高的能源利用率,這在節點(diǎn)密度較高的傳感器網(wǎng)絡(luò )應用中尤為突出。根據周期性數據采集的特點(diǎn),協(xié)議將時(shí)間分為長(cháng)度以Tp為采樣間隔的各個(gè)傳輸周期,在每個(gè)傳輸周期內再分割為以Tl為間隔的n個(gè)時(shí)隙,如圖4所示。
時(shí)鐘同步及時(shí)隙分配是時(shí)分協(xié)議的兩個(gè)研究重點(diǎn),在這里,為敘述方便,假定時(shí)鐘同步已經(jīng)完成,首先對時(shí)隙分配進(jìn)行介紹:Sensor-Push協(xié)議規定傳感采集節點(diǎn)根據自身的網(wǎng)內ID確定其所擁有的時(shí)隙,并在該時(shí)隙內進(jìn)行采樣數據傳輸。例如,網(wǎng)內ID為2的節點(diǎn)將在時(shí)隙2內發(fā)送采樣數據。需要說(shuō)明的是,為保證節點(diǎn)分配的時(shí)隙不重疊,實(shí)現中應設定單周期內時(shí)隙數目n≥子網(wǎng)內的所允許的最大節點(diǎn)數目。
由于數據流主要從傳感采集節點(diǎn)發(fā)送至網(wǎng)關(guān)節點(diǎn),因此協(xié)議中并未給網(wǎng)關(guān)節點(diǎn)分配時(shí)隙。由于網(wǎng)關(guān)節點(diǎn)供電狀態(tài)較好且對能源利用率要求相對較低,為簡(jiǎn)化實(shí)現,網(wǎng)關(guān)節點(diǎn)將一直處于接收狀態(tài)以接收任何可能的數據包。與網(wǎng)關(guān)節點(diǎn)不同,傳感采集節點(diǎn)將僅在其所擁有的時(shí)隙內向網(wǎng)關(guān)節點(diǎn)發(fā)送包含傳感信息的數據包。為提高數據傳輸的可靠性,傳感采集節點(diǎn)在發(fā)送完數據包后還將等待網(wǎng)關(guān)節點(diǎn)發(fā)回的應答包(ACK數據包)以確定數據的正確接收。在此過(guò)程中,傳感節點(diǎn)可設置一定的超時(shí)時(shí)間Tack,如在該時(shí)間內仍然未接收到應答包,傳感節點(diǎn)可選擇進(jìn)行重發(fā)直至到達最大重發(fā)上限Nretry。應答包是網(wǎng)關(guān)節點(diǎn)向傳感采集節點(diǎn)發(fā)送的主要數據包,它除了進(jìn)行數據包確認外,另一個(gè)重要功能就是嵌入網(wǎng)關(guān)節點(diǎn)需要發(fā)送給傳感采集節點(diǎn)的信息。
實(shí)現時(shí)鐘同步的核心在于確保網(wǎng)關(guān)節點(diǎn)能夠周期性地向傳感采集節點(diǎn)廣播參考時(shí)鐘。在Sensor-Push協(xié)議中,將時(shí)間戳嵌入應答包中,傳感節點(diǎn)在確定傳感數據被正確接收的同時(shí),能夠獲得網(wǎng)關(guān)節點(diǎn)發(fā)來(lái)的參考時(shí)鐘信息。在獲得參考時(shí)鐘后,傳感節點(diǎn)可采用一定的同步算法[2-4]進(jìn)行時(shí)鐘調整,從而實(shí)現與參考時(shí)鐘的同步。同步算法的選擇可根據應用所要求的同步精度以及節點(diǎn)處理能力而定。若傳感網(wǎng)絡(luò )應用本身對采樣時(shí)間精度沒(méi)有特殊要求,那么協(xié)議的時(shí)鐘同步的精度無(wú)需太高,僅需保證能夠正常運行該時(shí)分協(xié)議即可,因而建議采用最簡(jiǎn)單的延時(shí)估計TTP算法[2]以降低實(shí)現的復雜度。
應答包除了嵌入時(shí)鐘信息外,甚至還可以嵌入用戶(hù)發(fā)送給網(wǎng)絡(luò )的控制命令及動(dòng)態(tài)參數等,如網(wǎng)絡(luò )的采樣周期Tp、時(shí)隙寬度Tl等。因此,用戶(hù)可以在遠程直接對網(wǎng)絡(luò )參數進(jìn)行調整和優(yōu)化,從而具有更強的靈活度和可擴展性。時(shí)隙寬度Tl的最小值受到時(shí)鐘精度、采樣數據包和應答包的傳輸時(shí)間的限制,一般要求Tl大于正常情況下的時(shí)鐘最大誤差與Nretry個(gè)采樣數據包以及應答包的傳輸時(shí)間之和。
Sensor-Push的時(shí)分機制有效地防止了節點(diǎn)間數據傳輸的沖突,消除了由于沖撞而導致的數據丟失或重發(fā),因此通常情況下,傳感采集節點(diǎn)僅需在每個(gè)采樣周期進(jìn)行一次傳感數據采集、一次傳感數據包發(fā)送以及一次應答包的接收即可,而在其余時(shí)間內均可處于能耗極低的睡眠模式,具有低功耗的特性。為進(jìn)一步消除由于信道環(huán)境變化所導致的少量丟包,Sensor-Push協(xié)議使用了重發(fā)機制,因而能夠具有更高的可靠性。
3 應用實(shí)例的設計參數及實(shí)現
本系統的實(shí)例應用環(huán)境為某林園內1 000 m2范圍內的溫濕度監測,采樣間隔為30 min,最大支持的傳感采集節點(diǎn)數目為32,采樣數據需傳輸至位于1 km外的遠端服務(wù)器。在系統設計中,使用了TI公司的CC1110芯片,將傳輸頻點(diǎn)定為433 MHz,采用1.2 Kb/s Machester編碼及GFSK調制以獲得最遠的傳輸距離及最低的誤碼率。在本應用中,由于監測范圍不大,所有節點(diǎn)均可與網(wǎng)關(guān)節點(diǎn)直接通信,因而網(wǎng)絡(luò )中僅存在一個(gè)子網(wǎng)。網(wǎng)關(guān)節點(diǎn)通過(guò)串口轉以太網(wǎng)模塊連接無(wú)線(xiàn)網(wǎng)橋與1 km外的另一個(gè)無(wú)線(xiàn)網(wǎng)橋進(jìn)行直接通信。在Sensor-Push協(xié)議實(shí)現上,將采樣周期Tp設定為30 min、時(shí)隙寬度Tl設定為5 s、超時(shí)時(shí)間為500 ms、最大重傳次數Nretry為3、傳感信息的數據包為15 B、應答包亦為15 B。應用中采樣的溫濕度傳感器需要開(kāi)啟1 s后才能獲得準確的數據,因而數據采集將持續1 s時(shí)間。
在上述條件下,傳感采集節點(diǎn)的平均消耗電流Iavg約為15 μA,其計算如下:
Iavg=(5 mA×1 s+33 mA×0.1 s+20 mA×0.1 s)/30×60 s+10 μA=15 μA
其中,5 mA為數據采集狀態(tài)下的系統所消耗的電流;1 s為節點(diǎn)處于數據采集狀態(tài)下的時(shí)間;33 mA為節點(diǎn)發(fā)送傳感數據包時(shí)的工作電流;0.1 s為數據包的發(fā)送時(shí)間或應答包的接收時(shí)間;20 mA為節點(diǎn)接收應答包時(shí)的工作電流;10 μA為傳感節點(diǎn)處于睡眠狀態(tài)下系統消耗電流。根據以上計算,在配備400 mAh鋰電池的情況下,傳感采集節點(diǎn)可持續工作3年。
參考文獻
[1] AKYILDIZ I F, SU W, SANKARASUBRAMANIAM Y, et al. A survey on sensor networks[J]. IEEE Communications Magazine, 2002,40(8):102-114.
[2] ARVIND K. Probabilistic clock synchronization in distributed systems[J]. IEEE Transactions on Parallel and Distributed Systems,1994,5(5):474-487.
[3] ELSON J, GIROD L, ESTRIN D. Fine-grained network time synchronization using reference broadcasts[A]. Proceedings of Fifth Symposium on Operating Systems Design and Implementation (OSDI0 2002) [C]. 2002: 147-163.
[4] Su Ping. Delay measurement time synchronization for wireless sensor networks. IRB-TR-03, Intel Research,june 2003.
評論