黑龍江 趙峰
應用TinyOS系統開發無線傳感器節點應用程序的探索
黑龍江 趙峰
無線傳感器網絡是新興網絡技術,是當前國內外傳感器技術領域的熱點研究課題。本文基于自動抄表技術思想,設計了嵌入到燃氣表中的無線傳感器節點的軟件結構,采用的軟件開發系統是專用于無線傳感器網絡的操作系統TinyOS。程序經測試,運行穩定,數據采集準確度較高,滿足燃氣表遠程抄表的基本應用要求。
正常級;休眠級;單元網關;基站
文章提出一種將無線傳感器節點嵌入到燃氣表中,實現遠程無線自動抄表的技術。本技術不同于IC卡表系統,它的計費、收費全部移交到燃氣公司的服務器端進行處理,而且又能有效地監管用戶實際使用情況,提高了抄表效率,降低了成本。圖1為基于無線傳感器網絡的燃氣表遠程抄表系統。

在本方案中,我們將無線傳感器節點安裝在燃氣表內,燃氣用量用脈沖計數,節點將脈沖計數以無線方式傳遞到基站,由基站將用戶實際用燃氣數換算出來。無線傳感器節點由傳感器模塊、處理器模塊、無線通信模塊和能量供應模塊四部分組成。在本系統中,處理器模塊采用ATmega128L,它是基于AVRRISC結構的8位微控制器,是AVR系列中功能比較強大的單片機,具有128KB閃存,4KBSRAM,功耗16.5mW。無線通信模塊采用符合2.4GHz IEEE802.15.4標準的射頻收發器CC2420。它基于Chipcon公司的SmartRF技術,以0.18UinCMOS工藝制成,性能穩定且功耗極低。
TinyOS是專門為無線傳感器網絡定制的微型化操作系統,它采用基于組件化和并行模型的nesC語言,產生的目標代碼較小,滿足了無線傳感器節點處理能力和存儲能力有限的要求,并且具有較強的網絡處理和資源收集能力。
在本系統中,基站是用來完成將轉發節點融合上來的數據進行通信協議轉換并上傳至服務器或向無線傳感器節點轉發服務器下達的命令。
節點與基站通信采用TOSBase無線——串口通信組件。在通信中為了分辨不同的設備,采取了地址編碼的方法。即為基站和節點統一編碼,每一個設備存在一個唯一的地址碼(網絡組號+設備地址碼)。在通信包中加入目的設備地址碼,以保證此包到達目的設備并只有此目的設備對此包做出響應。
網絡組號:占1字節,可以是服務器分發給基站的基站ID號,也可能是基站發給節點的ID號。基站與服務器通信的網絡組號為0。
通信協議中的數據包長度=data域的長度。
目的地址:占1字節,接收數據的地址。
數據內容:多字節,可以是壓縮或加密的數據。
活動消息(ActiveMessage,AM)包含了addr,type,group信息,有此定義消息就可以在節點與節點之間進行字節傳輸。數據包中的數據(data)域,根據數據包類型不同,其占用字節數也不同,在TinyOS消息的數據部分長度默認29個字節,通過修改Makefile文件中的MSG_SIZE,最大可以是36。
采用修改后的GAF算法,設每棟住宅為一組無線傳感器網絡,在每棟住宅安裝一個基站。考慮到定位問題,基站一般不安裝在大樓中間單元,它一定放置在其左邊的單元數不等于右邊單元數的單元中。這里定義了幾個特定的節點,有上傳單元網關、下傳單元網關。單元網關為相鄰單元相互通信的簇頭。上傳單元網關為本單元中數據發送到基站時通過的單元網關,單元中靠近基站一側的節點可以作為上傳單元網關。下傳單元網關為本單元中基站發出的數據通過的本單元網關傳到下一個單元的單元網關,單元中遠離基站一側的節點可以作為下傳單元網關。
節點初始化后,開始形成拓撲。每個單元的各層進行分簇,從頂層起每兩層為一簇,若最后剩三層則歸為一簇。簇頭選舉以能量為標準,安裝初始時,因為各節點能量相同,按照節點ID最小的為簇頭,當簇頭每發1000字符后重新生成簇頭一次,能量高者為新簇頭。
本系統適于所有節點都處于一個平面的情況,即適于每層有單戶居民或雙戶居民的住宅樓。節點數據傳輸分為上傳和下傳,上傳的定義為節點把數據傳到簇頭,簇頭再把數據融合后傳到上傳單元網關中,通過多個上傳單元網關傳到基站。下傳的定義為基站發出的數據通過多個下傳單元網關,傳輸到指定單元后,由其單元網關多跳到簇頭,簇頭再轉發給節點(周期可能較長,取決于節點喚醒時,簇頭是否運行)。在沒有數據傳輸時,為減少能量消耗,節點處于休眠狀態。在本設計中,考慮簇頭由于能量的變化而經常改變,因此采取節點正常級+休眠級的工作模式。正常級為單元網關處于每5秒喚醒自己1秒的機制,采用簇頭每10秒喚醒自己1秒的機制,簇中節點每5分鐘喚醒自己一次,如果簇頭正在休眠則定義先醒的節點是臨時代理簇頭。休眠級為單元網關、簇頭、節點處于每1(或幾個)小時喚醒自己1次的機制,如果單元網關、簇頭正在休眠則定義先醒的節點是臨時代理簇頭;如果節點失去聯系(中途換電池等),每5分鐘喚醒自己一次,每次10秒(必須和正常級中的秒數對應),三次后若仍無反應,則認為該節點失效。若有些節點因故障報停,影響整個網絡,則需要維修人員在單元中添加轉發節點。
本文詳細闡述了無線傳感器節點在燃氣表中應用程序的設計,此程序經測試運行穩定,數據采集準確度較高,并能流暢地上傳到PC機,同時實現了傳感器網絡必需的低功耗。
[1]孫利民,李建中,等.無線傳感器網絡.北京:清華大學出版社,2005年.
[2]張帆,李文峰.TinyOS消息通訊機制以及TOSBase無線-串口通訊組件分析.中國科技論文在線,2005-05-15.
[3]David Gay,Philip Levis,David Culler,Eric Brewer.nesC 1.1 Language Reference Manual.May2003.
[4]Mote In-Network Programming User Reference.TOS In-Network ProgrammingUser Reference.version 20030315.
(作者單位:齊齊哈爾工程學院)
(編輯 李艷華)