《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于Contiki的6LoWPAN邊界路由器的設(shè)計(jì)
基于Contiki的6LoWPAN邊界路由器的設(shè)計(jì)
2016年電子技術(shù)應(yīng)用第3期
田廣東,葉 鑫
重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶400065
摘要: 以TI公司的CC2538 SoC作為核心硬件平臺(tái),基于Contiki開(kāi)源操作系統(tǒng)設(shè)計(jì)了一種6LoWPAN邊界路由器,同時(shí)搭建了一個(gè)包含一臺(tái)接入有線網(wǎng)絡(luò)的PC、2個(gè)6LoWPAN節(jié)點(diǎn)以及一個(gè)6LoWPAN邊界路由器的測(cè)試網(wǎng)絡(luò)。測(cè)試結(jié)果表明,所設(shè)計(jì)的6LoWPAN邊界路由器成功實(shí)現(xiàn)了6LoWPAN節(jié)點(diǎn)和PC之間數(shù)據(jù)的轉(zhuǎn)發(fā)功能,可以應(yīng)用于智能家居、環(huán)境監(jiān)控等多種場(chǎng)合,具有一定的應(yīng)用價(jià)值。
關(guān)鍵詞: 6LoWPAN Contiki 邊界路由器
中圖分類號(hào): TN923
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.03.017
中文引用格式: 田廣東,葉鑫. 基于Contiki的6LoWPAN邊界路由器的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2016,42(3):61-63,70.
英文引用格式: Tian Guangdong,Ye Xin. Design of 6LoWPAN border router based on Contiki[J].Application of Electronic Technique,2016,42(3):61-63,70.
Design of 6LoWPAN border router based on Contiki
Tian Guangdong,Ye Xin
School of Communication and Information Engineering, Chongqing University of Posts and Telecommunications, Chongqing 400065,China
Abstract: This paper chooses CC2538 SoC as the core hardware platforms, relying on Contiki, to design a 6LoWPAN border router. Meantime, a temporarily network, including a PC connected to the Internet, 2 6LoWPAN nodes and a 6LoWPAN border router is created to evaluate the performance of the 6LoWPAN border router. The result shows that the 6LoWPAN border router can forward the data packets between the PC and 6LoWPAN nodes. This 6LoWPAN border router can be applied to some scenario such as smart home, environment monitor and so on.
Key words : 6LoWPAN;Contiki;border router

0 引言

    6LoWPAN(IPv6 over Low Power Wireless Personal Area Network)是一種基于IEEE 802.15.4的無(wú)線通信協(xié)議,旨在為嵌入式設(shè)備,如無(wú)線傳感節(jié)點(diǎn)提供IPv6連接[1]。6LoWPAN的出現(xiàn)以全I(xiàn)P的方式真正解決了無(wú)線傳感器網(wǎng)絡(luò)與IPv6網(wǎng)絡(luò)的互聯(lián)互通。6LoWPAN已經(jīng)得到了Google、Cisco、Honeywell等公司的高度重視,有望取代ZigBee標(biāo)準(zhǔn),成為事實(shí)上的標(biāo)準(zhǔn),當(dāng)前已經(jīng)有很多關(guān)于6LoWPAN的應(yīng)用[2]。6LoWPAN網(wǎng)絡(luò)底層使用IEEE 802.15.4標(biāo)準(zhǔn),在MAC層和IPv6網(wǎng)絡(luò)層之間引入適配層,主要提供包分片與重組、頭部壓縮和鏈路層轉(zhuǎn)發(fā)等功能。

qrs4-t1.gif

    目前已經(jīng)有多種開(kāi)源或商業(yè)的6LoWPAN協(xié)議棧的實(shí)現(xiàn)[3],其中基于Contiki的SICSlowpan以其開(kāi)源、可移植性好、超輕量級(jí)、長(zhǎng)期維護(hù)等優(yōu)勢(shì)得到了廣泛關(guān)注。SICSlowpan符合RFC4944標(biāo)準(zhǔn),實(shí)現(xiàn)了頭部編碼壓縮、分片、地址分配等功能,具有較好的互操作性。

    6LoWPAN邊界路由器是連接6LoWPAN傳感網(wǎng)和IP網(wǎng)絡(luò)的橋梁,使兩者的互操作成為可能。6LoWPAN邊界路由器的基本功能有:完成IP協(xié)議棧和6LoWPAN協(xié)議棧之間的轉(zhuǎn)換,使IP網(wǎng)絡(luò)中的主機(jī)可以訪問(wèn)6LoWPAN傳感網(wǎng)絡(luò)中的節(jié)點(diǎn)。本文的目標(biāo)就是在Contiki的基礎(chǔ)下,設(shè)計(jì)一種實(shí)用的6LoWPAN邊界路由器,為進(jìn)一步研究6LoWPAN奠定基礎(chǔ)。典型的基于Contiki實(shí)現(xiàn)的6LoWPAN協(xié)議棧如圖1所示。

