龚成莹,何 辉,马应莲,梁金荣,刘 阳
(兰州工业学院 电子信息工程学院,甘肃 兰州 730050)
基于低功耗和自组织的无线互联的传感器和执行器,无线传感器网络(Wireless Sensor Network,WSN)在智能家居、远程监测、公共安全、健康监测和智能交通等领域发展迅速[1]。经过多年发展,出现了大量的WSN私有协议,如MAC层的S-MAC、T-MAC、BMAC和XMAC等,路由层的AODV、LEACH、DYMO、HiLOW和GPSR等[2],由于缺乏标准,这些协议的使用范围较窄,较难推广。
主流的WSN标准有IEEE802.15.4[3]、ZigBee[4]和ISA100.11a等,由于这些标准采用非IP技术,在实际的应用中,WSN在需要接入互联网时需要复杂的应用层网关,无法实现端到端的数据传输和控制,为此,IETF 6LoWPAN(基于IPv6的低速无线个域网,即IPv6 over IEEE 802.15.4)[5]工作组致力于解决该问题,以使IP网络能够在无线嵌入式设备和网络中使用。通过实现轻量级6LoWPAN的IPv6协议栈,并设计专门的邻居发现机制,将IPv6网络延伸到无线嵌入式领域,从而实现了大量嵌入式设备的端到端IP互联[6],达到TCP/IP网络与无线传感网络的融合目的。本文通过对6LoWPAN网络的结构、基本路由和6LoWPAN与IP协议的研究,设计了一种基于简单LoWPAN的应用模型,并采用CC2538芯片实现6LoWPAN网络节点,进行实际应用网络的组建和测试。
6LoWPAN网络是一种类似于ZigBee协议的新型网络,利用IEEE802.15.4标准,性能较ZigBee更好,可以运行在网络接口层,能够与以IP为基础的系统相连接,通过6LoWPAN实现TCP/IP协议的分层数据处理,实现端到端的数据通信[7]。
6LoWPAN采用的适配层技术使得6LoWPAN节点能够应用IPv6技术实现数据通信和数据交换等,其架构由低功耗无线局域网(LoWPAN)组成,这些LoWPAN是IPv6的末梢网络,分为简单LoWPAN、扩展LoWPAN和自组织LoWPAN三种网络[8]。一个LoWPAN网络由节点和一个或多个边缘路由器组成,其中节点可以充当主机或路由器在同一个LoWPAN中的节点的网络接口共享相同的IPv6地址前缀,这些地址前缀由LoWPAN中的边缘路由器和路由器分配。LoWPAN节点与其他网络节点的通信以端对端的方式进行,就像TCP/IP网络通信一样,每个LoWPAN节点是通过一个唯一的IPv6地址来标识,并可以发送和接收IPv6数据报。简单的LoWPAN和扩展的LoWPAN比较类似,主要的不同是边缘路由器的数量,它们共享相同的IPv6前缀和共同的骨干链路,当节点从一个LoWPAN移动到另一个LoWPAN时,节点的IPv6地址随之改变。
6LoWPAN也可以作为一个自组织的LoWPAN来运行,在这种结构中,必须配置一个作为简化的边缘路由器来实现唯一本地单播地址和6LoWPAN邻居发现注册功能,自组织网络具有本地的IPv6本地前缀,而不是全球地址,并且在该LoWPAN之外没有路由。
互联网协议的重要功能是将异构的链路互联到一个单一的可互操作的网络,这同样适用于6LoWPAN网络。对互联网IP协议和6LoWPAN进行比较如图1所示。
图1 IP协议与6LoWPAN协议
表面上看这2个协议栈比较类似,但是6LoWPAN只支持IPv6,并定义了一个小型适配层在IEEE802.15.4和类似的链路层上优化IPv6[9]。6LoWPAN在传输层使用UDP协议,由于性能、效率和复杂性的原因,6LoWPAN中不常使用TCP协议[10]。
IPv6与LoWPAN之间的格式自适应由边缘路由器实现,路由器能够实现双向透明、有效和无状态的转换,在LoWPAN内部,由于所有的压缩字段被广播到所有节点,所以主机和路由器实际上并不需要完整的IPv6或UDP报头。6LoWPAN中的IP编址与IPv6网络一致,长度为128位的IPv6地址,由64位的前缀部分和64位的接口标识符组成,通过组合LoWPAN前缀和无线接口的链路层地址以无状态自动配置(SAA)方式自动生成IPv6地址。
数据报在LoWPAN的传输往往要经过多个无线跳,这就需要第2层的数据转发和第3层的路由,路由协议在每个节点上填写路由信息库(RIB)或转发信息库(FIB),RIB包含了运行路由协议所需的信息,用于转发数据报[11]。LoWPAN路由模型如图2所示。
图2 LoWPAN路由模型
由如图2可知,数据报被发送到某一条连路上,到达路由器的接口上,路由器在FIB中查找目的地址,通过接口发送数据报,在一个LoWPAN中,转发并不是因为要使用2个不同的链路,而是因为第1个节点可能不在第3个节点的通信范围内,因此,数据报到达路由器的接口通常也是用于再次发送该数据报的接口(类似于IP网络中的单臂路由[12])。LoWPAN中的路由和转发既能发生在IP层之下,也可能发生在IP层之上。
通过有效地压缩报头和简化IPv6,6LoWPAN使IPv6可以应用到低功耗网络的无线传感设备中,当LoWPAN与其他IP网络进行数据互联时,还应考虑以下几个问题[13]。
1.4.1 最大传输单元(MTU)
6LoWPAN通过分片和重组实现IPv6的MTU(1 280 B)[14],为了减少性能上的损失,应尽可能减少数据报的大小,从而避免IPv6数据报分段。
1.4.2 与IPv4的互联
目前互联网的主流仍是IPv4协议,而6LoWPAN仅支持IPv6,无法双栈运行,这就面临IPv6与IPv4相互连接的问题,常见的方法是IPv6-over-IPv4隧道和网络地址转换。
1.4.3 防火墙与NAT
在实际的互联网中,防火墙被广泛使用,这通常会导致端口阻塞。NAT使IP地址无法直达,静态地址通过NAT往往会被隐藏。
1.4.4 安全性
尽管6LoWPAN在链路层上提供了一些安全机制,但是如同主流的互联网协议一样,在网络层之外的通信依然容易受到攻击,由于6LoWPAN节点限制了完整的IPsec[15]的使用,这就增加了应用层上端到端的安全性要求。
6LoWPAN的网络由IPv6网络、远程服务器、IPv6路由器、6LoWPAN边缘路由器、6LoWPAN路由节点(R)和主机节点(H)组成[16],如图3所示。
图3 6LoWPAN网络模型
基于嵌入式设备的6LoWPAN应用与其他无线传感器网络通信一样,需要有一些特殊的设计,如节点芯片、边缘路由器、协议栈的集成、嵌入式操作系统和传感器等。
在实际应用中,使用嵌入式微控制器集成6LoWPAN协议栈,包括单芯片、双芯片和网络处理器3种解决方案,其中单芯片方式使用片上系统射频技术,内置微控制器;双芯片方式中的射频芯片和微控制器是分离的;网络处理器方式使用的射频芯片包含有协议栈,可以被微控制器使用。
选择单芯片方式的TI CC2538作为6LoWPAN应用的节点芯片,CC2538是一种集成无线射频,包含协议栈的单芯片微控制器。包含ARM Cortex M3的微控制器,具有高达32 KB的片上RAM和高达512 KB的片上闪存以及可靠的IEEE802.15.4射频功能,支持较为复杂的网络协议栈,同时拥有32个GPIO接口以及串行外设接口,具有保持功能的低功耗模式。CC2538还具有强大的调试系统和综合性驱动器库,开发较为方便[17]。
利用CC2538设计的IEEE802.15.4设计无线传感网络中,天线以及差分到单端的阻抗匹配网络(平衡转换器)电路的设计较为关键,这关系到射频通路指标的优良性,使得通信距离更优越、系统功耗更小、整个电路系统性能更好。常用的天线设计有PCB天线,如倒F天线、螺旋天线等,也可以使用SMA接口的杆状天线,根据不同的应用来选择。
边缘路由器6LBR是6LoWPAN网络的网关,6LBR网关使得IPv6互联网与WSN(6LoWPAN)网络通过低功耗有损网络路由协议(RPL)路由连接起来,从而构成整个网络。以CC2538的6LoWPAN开发板为基础,在Contiki嵌入式操作系统上运行6LBR应用程序和UDP服务器程序,实现IPv6和IEEE802.15.4协议之间的协议适配层,可以使得2种类型的网络互通。RPL路由涵盖邻居发现协议(NDP)的功能,并在NDP功能的基础上又做了很大的改进。Contiki实时操作系统使用接口把通过的数据包过滤,把以太网数据包和6LoWPAN网络数据包分离开,然后再进行数据交换[18]。
基于CC2538的开发模块组建6LoWPAN应用网络,如图4所示。在测试网络拓扑中,使用了3块CC2538节点、1块ENC28J60以太网模块、1台远程上位机和1台二层交换机,其中任意一块CC2538节点与ENC28J60以太网接口模块连接都可以作为边缘路由器[19],由另外2个节点进行简单的温湿度数据采集,节点所使用的操作系统是Contiki 3.0,各节点和远程主机的IPv6地址如表1所示。
图4 6LoWPAN测试网络
表1 节点地址
名称IPv6地址远程上位机bbbb::75d9:45fc:12c9:85656LBR路由节点(边缘)bbbb::100数据采集节点1 aaaa::212:4b00:5af:81a1数据采集节点2aaaa::212:4b00:5af:8269
与图3不同的是,该测试网络省去了IPv6网络路由器这台设备,而直接由LBR节点来为数据采集节点和远程主机自动分配IPv6地址。
2.4.1 IPv6地址分配信息
2.4.2 网络畅通性测试
2.4.3 基于UDP的数据采集
UDP方式中,将远程上位机作为服务器端,无线传感节点为客户端,上位机启动UDP Server后,6LoWPAN节点作为UDP Client不断向UDP服务器(端口号2345)发送DHT11温湿度传感器[20]采集的数据,下面简单描述了6LoWPAN节点对温度数据的处理和UDP方式的发送过程。
∥发送间隔
etimer_set(&p,eriodic_timer,SEND_INTERVAL);
PROCESS_WAIT_UNTIL(etimer_expired(&periodic_timer));
∥UDP服务器的IPv6地址
uip_ip6addr(&ip6addr,0xbbbb,0,0,0,0x75d9,0x45fc,0x12c9,0x8565);
∥DHT11传感器采集
DHT11_Inint();
∥温度数据合成
tempu[0]= Tem_dec+0x30;
tempu[1]= Tem_uni+0x30;
tempu[2]= ’ ’;
∥状态提示
OLED_Display_On1();
∥UDP Socket方式发送到UDP服务器端
udp_socket_sendto(&s,tempu,7,&ip6addr,PORT);
......
UDP服务器端如图5所示。UDP服务器端启动服务后,接收到来自2个6LoWPAN测试节点的温度与湿度数据,这样就实现了无线传感数据直接在IPv6的网络上传输,扩展到更大规模的IPv6和6LoWPAN网络,进而实现全网的6LoWPAN无线传感节点端到端通信。
图5 UDP服务器端
采用6LoWPAN的解决方案,使低功耗的IEEE802.15.4无线网络系统可以便捷地进行部署,由于使用的是标准的互联网IP协议,这样的系统能够很容易连接到现有的IT设备中,从而实现在短时间内部署多种互联网应用的目标。当然,6LoWPAN网络也有其自身的不足,如安全性不足、国内IPv6互联网尚未普及[21],这也限制了6LoWPAN的普及。随着2017年中国发布《推进互联网协议第六版(IPv6)规模部署行动计划》的执行和推行,6LoWPAN网络也必将得到更大的重视和发展。
[1] 任志玲,张广全,林冬,等.无线传感器网络应用综述[J].传感器与微系统,2018,37(3):1-2.
[2] 李白萍,侯媛,王爽,等.用于危险环境监控的无线传感器网格体系结构[J].西安科技大学学报,2011,31(2):223-226.
[3] 余主正,毛文娟.基于IEEE802.15.4协议GTS机制的实时控制系统研究[J].计算机测量与控制,2012,20(2):356-359.
[4] 杨松,胡国荣,徐沛成.基于CC2530的ZigBee协议MAC层设计与实现[J].计算机工程与设计,2013,34(11):3840-3844.
[5] 王慧娇,邱赞.基于6LoWPAN的智慧校园空调监控系统设计[J].计算机测量与控制,2017,25(4):54-57.
[6] 乔琪珑.基于IPv6的智能体网络边界路由器设计[D].北京:中央民族大学,2017.
[7] 张效奎,白恩健.基于6LoWPAN传感器网关设计[J].电子科技,2012,25(12):11-14.
[8] SHELBY Zach,BORMANN Carsten.6LoWPAN无线嵌入式物联网[M].1版.韩松,魏逸鸿,陈德基,译.北京:机械工业出版社,2015:28-36.
[9] 曹二磊.6LoWPAN协议的研究及在嵌入式RTOS上的实现[D].成都:电子科技大学,2014.
[10] 李爱民,张峰.基于6LoWPAN的井下数据采集器设计[J].工矿自动化,2014,40(11):113-115.
[11] 陈晶晶,李晓记,郑霖.6LoWPAN的Enhanced Route-over的分片和重组机制[J].无线电工程,2015,45(10):1-6.
[12] 程友清,余少华.IPv6网络中一种基于路由协议的PMTU发现机制[J].计算机工程与科学,2013,35(2):43-48.
[13] 陈远龙,孙知信.基于轻量级IPv6的互联互通原型系统分析与设计[J].无线互联科技,2014(1):22-25.
[14] 马亲民,戴光智.6LoWPAN适配层分片重组的研究与实现[J].单片机与嵌入式系统应用,2014(4):1-3.
[15] 杜学凯,吴承荣,严明.IPv6环境下的IPSEC通信安全审计机制研究[J].计算机应用与软件,2017,34(1):298-305.
[16] 孙鲁,籍芳,陈凯,等.基于CC2538和Contiki的无线传感器网络设计[J].物联网技术,2015(3):21-23.
[17] 马浩.基于Contiki的家居机器人系统网络设计[D].武汉:华中科技大学,2015.
[18] 杨啸宇.基于Cortex-M3的无线射频数据采集和传输系统研究[D].天津:天津理工大学,2011.
[19] 张永池.基于可靠UDP的卫星IP网关设计[J].无线电工程,2006,36(5):9-10.
[20] 杨欢欢,秦会斌,金步平,等.基于STM32的温室远程监测和控制系统[J].无线电通信技术,2015,41(5):77-80.
[21] 吴建平,林嵩,徐恪,等.可演进的新一代互联网体系结构研究进展[J].计算机学报,2012,35(6):1094-1108.