国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于樹莓派的多ZigBee網(wǎng)關(guān)協(xié)作方案

2018-08-21 01:59沈蘇彬
關(guān)鍵詞:關(guān)節(jié)點(diǎn)樹莓網(wǎng)關(guān)

肖 鵬,沈蘇彬

(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210003)

1 概 述

ZigBee是一種新興的短距離、低速率無線網(wǎng)絡(luò)技術(shù),具有低功耗、低成本、低復(fù)雜度等優(yōu)點(diǎn),在無線傳感器網(wǎng)絡(luò)應(yīng)用中扮演著非常重要的角色[1-2]。ZigBee網(wǎng)關(guān)的主要功能是數(shù)據(jù)匯總和協(xié)議轉(zhuǎn)換,能夠?qū)igBee網(wǎng)絡(luò)的數(shù)據(jù)上傳到以太網(wǎng)[3]。另一方面,能對以太網(wǎng)發(fā)送過來的命令通過數(shù)據(jù)轉(zhuǎn)換和地址解析,發(fā)送給ZigBee網(wǎng)絡(luò)節(jié)點(diǎn),控制相關(guān)設(shè)備[4]。

ZigBee網(wǎng)絡(luò)的傳感節(jié)點(diǎn)和Internet之間的數(shù)據(jù)交互必須通過網(wǎng)關(guān),因此網(wǎng)關(guān)成為傳感節(jié)點(diǎn)和Internet交互的瓶頸。在單網(wǎng)關(guān)模式下的ZigBee網(wǎng)絡(luò)結(jié)構(gòu)中,數(shù)據(jù)集中匯聚在一個(gè)網(wǎng)關(guān)節(jié)點(diǎn)帶來的問題如下:

(1)網(wǎng)關(guān)節(jié)點(diǎn)數(shù)據(jù)轉(zhuǎn)換速率有限,在網(wǎng)絡(luò)的上行模式下,當(dāng)短時(shí)間有大量數(shù)據(jù)需要交互時(shí),容易造成網(wǎng)關(guān)以及周圍路由節(jié)點(diǎn)產(chǎn)生擁塞,導(dǎo)致整個(gè)網(wǎng)絡(luò)的上行吞吐量降低;

(2)網(wǎng)絡(luò)規(guī)模較大,單網(wǎng)關(guān)模式無法滿足偏遠(yuǎn)終端節(jié)點(diǎn)的數(shù)據(jù)實(shí)時(shí)性要求,端到端的時(shí)延會(huì)隨著網(wǎng)絡(luò)規(guī)模的增加而增加,同時(shí)終端節(jié)點(diǎn)掉包率也會(huì)提高;

(3)網(wǎng)關(guān)周圍部署的路由節(jié)點(diǎn)需要存儲大量的路由信息,并且持續(xù)轉(zhuǎn)發(fā)來自終端節(jié)點(diǎn)的數(shù)據(jù),導(dǎo)致過早消耗能量。當(dāng)某個(gè)路由節(jié)點(diǎn)因電量耗盡而宕機(jī),勢必加重其他路由節(jié)點(diǎn)的負(fù)擔(dān),造成連鎖效應(yīng),從而影響網(wǎng)絡(luò)的穩(wěn)定性。

從圖1中看出,終端節(jié)點(diǎn)D的數(shù)據(jù)若需要發(fā)送給網(wǎng)關(guān)節(jié)點(diǎn),有三條路徑可以選擇。第一條路徑為D→R1→R2→G1,第二條路徑為D→R1→R3→R4→G2,第三條路徑為D→R1→R5→R6→R7→G3,在只考慮路由跳數(shù)的情況下,顯然第一條路徑是最優(yōu)的,G1網(wǎng)關(guān)是最優(yōu)網(wǎng)關(guān)。假設(shè)整個(gè)網(wǎng)絡(luò)中只存在一個(gè)G1網(wǎng)關(guān)節(jié)點(diǎn),根據(jù)ZigBee網(wǎng)狀網(wǎng)絡(luò)路由算法,R2節(jié)點(diǎn)的工作量是巨大的,它需要不斷轉(zhuǎn)發(fā)來自其他節(jié)點(diǎn)的數(shù)據(jù),使得節(jié)點(diǎn)過早地消耗能量,同時(shí)G1網(wǎng)關(guān)的數(shù)據(jù)轉(zhuǎn)化能力是有限的,可造成數(shù)據(jù)擁塞。

