江西三川水表股份有限公司 曾茂華 宋財華
摘要: 本文章簡單地介紹一個比較完整的無線網(wǎng)絡(luò)集抄系統(tǒng)。
關(guān)鍵字: Zigbee,TinyOS,中繼,無線節(jié)電,無線遠程終端,無線手持機,無線hub,上位機管理系統(tǒng)。
一,引言
現(xiàn)階段,無線網(wǎng)絡(luò)技術(shù)正飛速地進入許多應(yīng)用領(lǐng)域,與有線設(shè)備相比其具有成本低、攜帶方便、無需布線等優(yōu)點,特別適用于手持設(shè)備的通信、電池供電設(shè)備、遙控、遙測、小型無線網(wǎng)絡(luò)、無線抄表、門禁系統(tǒng)、小區(qū)傳呼、工業(yè)數(shù)據(jù)采集系統(tǒng)、用戶識別、信號采集、水文氣象監(jiān)控、無線數(shù)字語音、數(shù)字圖像傳輸?shù)认到y(tǒng)的應(yīng)用。
比較熟悉的有,基于IEEE802.15.4的Zigbee,和UC Berkeley(加州大學(xué)伯克利分校)開發(fā)的開放源代碼操作系統(tǒng),專為嵌入式無線傳感網(wǎng)絡(luò)設(shè)計的TinyOS.
Zigbee是一種短距離、低速率、低功耗無線網(wǎng)絡(luò)技術(shù),Zigbee技術(shù)的主要特點有,數(shù)據(jù)傳輸速率低,功耗低,網(wǎng)絡(luò)容量大,優(yōu)良的網(wǎng)絡(luò)拓撲能力自愈能力,ISM頻段。
TinyOS主要應(yīng)用于農(nóng)業(yè)監(jiān)測,環(huán)境監(jiān)測,等信息采集系統(tǒng)中。
二,正文
結(jié)合Zigbee,Tinyos,優(yōu)缺點,我公司開發(fā)一套比較完整的,擁有自主知識產(chǎn)權(quán)的水表無線網(wǎng)絡(luò)集抄系統(tǒng)。
系統(tǒng)具有如下特點:
ü ISM433MHz,節(jié)點的網(wǎng)絡(luò)編號和工作頻率都可以更改,網(wǎng)絡(luò)資源豐富。
ü 每個節(jié)點出廠時都有唯一的32位身份識別碼(ID,也可以叫編號)。
ü 數(shù)據(jù)傳輸速率為50 kbps,且傳輸過程已經(jīng)過加密,快速而穩(wěn)定。
ü 所有節(jié)點都為全功能節(jié)點,任何一個節(jié)點都可以作為中繼。
ü 每個節(jié)點都是全功能節(jié)點,可以記憶多條路由信息。
ü 手持機的抄表信息以文件形式存放,管理方便。
ü 硬件和軟件均為模塊化設(shè)計,層次分明,容易擴展和修改。
ü 上位機管理系統(tǒng),操作界面友好。
集抄系統(tǒng)由三部分組成:
1,上位機管理系統(tǒng);
2,無線節(jié)電(安裝于水表中);
3, 遠程終端(無線手持機,無線HUB)。
無線節(jié)點:具有雙向無線通信功能,除了要采集水表信息,控制水表開關(guān)閥,還擔(dān)任著通信路由的角色。
遠程終端:可以是手持機,也可以是帶有GPRS功能的數(shù)據(jù)集中器(無線hub)。
無線節(jié)點安裝于水表中,實時的采集,監(jiān)控水表的運行情況;遠程終端采集無線節(jié)點的信息,傳送到上位機管理系統(tǒng)中。
圖2.0
2.1 無線節(jié)點
2.1.1無線節(jié)電硬件結(jié)構(gòu)
圖2.1所示為無線節(jié)點的硬件結(jié)構(gòu),它由傳感器模塊、執(zhí)行模塊、處理模塊、無線通信模塊和電源供應(yīng)模塊組成。傳感器模塊即干簧管檢測模塊,用來獲取水管中水的流量。執(zhí)行模塊在水表系統(tǒng)就是閥門控制模塊。這兩部分模塊都可以根據(jù)實際情況更改或刪減。處理模塊負責(zé)整個無線節(jié)點的數(shù)據(jù)獲取、處理、存儲,其中運行的無線通信協(xié)議不僅要把自己的數(shù)據(jù)安全有效的發(fā)出去,還要處理其他節(jié)點發(fā)來的數(shù)據(jù),根據(jù)實際情況確定是否需要轉(zhuǎn)發(fā)。無線通信模塊的作用,顧名思義,就是與其它節(jié)點或終端通信,根據(jù)需要交換數(shù)據(jù)。電源模塊(電池)給整個系統(tǒng)提供電源。
圖2.1 WNMR節(jié)點的硬件結(jié)構(gòu)
圖2.2所示的網(wǎng)絡(luò)拓撲為無線節(jié)點兩種常用的網(wǎng)絡(luò)拓撲。
圖2.2 無線節(jié)點網(wǎng)絡(luò)拓撲結(jié)構(gòu)
星形網(wǎng)絡(luò)是一種單跳(single-hop)系統(tǒng),節(jié)點直接與終端通訊,如圖2.2中A圖所示。在各種網(wǎng)絡(luò)結(jié)構(gòu)中,星狀網(wǎng)的功耗控制最容易,從發(fā)出指令到獲得數(shù)據(jù)的時間延遲也最小,然而其通信距離有限,通常ISM頻段的傳輸距離為100~300米或者更低,可以用在一些對通信距離要求不高的場合。
如果需要更大的通信范圍,就要采用樹形網(wǎng)絡(luò)拓撲。樹形網(wǎng)是一種多跳(multi-hop)系統(tǒng),如圖2.2中B圖所示,可以把終端看作“樹干”(圖2.2中B中的黑色結(jié)點),把承擔(dān)中繼任務(wù)的節(jié)點看作“樹枝”(圖2.2中B中的灰色節(jié)點),剩下的沒有中繼任務(wù)的節(jié)點便是“樹葉”了(圖2.2中B中的白色節(jié)點)。終端的位置確定后,第一次訪問某個節(jié)點需要指令以“泛洪”的方式發(fā)送,即網(wǎng)絡(luò)中的所有節(jié)點都會響應(yīng)這種命令,一旦找到目標節(jié)點,目標的應(yīng)答數(shù)據(jù)包傳輸路經(jīng)上的節(jié)點會自動記憶目標節(jié)點,這樣就建立了一個目標節(jié)點的路由表,這樣終端第二次在同一地點訪問同一目標時就不必再使用“泛洪”方式,網(wǎng)絡(luò)中的節(jié)點會根據(jù)各自路由表自動選擇數(shù)據(jù)包的流動方向。
終端在每次工作過程中的位置最好不要有太大變化(最好是固定),否則網(wǎng)絡(luò)的路由表就無法確定,這樣會導(dǎo)致每次都必須使用“泛洪”方式的指令才能訪問節(jié)點,從而造成網(wǎng)絡(luò)能量的浪費。如果“樹干”上的某個節(jié)點(圖2.2中B中的灰色節(jié)點)失效,也需要重新選擇路由,否則會丟失失效節(jié)點以后的“樹干”和“樹枝”。
2.1.2 無線節(jié)點軟件結(jié)構(gòu)
WNMR節(jié)點的軟件設(shè)計采用了面向?qū)ο蟮哪K式架構(gòu),總體結(jié)構(gòu)如圖2.3所示。
圖2.3 無線節(jié)點的軟件結(jié)構(gòu)
為了在不同硬件平臺上的移植方便,且具有一定的通用性,硬件驅(qū)動部分被獨立出來作為一個模塊,這個模塊提供了相對標準化的軟件接口給上層軟件(通信協(xié)議、用戶API和功耗管理)使用,上層軟件被設(shè)計成與平臺無關(guān),這樣就可以大大簡化系統(tǒng)在不同硬件平臺之間的移植。中斷程序由于其特殊性而被獨立出來。
通信協(xié)議也被設(shè)計成平臺無關(guān),具有一定的獨立性,添加用戶API對通信協(xié)議有任何影響。建立路由表的工作也是由通信協(xié)議自動完成的,用戶API不必干涉。功耗管理實際上是通信協(xié)議的一部分,因為在我們的應(yīng)用中,網(wǎng)絡(luò)功耗是衡量一個無線網(wǎng)絡(luò)的重要指標,這需要網(wǎng)絡(luò)中的所有節(jié)點共同參與協(xié)調(diào)。
通信協(xié)議、功耗管理、硬件驅(qū)動、中斷管理屬于系統(tǒng)的內(nèi)核,對用戶API來說都是不可見的,用戶API無需關(guān)心內(nèi)核,只需要根據(jù)指令執(zhí)行相應(yīng)的功能。
這種軟件結(jié)構(gòu)是具有一定的針對性的,即在實現(xiàn)所需功能的前提下減小代碼量。目前除開用戶API的內(nèi)核代碼量只有不到4KB,加上用戶API也不會超過8K,因此可以在系統(tǒng)中使用更便宜的單片機,而功能卻不會受到任何影響。
為了降低節(jié)點的功耗,節(jié)點采取了分時段工作和間歇偵聽的策略,即在正常工作時段每2秒偵聽20ms,這20ms內(nèi)如果沒有檢測到有效的喚醒指令則進入休眠狀態(tài),如果檢測到了有效的喚醒指令則持續(xù)接收30秒,然后再回到間歇偵聽狀態(tài)。在非正常工作時段節(jié)點不再偵聽網(wǎng)絡(luò),而始終保持休眠狀態(tài)。
2.1.3 無線集抄系統(tǒng)的通信機制
通信協(xié)議是無線集抄系統(tǒng)的基礎(chǔ),也是核心。
無線通信協(xié)議獨立出來的目的就是為了給無線節(jié)點提供與其它節(jié)點互相訪問并裁決數(shù)據(jù)取向的能力。為了使通信協(xié)議緊湊而有效,且與用戶API完全分離,我們參考了OSI標準模型,將整個通信協(xié)議按層次劃分為如圖3.1所示。
從應(yīng)用的角度出發(fā),我們沒有采用完全的七層OSI標準模型,而只使用了其中的四層。通信協(xié)議中的物理層主要完成對RF電路的硬件控制,給MAC層提供統(tǒng)一的數(shù)據(jù)收發(fā)接口。物理層的另一個很重要的任務(wù)就是加密和解密,數(shù)據(jù)經(jīng)過加密才能發(fā)送出去,收到的數(shù)據(jù)必須經(jīng)過解密和通過校驗后才能送到MAC層,這種通訊方式加強了通信的保密性和安全性,可以防止通信過程被惡意監(jiān)聽,還可以增強系統(tǒng)的抗干擾能力。
MAC層的主要任務(wù)是避免信道的碰撞和競爭,保證數(shù)據(jù)傳輸?shù)挠行?。在表類?shù)據(jù)采集這種應(yīng)用中的無線節(jié)點有其自身的限制和特點(如成本低、能量少,功能單一),使得其MAC協(xié)議有別于其他無線網(wǎng)絡(luò),目前研究人員已經(jīng)提出了很多針對無線網(wǎng)絡(luò)的MAC協(xié)議,如基于信道競爭的SMAC、TMAC、Sift協(xié)議和基于時分復(fù)用的DEANA、DMAC等協(xié)議。各種方法的目的都是減少不必要的能量消耗,盡量避免信道的競爭和碰撞。結(jié)合目前的實際情況,必須采用一種簡單而有效的方法,在參考這些協(xié)議后,最后采用了一種基于信道競爭的MAC協(xié)議,節(jié)點采取一種主動的“半隨機”避讓策略,不僅實現(xiàn)簡單,還大大降低了出現(xiàn)信道沖突現(xiàn)象的機率。
鏈路層的主要任務(wù)是實現(xiàn)節(jié)點間的“多跳路由”,并將有效的數(shù)據(jù)包提供給應(yīng)用層。每個節(jié)點都有記憶路由的能力,如果電池耗盡,節(jié)點中記錄的路由表也隨之消失,即使換上新電池也需要重新建立路由表。
應(yīng)用層的作用是提供用戶所需要的各種其他的功能。
2.2 集抄系統(tǒng)遠程終端
遠程終端,收集無線節(jié)點所采集的水表具體信息,并通過一定的方式提供給上位機管理系統(tǒng),遠程終端沒有路由功能。遠程終端根據(jù)需要可以有多種形式,我們這里是無線手持機和無線hub。
無線手持機是遠程移動終端,具有和節(jié)點完全相同的無線通信電路,可以和節(jié)點互相通信,采集節(jié)點所收集的數(shù)據(jù)。無線手持機采用高增益天線,增加手持機的通信范圍,界面友好,采用USB接口與PC機進行數(shù)據(jù)交換,采用文件系統(tǒng)管理數(shù)據(jù)。
無線hub是遠程固定終端,無線hub具有雙向無線通信功能,是上位機管理系統(tǒng)和無線節(jié)點(水表)之間的實時聯(lián)系者,它采集到的水表信息,通過GPRS網(wǎng)絡(luò)實時地傳送給上位機管理系統(tǒng)。
2.3 無線節(jié)點(水表)的管理
無線節(jié)點采用二級身份確認。
每一個無線節(jié)點在出廠時,都有一個固定的,唯一的32位身份識別碼(ID,也可以叫節(jié)點編號),這個是不能更改的。
為了方便工程應(yīng)用,無線節(jié)點還有一個網(wǎng)絡(luò)編號(即區(qū)號),這個編號是可以修改的。區(qū)號是相同的遠程終端,無線節(jié)點之間,可以進行信息通信。
小結(jié)
在實際的測試中,無線節(jié)點自動組網(wǎng)快,具有很好的網(wǎng)絡(luò)自愈能力,中繼次數(shù)在10次以下時(常規(guī)應(yīng)用,一般不會超過10次),采集水表信息的時延很短。
功耗,計量符合水表的技術(shù)要求,具有一定的抗干擾能力。