首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于IPv6的无线传感器网络边界路由器的设计方案

基于IPv6的无线传感器网络边界路由器的设计方案

 本文针对无线传感器网络与IPv6网络互联,在分析现有接入方式不足的基础上提出了一种基于IPv6的无线传感器网络边界路由器的设计方案。方案主要阐述了边界路由器的硬件和软件设计的实现,重点介绍了基于IPv6的无线传感器网络协议栈适配层的设计。通过数据包分片与重组机制以及报头压缩机制,协议栈适配层实现了IPv6数据包在IEEE 802.15.4链路中的传输。实验结果表明,该设计方案实现了无线传感器网络与IPv6网络的无缝融合,数据传输稳定可靠,具有实用性的应用价值。
  0 引言
  无线传感器网络(Wireless Sensor Network,WSN)近年来发展迅速,在环境保护、工业设备监控、医疗监护、农田监测、智能家居、市政交通管理、军事侦察等领域具有广阔的应用前景。无线传感器网络的诸多应用都需要远程用户能够方便地对无线传感器网络资源进行访问、控制和使用。TCP/IP的广泛应用已经使其成为事实上的协议标准,加之IPv6 的诸多优良特性,都使得实现无线传感器网络与IPv6网络的互联与融合是当前最现实的选择。
  目前,无线传感器网络与IPv6 网络互联主要有网关接入和直接接入两种方式。其中,网关接入是指利用网关在无线传感器网络和IP 网络之间进行协议转换,实现数据的转发任务,但是网关接入还存在着网络结构复杂、成本较高等诸多问题;直接接入方式是指在无线传感器网络节点直接运行 IPv6 协议,能够实现无线传感器网络和Internet网络的无缝融合。无线传感器网络是低速率、低功耗的资源受限网络,在无线传感器节点上并不适合直接运行标准IPv6协议。
  本文提出了一种基于JN5148模块的无线传感器网络边界路由器的设计方案,该方案能够实现无线传感器网络与IPv6 网络的无缝融合,并通过实际测试证明了该方案的可行性。
  1 边界路由器硬件设计
  边界路由器硬件包括射频模块、处理器模块和电源模块等部分。其中,射频模块负责IEEE 802.15.4 数据帧的收发;处理器模块负责解析收到的数据帧,选择路径后进行转发处理;电源模块负责对其他模块供电。边界路由器的硬件结构如图1所示。

  1.1 射频模块
  目前,无线传感器网络领域面向不同应用的协议栈众多,其中绝大部分协议栈都把IEEE 802.15.4作为物理层和数据链路层的无线通信标准。支持IEEE 802.15.4的射频模块主要有Jennic 公司的JN5148、Ember250、MC13192、TI公司的CC2430 和Digi公司的XBEE 模块。
  其中,JN5148模块将射频芯片与处理器集成一体,内置了IEEE 802.15.4 协议,不需要自行设计无线射频天线接口,开发成本较低,本文设计中选用Jennic 公司的JN5148 模块作为边界路由器的处理器和射频模块。
  JN5148模块集成了基于OpenRISC核的32位RISC处理器,拥有完全兼容2.4 GHz IEEE 802.15.4标准的无线收发器,128 KB 的RAM 运行应用程序,512 KB 的FLASH能够满足包括存储应用程序在内的大部分需求。
  1.2 串行通信接口设计
  无线传感器网络数据流量较小,对网络带宽要求不高,因此边界路由器与Internet网络之间可以采用UART串行总线连接。目前,各种网络设备中普遍应用USB接口,可以使用转换电路将USB接口转换为UART串行总线接口,本文选择 FTDI232R芯片完成电平匹配和接口转换,FTDI232R 是一款可编程的USB 接口转UART 接口的集成芯片,具有3.3 V电压输出,可编程显示数据收发状态。具体电路如图2所示。

  


  2 边界路由器软件设计
  2.1 协议栈框架设计
  无线传感器网络协议栈是无线传感器网络软件设计的核心,是无线传感器网络组网、节点与边界路由器以及节点与节点之间数据通信的基础。为了满足无线传感器网络全IP 互联,需要精简IPv6 协议以及实现IPv6数据帧在IEEE 802.15.4帧中传输。本文设计的边界路由器采用基于IPv6的无线传感器网络协议栈。协议栈框架如图3所示。

  IEEE 802.15.4物理层主要负责启动和关闭射频收发器、能量检测与信道扫描、清除信道评估以及无线电波信号的调制和解调等工作。IEEE 802.15.4 MAC层主要完成信道接入、链路的连接及断开以及数据通信的差错及流量控制等工作。轻量级操作系统Contiki负责协议栈各层任务调度及管理,保证协议栈工作的实时性。
  协议栈包括的任务有自组网任务、适配层主任务、网络维护任务、IP层任务以及应用层任务,任务调度关系如图4 所示。

  


  本设计选用的JN5148 模块内部集成了IEEE802.15.4的物理层和MAC层协议,因此,协议栈设计的重点是适配层、IP网络层和传输层。
  2.2 适配层设计
  组建网络是边界路由器适配层需要完成的基本任务,系统启动后,自组网任务负责在选定信道和网络16 位PAN_ID后建立网络。网络维护任务在网络建立后维持父节点与子节点之间的链路稳定,并在链路出现异常时进行上报并尝试修复链路。IEEE 802.15.4物理层数据单元最大为127 B,而IPv6 要求链路支持的最小MTU(Maximum Transmission Unit,MTU)长度为1 280 B,明显不支持此长度MTU.适配层介于IEEE 802.15.4 MAC层和IP 层之间,因此适配层主任务除了负责管理MAC层协议事件之外,主要完成节点自动地址配置、IP数据包的分片与重组和IP数据包头压缩与解压等功能以实现 IP数据包在IEEE 802.15.4链路中的传输。
  2.2.1 地址映射机制
  基于IPv6的无线传感器网络中每个节点都需要配置惟一的IPv6 地址,但是手动配置繁琐并且难以保证地址惟一性。本文设计的无线传感器网络边界路由器采用无状态地址自动配置机制。IPv6地址由全局地址前缀和接口标识 ID(Interface ID,IID)两部分组成。因为每一个射频模块都分配有一个全球惟一的IEEE EUI-64标识符,即64位MAC 地址,因此可以利用EUI-64标识符获得一个IPv6地址接口标识ID来实现无状态地址自动配置。
  2.2.2 适配层分片与重组机制
  为了减少适配层包头开销,适配层帧头分为不分片和分片两种格式,分别用于IP数据包长度小于MAC 层MTU 的报文和IP 数据包长度大于MAC 层MTU 的报文。适配层不分片帧头格式与常规帧头相同,分片帧头又分为第一个分片和后续分片两种格式,如图5和图6所示。

  节点适配层接收到适配层数据包时,首先检查该数据包是否分片,如果是一个分片的数据包,则在将所有数据分片重新组合成完整的IP 数据包后,再传送到IP网络层处理;若某一个分片丢失,则丢弃该IP数据包的所有后续分片。对于IP 层下发的数据包,节点适配层判断IP报文长度是否超过链路层MTU 长度,若超过链路层MTU长度,则将此IP数据包分片后发送;若不超过链路层MTU长度,则按照不分片格式发送。
  适配层的每一种数据帧都有调度编码位域(8位),不同的调度编码位域表示不同的解析方式,主要包括不分片、分片、IP包头压缩、UDP报头压缩以及预留功能等多种类型。其中,11000xxx表示本数据帧是已分片适配层数据帧的第一个分片,11100xxx则表示本数据帧是已分片适配层数据帧的后续分片。
  datagram_size:11 b,表示链路层未分包之前的IP数据包的总长度,该IP 数据包所有链路层分片的该字段的值都应该相同。
  datagram_tag:16 b,分片标识,用来区分同一数据源节点的不同IP数据包。同一个IP数据包的所有链路层分片都具有相同的分片标识,数据源节点每成功发送一个完整的IP数据包都更新(加1)该字段的值。
  datagram_offset:8 b,分片偏移量,表示该分片在所有分片中的偏移量(以8 B 为单位),该字段只出现在第二个及后续分片中。 2.2.3 适配层报头压缩机制
  标准IPv6 网络层报文和UDP 报文的报头分别有40 B 和8 B,由此带来的数据传输报头开销极大,因此本文适配层对IP报文和UDP报文的包头格式进行了压缩处理。由于TCP报文并不适合无线传感器网络这种多跳、数据传输延迟较大的网络[11],故本文暂不考虑TCP报文。根据无线传感器网络的上下文信息,IPv6版本号和负载长度可以省略,通信流类型、流标签、下一包头、跳数限制以及源地址和目的地址设置压缩控制域进行部分压缩。IPv6 网络层报文头部压缩格式如图7所示。

  011xxxxx为调度编码位域,其中最右端5位用于报头压缩编码。各编码字段定义如下:
  TF:2 b,通信流类型和流标签。其中通信流类型由查分服务代码点DSCP 和显示拥塞反馈ECN,当TF=11时,通信流类型和流标签全都省略;当TF=00时,通信流类型和流标签都不压缩;当TF=01 时,DSCP 省略;当TF=10时,流标签省略。
  NH:1 b,下一包头。NH=0,表示下一包头未压缩;NH=1时,下一包头已压缩。
  HLIM:2 b,跳数限制。当HLIM 等于00、01、10 和11时,分别表示未压缩、1跳、64跳和255跳。
返回列表