圖1 最優(yōu)網(wǎng)關(guān)選擇

目前針對Mesh型網(wǎng)絡(luò)[5-6]的多網(wǎng)關(guān)選擇問題研究較為廣泛。文獻(xiàn)[7]通過把Mesh節(jié)點(diǎn)劃分成若干組,并且每一組中的節(jié)點(diǎn)與特定的網(wǎng)關(guān)進(jìn)行通信,是一種負(fù)載均衡策略。該算法需要網(wǎng)關(guān)之間信息的交互,開銷較大。文獻(xiàn)[8]的潛在網(wǎng)關(guān)選擇策略是基于路由跳數(shù),網(wǎng)關(guān)廣播網(wǎng)關(guān)發(fā)現(xiàn)消息,非網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)消息計(jì)算與網(wǎng)關(guān)的距離,選擇具有跳數(shù)最少的路徑網(wǎng)關(guān),用于將流量發(fā)送到基礎(chǔ)設(shè)施網(wǎng)絡(luò)。ZigBee網(wǎng)絡(luò)可以組成Mesh網(wǎng)絡(luò),文獻(xiàn)[9]針對ZigBee Mesh網(wǎng)絡(luò)的特點(diǎn)提出一種多網(wǎng)關(guān)方案,但其只考慮了路由跳數(shù)作為網(wǎng)關(guān)的選擇依據(jù),沒有考慮網(wǎng)關(guān)本身的性能。在上述研究的基礎(chǔ)上,文中提出將ZigBee路由成本與網(wǎng)關(guān)負(fù)載相結(jié)合的方式作為網(wǎng)關(guān)的選擇方案。

目前針對ZigBee網(wǎng)絡(luò)的應(yīng)用多以單網(wǎng)關(guān)模式運(yùn)行,在節(jié)點(diǎn)數(shù)量少、數(shù)據(jù)量小的應(yīng)用場景能夠滿足需求,但對于環(huán)境復(fù)雜,節(jié)點(diǎn)數(shù)量大,數(shù)據(jù)業(yè)務(wù)量大的場合,需要多個(gè)網(wǎng)關(guān)才能滿足數(shù)據(jù)的轉(zhuǎn)發(fā)和控制功能[10]。目前國內(nèi)外針對Mesh網(wǎng)絡(luò)的多網(wǎng)關(guān)系統(tǒng)的研究較多,而對ZigBee網(wǎng)絡(luò)的多網(wǎng)關(guān)的研究較少,文中提出一種針對ZigBee Mesh網(wǎng)絡(luò)的多網(wǎng)關(guān)協(xié)作方案,提高整個(gè)網(wǎng)絡(luò)吞吐量,達(dá)到較小網(wǎng)絡(luò)數(shù)據(jù)時(shí)延的目的。

2 多網(wǎng)關(guān)協(xié)作與最優(yōu)網(wǎng)關(guān)發(fā)現(xiàn)