1 系統(tǒng)組成和目標(biāo)

    6LoWPAN邊界路由器也可以看成是一種網(wǎng)關(guān)或服務(wù)器,可連接傳統(tǒng)IP網(wǎng)絡(luò)和6LoWPAN傳感網(wǎng)絡(luò)并自動(dòng)完成網(wǎng)絡(luò)協(xié)議的轉(zhuǎn)換。為了驗(yàn)證6LoWPAN邊界路由器在網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換中的作用,本文設(shè)計(jì)了一個(gè)包含1個(gè)6LoWPAN邊界路由器、2個(gè)6LoWPAN節(jié)點(diǎn),1臺(tái)PC的測(cè)試網(wǎng)絡(luò),整體測(cè)試網(wǎng)絡(luò)的結(jié)構(gòu)圖如圖2所示。

qrs4-t2.gif

    本文設(shè)計(jì)的6LoWPAN邊界路由器在實(shí)現(xiàn)無(wú)縫連接IP網(wǎng)絡(luò)和6LoWPAN傳感網(wǎng)絡(luò)的過(guò)程中具有下列特點(diǎn):(1)遵循6LoWPAN標(biāo)準(zhǔn)協(xié)議,鏈路層基于ContikiMac,采用RDC機(jī)制,有效降低功耗,路由協(xié)議采用Router Over方式,基于ContikiRPL,支持RPL協(xié)議[4];(2)兼容IPv4網(wǎng)絡(luò),即能實(shí)現(xiàn)IPv4客戶端和6LoWPAN傳感網(wǎng)之間的通信[5];(3)無(wú)縫連接IPv6網(wǎng)絡(luò),支持6LoWPAN標(biāo)準(zhǔn)的鄰居發(fā)現(xiàn)協(xié)議6LoWPAN ND[6];(4)支持ping等簡(jiǎn)單的常用網(wǎng)絡(luò)管理命令,方便網(wǎng)絡(luò)的調(diào)試。

2 硬件設(shè)計(jì)

    6LoWPAN邊界路由器是6LoWPAN網(wǎng)絡(luò)的核心,處理能力要求較高,但從性能和成本兩方面考慮,邊界路由器的主控并沒(méi)有采用高性能ARM芯片,而是采用了TI公司的片上系統(tǒng)解決方案CC2538芯片,CC2538基于ARM Cortex-M3架構(gòu),內(nèi)部資源豐富,性能強(qiáng)勁,能很好地支持最新的Contiki3.x版本,完全可以滿足本文的設(shè)計(jì)要求。以太網(wǎng)模塊采用ENC28J60芯片及HR911105A網(wǎng)絡(luò)變壓器。為了調(diào)試方便,本文設(shè)計(jì)了USB轉(zhuǎn)串口模塊,用于在PC上打印信息,其驅(qū)動(dòng)芯片采用cp2102。邊界路由器的整體硬件結(jié)構(gòu)圖如圖3所示。

qrs4-t3.gif

    為了便于后續(xù)的功能擴(kuò)展及滿足各種需求,本6LoWPAN傳感器節(jié)點(diǎn)的硬件結(jié)構(gòu)設(shè)計(jì)基本與6LoWPAN邊界路由器相同,不同之處在于去掉了以太網(wǎng)模塊,其他部分設(shè)計(jì)與邊界路由器相同。

