999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于樹莓派的多ZigBee網關協作方案

2018-08-21 01:59:56沈蘇彬
計算機技術與發展 2018年8期

肖 鵬,沈蘇彬

(南京郵電大學 計算機學院,江蘇 南京 210003)

1 概 述

ZigBee是一種新興的短距離、低速率無線網絡技術,具有低功耗、低成本、低復雜度等優點,在無線傳感器網絡應用中扮演著非常重要的角色[1-2]。ZigBee網關的主要功能是數據匯總和協議轉換,能夠將ZigBee網絡的數據上傳到以太網[3]。另一方面,能對以太網發送過來的命令通過數據轉換和地址解析,發送給ZigBee網絡節點,控制相關設備[4]。

ZigBee網絡的傳感節點和Internet之間的數據交互必須通過網關,因此網關成為傳感節點和Internet交互的瓶頸。在單網關模式下的ZigBee網絡結構中,數據集中匯聚在一個網關節點帶來的問題如下:

(1)網關節點數據轉換速率有限,在網絡的上行模式下,當短時間有大量數據需要交互時,容易造成網關以及周圍路由節點產生擁塞,導致整個網絡的上行吞吐量降低;

(2)網絡規模較大,單網關模式無法滿足偏遠終端節點的數據實時性要求,端到端的時延會隨著網絡規模的增加而增加,同時終端節點掉包率也會提高;

(3)網關周圍部署的路由節點需要存儲大量的路由信息,并且持續轉發來自終端節點的數據,導致過早消耗能量。當某個路由節點因電量耗盡而宕機,勢必加重其他路由節點的負擔,造成連鎖效應,從而影響網絡的穩定性。

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

圖1 最優網關選擇

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

目前針對ZigBee網絡的應用多以單網關模式運行,在節點數量少、數據量小的應用場景能夠滿足需求,但對于環境復雜,節點數量大,數據業務量大的場合,需要多個網關才能滿足數據的轉發和控制功能[10]。目前國內外針對Mesh網絡的多網關系統的研究較多,而對ZigBee網絡的多網關的研究較少,文中提出一種針對ZigBee Mesh網絡的多網關協作方案,提高整個網絡吞吐量,達到較小網絡數據時延的目的。

2 多網關協作與最優網關發現

ZigBee設備不能直接連接到以太網,網關的目標是解決不同端點網絡和互聯網之間的異質性;加強端點網絡的管理;將傳統互聯網與端點網絡互聯互通。在多網關系統中,最先啟動的ZigBee網關負責建立和維護網絡,隨著網絡規模的增大,新的網關節點加入到網絡,分擔數據的上行和下行工作。ZigBee網絡的終端節點數據上行至最優網關后,網關將建立終端節點的地址映射表,以便Internet網絡數據下行進入ZigBee網絡時進行快速尋址,從而避免在單一網關下,數據需要通過多次路由才能達到終端節點,減少了下行數據的時延。多網關系統結構如圖2所示,樹莓派二代和CC2530節點通過串口連接在一起形成ZigBee網關節點。多個ZigBee節點和網關一起形成ZigBee Mesh型網絡。

圖2 多網關系統架構

ZigBee網絡數據吞吐量提高可以通過增加網關的數量,但多網關的網絡性能與網關配置有很大關系。增加網關負載約束是為了避免終端節點聚集到某一網關,造成一部分網關負載過重,另一部分網關沒有發揮應有的作用,導致網絡數據吞吐量下降。若只考慮網關的負載,終端節點會選擇負載小的網關節點作為數據匯聚節點,但對于某些終端節點來說,與負載小的網關節點之間的路徑質量并不是最優的,路由成本可能會很大,可能導致端到端時延增加,不能提高整體網絡的性能。因此,文中結合網關負載和路由成本兩個主要影響網絡性能的因素,作為最優ZigBee網關的選擇依據。

網關節點負載代表網關在單位時間內能轉換的數據率,使用緩沖區當前隊列長度Lcurrent與緩沖區中隊列最大長度Lmax的比值來衡量:

(1)

其中,LoadRatei用來表示當前網關節點i的負載,文中定義當LoadRatei>LoadRatethreshold時,表示該網關節點已經達到了傳輸瓶頸。LoadRatethreshold取0.8。