ZigBee設(shè)備不能直接連接到以太網(wǎng),網(wǎng)關(guān)的目標(biāo)是解決不同端點(diǎn)網(wǎng)絡(luò)和互聯(lián)網(wǎng)之間的異質(zhì)性;加強(qiáng)端點(diǎn)網(wǎng)絡(luò)的管理;將傳統(tǒng)互聯(lián)網(wǎng)與端點(diǎn)網(wǎng)絡(luò)互聯(lián)互通。在多網(wǎng)關(guān)系統(tǒng)中,最先啟動(dòng)的ZigBee網(wǎng)關(guān)負(fù)責(zé)建立和維護(hù)網(wǎng)絡(luò),隨著網(wǎng)絡(luò)規(guī)模的增大,新的網(wǎng)關(guān)節(jié)點(diǎn)加入到網(wǎng)絡(luò),分擔(dān)數(shù)據(jù)的上行和下行工作。ZigBee網(wǎng)絡(luò)的終端節(jié)點(diǎn)數(shù)據(jù)上行至最優(yōu)網(wǎng)關(guān)后,網(wǎng)關(guān)將建立終端節(jié)點(diǎn)的地址映射表,以便Internet網(wǎng)絡(luò)數(shù)據(jù)下行進(jìn)入ZigBee網(wǎng)絡(luò)時(shí)進(jìn)行快速尋址,從而避免在單一網(wǎng)關(guān)下,數(shù)據(jù)需要通過多次路由才能達(dá)到終端節(jié)點(diǎn),減少了下行數(shù)據(jù)的時(shí)延。多網(wǎng)關(guān)系統(tǒng)結(jié)構(gòu)如圖2所示,樹莓派二代和CC2530節(jié)點(diǎn)通過串口連接在一起形成ZigBee網(wǎng)關(guān)節(jié)點(diǎn)。多個(gè)ZigBee節(jié)點(diǎn)和網(wǎng)關(guān)一起形成ZigBee Mesh型網(wǎng)絡(luò)。

圖2 多網(wǎng)關(guān)系統(tǒng)架構(gòu)

ZigBee網(wǎng)絡(luò)數(shù)據(jù)吞吐量提高可以通過增加網(wǎng)關(guān)的數(shù)量,但多網(wǎng)關(guān)的網(wǎng)絡(luò)性能與網(wǎng)關(guān)配置有很大關(guān)系。增加網(wǎng)關(guān)負(fù)載約束是為了避免終端節(jié)點(diǎn)聚集到某一網(wǎng)關(guān),造成一部分網(wǎng)關(guān)負(fù)載過重,另一部分網(wǎng)關(guān)沒有發(fā)揮應(yīng)有的作用,導(dǎo)致網(wǎng)絡(luò)數(shù)據(jù)吞吐量下降。若只考慮網(wǎng)關(guān)的負(fù)載,終端節(jié)點(diǎn)會(huì)選擇負(fù)載小的網(wǎng)關(guān)節(jié)點(diǎn)作為數(shù)據(jù)匯聚節(jié)點(diǎn),但對于某些終端節(jié)點(diǎn)來說,與負(fù)載小的網(wǎng)關(guān)節(jié)點(diǎn)之間的路徑質(zhì)量并不是最優(yōu)的,路由成本可能會(huì)很大,可能導(dǎo)致端到端時(shí)延增加,不能提高整體網(wǎng)絡(luò)的性能。因此,文中結(jié)合網(wǎng)關(guān)負(fù)載和路由成本兩個(gè)主要影響網(wǎng)絡(luò)性能的因素,作為最優(yōu)ZigBee網(wǎng)關(guān)的選擇依據(jù)。

網(wǎng)關(guān)節(jié)點(diǎn)負(fù)載代表網(wǎng)關(guān)在單位時(shí)間內(nèi)能轉(zhuǎn)換的數(shù)據(jù)率,使用緩沖區(qū)當(dāng)前隊(duì)列長度Lcurrent與緩沖區(qū)中隊(duì)列最大長度Lmax的比值來衡量:

(1)

其中,LoadRatei用來表示當(dāng)前網(wǎng)關(guān)節(jié)點(diǎn)i的負(fù)載,文中定義當(dāng)LoadRatei>LoadRatethreshold時(shí),表示該網(wǎng)關(guān)節(jié)點(diǎn)已經(jīng)達(dá)到了傳輸瓶頸。LoadRatethreshold取0.8。

