張勇
(黃岡職業(yè)技術(shù)學(xué)院,湖北黃岡,438002)
近些年來,無線傳感器網(wǎng)絡(luò)的發(fā)展非常迅速,多種傳感設(shè)備在生活中的應(yīng)用正變得越來越廣泛。和以往的無線傳輸技術(shù)相比,傳感器的節(jié)點有著結(jié)構(gòu)簡單、成本低的特征。但是,物聯(lián)網(wǎng)中的ZigBee協(xié)議和互聯(lián)網(wǎng)中的TCP/IP協(xié)議不兼容?,F(xiàn)階段,物聯(lián)網(wǎng)領(lǐng)域正研究如何將ZigBee協(xié)議接入到TCP/IP協(xié)議中去,以便能通過互聯(lián)網(wǎng)監(jiān)控環(huán)境,管理好接入點。物聯(lián)網(wǎng)網(wǎng)關(guān)是連接異構(gòu)的重要設(shè)備,加強(qiáng)對網(wǎng)關(guān)技術(shù)的研究非常重要。
物聯(lián)網(wǎng)這一發(fā)展概念于20世紀(jì)90年代提出,但是由于受到技術(shù)手段的多方面限制,并未形成系統(tǒng)化、生態(tài)化、產(chǎn)業(yè)化鏈接,在近十年才真正得以快速發(fā)展。在互聯(lián)網(wǎng)信息技術(shù)基礎(chǔ)之上,推動了物聯(lián)網(wǎng)技術(shù)的延伸及逐步拓展,最終實現(xiàn)的技術(shù)目標(biāo),達(dá)到了全面化感知及智能化信息傳輸處理。物聯(lián)網(wǎng)技術(shù)協(xié)議明顯差異于傳統(tǒng)互聯(lián)網(wǎng)協(xié)議,傳統(tǒng)互聯(lián)網(wǎng)主要是基于TCP/IP協(xié)議構(gòu)建形成。在物聯(lián)網(wǎng)網(wǎng)絡(luò)中則主要可以借助M2M協(xié)議,或者基于Zigbee協(xié)議完成網(wǎng)絡(luò)信息節(jié)點之間的數(shù)據(jù)傳輸。不同數(shù)據(jù)傳輸達(dá)到了近距離、數(shù)據(jù)量較小,但是整體數(shù)據(jù)傳輸節(jié)點密度相對較高。絕大多數(shù)的物聯(lián)網(wǎng)系統(tǒng)架構(gòu),并非所有物聯(lián)網(wǎng)節(jié)點都需要實現(xiàn)以太網(wǎng)接入,通常是部分代理節(jié)點實現(xiàn)類似網(wǎng)關(guān)功能,實現(xiàn)了節(jié)點內(nèi)部非TCP/IP協(xié)議轉(zhuǎn)換,之后傳輸至遠(yuǎn)端服務(wù)器。遠(yuǎn)程服務(wù)器設(shè)備實現(xiàn)對來自物聯(lián)網(wǎng)數(shù)據(jù)的存儲、持久化分析及ETL,由于物聯(lián)網(wǎng)單節(jié)點之間的信息量相對較小,但是普遍存在了較高的節(jié)點密度,需要代理階段針對數(shù)據(jù)轉(zhuǎn)發(fā)能力相對較好,具備較高可靠性,便于更加完整及時的接受相關(guān)節(jié)點數(shù)據(jù)。而針對智能化節(jié)點傳輸,每一個物聯(lián)網(wǎng)傳輸網(wǎng)絡(luò)節(jié)點,都可能作為一個數(shù)據(jù)傳輸發(fā)送節(jié)點,要求服務(wù)器設(shè)備能夠更加可靠的接收到智能化終端數(shù)據(jù),且實現(xiàn)了每一個不同數(shù)據(jù)的合理標(biāo)定,避免出現(xiàn)數(shù)據(jù)信息混淆情況。
現(xiàn)階段,物聯(lián)網(wǎng)網(wǎng)關(guān)實現(xiàn)技術(shù)有多種。第一,是通過通道機(jī)制實現(xiàn)。接收到無線傳感器數(shù)據(jù)時,不經(jīng)解封就作為以太網(wǎng)載荷,加上TCP/IP的包頭傳輸?shù)絀P網(wǎng)絡(luò)主機(jī)上去。主機(jī)收到數(shù)據(jù)后,對其進(jìn)行解析。這種通道機(jī)制實現(xiàn)技術(shù)有著一定的不足之處,因為數(shù)據(jù)中的一些內(nèi)容并不是必要的,帶來了帶寬上的浪費(fèi)。第二種方式是遠(yuǎn)程過程調(diào)用RPC方式[1]。使用REST或SOAP將待發(fā)送數(shù)據(jù)轉(zhuǎn)換成XML格式發(fā)送。同樣的,這種方式也會帶來帶寬的浪費(fèi)。另外,物聯(lián)網(wǎng)實現(xiàn)技術(shù)還有協(xié)議轉(zhuǎn)換機(jī)制等方式。
物聯(lián)網(wǎng)具有三個特征,一是全面感知功能,能使用RFID、傳感器等獲取到物體的信息。二是能實現(xiàn)電信網(wǎng)絡(luò)融合互聯(lián)網(wǎng),將物體的信息準(zhǔn)確及時的傳送出去。三是能用大量的數(shù)據(jù)和信息作出處理,其中用到了大數(shù)據(jù)等多種先進(jìn)技術(shù)。通常情況下,物聯(lián)網(wǎng)被分成三個層次。由上到下分別是應(yīng)用層、網(wǎng)絡(luò)層、感知層。物聯(lián)網(wǎng)感知層中有傳感器、傳感器網(wǎng)絡(luò)等。感知層是物聯(lián)網(wǎng)的基礎(chǔ)部分,其中涉及到了RFID技術(shù)、控制技術(shù)和傳感技術(shù)等[2]。感知層中主要采集數(shù)據(jù)的設(shè)備包括傳感器、攝像頭等。物聯(lián)網(wǎng)中的網(wǎng)絡(luò)層是建立在互聯(lián)網(wǎng)基礎(chǔ)上,通過接入多種設(shè)備實現(xiàn)和通訊網(wǎng)和互聯(lián)網(wǎng)的連接。網(wǎng)絡(luò)層的功能非常多,如信息存儲查詢,實施網(wǎng)絡(luò)管理等。物聯(lián)網(wǎng)是以數(shù)據(jù)為中心網(wǎng)絡(luò)層中心,網(wǎng)絡(luò)層中的感知數(shù)據(jù)處理技術(shù)是物理網(wǎng)中的核心技術(shù),包括了對數(shù)據(jù)的查詢、分析、理解等。物聯(lián)網(wǎng)網(wǎng)絡(luò)層中有記憶存儲數(shù)據(jù)的云計算平臺,同時也為應(yīng)用層應(yīng)用存儲奠定了基礎(chǔ)。應(yīng)用層是物聯(lián)網(wǎng)發(fā)展的目的,利用分析處理過的數(shù)據(jù),為用戶提供相應(yīng)的服務(wù)。物聯(lián)網(wǎng)應(yīng)用非常廣泛,分為很多種類型,可用于監(jiān)控,如對物流、污染狀況作出監(jiān)控;也可用于查詢,如進(jìn)行智能的檢索等;也能用于控制智能家居、智能路燈等;還能用在掃描方面,如高速公路不停車收費(fèi)等。物聯(lián)網(wǎng)的網(wǎng)關(guān)位于中間的網(wǎng)絡(luò)層中,連接著傳感器以及傳統(tǒng)的通信網(wǎng)絡(luò),有著協(xié)議轉(zhuǎn)換、數(shù)據(jù)收發(fā)等多種功能。
2.2.1 協(xié)議轉(zhuǎn)換
實現(xiàn)不同協(xié)議之間的轉(zhuǎn)換是物聯(lián)網(wǎng)網(wǎng)關(guān)最基礎(chǔ)的功能。當(dāng)網(wǎng)關(guān)受到來自ZigBee節(jié)點數(shù)據(jù)后。網(wǎng)關(guān)會按照ZigBee協(xié)議的規(guī)范去掉PHY層、網(wǎng)絡(luò)層包頭、MAC層,并對應(yīng)用層的數(shù)據(jù)作出處理,之后物聯(lián)網(wǎng)網(wǎng)關(guān)會根據(jù)TCP/IP協(xié)議的標(biāo)準(zhǔn)重新封裝數(shù)據(jù),并通過以太網(wǎng)發(fā)送出去。所以,網(wǎng)關(guān)功能的實現(xiàn),要同時具有ZigBee和TCP/IP協(xié)議棧[3]。如圖1所示,是協(xié)議轉(zhuǎn)換的過程。
圖1 協(xié)議的轉(zhuǎn)換過程
2.2.2 數(shù)據(jù)收發(fā)
物聯(lián)網(wǎng)網(wǎng)關(guān)起到溝通傳感網(wǎng)和通信網(wǎng)絡(luò)的重要作用。ZigBee網(wǎng)絡(luò)上傳數(shù)據(jù)經(jīng)過網(wǎng)關(guān)處理后到IP網(wǎng)絡(luò)主機(jī)中。IP網(wǎng)絡(luò)中的數(shù)據(jù)和命令能通過網(wǎng)關(guān)到達(dá)ZigBee節(jié)點中去。物聯(lián)網(wǎng)網(wǎng)關(guān)既要實現(xiàn)接受互聯(lián)網(wǎng)終端和傳感器終端發(fā)送數(shù)據(jù)的功能,也要能向兩者發(fā)送數(shù)據(jù),實現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)[4]。
2.2.3 管理控制
物聯(lián)網(wǎng)網(wǎng)關(guān)還要具有管理控制的功能,對象是傳感器的節(jié)點。物聯(lián)網(wǎng)網(wǎng)關(guān)對來自應(yīng)用層的命令作出處理,并下達(dá)到傳感器節(jié)點上,完成對網(wǎng)關(guān)下層傳感器網(wǎng)絡(luò)的管理。
圖2 物聯(lián)網(wǎng)網(wǎng)關(guān)的硬件系統(tǒng)設(shè)計
物聯(lián)網(wǎng)網(wǎng)關(guān)硬件系統(tǒng)部分包括了ARM開發(fā)板、GPRS無線通信和Sink節(jié)點,這三個部分是組成物聯(lián)網(wǎng)網(wǎng)關(guān)系統(tǒng)的三大模板。硬件系統(tǒng)結(jié)構(gòu)如圖2所示。本次設(shè)計中使用到了ARM9架構(gòu)的處理器,用CC2420作為感知節(jié)點的無線通信模塊。無線收發(fā)模塊中,用ZigBee芯片作為基礎(chǔ)。GPRS的無線通信模塊中使用EM310,完成物理世界和傳感器之間的網(wǎng)絡(luò)聯(lián)系。使用到sink,將節(jié)點收到的數(shù)據(jù)發(fā)送,網(wǎng)關(guān)和sink節(jié)點用網(wǎng)關(guān)進(jìn)行連接,形成上傳數(shù)據(jù)和下達(dá)命令的通道[5]。
物聯(lián)網(wǎng)網(wǎng)關(guān)軟件架構(gòu)有BootLoader程序、LINUX內(nèi)核、根文件系統(tǒng)和應(yīng)用程序四個部分。BootLoader程序是系統(tǒng)的初始化程序,功能是加載軟件環(huán)境和操作系統(tǒng)內(nèi)核的數(shù)據(jù)。SD-Boot是網(wǎng)關(guān)啟動BootLoader程序時首要任務(wù),使用SD卡燒寫方式,對引導(dǎo)程序進(jìn)行移植和編譯。物聯(lián)網(wǎng)網(wǎng)關(guān)的應(yīng)用程序設(shè)計方面,分為三個部分,ZigBee部分、TCP部分和web應(yīng)用程序部分[6]。
3.2.1 ZigBee應(yīng)用程序的設(shè)計
物聯(lián)網(wǎng)網(wǎng)關(guān)的主要功能是對感知層的數(shù)據(jù)作出采集分析和處理。軟件模塊也相應(yīng)的分成主動上報、查詢和控制三個方面[7-8]。主動上報方面,數(shù)據(jù)格式以無線通訊協(xié)議的16進(jìn)制為主,實現(xiàn)上調(diào)用接收程序nodedataproe.e,監(jiān)聽程序listenfile.e以及節(jié)點狀態(tài)程序nodestatus.c。節(jié)點接收程序調(diào)用函數(shù)組能滿足內(nèi)存間交互,通過調(diào)用/exc/gateway/map.txt文件能將內(nèi)存表初始化,對串口打開和設(shè)置時,調(diào)用串口函數(shù)int serial_init,創(chuàng)建fork進(jìn)程。數(shù)據(jù)采集功能的實現(xiàn),需用到3個系統(tǒng)函數(shù),它們分別是wait、wifexited和wtermsig。監(jiān)聽程序的作用是監(jiān)聽一些較為重要的文件,通過調(diào)用組函數(shù)inotify_能將監(jiān)聽功能初始化,inotify_add_watch能添加監(jiān)聽事件,設(shè)置相應(yīng)的屬性。網(wǎng)關(guān)正常情況下,inotify_rm_watch(fd,wd)不會被調(diào)用,節(jié)點狀態(tài)程序用來完成采集節(jié)點狀態(tài)信息。關(guān)于傳感器上報時間,設(shè)計中采集間隔為10s,系統(tǒng)函數(shù)有signal、alarm和pause()。
3.2.2 WEB應(yīng)用程序設(shè)計
用戶應(yīng)用程序和物聯(lián)網(wǎng)網(wǎng)關(guān)進(jìn)行交互時,通訊方式使用TCP/IP方式。在對WEB應(yīng)用程序進(jìn)行設(shè)計時,會使用CGI的方式,融合HTML以及C語言,使得應(yīng)用層能順利訪問,組網(wǎng)程序主要有zigbee.cgi程序?qū)崿F(xiàn),能對頻點和ID參數(shù)進(jìn)行設(shè)置。獲取新節(jié)點數(shù)據(jù)時,使用到newnode_list.cgi,且調(diào)用fprintf函數(shù)。使用Map.cgi程序?qū)?jié)點編號、額定掉線時間等作出配置。
綜上所述,隨著網(wǎng)絡(luò)技術(shù)和傳感技術(shù)的發(fā)展,物聯(lián)網(wǎng)在生活中的應(yīng)用變得越來越廣泛。物聯(lián)網(wǎng)網(wǎng)關(guān)中,使用較為廣泛的協(xié)議的ZigBee協(xié)議,和傳統(tǒng)的TCP/IP協(xié)議存在著不兼容的現(xiàn)象。在物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)計中,如何實現(xiàn)ZigBee協(xié)議和TCP/Ip協(xié)議的融合非常關(guān)鍵。文章簡要分析了物聯(lián)網(wǎng)應(yīng)用體系架構(gòu),探討了物聯(lián)網(wǎng)網(wǎng)關(guān)系統(tǒng)的需求,并對物聯(lián)網(wǎng)網(wǎng)關(guān)作出了設(shè)計,以為同行工作者提供相關(guān)參考資料。