分享

【好设计论文】基于Contiki的6LoWPAN边界路由器的设计

 ChinaAET 2020-10-31

摘要:以TI公司的CC2538 SoC作为核心硬件平台,基于Contiki开源操作系统设计了一种6LoWPAN边界路由器,同时搭建了一个包含一台接入有线网络的PC、2个6LoWPAN节点以及一个6LoWPAN边界路由器的测试网络。测试结果表明,所设计的6LoWPAN边界路由器成功实现了6LoWPAN节点和PC之间数据的转发功能,可以应用于智能家居、环境监控等多种场合,具有一定的应用价值。

中文引用格式: 田广东,叶鑫. 基于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.

0 引言

    6LoWPAN(IPv6 over Low Power Wireless Personal Area Network)是一种基于IEEE 802.15.4的无线通信协议,旨在为嵌入式设备,如无线传感节点提供IPv6连接[1]。6LoWPAN的出现以全IP的方式真正解决了无线传感器网络与IPv6网络的互联互通。6LoWPAN已经得到了Google、Cisco、Honeywell等公司的高度重视,有望取代ZigBee标准,成为事实上的标准,当前已经有很多关于6LoWPAN的应用[2]。6LoWPAN网络底层使用IEEE 802.15.4标准,在MAC层和IPv6网络层之间引入适配层,主要提供包分片与重组、头部压缩和链路层转发等功能。

    目前已经有多种开源或商业的6LoWPAN协议栈的实现[3],其中基于Contiki的SICSlowpan以其开源、可移植性好、超轻量级、长期维护等优势得到了广泛关注。SICSlowpan符合RFC4944标准,实现了头部编码压缩、分片、地址分配等功能,具有较好的互操作性。

    6LoWPAN边界路由器是连接6LoWPAN传感网和IP网络的桥梁,使两者的互操作成为可能。6LoWPAN边界路由器的基本功能有:完成IP协议栈和6LoWPAN协议栈之间的转换,使IP网络中的主机可以访问6LoWPAN传感网络中的节点。本文的目标就是在Contiki的基础下,设计一种实用的6LoWPAN边界路由器,为进一步研究6LoWPAN奠定基础。典型的基于Contiki实现的6LoWPAN协议栈如图1所示。

1 系统组成和目标

    6LoWPAN边界路由器也可以看成是一种网关或服务器,可连接传统IP网络和6LoWPAN传感网络并自动完成网络协议的转换。为了验证6LoWPAN边界路由器在网络协议转换中的作用,本文设计了一个包含1个6LoWPAN边界路由器、2个6LoWPAN节点,1台PC的测试网络,整体测试网络的结构图如图2所示。

    本文设计的6LoWPAN边界路由器在实现无缝连接IP网络和6LoWPAN传感网络的过程中具有下列特点:(1)遵循6LoWPAN标准协议,链路层基于ContikiMac,采用RDC机制,有效降低功耗,路由协议采用Router Over方式,基于ContikiRPL,支持RPL协议[4];(2)兼容IPv4网络,即能实现IPv4客户端和6LoWPAN传感网之间的通信[5];(3)无缝连接IPv6网络,支持6LoWPAN标准的邻居发现协议6LoWPAN ND[6];(4)支持ping等简单的常用网络管理命令,方便网络的调试。

2 硬件设计

    6LoWPAN边界路由器是6LoWPAN网络的核心,处理能力要求较高,但从性能和成本两方面考虑,边界路由器的主控并没有采用高性能ARM芯片,而是采用了TI公司的片上系统解决方案CC2538芯片,CC2538基于ARM Cortex-M3架构,内部资源丰富,性能强劲,能很好地支持最新的Contiki3.x版本,完全可以满足本文的设计要求。以太网模块采用ENC28J60芯片及HR911105A网络变压器。为了调试方便,本文设计了USB转串口模块,用于在PC上打印信息,其驱动芯片采用cp2102。边界路由器的整体硬件结构图如图3所示。

    为了便于后续的功能扩展及满足各种需求,本6LoWPAN传感器节点的硬件结构设计基本与6LoWPAN边界路由器相同,不同之处在于去掉了以太网模块,其他部分设计与边界路由器相同。