在ZigBee路由算法中,路由發(fā)現(xiàn)和路由維護(hù)是以路由成本為依據(jù)選擇最佳路徑的。一條最佳路徑由多個(gè)鏈路組成,每個(gè)鏈路都有相應(yīng)的鏈路質(zhì)量。鏈路質(zhì)量越高,路由成本越低。鏈路質(zhì)量表示相鄰節(jié)點(diǎn)之間通信所傳遞的數(shù)據(jù)報(bào)的強(qiáng)度和質(zhì)量。

如果定義一條長度為L的路徑[D1,D2,…,Di],Di表示編號為i的節(jié)點(diǎn),[Di,Di+1]表示Di和Di+1的鏈路,則該路徑的路由成本之和表示為:

(2)

其中,PathCost{P}表示網(wǎng)關(guān)到終端節(jié)點(diǎn)的路徑路由成本;C{[Di,Di+1]}表示相鄰節(jié)點(diǎn)Di到Di+1的路由成本。

路由成本C是關(guān)于鏈路質(zhì)量的函數(shù),計(jì)算公式如下:

(3)

其中,C{l}的取值范圍為[0,1,…,7],表示鏈路L上傳輸?shù)目煽啃?;Pl的測量根據(jù)接收幀的鏈路質(zhì)量指示平均值來估計(jì)。

IEEE802.15.4的物理層中添加鏈路質(zhì)量指示(link quality indication,LQI)這個(gè)物理量,對LQI的測量是通過接收機(jī)ED、信噪比估計(jì)或者混合使用這兩種方法來進(jìn)行[11-12]。在ZigBee中每個(gè)接收的分組都要進(jìn)行LQI測量,其結(jié)果值用8 bit整數(shù)表示,并將結(jié)果值傳給MAC子層。

目前流行多網(wǎng)關(guān)選擇策略中的決策因素是通過單一的路由跳數(shù)作為基準(zhǔn),路由跳數(shù)少,表明該節(jié)點(diǎn)到網(wǎng)關(guān)的路徑是最優(yōu)的。而路由跳數(shù)并不能保證選擇的網(wǎng)關(guān)最優(yōu),隨著網(wǎng)絡(luò)通信量的增加,這種網(wǎng)關(guān)選擇方式容易導(dǎo)致熱點(diǎn)區(qū)域的形成,并出現(xiàn)網(wǎng)絡(luò)瓶頸,最終導(dǎo)致網(wǎng)絡(luò)擁塞。文中采用網(wǎng)關(guān)負(fù)載和路由成本的方式作為最優(yōu)網(wǎng)關(guān)的判斷標(biāo)準(zhǔn),提出一個(gè)網(wǎng)關(guān)選擇函數(shù)。終端節(jié)點(diǎn)通過網(wǎng)關(guān)選擇函數(shù)計(jì)算出Optimali值,公式如下:

Optimali=α×PathCosti+(1-α)LoadRatei

(4)

其中,α表示權(quán)重,由終端節(jié)點(diǎn)決定;PathCosti表示終端節(jié)點(diǎn)到網(wǎng)關(guān)節(jié)點(diǎn)i的路由成本(在能到達(dá)的情況下);LoadRatei表示網(wǎng)關(guān)節(jié)點(diǎn)i的負(fù)載。PathCosti值越小,說明終端節(jié)點(diǎn)與網(wǎng)關(guān)節(jié)點(diǎn)的路徑質(zhì)量越高,路由成本越低;LoadRatei值越小,說明網(wǎng)關(guān)的負(fù)載越小,該網(wǎng)關(guān)能夠承受更多的數(shù)據(jù)量。根據(jù)式4計(jì)算的Optimali值存儲在終端節(jié)點(diǎn)中,終端節(jié)點(diǎn)依據(jù)Optimali最小者選取最優(yōu)網(wǎng)關(guān)節(jié)點(diǎn)。

終端節(jié)點(diǎn)與Internet通信前,首先需要通過某種手段找到網(wǎng)關(guān)節(jié)點(diǎn),即網(wǎng)關(guān)發(fā)現(xiàn)過程,文中采用主動(dòng)發(fā)現(xiàn)機(jī)制。新的網(wǎng)關(guān)節(jié)點(diǎn)加入到網(wǎng)絡(luò)后,向全網(wǎng)周期性廣播網(wǎng)關(guān)通告消息,告知終端節(jié)點(diǎn)自身的信息,包括網(wǎng)關(guān)唯一標(biāo)識符、網(wǎng)絡(luò)中16位短地址和負(fù)載。