在ZigBee路由算法中,路由發現和路由維護是以路由成本為依據選擇最佳路徑的。一條最佳路徑由多個鏈路組成,每個鏈路都有相應的鏈路質量。鏈路質量越高,路由成本越低。鏈路質量表示相鄰節點之間通信所傳遞的數據報的強度和質量。

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

(2)

其中,PathCost{P}表示網關到終端節點的路徑路由成本;C{[Di,Di+1]}表示相鄰節點Di到Di+1的路由成本。

路由成本C是關于鏈路質量的函數,計算公式如下:

(3)

其中,C{l}的取值范圍為[0,1,…,7],表示鏈路L上傳輸的可靠性;Pl的測量根據接收幀的鏈路質量指示平均值來估計。

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

目前流行多網關選擇策略中的決策因素是通過單一的路由跳數作為基準,路由跳數少,表明該節點到網關的路徑是最優的。而路由跳數并不能保證選擇的網關最優,隨著網絡通信量的增加,這種網關選擇方式容易導致熱點區域的形成,并出現網絡瓶頸,最終導致網絡擁塞。文中采用網關負載和路由成本的方式作為最優網關的判斷標準,提出一個網關選擇函數。終端節點通過網關選擇函數計算出Optimali值,公式如下:

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

(4)

其中,α表示權重,由終端節點決定;PathCosti表示終端節點到網關節點i的路由成本(在能到達的情況下);LoadRatei表示網關節點i的負載。PathCosti值越小,說明終端節點與網關節點的路徑質量越高,路由成本越低;LoadRatei值越小,說明網關的負載越小,該網關能夠承受更多的數據量。根據式4計算的Optimali值存儲在終端節點中,終端節點依據Optimali最小者選取最優網關節點。

終端節點與Internet通信前,首先需要通過某種手段找到網關節點,即網關發現過程,文中采用主動發現機制。新的網關節點加入到網絡后,向全網周期性廣播網關通告消息,告知終端節點自身的信息,包括網關唯一標識符、網絡中16位短地址和負載。

最優網關選擇算法描述如下:

(1)ZigBee網絡中的任意節點啟動,加入網絡后,判斷自身是否為網關;

(2)若是網關節點,則以廣播的形式周期性向全網發送Gateway_Status通告,網關通告字段如表1。

表1 網關通告字段

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

(4)終端節點根據式4計算網關的Optimal值,更新到網關設備表中。

(5)終端節點遍歷網關設備表,若當前的網關Optimal值大于新的網關,則更改終端節點的數據發送地址,將地址修改為新網關節點的地址;否則,不做變化。

(6)終端節點向新網關節點發送Optimal_Confirm消息,通知最優網關節點。網關節點收到Optimal_Confirm消息后,存儲該終端節點的信息。外部網絡可以根據網關存儲終端節點地址信息自由的切換網關,以達到快速尋址、傳輸數據的目的。

3 多網關協作與最優網關選擇的實現

3.1 網關的硬件設計

網關的硬件設計包括兩部分,一個是負責運行ZigBee網絡的CC2530,是德州儀器公司開發的真正片上系統解決方案。它結合了一個高性能2.4 GHz DSSS射頻收發器核心和一顆工業級小巧高效的8051控制器,具有32/64/128 KB可編程閃存和8 KB的RAM,還包括A/D轉換器、AES128協同處理器、看門狗定時器等[13]。

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

3.2 網關的軟件設計

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

(1)串口通信:利用串口通信模塊可以對ZigBee網絡數據匯聚節點進行讀寫。開辟串口讀寫線程,將來自串口的數據讀入緩沖區。

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

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

(4)最優網關選擇算法實現:最優網關選擇算法需要終端節點和網關節點相互配合才能達到最優網關選擇的目的。

算法核心偽代碼如下:

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 測試與分析

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

4.1 終端節點選擇不同權重值的結果分析

為驗證選取不同的權重值對網絡吞吐量的影響,在多網關模式下,網絡規模一定,節點發送速率為250 kbps時進行吞吐量的實驗對比。從圖3可以看出,在α接近0.5時,網絡吞吐量最高,文中后續的權重值設置為0.5。

4.2 兩種網關模式網絡吞吐量對比