3 軟件設(shè)計(jì)

    6LoWPAN邊界路由器的軟件實(shí)現(xiàn)主要基于Contiki協(xié)議棧,Contiki以函數(shù)指針結(jié)構(gòu)體的形式在每一層定義了很多鉤子函數(shù),或者稱為服務(wù)接入點(diǎn)。每一層不同的實(shí)現(xiàn)可以很容易連接到這些鉤子函數(shù),緊接著就可以通過(guò)函數(shù)指針訪問(wèn)。具體來(lái)說(shuō),首先要深入分析Contiki內(nèi)核的結(jié)構(gòu),然后根據(jù)本文需求對(duì)Contiki原有的協(xié)議棧進(jìn)行相應(yīng)的修改,增添所需的額外功能,本設(shè)計(jì)要求至少要兼容IPv4網(wǎng)絡(luò)的通信。

    由于6LoWPAN是為支持IPv6而設(shè)計(jì)的,但當(dāng)前仍有大量的設(shè)備只能運(yùn)行IPv4協(xié)議,因此,本文在應(yīng)用層定義了一個(gè)IPv6/IPv4適配器,其作用就是兼容IPv4協(xié)議同時(shí)還能驗(yàn)證客戶端輸入指令的有效性。當(dāng)邊界路由器初始化完畢后,該應(yīng)用層適配器會(huì)創(chuàng)建一個(gè)IPv4套接字接口用于監(jiān)聽(tīng)I(yíng)Pv4連接。IPv4主機(jī)收到的命令會(huì)被適配器提取出來(lái)經(jīng)分析并判定是否需要轉(zhuǎn)發(fā)到6LoWPAN網(wǎng)絡(luò)。如果命令無(wú)效或者目的節(jié)點(diǎn)失效,將會(huì)返回一個(gè)錯(cuò)誤消息給IPv4主機(jī)。經(jīng)過(guò)這一確認(rèn)過(guò)程,包含該命令的IPv6數(shù)據(jù)包就被轉(zhuǎn)發(fā)給相應(yīng)的6LoWPAN節(jié)點(diǎn)。與此同時(shí),適配器還會(huì)啟動(dòng)一個(gè)定時(shí)器,如果該命令的應(yīng)答沒(méi)有在規(guī)定的時(shí)間內(nèi)返回,同樣會(huì)返回一個(gè)錯(cuò)誤信息給主機(jī)端;如果正常,適配器會(huì)收到6LoWPAN節(jié)點(diǎn)的數(shù)據(jù),該數(shù)據(jù)會(huì)被提取出來(lái),壓縮在IPv4報(bào)文中并發(fā)送給IPv4主機(jī)端。

    圖4描述了報(bào)文經(jīng)由邊界路由器在IPv6客戶端和6LoWPAN網(wǎng)絡(luò)之間交換的通信過(guò)程。該通信過(guò)程分為兩個(gè)階段:IPv6客戶端發(fā)送命令給6LoWPAN節(jié)點(diǎn)以及6LoWPAN節(jié)點(diǎn)返回應(yīng)答。邊界路由器主要完成壓縮、解壓縮、分片及重組等工作。

qrs4-t4.gif

    類似的,IPv4主機(jī)和6LoWPAN網(wǎng)絡(luò)之間的消息流程可以從圖5中看出。同樣可將其看成兩個(gè)階段:IPv4主機(jī)發(fā)送命令給6LoWPAN節(jié)點(diǎn)以及6LoWPAN節(jié)點(diǎn)返回應(yīng)答。這里邊界路由器更像是一個(gè)服務(wù)器,等待IPv4來(lái)連接特定的端口,所有來(lái)自IPv4主機(jī)的命令都被轉(zhuǎn)交給邊界路由器而不是6LoWPAN節(jié)點(diǎn)。這些命令包含目的節(jié)點(diǎn)或節(jié)點(diǎn)ID號(hào)以及要執(zhí)行的動(dòng)作。它們被壓縮在IPv4數(shù)據(jù)包中并被遞交給IPv4/IPv6適配器,適配器會(huì)執(zhí)行相應(yīng)的動(dòng)作。當(dāng)發(fā)現(xiàn)命令是無(wú)效的,邊界路由器會(huì)發(fā)送一個(gè)錯(cuò)誤消息給IPv4主機(jī),避免再同6LoWPAN節(jié)點(diǎn)通信這一多余過(guò)程。

qrs4-t5.gif