最優(yōu)網(wǎng)關(guān)選擇算法描述如下:

(1)ZigBee網(wǎng)絡(luò)中的任意節(jié)點(diǎn)啟動(dòng),加入網(wǎng)絡(luò)后,判斷自身是否為網(wǎng)關(guān);

(2)若是網(wǎng)關(guān)節(jié)點(diǎn),則以廣播的形式周期性向全網(wǎng)發(fā)送Gateway_Status通告,網(wǎng)關(guān)通告字段如表1。

表1 網(wǎng)關(guān)通告字段

(3)若是終端節(jié)點(diǎn),則初始網(wǎng)關(guān)短地址默認(rèn)為協(xié)調(diào)器短地址,在未收到任何其他網(wǎng)關(guān)通告之前,終端節(jié)點(diǎn)以默認(rèn)網(wǎng)關(guān)作為數(shù)據(jù)的匯聚節(jié)點(diǎn)。網(wǎng)絡(luò)運(yùn)行過程中收到任意網(wǎng)關(guān)通告后,獲取網(wǎng)關(guān)節(jié)點(diǎn)的ID,并判斷該網(wǎng)關(guān)是否已存在自己的網(wǎng)關(guān)設(shè)備表中,若存在則更新該網(wǎng)關(guān)信息條目,包括負(fù)載、路由成本;若不存在,則創(chuàng)建新的網(wǎng)關(guān)條目,并將該網(wǎng)關(guān)條目添加到網(wǎng)關(guān)設(shè)備表中。

(4)終端節(jié)點(diǎn)根據(jù)式4計(jì)算網(wǎng)關(guān)的Optimal值,更新到網(wǎng)關(guān)設(shè)備表中。

(5)終端節(jié)點(diǎn)遍歷網(wǎng)關(guān)設(shè)備表,若當(dāng)前的網(wǎng)關(guān)Optimal值大于新的網(wǎng)關(guān),則更改終端節(jié)點(diǎn)的數(shù)據(jù)發(fā)送地址,將地址修改為新網(wǎng)關(guān)節(jié)點(diǎn)的地址;否則,不做變化。

(6)終端節(jié)點(diǎn)向新網(wǎng)關(guān)節(jié)點(diǎn)發(fā)送Optimal_Confirm消息,通知最優(yōu)網(wǎng)關(guān)節(jié)點(diǎn)。網(wǎng)關(guān)節(jié)點(diǎn)收到Optimal_Confirm消息后,存儲該終端節(jié)點(diǎn)的信息。外部網(wǎng)絡(luò)可以根據(jù)網(wǎng)關(guān)存儲終端節(jié)點(diǎn)地址信息自由的切換網(wǎng)關(guān),以達(dá)到快速尋址、傳輸數(shù)據(jù)的目的。

3 多網(wǎng)關(guān)協(xié)作與最優(yōu)網(wǎng)關(guān)選擇的實(shí)現(xiàn)

3.1 網(wǎng)關(guān)的硬件設(shè)計(jì)

網(wǎng)關(guān)的硬件設(shè)計(jì)包括兩部分,一個(gè)是負(fù)責(zé)運(yùn)行ZigBee網(wǎng)絡(luò)的CC2530,是德州儀器公司開發(fā)的真正片上系統(tǒng)解決方案。它結(jié)合了一個(gè)高性能2.4 GHz DSSS射頻收發(fā)器核心和一顆工業(yè)級小巧高效的8051控制器,具有32/64/128 KB可編程閃存和8 KB的RAM,還包括A/D轉(zhuǎn)換器、AES128協(xié)同處理器、看門狗定時(shí)器等[13]。

