王 平,陈静明,王 恒,宁 静
(重庆邮电大学工业物联网与网络化控制教育部重点实验室,重庆 400065)
随着物联网的发展,物物相连的网络不断扩大,位于物联网中的设备数量也在急剧上升,应用于因特网的IPv4技术将无法满足部署海量设备的地址空间,而IPv6技术为物联网的发展提供了很好的保障,成为物联网应用中的主流技术。6LoWPAN协议是基于IPv6的无线个域网技术,为短距离通信网络应用IPv6技术提供了标准支持[1-3]。我们与思科公司共建了科技联合研发中心,在国际标准、技术研发及产品开发方向面进行了深入研究。
传统的物联网开发平台一般都是基于非IP技术或者 IPv4技术的[4,5],由此对理解大规模的物联网技术产生一定的局限性。本文在此结合3G网络的发展优势,提供了基于6LoWPAN协议的物联网远程开发平台,从IPv6和网络异构(3G、6LoWPAN及Internet)集成的角度介绍物联网技术。
本平台系统按功能划分,主要包括三个部分:①负责数据采集、传输的6LoWPAN无线传感器网络;②负责数据转发、协议转换和3G网络接入的网关[6];③负责数据提取、处理、简单控制和管理的上位机系统。
平台系统的功能结构和原理如图1所示。
图1 平台系统的功能结构和原理图
本系统网关的6LoWPAN子网可以运行在不同的无线工作频率上,包括433MHz频段、780MHz频段及2.4G频段等,本文的讨论是基于780MHz频段展开的。本系统根据3G模块选择的不同,可以接入不同的3G通信网,本文以接入TD-SCDMA网络为例。本系统的关键部分是WSN/3G嵌入式网关。网关包含了ARM核心、3G模块和6LoPWAN子网的接入模块。ARM核心运行嵌入式Linux,是网关的控制核心;3G模块负责接入3G网络并实现与3G网络的通信;接入模块上运行6LoWPAN协议,担任6LoWPAN子网的协调器,负责6LoWPAN子网的组网和网络维护。传感器节点上面运行6LoWPAN协议,负责数据采集,然后将数据通过网关发送到位于Internet的上位机。上位用于机运行上位机软件,对6LoWPAN网络进行数据解析,远程监控和简单功能管理。
基于IPv6的物联网开发实验平台定位于高校实验室基于IPv6的物联网应用和研发,集成了嵌入式网关和多种传感器模型,硬件资源丰富。该平台主要包括:1个嵌入式网关,2个无线温湿度传感器,1个无线瓦斯浓度传感器,2个无线烟雾传感器,以及1个AVR下载器和若干配线。平台系统的硬件构成如图2所示。硬件资源全部采用裸板设计,方便进行拓展。
无线射频模块选用AT86RF212芯片作为无线收发器,工作频率为780MHz。该模块的硬件结框图如图3所示。
图2 平台系统的硬件构成
图3 无线模块的硬件结构框图
嵌入式网关是连接不同网络的关键,ARM核心选用的是基于32位ARM9核的S3C2440嵌入式微处理,具有丰富的接口资源,能够完全满足网关系统的构建。图4为WSN/TD-SCDMA嵌入式网关的硬件结构图。
图4 嵌入式网关的硬件结构框图
WSN/3G网关实现了基于6LoWPAN的无线传感器网络与3G网络、Internet网络的互联。图5展示了本平台系统的IP互联模型。
图5 IP互联模型
基于3FFE::/64前缀的子网数据汇聚到网关的子网接入单元(扮演子网网络协调者的角色);子网接入单元将6LoWPAN子网数据通过SL0的虚拟网口发送到网关的ARM核心;网关的ARM核心运行嵌入式 Linux,通过 TD-SCDMA modem形成的PPP0网口发送到TD-SCDMA网络。网关通过PPP拨号获得的IPv4地址为内网地址,由于子网地址为IPv6地址,所以整个网络互联过程中,必须穿透NAT网络才能实现网络互联[8]。因此,本平台在PC机上搭建了VPN服务器,网关和上位机作为VPN客户端连接上服务器,最终建立起一条IPv6的通道,将6LoWPAN子网数据传送到位于Internet的上位机。上位机经过数据解析,可以将网络拓扑结构、传感器数据等信息显示在监控界面上,方便对6LoWPAN子网情况进行监控和管理。
本平台开发人员根据Slip协议编写slip模块,分别运行在网关的ARM核心和子网接入单元上。网关ARM核心协议转换流程如图6所示。当ARM9控制单元接收到Slip接口(sl0)发送来的数据后,首先判断数据是不是Slip格式数据。如果不是则丢弃该数据包,如果是则解析Slip帧头。进一步解析Ethernet(以太网)帧头,将解析后的数据向上交付给IP层;IP层判断该数据包是不是标准的IPv6格式的数据包,如果不是,则丢弃该数据包,如果是,则将该IPv6数据包从PPP0接口转发出去,发送到3G接入单元。上述协议转换过程中,ARM9控制单元将标准的IPv6数据报文从网络层直接转发,能够实现网关与具体应用数据的相互独立;并且防止网络的人为割裂,通过IPv6彻底实现端到端的信号传输。
图6 网关ARM核心协议转换流程图
WSN子网接入单元在WSN中充当了协调器的角色,定义了网络层(适配层和IP层统称为网络层),以及 IEEE 802.15.4 或者 IEEE 802.15.4c 标准的MAC层和物理层。本平台子网接入单元在原有Contiki协议栈的基础上实现了WSN子网的组网入网、6LoWPAN适配层关键技术(报头压缩、分片重组等)、数据汇集以及IEEE 802.15.4C协议和以太网协议的转换[9]。通过协议转换,将子网数据发送至ARM单元。WSN子网接入单元具体的协议转换过程如图7所示。
图7 WSN子网接入单元协议转换流程图
当协调器单元的射频单元收到数据后,首先解析IEEE 802.15.4c的MAC帧头;然后解析适配层帧头,判断此数据包是不是分片的数据包。如果是的话进行报文重组,将数据包转化为标准的IPv6报文;如果数据包是不分片的数据包,则进一步判断该数据包是不是压缩的数据包,如果是的话则进行报文解压缩,转化为标准的IPv6数据报文;下一步,为标准的IPv6数据包装载Ethernet帧头,转化为标准的以太网数据报文;然后装载Slip帧头,将数据包转化为Slip协议格式;最后,将Slip格式的数据包从串口发送到网关的ARM9控制单元。
IPv6地址由64位的前缀和64位的网络接口组成,6LoWPAN节点IPv6地址的配置采用如下过程。
(1)公网IPv6前缀的获得:Linux开发板周期性转发从IPv6网络获得的RA路由广告并转发给Slip虚拟网口,6LoWPAN协调器周期性广播该 RA。6LoWPAN节点解析RA中的前缀信息,并加入或更新前缀列表。
(2)根据2个字节的短地址自配置成公网IPv6地址:公网IPv6前缀::/64+64位本地接口标识符。
本平台配有相应的操作光盘,包含了如下丰富的资源。
(1)三个说明文档:①AT86RF-212-PK使用说明书;②嵌入式网关(YC2440-utuLinux2.6.24)使用说明书;③综合实验(基于IPv6的WSN-TD-SCDMA异构网络搭建)说明书。
使用者可以参照说明书进行基础实验,了解物联网入门知识和IPv6网络架构。
(2)ContikiV1.0源码包:使用者可以在此源码基础上进行相关的6LoWPAN协议开发和拓展。
(3)上位机和传感器的可执行文件:用于配合完成综合实验操作,帮助使用者了解IPv6网络互联操作。
(4)工具和软件:配有说明文档操作过程中用到的工具和软件,帮助使用者快速进行实验/开发。
(5)硬件芯片的数据手册:使用者可以根据数据手册进行驱动开发和硬件扩展。
本文将6LoWPAN、嵌入式、3G和Internet等技术融合在物联网开发平台中,构建了一套基于6LoWPAN协议的物联网开发平台,为短距离无线通信与第三代移动通信网及Internet的通信提供了解决思路和验证系统平台。
针对本平台的应用推广,笔者所在团队帮助思科公司成功搭建了物联网验证系统;与韩国汉阳大学、崇实大学、鲜文大学和建国大学等高校展开了广泛的技术交流合作,开发验证平台在韩国信息技术资源中心进行展示引起了热烈反响,并被韩国汉阳大学和崇实大学等高校用于学生实验与技术开发。
实验室以此为基础,成功获得了国家科技重大专项(03专项)项目“基于IPv6的无线传感器网的网络协议研发及验证(2012ZX03005001)”的资助。随着物联网技术的发展,IPv4与IPv6的共存和转化升级、物联网的安全、抗干扰等技术问题会有新的解决思路,到时本平台系统也将提出新的平台版本来适应技术的发展需要。
[1] RFC 4919-IPv6 over Low-Power Wireless Personal Area Networks(6LoWPANs)Overview,Asumptions,Problem Statement,and Goals,August 2007
[2] 李堃.基于6LoWPAN的Ipv6无线传感器网络的研究与实现[D].南京:南京航空航天大学,2008
[3] 孙展.基于IPv6的无线传感器网络网关的设计与实现[D].郑州:中国人民解放军信息工程大学,2007
[4] 乐英高,任小洪等.基于ZigBee技术的物联网开发平台构建[J].北京:单片机与嵌入式系统应用,2011(2)
[5] 王鸿磊,张雪松,徐钊.基于WSN和GPRS的嵌入式远程监控系统的设计[J].哈尔滨:自动化技术与应用,2010:29(3)
[6] 乔大雷,夏士雄等.基于ARM9的嵌入式Zigbee网关设计与实现[J].北京:微计算机信息,2009,12(2):156-158
[7] 吴海平,王慧锋.基于ARM技术的嵌入式网关设计.维普资讯http://www.cqvip.com,2007
[8] 陈辉煌,魏畅.穿越动态NAT的IPv6 over IPv4隧道方案[J].北京:电力系统通信.2009.2:30(196)
[9] RFC 4944-Transmission of IPv6 Packets over IEEE 802_15_4 Networks,September 2007