駱 堅,席 望,謝 鯤
(湖南大學 信息科學與工程學院,湖南 長沙410082)
多跳匯聚的無線傳感器網絡(WSNs)中,數據多對一傳輸至Sink 節點,形成漏斗效應[1]。在漏斗區域中,隨流量增加,包間隔時間(數據包相繼到達MAC 層的時間間隔[2])減小,包處理時間(數據包從到達MAC 層到轉發完畢之間的時間間隔[2])增大,超過轉發節點的處理能力[3],加重了節點級擁塞[4],造成包延時和重傳,降低了Sink 節點的吞吐量,增加了漏斗區域的能量開銷,縮短了網絡的生存周期。
現有研究針對漏斗效應采用源流量控制[5~7]、網絡層均衡[8,9]、MAC 層調度[1],以及強功能節點部署[10]等方法緩解能耗和擁塞,但對節點計算能力要求較高,降低了通信效率,或需要額外的通信硬件進行特定部署。
本文提出異構比特速率(heterogeneous-bit-rate)傳輸方式,逐跳增大Sink 節點附近高流量轉發節點的發送比特速率,使節點的比特速率與流量匹配,降低高流量區域的節點級擁塞。針對現有傳感器節點比特速率單一性,設計了基于ATmega128 微處理器和CC1100 射頻芯片的傳感器節點,改進了TinyOS 系統組件,實現多種比特速率在數據收發時動態切換。在真實環境下進行了實驗測量,結果表明:該網絡能夠有效緩解網絡擁塞,提高了網絡吞吐量。
無線傳感器網絡一般為同構比特速率,即所有節點配置為相同的比特速率,如圖1(a)所示,源節點1,2 與轉發節點3 采用相同比特速率,節點3 對數據包接收和轉發需要相同的處理時間,包間隔時間小于節點1,2,包服務時間大于節點1,2。因此,轉發節點對數據包處理的時間要大于其子節點之和,隨著流量增大,使Sink 節點附近的轉發節點擁塞加劇。

圖1 匯聚網絡傳輸模型Fig 1 Aggregation network transmission model
異構比特速率傳輸提高了節點的轉發比特速率,如圖1(b)所示,節點1,2 采用速率3 發送數據,節點3 采用速率2(速率2 >速率3)轉發數據,轉發數據包所需時間減少,數據包處理速度提高,進而緩解擁塞。
異構比特速率節點需發送、接收和ACK 三種比特速率。如圖1(b)所示,節點5 以速率1 發送數據,以速率2接收數據,以速率3 反饋ACK,要求節點多種比特速率切換。MicaZ,Telosb 等現有常用的傳感器節點并不支持多種比特速率通信,僅CC1100 等芯片具備該功能,而這些芯片一般用于同構比特速率網絡,不能實時切換速率。本文針對該問題設計了支持多種比特速率實時切換的傳感器節點。
根據對多種比特速率實時切換的需求,本文采用CC1100 射頻芯片和ATmega128 微處理器、嵌入TinyOS[11]操作系統,設計專門的接口和組件,通過寄存器編程控制1.2 ~500 kB/s 比特速率,實現傳感器節點多速率切換。節點硬件實現的引腳連接如圖2 所示,通過串行接口總線SPI,ATmega128 的PB2(MOSI 主機向從機輸入)、PB3(MISO 從機向主機輸入)、PB1(SCLK 時鐘)、PB0(SS 片選)引腳分別與CC1100 的SI,SO,CLK,CSn 引腳連接,用于數據輸入輸出、時鐘以及片選控制。

圖2 CC1100 與ATmega128 系統組成Fig 2 System composition of CC1100 and ATmega128
CC1100 的比特速率由MDMCFG3 和MDMCFG4 寄存器進行配置,計算方法如式(1)所示

其中,RM 表示寄存器MDMCFG3 全8 位二進制的值,RE 代表寄存器MDMCFG4 低4 位二進制的值,fxosc表示處理器的晶振頻率。
為實現比特速率切換,本文改進了TinyOS 系統通信流程。如圖3 所示,CC1100 芯片包含發送與接收兩種通信模式,由數據發送事件觸發進入發送模式,由數據接收事件觸發進行數據接收,接收完成后發送ACK。同構速率系統比特速率僅在初始化階段配置一次(速率(n+1)),異構比特速率系統在向發送或接收模式轉變時,均進行比特速率更改,分別對發送、接收和ACK 配置比特速率為速率(n)、速率(n+1)、速率(n+2)。

圖3 異構比特速率的TinyOS 系統Fig 3 TinyOS system of heterogeneous-bit-rate
為實現該通信流程,本文設計了多速率接口和組件。如圖4 所示,TinyOS 系統由TransmitP 模塊管理通信,通過SpiC 組件實現對CC1100 寄存器配置等操作。本文在TransmitP 通信模塊中為其SpiC 組件設計了寄存器接口Multi 及其連接的寄存器改寫組件Bitrate,在Bitrate 組件中設計了不同比特速率對應的MDMCF3 與MDMCF4 寄存器值,系統在每次通信模式轉變時,都將調用Multi.Bitrate(速率n),即可對CC1100 的寄存器進行讀寫操作,例如:系統調用Multi.Bitrate(19.2),則組件中會對MDMCF3 和MDMCF4 分別配置為19.2 kB/s 比特速率對應的寄存器值0xCA和0x83。

圖4 異構比特速率組件與接口Fig 4 Components and interfaces of heterogeneous-bit-rate
異構比特速率網絡中節點需確定自身位置和相應的比特速率。本文設計了異構比特速率網絡組建和拓撲控制方案。
根據網絡流量向Sink 節點匯聚的特點,異構比特速率網絡按與Sink 節點的通信距離對節點進行速率分層,如圖5所示,與Sink 節點距離為n 跳的節點劃分為層次(n),層次(n)對層次(n-1)以比特速率(n)進行通信(速率(n)>速率(n+1)),距離越近,n 值越小,速率(n)也越大。