另一個(gè)是利用樹莓派作為數(shù)據(jù)轉(zhuǎn)換模塊,是網(wǎng)關(guān)的核心組成。樹莓派(Raspberry Pi)是一個(gè)小巧的、功能強(qiáng)大、價(jià)格便宜的小型卡片式電腦[14],這種信用卡大小的計(jì)算機(jī)具有眾多性能并且經(jīng)濟(jì)實(shí)惠的價(jià)格,是許多設(shè)備接口的完美平臺。網(wǎng)關(guān)節(jié)點(diǎn)使用樹莓派2代,B型,RAM為1 GB,并配有一個(gè)無線傳輸WiFi模塊,一個(gè)以太網(wǎng)接口模塊和三個(gè)USB接口模塊。ZigBee網(wǎng)絡(luò)的匯聚節(jié)點(diǎn)以串口形式與樹莓派相接,占用串口設(shè)備為ttyUSB0。

3.2 網(wǎng)關(guān)的軟件設(shè)計(jì)

樹莓派以Linux系統(tǒng)為基礎(chǔ),移植基于C++的QT庫作為主要的開發(fā)語言[15]。QT庫使用的版本為QT5.8,由于樹莓派的性能有限,對于大型程序的開發(fā)工作仍然需要在PC機(jī)上完成。PC機(jī)對QT5.8源碼包進(jìn)行交叉編譯成ARM版本的庫,隨后移植到樹莓派上,同時(shí)本地也需要保存ARM版本的副本,作為網(wǎng)關(guān)程序編譯時(shí)的鏈接庫。網(wǎng)關(guān)應(yīng)用程序涉及的主要模塊有串口通信、協(xié)議轉(zhuǎn)換、TCP數(shù)據(jù)傳輸服務(wù)和最優(yōu)網(wǎng)關(guān)選擇算法等。

(1)串口通信:利用串口通信模塊可以對ZigBee網(wǎng)絡(luò)數(shù)據(jù)匯聚節(jié)點(diǎn)進(jìn)行讀寫。開辟串口讀寫線程,將來自串口的數(shù)據(jù)讀入緩沖區(qū)。

(2)協(xié)議轉(zhuǎn)換:將ZigBee網(wǎng)絡(luò)數(shù)據(jù)格式轉(zhuǎn)換為TCP/IP,涉及的工作是對ZigBee數(shù)據(jù)格式解碼和重新封裝。首先識別數(shù)據(jù)幀邊界,將串行的數(shù)據(jù)格式根據(jù)邊界標(biāo)識符劃分為單個(gè)數(shù)據(jù)幀;然后將單個(gè)數(shù)據(jù)幀根據(jù)數(shù)據(jù)轉(zhuǎn)義恢復(fù)為初始數(shù)據(jù),并對數(shù)據(jù)的合法性進(jìn)行驗(yàn)證。驗(yàn)證方法是通過前后數(shù)據(jù)檢驗(yàn)和對比,相同則數(shù)據(jù)合法,否則丟棄不合法數(shù)據(jù)幀;最后生成新的數(shù)據(jù)對象,以JSON的形式對數(shù)據(jù)重新打包,并添加時(shí)間戳。重新分裝的數(shù)據(jù)送入網(wǎng)絡(luò)接口,等待上傳。

(3)TCP數(shù)據(jù)傳輸服務(wù):樹莓派以TF卡作為永久存儲設(shè)備,容量有限,同時(shí)為了方便對網(wǎng)關(guān)性能進(jìn)行綜合分析,有必要將網(wǎng)關(guān)的數(shù)據(jù)上傳至服務(wù)器。在PC上搭建服務(wù)器,監(jiān)聽來自網(wǎng)關(guān)的請求,監(jiān)聽端口為8080,并且服務(wù)器以多線程方式進(jìn)行監(jiān)聽。網(wǎng)關(guān)與服務(wù)器通訊是建立在TCP協(xié)議下套接字接口的基礎(chǔ)上進(jìn)行數(shù)據(jù)的上傳。

