logo资料库

基于Contiki的6LoWPAN边界路由器的设计.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
基于基于Contiki的的6LoWPAN边界路由器的设计 边界路由器的设计 以TI公司的CC2538 SoC作为核心硬件平台,基于Contiki开源操作系统设计了一种6LoWPAN边界路由器,同时 搭建了一个包含一台接入有线网络的PC、2个6LoWPAN节点以及一个6LoWPAN边界路由器的测试网络。测试 结果表明,所设计的6LoWPAN边界路由器成功实现了6LoWPAN节点和PC之间数据的转发功能,可以应用于智 能家居、环境监控等多种场合,具有一定的应用价值。 0 引言引言 [1]。6LoWPAN的出现以全IP的方式真正解决了无线传感器网络与IPv6网络的互联互通。6LoWPAN已经得到了Google、 Cisco、Honeywell等公司的高度重视,有望取代ZigBee标准,成为事实上的标准,当前已经有很多关于6LoWPAN的应用[2]。 6LoWPAN网络底层使用IEEE 802.15.4标准,在MAC层和IPv6网络层之间引入适配层,主要提供包分片与重组、头部压缩和链路 层转发等功能。 目前已经有多种开源或商业的6LoWPAN协议栈的实现[3],其中基于 6LoWPAN 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.
分享到:
收藏