3 软件设计

    6LoWPAN边界路由器的软件实现主要基于Contiki协议栈,Contiki以函数指针结构体的形式在每一层定义了很多钩子函数,或者称为服务接入点。每一层不同的实现可以很容易连接到这些钩子函数,紧接着就可以通过函数指针访问。具体来说,首先要深入分析Contiki内核的结构,然后根据本文需求对Contiki原有的协议栈进行相应的修改,增添所需的额外功能,本设计要求至少要兼容IPv4网络的通信。

    由于6LoWPAN是为支持IPv6而设计的,但当前仍有大量的设备只能运行IPv4协议,因此,本文在应用层定义了一个IPv6/IPv4适配器,其作用就是兼容IPv4协议同时还能验证客户端输入指令的有效性。当边界路由器初始化完毕后,该应用层适配器会创建一个IPv4套接字接口用于监听IPv4连接。IPv4主机收到的命令会被适配器提取出来经分析并判定是否需要转发到6LoWPAN网络。如果命令无效或者目的节点失效,将会返回一个错误消息给IPv4主机。经过这一确认过程,包含该命令的IPv6数据包就被转发给相应的6LoWPAN节点。与此同时,适配器还会启动一个定时器,如果该命令的应答没有在规定的时间内返回,同样会返回一个错误信息给主机端;如果正常,适配器会收到6LoWPAN节点的数据,该数据会被提取出来,压缩在IPv4报文中并发送给IPv4主机端。

    图4描述了报文经由边界路由器在IPv6客户端和6LoWPAN网络之间交换的通信过程。该通信过程分为两个阶段:IPv6客户端发送命令给6LoWPAN节点以及6LoWPAN节点返回应答。边界路由器主要完成压缩、解压缩、分片及重组等工作。

    类似的,IPv4主机和6LoWPAN网络之间的消息流程可以从图5中看出。同样可将其看成两个阶段:IPv4主机发送命令给6LoWPAN节点以及6LoWPAN节点返回应答。这里边界路由器更像是一个服务器,等待IPv4来连接特定的端口,所有来自IPv4主机的命令都被转交给边界路由器而不是6LoWPAN节点。这些命令包含目的节点或节点ID号以及要执行的动作。它们被压缩在IPv4数据包中并被递交给IPv4/IPv6适配器,适配器会执行相应的动作。当发现命令是无效的,边界路由器会发送一个错误消息给IPv4主机,避免再同6LoWPAN节点通信这一多余过程。

4 边界路由器功能验证

    为了验证6LoWPAN边界路由器确实发挥了应有的作用,让两个6LoWPAN节点和6LoWPAN边界路由器彼此相距10 m远,6LoWPAN边界路由器经以太网接口以有线方式接入Internet,6LoWPAN节点和6LoWPAN边界路由器之间则通过无线方式连接。设定让6LoWPAN节点以一定时间间隔循环向PC发送ASCII码字节数据流,为了便于观察效果,设定让串口打印出相关信息,利用串口助手可以很方便地看到相关的数据。

4.1 连通性测试

    联通性测试主要利用ping命令来测试PC和6LoWPAN边界路由器的连通性。图6所示为6LoWPAN边界路由器启动时获取到的IPv4地址,其IPv4地址为172.23.10.177,PC的IPv4地址为172.23.10.134。图7所示为在PC上利用ping命令测试的最终结果,可以看出数据包的往返时间较小,证明连通性较好。

4.2 数据通信测试

    在确定了6LoWPAN边界路由器和PC之间较好的连通性后,就可以测试6LoWPAN节点和PC之间的数据交换。测试过程中,利用sokit软件,设定从PC上向6LoWPAN节点发送“Hello World?鄞”字符串数据,利用抓包软件wireshark进行抓包,整个过程如图8和图9所示。

    从图中可以看出,在PC向6LoWPAN节点发送数据包的过程中,传输层的承载协议是UDP,成功抓取到了数据包的转发过程。也从侧面说明6LoWPAN边界路由器发挥了协议转换的作用。

5 结束语

    本文选取了CC2538 SoC作为6LoWPAN边界路由器的硬件平台的核心,在Contiki协议栈的基础上,完成了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.

作者信息

田广东,叶 鑫

重庆邮电大学 通信与信息工程学院,重庆400065

 

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多