(4)最優(yōu)網(wǎng)關(guān)選擇算法實(shí)現(xiàn):最優(yōu)網(wǎng)關(guān)選擇算法需要終端節(jié)點(diǎn)和網(wǎng)關(guān)節(jié)點(diǎn)相互配合才能達(dá)到最優(yōu)網(wǎng)關(guān)選擇的目的。

算法核心偽代碼如下:

Begin

A nodeijoin the ZigBee network;

if(nodei==gateway) then

Gateway computes LoadRatei;

Gateway periodically sends gateway

status message: ID, Address, LoadRate;

end if

if(nodei==end) then

When nodeireceives gateway status message;

End node computes Optimali;

if(current_optimal=null or Optimali

current_optimal=Optimali;

end if

if(find(gateway.ID)) then

Update parameters Optimal in gateway

device table;

end if

if(!find(gateway.ID)) then

New gateway insert into the gateway device Table;

end if

Update destination address in nodeiby

current_optimal gateway address;

Send data to the optimal gateway;

end if

End

4 測試與分析

為驗(yàn)證多網(wǎng)關(guān)系統(tǒng)網(wǎng)絡(luò)的連通性和網(wǎng)關(guān)性能,在實(shí)驗(yàn)環(huán)境中搭建多網(wǎng)關(guān)系統(tǒng)網(wǎng)絡(luò)測試平臺。網(wǎng)關(guān)節(jié)點(diǎn)由樹莓派二代和CC2530組成,數(shù)據(jù)源節(jié)點(diǎn)為CC2530開發(fā)套件,通信協(xié)議為ZigBee協(xié)議。測試平臺包括2個(gè)網(wǎng)關(guān),若干個(gè)無線節(jié)點(diǎn),以及1臺用來作為服務(wù)器的PC機(jī)。每個(gè)ZigBee終端節(jié)點(diǎn)根據(jù)網(wǎng)關(guān)選擇函數(shù)向網(wǎng)關(guān)發(fā)送數(shù)據(jù),網(wǎng)關(guān)再通過套接字接口編程向服務(wù)器存入數(shù)據(jù)。服務(wù)器對網(wǎng)關(guān)與服務(wù)器的通信建立日志追蹤,可以從日志獲取的信息包括ZigBee節(jié)點(diǎn)的編號,節(jié)點(diǎn)網(wǎng)絡(luò)短地址,數(shù)據(jù)量,端到端的通信時(shí)間等。文中通過Python編寫腳本讀取日志文件,對日志進(jìn)行分析,比較網(wǎng)絡(luò)在單網(wǎng)關(guān)模式和多網(wǎng)關(guān)模式下的網(wǎng)絡(luò)性能,包括網(wǎng)關(guān)的連通性、網(wǎng)絡(luò)的吞吐量和數(shù)據(jù)時(shí)延。實(shí)驗(yàn)中,每個(gè)ZigBee數(shù)據(jù)包大小為100個(gè)字節(jié),運(yùn)行時(shí)間60 s。

4.1 終端節(jié)點(diǎn)選擇不同權(quán)重值的結(jié)果分析

為驗(yàn)證選取不同的權(quán)重值對網(wǎng)絡(luò)吞吐量的影響,在多網(wǎng)關(guān)模式下,網(wǎng)絡(luò)規(guī)模一定,節(jié)點(diǎn)發(fā)送速率為250 kbps時(shí)進(jìn)行吞吐量的實(shí)驗(yàn)對比。從圖3可以看出,在α接近0.5時(shí),網(wǎng)絡(luò)吞吐量最高,文中后續(xù)的權(quán)重值設(shè)置為0.5。

4.2 兩種網(wǎng)關(guān)模式網(wǎng)絡(luò)吞吐量對比

如圖4所示,隨著網(wǎng)絡(luò)規(guī)模的增加,單網(wǎng)關(guān)模式處理大量數(shù)據(jù)的能力明顯低于多網(wǎng)關(guān)模式,單網(wǎng)關(guān)的負(fù)載持續(xù)增加,最終會(huì)達(dá)到瓶頸。而多網(wǎng)關(guān)考慮到網(wǎng)關(guān)負(fù)載均衡,能夠?qū)?shù)據(jù)分?jǐn)偟狡渌W(wǎng)關(guān),避免了單一網(wǎng)關(guān)能力有限的問題,提高了網(wǎng)絡(luò)吞吐量。