如圖4所示,隨著網絡規模的增加,單網關模式處理大量數據的能力明顯低于多網關模式,單網關的負載持續增加,最終會達到瓶頸。而多網關考慮到網關負載均衡,能夠將數據分攤到其他網關,避免了單一網關能力有限的問題,提高了網絡吞吐量。

圖3 不同權重值下的吞吐量

圖4 單網關模式和多網關模式吞吐量對比

4.3 兩種網關模式數據時延對比

圖5對比了網絡業務量增大情況下兩種模式的時延,從中可以看出節點數目少,網絡數據量少,單網關能夠快速轉換,滿足了要求。一旦業務量伴隨網絡規模增加,單網關的負載就會增加,等待轉換的數據不能及時處理,導致數據的實時性降低。在多網關模式下,網關感知業務量增加這一變化,將自己的狀態告知全網,使得網絡的終端節點有機會重新選擇那些負載小的網關節點,從而減少了數據時延。

圖5 單網關模式與多網關模式數據時延對比

5 結束語

分析了單ZigBee網關模式在網狀網絡拓撲中帶來的問題,提出一種多網關協作方案,并完成了硬件和軟件的設計,完整搭建了基于ZigBee多網關無線傳感器網絡驗證平臺,能完成網絡拓撲構建、多網關選擇、數據傳輸等功能。對該方案進行了實驗驗證,結果表明,多網關協作方案提高了網絡的吞吐量,減少了數據時延。

主站蜘蛛池模板: 国产高清在线观看91精品| 国产办公室秘书无码精品| 亚洲啪啪网| 亚洲国产一成久久精品国产成人综合| 在线免费亚洲无码视频| 国产一级视频久久| 日韩高清中文字幕| 亚洲欧美综合另类图片小说区| 欧美日韩第三页| 国产精品男人的天堂| 成人福利在线视频| 波多野结衣一二三| 在线观看无码av五月花| 欧美亚洲激情| 亚洲一区毛片| 国产精品白浆在线播放| 在线观看国产精美视频| 亚洲精品天堂自在久久77| 久久黄色毛片| 国产成人综合亚洲欧洲色就色| 久久免费视频播放| 欧美日韩第二页| 免费啪啪网址| 国产精品刺激对白在线| 欧美午夜精品| 欧美不卡视频一区发布| 东京热高清无码精品| aa级毛片毛片免费观看久| 在线视频97| 精品视频在线观看你懂的一区| 久久综合色天堂av| 性色生活片在线观看| 永久天堂网Av| 成年女人18毛片毛片免费| 人人澡人人爽欧美一区| 亚洲无码视频喷水| 免费国产一级 片内射老| 伊人成人在线视频| 又粗又大又爽又紧免费视频| 国产成人精品一区二区| 国产人人乐人人爱| 中文无码影院| 国产欧美日韩资源在线观看| 97视频精品全国在线观看| 综合色区亚洲熟妇在线| 欧美精品一区二区三区中文字幕| 欧美成人aⅴ| 天天摸夜夜操| 玖玖精品在线| 国产av一码二码三码无码| 免费看美女自慰的网站| 亚洲婷婷丁香| 亚洲国产中文在线二区三区免| 欧美日本在线观看| 国产午夜不卡| 国产精品亚洲精品爽爽| a网站在线观看| 91黄视频在线观看| 久草视频福利在线观看| 欧美不卡视频一区发布| 久久久久国色AV免费观看性色| 久久婷婷五月综合色一区二区| 91在线日韩在线播放| 亚洲人成日本在线观看| 黄色三级毛片网站| 久久精品电影| 人妻丝袜无码视频| 午夜精品久久久久久久无码软件| 好吊色国产欧美日韩免费观看| 欧美日韩一区二区三区四区在线观看| 亚洲 日韩 激情 无码 中出| 欧美日韩一区二区在线播放| 妇女自拍偷自拍亚洲精品| 69视频国产| 98超碰在线观看| 成人免费午夜视频| 亚洲欧洲日韩久久狠狠爱| 久久综合五月婷婷| av免费在线观看美女叉开腿| 免费人欧美成又黄又爽的视频| 毛片基地美国正在播放亚洲 | 无码高潮喷水专区久久|