基于ZigBee的無線傳感網(wǎng)絡(luò)與互聯(lián)網(wǎng)關(guān)的接入方式
物聯(lián)網(wǎng)(IOT ,Internet of things)是繼互聯(lián)網(wǎng)后又一次技術(shù)的革新,代表著未來計算機與通信的發(fā)展方向。而物聯(lián)網(wǎng)最大的變革在于實現(xiàn)了物理世界的情景感知、處理和控制這一閉環(huán)過程,形成了真正的物與物,物與人,人與人之間信息連接的新一代智能網(wǎng)絡(luò)系統(tǒng)。
物聯(lián)網(wǎng)架構(gòu)可分為三層:感知層、網(wǎng)絡(luò)層、應(yīng)用層。感知層是由各種傳感器構(gòu)成,是物聯(lián)網(wǎng)識別物體、采集信息的來源。網(wǎng)絡(luò)層是負責(zé)傳遞和處理感知層獲取的信息。應(yīng)用層是物聯(lián)網(wǎng)與用戶的接口,它需要與行業(yè)需求結(jié)合,從而實現(xiàn)物聯(lián)網(wǎng)的智能應(yīng)用。作為物聯(lián)網(wǎng)最底層,感知層肩負起很重要的作用,數(shù)據(jù)要先經(jīng)過感知層的采集和識別然后才能進行接下來的處理與傳輸?shù)炔僮?。因此,傳感網(wǎng)建立的重要性是十分重大的。
隨著傳感網(wǎng)的不斷發(fā)展,以ZigBee協(xié)議為基礎(chǔ)的無線傳感網(wǎng)絡(luò)(WSN, Wireless Senor Network)的確立,不僅使得在信息采集技術(shù)的這一領(lǐng)域有了進一步的發(fā)展,而且還帶動了物聯(lián)網(wǎng)的快速發(fā)展。本文立足于無線傳感網(wǎng)絡(luò)作為物聯(lián)網(wǎng)的最底層,分析了基于ZigBee的無線傳感網(wǎng)絡(luò),并在此基礎(chǔ)上提出了無線傳感網(wǎng)絡(luò)接入到互聯(lián)網(wǎng)的網(wǎng)關(guān)接入模式。
2 相關(guān)技術(shù)問題分析
2.1 ZigBee協(xié)議棧與無線傳感網(wǎng)絡(luò)的技術(shù)要點
無線傳感網(wǎng)絡(luò)(Wireless Sensor Networks, WSN)是一種技術(shù)集成度高,涉及多種前沿科學(xué)技術(shù)的信息采集變換,組網(wǎng)傳送,融合處理,反饋調(diào)節(jié)的多信息綜合采集與組網(wǎng)應(yīng)用系統(tǒng)。在當(dāng)前的國際信息產(chǎn)業(yè)界和技術(shù)研究領(lǐng)域里都受到廣泛關(guān)注。無線傳感網(wǎng)絡(luò)由多個靜止或移動的傳感器以自組織和多跳的方式構(gòu)成的無線網(wǎng)絡(luò),以協(xié)作地感知、采集、處理和傳輸網(wǎng)絡(luò)覆蓋地理區(qū)域內(nèi)被感知對象的信息,并最終把這些信息發(fā)送給網(wǎng)絡(luò)所有者。無線傳感絡(luò)并不需要較高的帶寬,但是需要較低的傳輸延時和極低的功率消耗并且可以使用戶擁有較長的電池壽命和較多的器件陣列。而ZigBee的出現(xiàn)正好解決了這一問題,ZigBee有著高通信效率、低復(fù)雜度、低功耗、低速率、低成本、高安全性以及全數(shù)字化等諸多優(yōu)點。這些優(yōu)點使得ZigBee與無線傳感網(wǎng)絡(luò)完美的結(jié)合在一起。以下將對ZigBee協(xié)議棧加以說明。
ZigBee協(xié)議棧結(jié)構(gòu)由一些層構(gòu)成,每個層都有一套特定的服務(wù)方法(協(xié)議)和上一層連接。數(shù)據(jù)實體(data entity)提供數(shù)據(jù)的傳輸服務(wù),而管理實體(management entity)提供所有的服務(wù)類型。每個層的服務(wù)實體通過服務(wù)接入點(SAP ,service access point)和上一層相接,每個SAP提供大量服務(wù)方法來完成相應(yīng)的操作。ZigBee協(xié)議?;跇藴实腛SI七層模型,但只是在相關(guān)范圍來定義一些相應(yīng)層來完成特定的任務(wù)。IEEE802.15.4-2003標準定義了下面的兩個層:物理層(PHY層)和媒介層(MAC層)。ZigBee聯(lián)盟在此基礎(chǔ)上建立了網(wǎng)絡(luò)層(NWK層)以及應(yīng)用層(APL層)的框架(framework)。APL層又包括應(yīng)用支持子層(APS ,application support sub-layer),ZigBee的設(shè)備對象(ZDO ,zigbee device object)以及制造商定義的應(yīng)用對象。ZigBee技術(shù)的整體協(xié)議架構(gòu)如下圖1所示。
圖1 ZigBee整體架構(gòu)
IEEE802.15.4標準定義了物理層(PHY層)和媒介層(MAC層)。物理層是協(xié)議的最底層,承擔(dān)著與外界直接作用的任務(wù),它采用擴頻通信調(diào)制方式,由圖1可以看到這里定義了兩個頻率的物理層,這兩個頻率段分別為868/915MHz和2.4GHz。MAC層負責(zé)設(shè)備間無線數(shù)據(jù)鏈路的建立、維護和結(jié)束,確認模式的數(shù)據(jù)傳送和接收,可選時隙,實現(xiàn)低延遲傳輸,支持各種網(wǎng)絡(luò)拓撲結(jié)構(gòu),網(wǎng)絡(luò)中每個設(shè)備為16位地址尋址。它可完成對無線物理信道的接入過程管理,包括以下幾方面:網(wǎng)絡(luò)協(xié)調(diào)器(coordinator)產(chǎn)生網(wǎng)絡(luò)信標、網(wǎng)絡(luò)中設(shè)備與網(wǎng)絡(luò)信標同步、完成PAN的入網(wǎng)和脫離網(wǎng)絡(luò)過程、網(wǎng)絡(luò)安全控制、利用CSMA-CA機制進行信道接入控制、處理和維持GTS(Guaranteed Time Slot)機制、在兩個對等的MAC實體間提供可靠的鏈路連接。
ZigBee又在以上兩層的基礎(chǔ)上提出了網(wǎng)絡(luò)層和應(yīng)用層。網(wǎng)絡(luò)層主要負責(zé)建立新的網(wǎng)絡(luò)、處理節(jié)點的進入和離開網(wǎng)絡(luò)、根據(jù)網(wǎng)絡(luò)類型設(shè)置節(jié)點的協(xié)議堆棧、使網(wǎng)絡(luò)協(xié)調(diào)器對節(jié)點分配地址、保證節(jié)點之間的同步、提供網(wǎng)絡(luò)的路由。網(wǎng)絡(luò)層確保MAC子層的正確操作,并為應(yīng)用層提供合適的服務(wù)接口。為了給應(yīng)用層提供合適的接口,網(wǎng)絡(luò)層用數(shù)據(jù)服務(wù)和管理服務(wù)這兩個服務(wù)實體來提供必需的功能。網(wǎng)絡(luò)層數(shù)據(jù)實體(NLDE)通過相關(guān)的服務(wù)接入點(SAP)來提供數(shù)據(jù)傳輸服務(wù),即NLDE.SAP;網(wǎng)絡(luò)層管理實體(NLME)通過相關(guān)的服務(wù)接入點(SAP)來提供管理服務(wù),即NLME.SAP。NLME利用NLDE來完成一些管理任務(wù)和維護管理對象的數(shù)據(jù)庫,通常稱作網(wǎng)絡(luò)信息庫(Network Information Base,NIB)。應(yīng)用層主要根據(jù)具體應(yīng)用由用戶開發(fā)。它維持器件的功能屬性,發(fā)現(xiàn)該器件工作空間中其他器件的工作,并根據(jù)服務(wù)和需求在多個器件之間進行通信。應(yīng)用層由應(yīng)用支持子層(APS )、設(shè)備對象(ZDO,包括ZDO管理平臺)以及制造商定義的應(yīng)用設(shè)備對象組成。APS子層的作用包括維護綁定表(綁定表的作用是基于兩個設(shè)備的服務(wù)和需要把它們綁定在一起)、在綁定設(shè)備間傳輸信息。ZDO的作用包括在網(wǎng)絡(luò)中定義一個設(shè)備的作用(如定義設(shè)備為協(xié)調(diào)者或為路由器或為終端設(shè)備)、發(fā)現(xiàn)網(wǎng)絡(luò)中的設(shè)備并確定它們能提供何種服務(wù)、起始或回應(yīng)綁定需求以及在網(wǎng)絡(luò)設(shè)備中建立一個安全的連接。
2.2 TCP/IP協(xié)議與互聯(lián)網(wǎng)絡(luò)通信方式
對于互聯(lián)網(wǎng)而言,其傳輸控制與因特網(wǎng)互聯(lián)規(guī)則也就是TCP/IP協(xié)議是Internet最基本的協(xié)議。它由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成,此協(xié)議采用了四層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求??梢赃@樣說,TCP負責(zé)發(fā)現(xiàn)傳輸?shù)膯栴},一旦發(fā)現(xiàn)有問題就會要求重新傳輸,直到所有的數(shù)據(jù)安全正確的傳輸?shù)侥康牡?,而IP是給了因特網(wǎng)的每一臺電腦規(guī)定了一個地址。
TCP/IP協(xié)議由鏈路層、網(wǎng)絡(luò)層、傳輸層以及應(yīng)用層這四層組成。對于此協(xié)議的熟知程度,具體的每層協(xié)議的功能在這里將不進行詳細的說明。而網(wǎng)關(guān)作為在傳輸層以上工作的,為了深入的了解此文所提出來的網(wǎng)關(guān)接入模式,在此將對傳輸層以上進行一些分析說明。傳輸層提供應(yīng)用程序之間的通信。其功能包括:格式化信息流和提供可靠傳輸,為實現(xiàn)后者,傳輸層協(xié)議規(guī)定接收端必須發(fā)回確認,并且假如分組丟失,必須重新發(fā)送,從而提供可靠的數(shù)據(jù)傳輸。而傳輸層的協(xié)議主要是:TCP和UDP協(xié)議。在本文所提出的的網(wǎng)絡(luò)傳輸由于速率因素,我們在此采用TCP傳輸。在TCP傳輸過程中,數(shù)據(jù)從應(yīng)用層到傳輸層,數(shù)據(jù)的報頭是TCP報頭,然后下到網(wǎng)絡(luò)層,數(shù)據(jù)在之前的TCP報頭前在加上IP報頭,IP報頭中有目標IP和源IP,然后到數(shù)據(jù)鏈路層后又在上層的數(shù)據(jù)中加上首部和尾部,然后經(jīng)過物理層傳輸?shù)侥康牡兀?jīng)過路由器分析目標IP然后查找路由表在進行轉(zhuǎn)發(fā),來到目標計算機然后從物理層開始解封裝,然后一層一層向上傳輸。而在此文中所涉及到的傳輸過程,就從應(yīng)用層到傳輸層,數(shù)據(jù)帶有TCP報頭就進入網(wǎng)關(guān)進行協(xié)議的轉(zhuǎn)換,解封裝后從新封裝從而傳到ZigBee的應(yīng)用層。
{$page$}
3 無線傳感網(wǎng)絡(luò)接入互聯(lián)網(wǎng)絡(luò)的網(wǎng)關(guān)模式分析
本文所提出的無線傳感網(wǎng)絡(luò)接入Internet網(wǎng)的網(wǎng)關(guān)接入模式的基本構(gòu)架如圖2所示。
在此基本結(jié)構(gòu)模式中,我們主要對數(shù)據(jù)從ZigBee進入網(wǎng)關(guān)以及數(shù)據(jù)從網(wǎng)關(guān)到互聯(lián)網(wǎng)進行分析。在此,數(shù)據(jù)由ZigBee進入網(wǎng)關(guān)采用串行傳輸?shù)耐ㄐ欧绞?。ZigBee各個節(jié)點把收集的數(shù)據(jù)送到協(xié)調(diào)器,在經(jīng)由協(xié)調(diào)器交給應(yīng)用層,應(yīng)用層通過調(diào)用串口API發(fā)到網(wǎng)關(guān)。網(wǎng)關(guān)將Internet發(fā)送來的數(shù)據(jù)進行解封裝通過串口交給協(xié)調(diào)器,協(xié)調(diào)器再將數(shù)據(jù)封裝,加上ZigBee的短地址發(fā)送出去。這樣就實現(xiàn)了從ZigBee到網(wǎng)關(guān)的雙向數(shù)據(jù)傳輸。網(wǎng)關(guān)到互聯(lián)網(wǎng)的傳輸在此文中采用了以太網(wǎng)口傳輸,客戶端與服務(wù)器模式的網(wǎng)絡(luò)通信結(jié)構(gòu),并用Windows Socket網(wǎng)絡(luò)編程實現(xiàn),這樣就完成了從網(wǎng)關(guān)到互聯(lián)網(wǎng)的數(shù)據(jù)傳輸。因此,在這里我們通過此網(wǎng)關(guān)把基于ZigBee的無線傳感網(wǎng)絡(luò)與互聯(lián)網(wǎng)連接起來,從而使得可以通過互聯(lián)網(wǎng)時時控制物理世界,可以根據(jù)我們的需要對所有的節(jié)點進行控制及管理。
圖2 ZigBee無線傳感器網(wǎng)絡(luò)與Internet互聯(lián)結(jié)構(gòu)模型
3.1 ZigBee模塊與互聯(lián)網(wǎng)關(guān)的通信模式
對于星形的ZigBee網(wǎng)絡(luò)拓撲結(jié)構(gòu),所有的節(jié)點都跟協(xié)調(diào)器交互,因此要實現(xiàn)ZigBee網(wǎng)絡(luò)與網(wǎng)關(guān)的通信,可以通過協(xié)調(diào)器跟網(wǎng)關(guān)通信。在本文中采用了協(xié)調(diào)器與網(wǎng)關(guān)通過串口進行連接。串口通信具有成本低、傳輸質(zhì)量可靠、全雙工等特點,滿足嵌入式簡化設(shè)備的需求,因此網(wǎng)關(guān)的ZigBee網(wǎng)絡(luò)通信模塊采用串口實現(xiàn)。
在協(xié)調(diào)器和網(wǎng)關(guān)之間我們采用異步串口通信方式,并且雙方采用中斷方式進行數(shù)據(jù)的發(fā)送和接收。由發(fā)送端向接收端發(fā)送請求是否可以發(fā)送數(shù)據(jù)命令,之后接收端收到請求命令后給發(fā)送端返回一個命令數(shù)據(jù),發(fā)送端根據(jù)接收端發(fā)回的命令進行判斷是否可以現(xiàn)在就開始傳輸數(shù)據(jù)。在每一次數(shù)據(jù)傳輸完畢之后,發(fā)送端都要進行新一輪的上述過程進行下一個數(shù)據(jù)包的傳輸,知道所有的數(shù)據(jù)傳輸完畢即可。
ZigBee協(xié)調(diào)器接收到其他節(jié)點發(fā)來的數(shù)據(jù)之后,就會產(chǎn)生一個事件,告知應(yīng)用層,應(yīng)用層調(diào)用相關(guān)函數(shù)進行接收,該函數(shù)返回一個類型的結(jié)構(gòu)體。該結(jié)構(gòu)體包括了源地址、網(wǎng)絡(luò)地址、地址類型等相關(guān)信息。這樣,在傳輸過程采用中斷方式,當(dāng)接收到一個字節(jié)后就會進入中斷,從而調(diào)用接收函數(shù)進行所有數(shù)據(jù)的接收工作。而當(dāng)網(wǎng)關(guān)接收到因特網(wǎng)傳來的數(shù)據(jù)之后就按照所需數(shù)據(jù)的格式進行打包,保存在事先設(shè)置好的變量里。當(dāng)檢測到此變量非空的時候,就會跟協(xié)調(diào)器交互后發(fā)送數(shù)據(jù)。當(dāng)協(xié)調(diào)器中的任務(wù)檢測到有數(shù)據(jù)來的時候,就會和協(xié)調(diào)器交互后以判斷對方是否真的要發(fā)送數(shù)據(jù),然后就進行數(shù)據(jù)的接收。這樣就簡單的完成了協(xié)調(diào)器和網(wǎng)關(guān)之間的通信,完成了數(shù)據(jù)的交換,實現(xiàn)了從ZigBee的無線傳感器網(wǎng)絡(luò)到網(wǎng)關(guān)的通信。
3.2 物聯(lián)網(wǎng)與Internet的網(wǎng)關(guān)接入方式
本研究報告主要采用以太網(wǎng)口,客戶端與服務(wù)器結(jié)構(gòu)的網(wǎng)絡(luò)通信,并把網(wǎng)關(guān)作為服務(wù)器。采用Windows Socket編程來實現(xiàn)此網(wǎng)絡(luò)傳輸。在此我們使用套接字I/O模型的Select模型,這樣有利于對應(yīng)用程序通過異步方式同時對一個或多個套接字通信加以管理。如圖3所示,描述了Select模型的工作方式。在調(diào)用recv()函數(shù)接收數(shù)據(jù)之前,先調(diào)用select()函數(shù),如果此時沒有可讀數(shù)據(jù),select()函數(shù)就先阻塞在這里。當(dāng)系統(tǒng)有了可讀數(shù)據(jù),該函數(shù)返回。這個時候應(yīng)用程序就可以調(diào)用recv()函數(shù)接收數(shù)據(jù)了。網(wǎng)絡(luò)編程選擇好后就在下面具體分析客戶端與服務(wù)器的相連接。
圖3 Select模型
如圖4所示表示了服務(wù)器與客戶端的通信模型。首先分析下套接字的可讀可寫性。
圖4 服務(wù)器與客戶端通信模型
首先要初始化套接字集合,然后將套接字分配給參與操作的套接字集合之后通過調(diào)用select函數(shù)等待函數(shù)的返回,若成功返回后則對每個套接字集合進行檢查,若是宏值為ture則說明此套接字可讀,最后就可以通過Socket API進行數(shù)據(jù)接收和發(fā)送。接下來分析下網(wǎng)關(guān)(服務(wù)器)上應(yīng)用流程。Select函數(shù)監(jiān)聽套接字是否在可讀集合中,若存在,則說明客戶端有連接請求,調(diào)用accept()函數(shù)接受該客戶端的請求,并將新建接受套接字加入服務(wù)器套接字集合然后便利服務(wù)器套接字集合分別判斷每個套接字是否可讀可寫。若可讀,則調(diào)用輸入函數(shù)讀入數(shù)據(jù),若可寫,則調(diào)用輸出函數(shù)發(fā)送數(shù)據(jù)。對于客戶端,首先要判斷是否可寫套接字,若是存在就調(diào)用connect()函數(shù)請求連接,之后檢查每一個套接字的可讀可寫性。若可讀,則調(diào)用輸入函數(shù)讀入數(shù)據(jù),若可寫,則調(diào)用輸出函數(shù)發(fā)送數(shù)據(jù)。這樣就在服務(wù)器客戶端兩端分別完成了數(shù)據(jù)的傳輸,用此模式的網(wǎng)絡(luò)編程實現(xiàn)了網(wǎng)關(guān)與PC的有效數(shù)據(jù)傳輸。也就是實現(xiàn)了網(wǎng)關(guān)到Internet的傳輸。通過此網(wǎng)關(guān)可以實現(xiàn)ZigBee無線傳感器網(wǎng)絡(luò)與因特網(wǎng)的互聯(lián),實現(xiàn)物聯(lián)網(wǎng)系統(tǒng)在更廣泛領(lǐng)域里的拓展應(yīng)用。
{$page$}
4 結(jié)束語
隨著物聯(lián)網(wǎng)絡(luò)技術(shù)的發(fā)展和在更加廣泛領(lǐng)域里的應(yīng)用,ZigBee無線傳感網(wǎng)絡(luò)及其拓展接入技術(shù)變得日益更要。本文針對ZigBee無線傳感網(wǎng)絡(luò)接入互聯(lián)網(wǎng)的模式進行了分析和研究,并就其方法進行了歸納闡述。無線傳感網(wǎng)絡(luò)技術(shù)與多傳感器技術(shù)及因特網(wǎng)領(lǐng)域相結(jié)合,有著十分廣泛的發(fā)展和應(yīng)用前景,將給社會的生產(chǎn)和生活方式帶來空前的改變。這種基于ZigBee的無線傳感網(wǎng)絡(luò)與互聯(lián)網(wǎng)關(guān)接入模式,為無線傳感器網(wǎng)絡(luò)的拓展應(yīng)用方式提供了一種新的選擇,在理論引導(dǎo)和實際應(yīng)用方面具有重要意義。
(rfid世界網(wǎng)獨家稿件,轉(zhuǎn)載請注明來源作者?。?/STRONG>