圖3 不同權(quán)重值下的吞吐量

圖4 單網(wǎng)關(guān)模式和多網(wǎng)關(guān)模式吞吐量對比

4.3 兩種網(wǎng)關(guān)模式數(shù)據(jù)時(shí)延對比

圖5對比了網(wǎng)絡(luò)業(yè)務(wù)量增大情況下兩種模式的時(shí)延,從中可以看出節(jié)點(diǎn)數(shù)目少,網(wǎng)絡(luò)數(shù)據(jù)量少,單網(wǎng)關(guān)能夠快速轉(zhuǎn)換,滿足了要求。一旦業(yè)務(wù)量伴隨網(wǎng)絡(luò)規(guī)模增加,單網(wǎng)關(guān)的負(fù)載就會(huì)增加,等待轉(zhuǎn)換的數(shù)據(jù)不能及時(shí)處理,導(dǎo)致數(shù)據(jù)的實(shí)時(shí)性降低。在多網(wǎng)關(guān)模式下,網(wǎng)關(guān)感知業(yè)務(wù)量增加這一變化,將自己的狀態(tài)告知全網(wǎng),使得網(wǎng)絡(luò)的終端節(jié)點(diǎn)有機(jī)會(huì)重新選擇那些負(fù)載小的網(wǎng)關(guān)節(jié)點(diǎn),從而減少了數(shù)據(jù)時(shí)延。

圖5 單網(wǎng)關(guān)模式與多網(wǎng)關(guān)模式數(shù)據(jù)時(shí)延對比

5 結(jié)束語

分析了單ZigBee網(wǎng)關(guān)模式在網(wǎng)狀網(wǎng)絡(luò)拓?fù)渲袔淼膯栴},提出一種多網(wǎng)關(guān)協(xié)作方案,并完成了硬件和軟件的設(shè)計(jì),完整搭建了基于ZigBee多網(wǎng)關(guān)無線傳感器網(wǎng)絡(luò)驗(yàn)證平臺,能完成網(wǎng)絡(luò)拓?fù)錁?gòu)建、多網(wǎng)關(guān)選擇、數(shù)據(jù)傳輸?shù)裙δ堋υ摲桨高M(jìn)行了實(shí)驗(yàn)驗(yàn)證,結(jié)果表明,多網(wǎng)關(guān)協(xié)作方案提高了網(wǎng)絡(luò)的吞吐量,減少了數(shù)據(jù)時(shí)延。

猜你喜歡
關(guān)節(jié)點(diǎn)樹莓網(wǎng)關(guān)
基于關(guān)節(jié)點(diǎn)數(shù)據(jù)關(guān)注RGB視頻的雙人交互行為識別
山間“小精靈”
——樹莓
基于FPGA的工業(yè)TSN融合網(wǎng)關(guān)設(shè)計(jì)
基于深度學(xué)習(xí)和視覺檢測的地鐵違規(guī)行為預(yù)警系統(tǒng)研究與應(yīng)用
一種主從冗余網(wǎng)關(guān)的故障模式分析與處理
重載機(jī)車網(wǎng)絡(luò)重聯(lián)TCN 故障節(jié)點(diǎn)識別方法研究*
關(guān)節(jié)點(diǎn)連接歷史圖與卷積神經(jīng)網(wǎng)絡(luò)結(jié)合的雙人交互動(dòng)作識別
基于樹莓派的騎行智能頭盔設(shè)計(jì)
基于6LoWPAN的嵌入式多網(wǎng)關(guān)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
天地一體化網(wǎng)絡(luò)地面軟網(wǎng)關(guān)技術(shù)及其應(yīng)用