圖5 異構比特速率傳輸網絡Fig 5 Heterogeneous-bit-rate transmission network
組網機制:1)Sink 節點在部署時已設定自身位于層次(0)且以速率1 接收數據,以速率2 反饋ACK;2)任意新加入的節點首先進行層次定位,依次以速率(1)到速率(n)速率發送探測信息,并分別以速率(n+1)速率等待附近已確定層次節點的ACK 回復;3)根據ACK 信息中包含的節點層次和地址信息確定自身層次。
如圖5 所示,Sink 節點會收到一跳范圍內節點2,3 以速率1 發送的探測信息,并對這些節點回復ACK。節點2,3 收到ACK 中包含的層次信息(層次(0))和地址信息(Sink),則將自身設定為層次(1)。同理,層次(1)節點會收到一跳范圍內節點4,5,6 以速率2 發送的探測信息,并反饋ACK。節點4,5,6 根據ACK 確定自身為層次(2),以層次(1)中的節點作為下一跳地址。
拓撲控制:節點在通信中若3 次未收到ACK 信息,則表示該鏈路已斷開(下一跳死亡或擁塞等情況),節點將重新啟動速率探測,以重新確定自身層次和下一跳地址。
本文根據節點設計方案組成了25 個如圖6 所示基于CC1100 與ATmega128 的傳感器節點,在實際環境中的部署如下:

圖6 實驗節點Fig 6 Experimental node
實驗布置于湖南大學工程訓練中心3 樓實驗室,由8 個節點于2 m×3 m 桌面部署了圖7(a)所示偏二叉樹網絡,以部署在不同層次的葉節點作為數據源;由25 節點部署于8 m×8 m 地面部署了圖7(b)所示漏斗結構網絡,以層次(4)的10 個節點作為數據源,由層次(3),(2),(1)轉發。節點工作頻率設置為915 MHz,功率為-20 dBm,數據包長度為20 byte。

圖7 實驗網絡部署Fig 7 Experimental network deployment
同構比特速率實驗對所有節點配置為相同比特速率1(150 kB/s),異構比特速率實驗對距離Sink 節點1 ~4 跳范圍節點預設比特速率1 ~速率4,分別選擇為150,76.8,38.4,19.2 kB/s,通過組網機制確定層次和比特速率。實驗在不同源數據流量下對同異構比特速率網絡Sink 節點的吞吐量進行測量,結果如下:
在低流量環境下,網絡擁塞較小,同異構比特速率網絡吞吐量較為接近。隨著源節點流量增大,網絡擁塞加劇,異構比特速率網絡吞吐量逐漸提高。在流量達到一定程度時,網絡吞吐量趨于飽和,如圖8 所示,偏二叉樹網絡在5 PPS流量下趨于飽和,Sink 節點的吞吐量約提高了10.9%,漏斗網絡源節點較多,在2.5 PPS 流量下趨于飽和,Sink 節點吞吐量約提高了18.6%,有效緩解了網絡擁塞,提高了網絡吞吐量。

圖8 實驗結果Fig 8 Experimental result
本文針對無線傳感器網絡的漏斗效應,提出基于異構比特速率的擁塞控制技術,突破現有節點通信比特速率的局限性,實現了支持異構比特速率傳輸的傳感器節點,實際網絡實驗表明:在趨于飽和的流量下有效緩解了網絡擁塞,提高了網絡吞吐量。
[1] Ahn G S,Hong S G,Miluzzo E,et al.Funneling-MAC:A localized,sink-oriented MAC for boosting fidelity in sensor networks[C]∥Proceedings of the 4th Iinternational Conference on Embedded Networked Sensor Systems:ACM,2006:293-306.
[2] 余小華,陳 瑛.一種新的無線傳感器網絡擁塞控制算法[J].計算機工程,2011,37(11):108-110,113.
[3] 孫利民,李 波,周新運.無線傳感器網絡的擁塞控制技術[J].計算機研究與發展,2008,45(1):63-72.
[4] Wang C G,Li B,Sohraby K,et al.Upstream congestion control in wireless sensor networks through cross-layer optimization[J].IEEE Journal on Selected Areas in Communications:Special Issue on Cross-Layer Optimized Wireless Multimedia Communications,2007,25(4):786-796.
[5] Wan C Y,Eisenman S B,Campbell A T.Energy-efficient congestion detection and avoidance in sensor networks[J].ACM Transactions on Sensor Networks(TOSN),2011,7(4):32.
[6] 牛玉剛,甘峰浩,胡 源.基于壓縮感知的擁塞控制機制[J].控制與決策,2015(2):246-250.
[7] Charalambos Sergiou,Vasos Vassiliou.Hierarchical tree alternative path(HTAP)algorithm for congestion control in wireless sensor networks[J].Ad Hoc Networks,2013,11:257-272.
[8] 劉安豐,陽國軍,陳志剛.基于不等簇半徑輪換工作的傳感器網絡能量空洞避免研究[J].通信學報,2010(1):1-6.
[9] 蔣 陽,韓飛飛,閆藝倩,等.基于協作傳輸的大范圍WSNs能耗均衡分簇算法[J].傳感器與微系統,2014,33(7):137-140.
[10]葉 進,楊 婧,宋曉燕.無線傳感器網絡中基于定向擴散協議的跨層擁塞控制方法[J].傳感技術學報,2012,25(1):124-128.
[11]吳小娜,王 漫.無線傳感器網絡操作系統TinyOS 綜述[J].計算機與現代化,2011(2):103-105.