摘 要: 基于低速6WPAN,對(duì)IPv6傳輸協(xié)議在無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)中的應(yīng)用進(jìn)行研究。詳細(xì)設(shè)計(jì)6WPAN傳感器節(jié)點(diǎn)方案,分析討論傳感器節(jié)點(diǎn)軟件和硬件設(shè)計(jì)。通過(guò)一個(gè)小型試驗(yàn)平臺(tái)測(cè)試傳感器的通信性能,確保IPv6節(jié)點(diǎn)的正常使用,隨機(jī)設(shè)置11個(gè)傳感器節(jié)點(diǎn),通信范圍為22 in。電池具有2 J的能量,數(shù)據(jù)源傳輸速率范圍為128~1 024 b/s。傳感器節(jié)點(diǎn)平均延遲時(shí)間、數(shù)據(jù)包接收率表明,IPv6節(jié)點(diǎn)和傳感器節(jié)點(diǎn)能保持通信連續(xù)性。平均能量消耗表明,IPv6節(jié)點(diǎn)的全I(xiàn)P通信通過(guò)傳感器節(jié)點(diǎn)以較低功耗得到實(shí)現(xiàn)。傳感器節(jié)點(diǎn)通過(guò)IPv6節(jié)點(diǎn)和IPv6協(xié)議能夠發(fā)揮出全I(xiàn)P通信功能,實(shí)現(xiàn)效率的顯著提升和能量消耗水平的降低。
關(guān)鍵詞: 網(wǎng)絡(luò)節(jié)點(diǎn); 傳感器; 數(shù)據(jù)包; 低速WPAN; IPv6; 通信
中圖分類(lèi)號(hào): TN925?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2018)19?0089?04
Abstract: The 6WPAN sensor node scheme is designed in detail to study the application of low?speed 6WPAN (IPv6 over LR?WPAN) in wireless sensor network node of IPv6 transport protocol, and the software design and hardware design of sensor node are discussed. A small test platform is used to test the communication performance of the sensor to ensure the normal use of IPv6 nodes, in which eleven sensor nodes are randomly set up, the communication range is 22 in, the battery has the energy of 2 J, and the data source transmission rate is within 128~1 024 b/s. The average delay time and data packet reception rate of the sensor nodes show that the IPv6 node and sensor node can keep the continuity of communication. The average energy consumption indicates that the full IP communication of IPv6 nodes can be realized with low?power consumption by means of sensor nodes, the sensor nodes can play the full IP communication function through the IPv6 node and IPv6 protocol, and the improvement of efficiency and reduction of energy consumption are realized.
Keywords: network node; sensor; data packet; low?speed WPAN; IPv6; communication
計(jì)算機(jī)技術(shù)的發(fā)展要求重視傳感器網(wǎng)絡(luò)和Internet二者的連通性,此過(guò)程需多元化技術(shù)協(xié)同參與。IEEE 802.15.4設(shè)備具有距離短、速率低、成本少等優(yōu)勢(shì)決定了其被采用頻率較高[1?3]。IPv6數(shù)據(jù)包在6WPAN(IPv6 over LR?WPAN)的作用下與傳感器網(wǎng)絡(luò)相銜接,從而廣泛應(yīng)用于各個(gè)領(lǐng)域中[4]。處于全I(xiàn)P通信狀態(tài)時(shí),傳感器網(wǎng)絡(luò)和IPv6網(wǎng)絡(luò)要實(shí)現(xiàn)IPv6協(xié)議[5],傳感器節(jié)點(diǎn)受到限制,因此需簡(jiǎn)化IPv6協(xié)議,從而與傳感器節(jié)點(diǎn)相適應(yīng)[6?7]。
本文基于6WPAN,以IEEE 802.15.4幀格式鏈接路為基礎(chǔ),構(gòu)建傳感器網(wǎng)絡(luò)體系結(jié)構(gòu),對(duì)IPv6傳輸協(xié)議在無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)中的應(yīng)用進(jìn)行了研究。傳感器節(jié)點(diǎn)特征在于兩方面:需要實(shí)現(xiàn)精簡(jiǎn)的IPv6網(wǎng)絡(luò)協(xié)議;在IEEE 802.15.4幀的傳輸中,需要實(shí)現(xiàn)IPv6數(shù)據(jù)報(bào)文。
傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層采用IEEE 802.15.4標(biāo)準(zhǔn)以滿(mǎn)足低功耗要求[8]。IEEE 802.15.4設(shè)備的頻帶為2.4 GHz。傳感器網(wǎng)絡(luò)將IP技術(shù)應(yīng)用在網(wǎng)絡(luò)層,滿(mǎn)足一物一地址的需求標(biāo)準(zhǔn)。這個(gè)過(guò)程對(duì)IP地址資源的需求量非常大,而該需求可以在IPv6的支持下得到滿(mǎn)足。在6WPAN體系結(jié)構(gòu)中,物理層和網(wǎng)絡(luò)層之間還存在MAC層,其作用為對(duì)信道訪問(wèn)進(jìn)行管理,得到準(zhǔn)確的傳輸設(shè)備間數(shù)據(jù)幀。MAC層在IEEE 802.15.4標(biāo)準(zhǔn)下的幀分為4種,分別為ACK確認(rèn)幀、命令幀、信標(biāo)(Beacon)幀和數(shù)據(jù)幀。用于IEEE 802.15.4網(wǎng)絡(luò)的建立和管理的為前3種幀,用于封裝實(shí)時(shí)業(yè)務(wù)數(shù)據(jù)的為數(shù)據(jù)幀[9]。IEEE 802.15.4標(biāo)準(zhǔn)的特點(diǎn)是成本低、效率高、類(lèi)型多。通常使用的硬件資源屬于中低端嵌入式設(shè)備,電池工作時(shí)間可持續(xù)數(shù)年,短距離信號(hào)覆蓋范圍為10~100 m;設(shè)備通常包括精簡(jiǎn)功能設(shè)備、全功能設(shè)備,傳輸模式包括非信標(biāo)使能模式和信標(biāo)使能模式[10]。
1.1 6WPAN傳感器節(jié)點(diǎn)硬件設(shè)計(jì)
傳感器節(jié)點(diǎn)的MCU采用的處理器為ATmega 128L,該過(guò)程使用CC2420作為射頻芯片。該芯片的工作模式是以4線SPI總線為基礎(chǔ)設(shè)計(jì)傳感器節(jié)點(diǎn)。SI,CSn,SCLK,SO是構(gòu)成SPI總線的4個(gè)部分,輔助完成各項(xiàng)任務(wù)和操作,確保硬件能夠在IEEE 802.15.4數(shù)據(jù)幀格式的支持下正常運(yùn)行,即二者相互適應(yīng)、相互協(xié)調(diào),對(duì)數(shù)據(jù)幀進(jìn)行發(fā)送或接收,并將其送入RAM的緩存區(qū),進(jìn)行幀的封裝與拆除。對(duì)于CC2420而言,當(dāng)ATmega 128L要發(fā)送數(shù)據(jù)時(shí),首先要在TXFIFO寄存器中寫(xiě)入需求字段的數(shù)據(jù)包,通過(guò)無(wú)線信道結(jié)合STXON或寄存器STXONCCA等結(jié)構(gòu)發(fā)送出去。當(dāng)CC2420成功接收數(shù)據(jù)包,此時(shí)RXFIFO接收緩存區(qū)將存入相應(yīng)數(shù)據(jù),并改變其引腳狀態(tài),以FIFOP的引腳中斷讀RXFIFO寄存器,數(shù)據(jù)包重點(diǎn)數(shù)據(jù)按照先后順序被處理器讀取。
圖1為平臺(tái)硬件模塊,整個(gè)系統(tǒng)采用的是無(wú)線模塊設(shè)計(jì)和嵌入式微型控制器(MCU)的通信系統(tǒng)。由于無(wú)線傳感器網(wǎng)絡(luò)具有低功耗的特點(diǎn),系統(tǒng)在確定MCU時(shí)選擇MSP430X,而選擇外界存儲(chǔ)器時(shí),使用8 Mbit FLASH加強(qiáng)系統(tǒng)存儲(chǔ)容量。不同類(lèi)型的傳感器模塊均可被MSP430X連接,讀寫(xiě)采集信息需通過(guò)控制模塊端口進(jìn)行。系統(tǒng)運(yùn)行狀態(tài)的指示過(guò)程可由LED信號(hào)燈實(shí)現(xiàn),選擇雙向選擇的數(shù)據(jù)發(fā)送編程,并將射頻芯片無(wú)線模塊CC2420作為系統(tǒng)結(jié)構(gòu)。數(shù)據(jù)轉(zhuǎn)換器CP2102通過(guò)系統(tǒng)USB轉(zhuǎn)UART,完成USB數(shù)據(jù)轉(zhuǎn)化為平臺(tái)內(nèi)串行數(shù)據(jù),從而完成與PC的通信。軟件系統(tǒng)的下載安裝過(guò)程可在USB接口處實(shí)現(xiàn),并實(shí)現(xiàn)控制無(wú)線傳感器網(wǎng)絡(luò)和PC監(jiān)測(cè)。
圖2為傳感器網(wǎng)絡(luò)拓?fù)鋱D。傳感器網(wǎng)絡(luò)中包含多個(gè)傳感器節(jié)點(diǎn),ATmega 128L處理器是處理傳感器節(jié)點(diǎn)信息主要手段。在CC2420射頻芯片的作用下,可實(shí)現(xiàn)多個(gè)傳感器節(jié)點(diǎn)間通信。
1.2 6WPAN傳感器節(jié)點(diǎn)軟件設(shè)計(jì)
圖3為6WPAN傳感器節(jié)點(diǎn)軟件結(jié)構(gòu)框架。應(yīng)用層實(shí)現(xiàn)精簡(jiǎn)IPv6網(wǎng)絡(luò)協(xié)議;適配層負(fù)責(zé)IPv6數(shù)據(jù)包的處理過(guò)程;硬件抽象層負(fù)責(zé)接收、發(fā)送數(shù)據(jù)包。
1.2.1 硬件抽象層的設(shè)計(jì)
硬件抽象層功能包括:IEEE 802.15.4數(shù)據(jù)幀通過(guò)無(wú)線接口進(jìn)行接收,隨后傳遞給適配層處理幀實(shí)體,并完成封裝和傳送。
1.2.2 適配層的設(shè)計(jì)
與IEEE 802.15.4幀相比,IPv6數(shù)據(jù)包所支持的字節(jié)數(shù)最小值更大[11]。因IPv6頭部在6WPAN中開(kāi)銷(xiāo)較大,本研究將IPv6分片信息放置在適配層相應(yīng)位置。適配層由不分片適配層頭部和分片適配層頭部構(gòu)成,而后者又分為第一分片適配層頭部和后續(xù)適配層頭部,見(jiàn)表1~表3。
在標(biāo)識(shí)不分片適配層頭部格式中,5 bit=11000;在確定是否存在適配層負(fù)載IPv6頭部壓縮情況時(shí),可以通過(guò)Pro_Type來(lái)實(shí)現(xiàn),結(jié)果分別用0和1代表,前者代表未壓縮,后者則相反。在標(biāo)識(shí)分片適配層頭部格式中,1 bit鏈路分片為L(zhǎng)F,0,1分別表示第一分片和后續(xù)分片;每個(gè)IPv6數(shù)據(jù)包分片Identification均被表示,其值完全一致。相對(duì)于第一分片,F(xiàn)_Offset為分片偏移量。適配層功能包括:從應(yīng)用層接收數(shù)據(jù),若無(wú)需對(duì)數(shù)據(jù)包進(jìn)行分片,則數(shù)據(jù)包采用不分片適配層頭部封裝,反之,對(duì)分片數(shù)據(jù)包分別采用后續(xù)適配層頭部和第一分片適配層頭部封裝,當(dāng)完成數(shù)據(jù)封裝,硬件抽象層和適配層先后對(duì)其順位接收,對(duì)適配層頭部結(jié)構(gòu)進(jìn)行全面分析。分片重組過(guò)程需要報(bào)文完整后方可進(jìn)行,應(yīng)用層是IPv6報(bào)文處理過(guò)程中不可或缺的重要內(nèi)容。
1.2.3 應(yīng)用層的設(shè)計(jì)
將控制域與IPv6報(bào)文相融合,其中控制域分別由IPv6報(bào)文載荷和IPv6頭部構(gòu)成。表4,表5分別為精簡(jiǎn)IPv6報(bào)文格式和控制域。
對(duì)于IPv6頭部控制域而言,Version,Traffic Class,F(xiàn)low Label分別表示不同的bit位,其中3個(gè)字段的報(bào)文存在時(shí)可表示為0,若不存在時(shí)則用1表示,默認(rèn)值為Version=6,Traffic Class=0,F(xiàn)low Label=0。Next Header?00:在Payload中,01表示不存在Next Header域,且ICMPv6報(bào)文為IPv6載荷;10表示Next Header域不存在,且IPv6載荷是UDPv6報(bào)文;11表示預(yù)留,一般情況下無(wú)線傳感器網(wǎng)絡(luò)無(wú)法落實(shí)TCP。
S_Addr_00的bit值為128,其源地址沒(méi)有被壓縮;若源地址被壓縮,則表示為01,其bit值為0,則想要獲得其源地址,則可從源鏈路地址處實(shí)現(xiàn);10表示其被壓縮,此時(shí)字節(jié)長(zhǎng)度為8。D_Addr_00的bit值為128,未壓縮目的地址;若目的地址被壓縮,則表示01,其bit值為0,可直接從目的鏈路地址獲取其目的地址;若目的地址被壓縮,則表示為10,字節(jié)長(zhǎng)短為8。
1.2.4 IPv6地址配置
圖4為IPv6地址配置過(guò)程。用簇首節(jié)點(diǎn)標(biāo)記孤立傳感器節(jié)點(diǎn)之后,獲取IPv6地址的步驟為:以既定簇首節(jié)點(diǎn)為范圍,傳播至鄰居簇首節(jié)點(diǎn),從而得到PANID請(qǐng)求數(shù)據(jù)包和全局路由前綴。在鄰居簇首節(jié)點(diǎn)獲取IPv6地址并收到數(shù)據(jù)包請(qǐng)求后,接入節(jié)點(diǎn)跳數(shù),再反饋至相應(yīng)位置。在特定時(shí)間內(nèi)選擇跳數(shù)最小的鄰居簇首節(jié)點(diǎn)作為父節(jié)點(diǎn),引入PAN最近節(jié)點(diǎn),然后結(jié)合PANID、全局路由前綴、初始ID號(hào),構(gòu)成IPv6地址。當(dāng)簇內(nèi)節(jié)點(diǎn)獲取IPv6地址后,將IPv1地址PANID、全局路由前綴、簇首ID號(hào)相結(jié)合,從而形成IPv6地址。
1.3 傳感器節(jié)點(diǎn)與IPv6節(jié)點(diǎn)的通信過(guò)程
精簡(jiǎn)的IPv6協(xié)議通過(guò)傳感器節(jié)點(diǎn)得到實(shí)現(xiàn),IPv6節(jié)點(diǎn)對(duì)傳感器節(jié)點(diǎn)發(fā)送請(qǐng)求數(shù)據(jù)包,從而得到所需數(shù)據(jù)和相對(duì)應(yīng)的地址,并實(shí)現(xiàn)數(shù)據(jù)包的傳輸和接收,IPv6地址分片被發(fā)送到下一跳節(jié)點(diǎn);在硬件抽象層,當(dāng)目的傳感器節(jié)點(diǎn)接收全部分片后,在適配層對(duì)所有分片進(jìn)行重組,IPv6數(shù)據(jù)包重組后的頭部精簡(jiǎn)處理過(guò)程由應(yīng)用層負(fù)責(zé),將IPv6負(fù)載提交到上一層完成處理過(guò)程;應(yīng)用層對(duì)所采集得到的控制域和IPv6頭部等相關(guān)信息進(jìn)行處理,并封裝節(jié)點(diǎn)數(shù)據(jù)傳遞至適配層,適配層對(duì)相應(yīng)數(shù)據(jù)進(jìn)行分片和封裝,由硬件抽象層接收數(shù)據(jù)在數(shù)據(jù)幀的作用下進(jìn)行封裝,在無(wú)限接口處傳遞至下一跳節(jié)點(diǎn),隨后在接入節(jié)點(diǎn)展開(kāi)重組,最終由IPv6網(wǎng)絡(luò)進(jìn)行接收。
本研究在小型試驗(yàn)平臺(tái)的輔助下檢測(cè)相應(yīng)節(jié)點(diǎn)的通信性能,例如傳感器節(jié)點(diǎn)和IPv6節(jié)點(diǎn)等。在實(shí)驗(yàn)平臺(tái)中,隨機(jī)分布傳感器節(jié)點(diǎn)11個(gè),通信范圍為22 in。在初始狀態(tài)下,電池具有2 J的能量。實(shí)驗(yàn)數(shù)據(jù)源傳輸速率范圍為128~1 024 b/s。本文通過(guò)實(shí)證分析確定了傳感器節(jié)點(diǎn)平均延遲時(shí)間、數(shù)據(jù)包接收率、平均能量消耗。平均延遲時(shí)間是指數(shù)據(jù)發(fā)送方和接收方之間產(chǎn)生的時(shí)間間隔的平均值;數(shù)據(jù)包接收率是數(shù)據(jù)接收方成功接收的概率;平均能量消耗是在每個(gè)輪回中,傳感器節(jié)點(diǎn)消耗能量的平均值,輪回指?jìng)鞲衅鞴?jié)點(diǎn)的一個(gè)工作周期,包括初始化、穩(wěn)定接收/傳送數(shù)據(jù)、休眠。本實(shí)驗(yàn)中,每個(gè)輪回設(shè)定傳感器傳送/接收數(shù)據(jù)總量為5 120 B,見(jiàn)圖5。
由圖5可知,在本研究中,通過(guò)IPv6協(xié)議、IPv6節(jié)點(diǎn)和傳感器節(jié)點(diǎn)能實(shí)現(xiàn)點(diǎn)到點(diǎn)的通信。平均延遲時(shí)間、數(shù)據(jù)包接收率表明,IPv6節(jié)點(diǎn)和傳感器節(jié)點(diǎn)能保持通信連續(xù)性。平均能量消耗表明,IPv6節(jié)點(diǎn)的全I(xiàn)P通信通過(guò)傳感器節(jié)點(diǎn)以較低功耗能得到實(shí)現(xiàn);采用IPv6節(jié)點(diǎn)和IPv6協(xié)議,傳感器節(jié)點(diǎn)能夠發(fā)揮出全I(xiàn)P通信功能,不需要采取其他技術(shù)方法,就能實(shí)現(xiàn)效率的顯著提升和能量消耗水平的降低。
本文基于低速6WPAN,對(duì)IPv6傳輸協(xié)議在無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)中的應(yīng)用進(jìn)行了研究。通過(guò)對(duì)基于6WPAN傳感器節(jié)點(diǎn)方案的詳細(xì)設(shè)計(jì),分析討論了傳感器節(jié)點(diǎn)軟件和硬件設(shè)計(jì)。本研究在小型試驗(yàn)平臺(tái)的輔助下檢測(cè)相應(yīng)節(jié)點(diǎn)的通信性能,例如傳感器節(jié)點(diǎn)和IPv6節(jié)點(diǎn)等,隨機(jī)設(shè)置11個(gè)傳感器節(jié)點(diǎn),通信范圍為22 in,電池具有2 J的能量,數(shù)據(jù)源傳輸速率范圍為128~1 024 b/s。傳感器節(jié)點(diǎn)平均延遲時(shí)間、數(shù)據(jù)包接收率、平均能量消耗分析結(jié)果表明,IPv6節(jié)點(diǎn)和傳感器節(jié)點(diǎn)能實(shí)現(xiàn)點(diǎn)到點(diǎn)的通信。
參考文獻(xiàn)
[1] 王曉喃,董繪,楊媛,等.6LoWPAN無(wú)線傳感器網(wǎng)絡(luò)路由研究[J].鐵道學(xué)報(bào),2014,36(2):49?54.
WANG Xiaonan, DONG Hui, YANG Yuan, et al. Research on 6LoWPAN wireless sensor network routing [J]. Journal of the China railway society, 2014, 36(2): 49?54.
[2] 閆海英,黃波,王曉喃.基于6LoWPAN無(wú)線傳感網(wǎng)絡(luò)的電梯監(jiān)控系統(tǒng)研究[J].制造業(yè)自動(dòng)化,2013,35(18):62?63.
YAN Haiying, HUANG Bo, WANG Xiaonan. Study on the monitor and control system based on 6LoWPAN sensor networks [J]. Manufacturing automation, 2013, 35(18): 62?63.
[3] 張安然.基于6LoWPAN的煤礦安全監(jiān)控系統(tǒng)研究[J].工礦自動(dòng)化,2013,39(8):111?114.
ZHANG Anran. Research of mine safety monitoring and control system based on 6LoWPAN [J]. Industry and mine automation, 2013, 39(8): 111?114.
[4] 胡婷婷,秦雅娟,高德云.IPv6無(wú)線傳感網(wǎng)負(fù)載均衡路由協(xié)議研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015,25(7):27?30.
HU Tingting, QIN Yajuan, GAO Deyun. Research on multi?sink load?balanced routing protocol for IPv6 wireless sensor networks [J]. Computer technology and development, 2015, 25(7): 27?30.
[5] 李偉勤,李新獻(xiàn),施岱松.基于6LoWPAN的無(wú)線傳感網(wǎng)絡(luò)網(wǎng)關(guān)設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2012,28(9):364?365.
LI Weiqin, LI Xinxian, SHI Daisong. Design and construction of a WSN gateway based on 6LoWPAN [J]. Microcomputer information, 2012, 28(9): 364?365.
[6] 宋嚴(yán).IPv6無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)研究[J].電子器件,2014,37(3):478?481.
SONG Yan. Wireless sensor network node in IPv6 design [J]. Chinese journal of electron devices, 2014, 37(3): 478?481.
[7] 辛闊,陳文,劉濤.基于6LoWPAN架構(gòu)上的BACnet協(xié)議設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2016(5):95?98.
XIN Kuo, CHEN Wen, LIU Tao. Design and implementation of BACnet over 6LoWPAN networks [J]. Information technology, 2016(5): 95?98.
[8] 張景林,方藝輝.基于節(jié)點(diǎn)狀態(tài)的多類(lèi)型傳感器調(diào)度算法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2016,25(9):216?222.
ZHANG Jinglin, FANG Yihui. Novel multi?type sensor sche?duling algorithm based on node?status [J]. Computer systems & applications, 2016, 25(9): 216?222.
[9] 閆海英,黃波,王曉喃.基于傳感器和6LoWPAN的電梯舒適性監(jiān)控系統(tǒng)[J].測(cè)控技術(shù),2015,34(6):21?23.
YAN Haiying, HUANG Bo, WANG Xiaonan. Elevator comfort monitoring system based on sensor and 6LoWPAN [J]. Measurement & control technology, 2015, 34(6): 21?23.
[10] 李娜.基于IPv6的無(wú)線傳感器網(wǎng)絡(luò)關(guān)鍵技術(shù)研究[J].現(xiàn)代電子技術(shù),2012,35(16):82?85.
LI Na. Key technology of wireless sensor network based on IPv6 [J]. Modern electronics technique, 2012, 35(16): 82?85.
[11] 李震海,馮秀芳.基于傳感器節(jié)點(diǎn)IPv6地址自動(dòng)配置研究[J].電腦開(kāi)發(fā)與應(yīng)用,2012,25(6):43?45.
LI Zhenhai, FENG Xiufang. Research on automatic configuration of IPv6 address based on sensor node [J]. Computer deve?lopment & applications, 2012, 25(6): 43?45.