《電子技術應用》
您所在的位置:首頁 > 通信与网络 > 设计应用 > 基于Contiki的6LoWPAN边界路由器的设计
基于Contiki的6LoWPAN边界路由器的设计
2016年电子技术应用第3期
田广东,叶 鑫
重庆邮电大学 通信与信息工程学院,重庆400065
摘要: 以TI公司的CC2538 SoC作为核心硬件平台,基于Contiki开源操作系统设计了一种6LoWPAN边界路由器,同时搭建了一个包含一台接入有线网络的PC、2个6LoWPAN节点以及一个6LoWPAN边界路由器的测试网络。测试结果表明,所设计的6LoWPAN边界路由器成功实现了6LoWPAN节点和PC之间数据的转发功能,可以应用于智能家居、环境监控等多种场合,具有一定的应用价值。
中圖分類號: TN923
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.03.017
中文引用格式: 田廣東,葉鑫. 基于Contiki的6LoWPAN邊界路由器的設計[J].電子技術應用,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的無線通信協(xié)議,旨在為嵌入式設備,如無線傳感節(jié)點提供IPv6連接[1]。6LoWPAN的出現(xiàn)以全IP的方式真正解決了無線傳感器網絡與IPv6網絡的互聯(lián)互通。6LoWPAN已經得到了Google、Cisco、Honeywell等公司的高度重視,有望取代ZigBee標準,成為事實上的標準,當前已經有很多關于6LoWPAN的應用[2]。6LoWPAN網絡底層使用IEEE 802.15.4標準,在MAC層和IPv6網絡層之間引入適配層,主要提供包分片與重組、頭部壓縮和鏈路層轉發(fā)等功能。

qrs4-t1.gif

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

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

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

    6LoWPAN邊界路由器也可以看成是一種網關或服務器,可連接傳統(tǒng)IP網絡和6LoWPAN傳感網絡并自動完成網絡協(xié)議的轉換。為了驗證6LoWPAN邊界路由器在網絡協(xié)議轉換中的作用,本文設計了一個包含1個6LoWPAN邊界路由器、2個6LoWPAN節(jié)點,1臺PC的測試網絡,整體測試網絡的結構圖如圖2所示。

qrs4-t2.gif

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

2 硬件設計

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

qrs4-t3.gif

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

3 軟件設計

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

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

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

qrs4-t4.gif

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

qrs4-t5.gif

4 邊界路由器功能驗證

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

4.1 連通性測試

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

qrs4-t6.gif

qrs4-t7.gif

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

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

qrs4-t8.gif

qrs4-t9.gif

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

5 結束語

    本文選取了CC2538 SoC作為6LoWPAN邊界路由器的硬件平臺的核心,在Contiki協(xié)議棧的基礎上,完成了6LoWPAN邊界路由器的設計,測試結果表明達到了預期的設計目標。所設計的6LoWPAN邊界路由器可以應用于無線傳感網絡應用中的多種場合,下一步計劃是將所設計的6LoWPAN邊界路由器應用到無線抄表上。

參考文獻

[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.

此內容為AET網站原創(chuàng),未經授權禁止轉載。

相關內容