4 邊界路由器功能驗(yàn)證

    為了驗(yàn)證6LoWPAN邊界路由器確實(shí)發(fā)揮了應(yīng)有的作用,讓兩個(gè)6LoWPAN節(jié)點(diǎn)和6LoWPAN邊界路由器彼此相距10 m遠(yuǎn),6LoWPAN邊界路由器經(jīng)以太網(wǎng)接口以有線方式接入Internet,6LoWPAN節(jié)點(diǎn)和6LoWPAN邊界路由器之間則通過(guò)無(wú)線方式連接。設(shè)定讓6LoWPAN節(jié)點(diǎn)以一定時(shí)間間隔循環(huán)向PC發(fā)送ASCII碼字節(jié)數(shù)據(jù)流,為了便于觀察效果,設(shè)定讓串口打印出相關(guān)信息,利用串口助手可以很方便地看到相關(guān)的數(shù)據(jù)。

4.1 連通性測(cè)試

    聯(lián)通性測(cè)試主要利用ping命令來(lái)測(cè)試PC和6LoWPAN邊界路由器的連通性。圖6所示為6LoWPAN邊界路由器啟動(dòng)時(shí)獲取到的IPv4地址,其IPv4地址為172.23.10.177,PC的IPv4地址為172.23.10.134。圖7所示為在PC上利用ping命令測(cè)試的最終結(jié)果,可以看出數(shù)據(jù)包的往返時(shí)間較小,證明連通性較好。

qrs4-t6.gif

qrs4-t7.gif

4.2 數(shù)據(jù)通信測(cè)試

    在確定了6LoWPAN邊界路由器和PC之間較好的連通性后,就可以測(cè)試6LoWPAN節(jié)點(diǎn)和PC之間的數(shù)據(jù)交換。測(cè)試過(guò)程中,利用sokit軟件,設(shè)定從PC上向6LoWPAN節(jié)點(diǎn)發(fā)送“Hello World?鄞”字符串?dāng)?shù)據(jù),利用抓包軟件wireshark進(jìn)行抓包,整個(gè)過(guò)程如圖8和圖9所示。

qrs4-t8.gif

qrs4-t9.gif

    從圖中可以看出,在PC向6LoWPAN節(jié)點(diǎn)發(fā)送數(shù)據(jù)包的過(guò)程中,傳輸層的承載協(xié)議是UDP,成功抓取到了數(shù)據(jù)包的轉(zhuǎn)發(fā)過(guò)程。也從側(cè)面說(shuō)明6LoWPAN邊界路由器發(fā)揮了協(xié)議轉(zhuǎn)換的作用。

5 結(jié)束語(yǔ)

    本文選取了CC2538 SoC作為6LoWPAN邊界路由器的硬件平臺(tái)的核心,在Contiki協(xié)議棧的基礎(chǔ)上,完成了6LoWPAN邊界路由器的設(shè)計(jì),測(cè)試結(jié)果表明達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo)。所設(shè)計(jì)的6LoWPAN邊界路由器可以應(yīng)用于無(wú)線傳感網(wǎng)絡(luò)應(yīng)用中的多種場(chǎng)合,下一步計(jì)劃是將所設(shè)計(jì)的6LoWPAN邊界路由器應(yīng)用到無(wú)線抄表上。

參考文獻(xiàn)

[1] Chen Yibo,Hou KunMean,Zhou Haiying,et al.6LoWPAN stacks:a survey[C].IEEE Conference Publications,2011.

[2] YoungKi Park,Ngoc-Thanh Dinh.A network monitoring system in 6LoWPAN networks[C].IEEE Conference Publications,2012.

[3] Dhananjay Singh,U.S.Tiwary.Global healthcare monitoring system using 6lowpan networks[C].IEEE Conference Publications,2009.

[4] Olfa Gaddour,Anis Koubaa.RPL in a nutshell:a survey[J].Computer Networks,2012,56(14).

[5] B.da Silva Campos,RODRIGUES J J,OLIVEIRA L M,et al.Design and construction of wireless sensor network gateway with IPv4/IPv6 support[C].2011 IEEE International Conference on Communications,Kyoto,Japan,2011.

[6] SHELBY Z,CHAKRABARTI S,NORDMARK E,et al.Neighbor discovery optimization for IPv6 over low-power wireless personal area networks(6LoWPANs),RFC 6775,2012.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。