已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
6LoWPAN传感器节点的设计与实现王晓喃1,2钱焕延1唐振民1 (1. 南京理工大学,江苏 南京 210094 2.常熟理工学院,江苏 常熟 215500)摘要:本文提出了一种基于6LoWPAN的传感器节点的设计方案,对节点中的硬件与软件设计进行了详细的论述与讨论。在小型实验平台上对本节点的数据包接收率、平均延迟时间以及平均消耗能量等性能参数进行了比较分析。实验数据表明,本节点能很好地实现与IPv6节点的互联并保证其连续性。关键词:传感器网络,传感器节点,适配层,协议Design and Implementation of a 6LoWPAN Sensor Node Wang Xiaonan1,2 Qian Huanyan1 Tang Zhenmin1 (1. Nanjing University of Science & Technology, Jiangsu, Nanjing 210094 2. Changshu Institute of Technology, Jiangsu, Changshu 215500)Abstract: This paper proposes the design scheme of a 6LoWPAN sensor node and expounds the hardware and software design of the sensor node. In a small-scale experimental platform the performance parameters of the sensor node, including packet reception rate, average delay time and average consuming-energy, are compared and analyzed. The experimental data demonstrate that the sensor node can perform the connection with an IPv6 node very well and can ensure the continuity of the communication.Key Words:Sensor network, Sensor node, Adaption layer, protocol1 前言无线传感器网络(WSN)已经成为当前国际上备受关注的、知识高度集成的前沿热点研究领域之一。就WSN而言,它必须和一个外部网络连接在一起,使外部网络可以监测和控制WSN才具有更真实的意义。无论从地理范围还是从网络规模来讲,Internet都是最大的网络, 此外IPv6的很多良好特性使得某些WSN的应用成为可能,因此实现WSN和IPv6 Internet网络互联具有重大意义。当WSN接入承载IPv6的以太网实现传感器节点与IPv6节点之间的全IP互联方式时,传感器节点必须实现IPv6协议,但是传感器节点受自身硬件资源以及部署环境中网络基础设施等条件的限制,实现完整的IPv6网络协议几乎是不可能的。在这种情况下,本文提出了一种6LoWPAN传感器节点设计方案,此方案讨论了传感器节点的硬件与软件设计,实现了传感器节点与IPv6节点的互联。下面对此设计方案进行详细论述。2 6LoWPAN传感器节点的设计2.1 概述传感器节点与IPv6节点实现全IP互联时,它必须实现IPv6协议。但是在硬件资源受限的传感器节点上实现完整的IPv6网络协议是不可能的,因此必须对IPv6协议栈进行裁减,此外,本系统中的传感器网络是基于6LoWPAN的,所以链路层采用IEEE802.15.4帧格式。这样,传感器节点就必须完成以下两个任务:1)实现精简的IPv6网络协议;2)实现IPv6数据报文在IEEE802.15.4帧的传输。2.2硬件设计传感器节点采用如下配置:1)MCU(Micro Controller Unit):ATmega128L处理器,8位低功耗、高性能的微处理器;具有片内128 KB 的程序存储器( FLASH);4KB的数据存储器(SRAM,可外扩到64KB)和4 KB的EEPROM;8个10位ADC通道;2个8 位和2个16位硬件定时/计数器,可在多种不同模式下工作;8个PWM 通道、可编程看门狗定时器和片上振荡器、片上模拟比较器;JTAG、UART、SPI、I2C等总线接口。2)射频芯片:CC2420为2.4GHz IEEE802.15.4标准的射频收发器;以0.18um CMOS工艺制成,性能稳定且功耗极低;支持数据传输率高达250kbps;内部含有368字节的RAM,被分为3个bank,其中,bank0大小为128个字节的,用于存放待发送的数据,bank1大小为128个字节,用于存放CC2420接收到的数据,bank2大小为112个字节,用于存储CC2420的16位网络地址、64位IEEE地址及密钥等一些信息;内部有50个寄存器,其中状态和配置寄存器33个,用于设置CC2420的工作模式,命令寄存器15个,对不同的命令寄存器写入特定格式的命令字,就会执行相应的动作,其余2个是用来访问TXFIFO和RXFIFO的8位数据寄存器,可以通过这两个寄存器读写TXFIFO和RXFIFO中的数据。传感器节点的硬件接口图如图1所示。图1 传感器硬件接口图CC2420通过4线SPI总线(SI, SO, SCLK, CSn)设置芯片的工作模式,并实现读/写缓存数据及状态寄存器等操作,CC2420通过控制FIFO和FIFOP管脚接口状态来设置发射/接收缓存器。CC2420为 IEEE802.15.4数据帧格式(如表1所示)提供了硬件支持,发送或接收的数据帧被送入RAM中的128字节缓存区进行相应的帧封装和帧拆除操作,即硬件自动产生和去除同步帧,以及当MODEMCTRL0.AUTOCRC控制位置位时,帧校验序列自动产生2字节,并由CC2420硬件自动插入帧中。ATmega128L需要CC2420发送数据时,它首先通过写TXFIFO寄存器把需要发送的数据包按字节依次写入到发送缓存区TXFIFO中,依次为数据帧的帧长度1B、帧控制字段2B、序列号1B、PAN标识符2B、目标地址2B、源地址2B、有效载荷(帧长度-(2+1+2+2+2)和帧校验序列2B,然后选通寄存器STXON或STXONCCA,等待信道空闲时从无线信道发送。当CC2420接收到数据包时,把接收到的数据存入到接收缓存区RXFIFO,同时改变FIFOP引脚的状态,处理器通过FIFOP的引脚中断读RXFIFO寄存器依次读取整个数据包。表1 IEEE802.15.4数据帧格式同步帧PHY头帧MAC帧前导序列帧起始分隔符帧长度帧控制序列号地址帧实体帧校验序列4B1B1B2B1B6BnB2B2.3软件设计6LoWPAN传感器节点的软件结构框架如图2所示。应用层适配层硬件抽象层图2 软件结构框架其中,硬件抽象层实现小节2.2中所描述的在硬件层面的数据发送和接收等功能;适配层实现IPv6数据包分片以及分片重组等功能;应用层主要实现精简IPv6网络协议等功能。2.3.1硬件抽象层的设计本系统中,硬件抽象层的功能为:1) 从无线接口接收IEEE802.15.4数据帧,并将帧实体提交给适配层处理;2) 从适配层接收帧实体数据,并用IEEE802.15.4帧头对帧实体进行封装,通过无线接口发送出去,这里,IEEE802.15.4帧头中的源地址为传感器节点的16位短地址。2.3.2适配层的设计在6LoWPAN中,由于IPv6数据包支持的最小值(1280byte)大于IEEE802.15.4帧所能包含的字节数(127byte),因此,在传感器网络中传输一个完整的IPv6数据包时必须对其进行分片处理。IPv6将分片重组信息放在扩展头部,而在6LoWPAN中的IPv6头部包含扩展头部势必带来不小的开销,因此本方案将IPv6分片信息放在适配层。本方案设计了2种适配层头部:不分片报文头部与分片报文头部,其中,分片报文头部中又分为第一片报文头部与后继报文头部。不分片报文头部格式:2bit1bit5bitIPv6 PacketLFPro_TypeRSVPayloadLF:链路分片(Link Fragment),其中00表示不分片,01表示第一片,10表示最后一片,11表示中间分片,此处为00;Pro_Type:指出Payload中IPv6头部是否为压缩类型,0表示未压缩的IPv6头部,1表示压缩头部;RSV:保留,全部设置为0;Payload:适配层的负载部分,内容为IPv6数据包。为了节省空间,适配层并不设置地址字段,它可以通过硬件抽象层从帧头部获取地址信息。分片报文的第一片报文头部格式:2bit1bit13bitIPv6 PacketLFPro_TypeIdentificationPayloadLF:链路分片(Link Fragment),此处为01;Identification:此字段唯一标识一个被分片的IPv6数据包,该值在IPv6数据包的每个分片中的值都相同。分片报文的后继报文头部格式:2bit1bit13bit1ByteIPv6 PacketLFPro_TypeIdentificationF_OffsetPayloadLF:链路分片(Link Fragment),此处为10或11;F_Offset:指出分片报文偏移原始数据包开始处的位置,偏移的字节数是此字段值乘以8。本系统中,适配层实现如下功能:1)适配层从应用层接收数据,并根据IPv6数据包的大小来确定是否需要分片,如果不需要分片,则用不分片报文头部对数据包进行封装,否则,对IPv6数据包进行分片,并分别用第一片报文头部与后继报文头部对其进行封装,最后将封装之后的数据(即帧实体数据)发送给硬件抽象层处理;2)适配层从硬件抽象层获取数据,并分析适配层头部结构,如果是分片报文,适配层将等待其他报文的到来,并负责将同一个IPv6报文中的分片报文进行重组,最后将整个IPv6报文提交给应用层处理。2.3.3应用层的设计本系统对IPv6报头进行如下精简:由于传感器节点的报文处理比较简单,故不实现扩展头部。另外,IPv6报文头部的Version、Traffic Class和Flow Label域一般情况下都是常数,因此可以对Version、Traffic Class、Flow Label以及Next Header域进行压缩。本系统为IPv6报文引入一个控制域,在控制域后是IPv6头部和IPv6报文载荷,具体的报文格式如图4所示,控制域定义了IPv6报文头部各个域的格式,具体内容如图5所示。字节数:1可变头部控制IPv6头部和IPv6报文载荷图4精简的IPv6报文格式1bit2bit1bit1bit3bit图5 IPv6头部控制域Version,Traffic Class,Flow LabelNext HeaderS_AddrD_AddrRSVIPv6头部控制域中每个比特位的具体含义如下:Version、Traffic Class、Flow Label:0:上述三个字段在报文中仍然存在,没有压缩;1:报文中存在上述三个字段,并且默认值为Version=6,Traffic Class=0,Flow Label=0;Next Header:00:没有压缩,即在Payload中存在Next Header域;01:在Payload中不存在Next Header域,并且IPv6载荷是ICMPv6报文;10:在Payload中不存在Next Header域,并且IPv6载荷是UDPv6报文;11:预留,(因为无线传感器网络一般不实现TCP);S_Addr:0:没有压缩,即在报文中是128比特;1:压缩地址,即16位短地址;D_Addr:0:没有压缩,即在报文中是128比特;1:压缩地址,即16位短地址。本系统中,应用层软件具有如下功能:1)应用层从适配层获取IPv6报文,根据头部控制域对报文进行处理;2)应用层用头部控制域和精简IPv6报头对处理结果进行封装,最后形成IPv6报文,并将完整的IPv6报文发送到适配层进行处理。2.3.4 传感器节点的IPv6地址结构根据IPv6地址的分层结构以及WSN自身特点,本模型对传感器节点采用如下的IPv6地址格式:3138246416FPSensor Network PrefixSensor Node Internal Address在本模型中,一个传感器节点的IPv6地址分为三个部分,第一部分是可聚合全局地址格式前缀,取值范围与Unicast相同,即001;而其随后的109比特是第二部分,即传感器网络地址前缀,一个传感器网络中所有传感器节点的IPv6地址的网络地址前缀都相同;第三部分是传感器节点内部地址,即16位短地址,它唯一标识一个传感器网络中的一个传感器节点。其中,传感器网络地址前缀来源于6LoWPAN网关(6LoWPAN网关连接IPv6网络与传感器网络,由于本文主要讨论传感器节点的设计,因此6LoWPAN网关的设计以及传感器网络的路由方案在这里不做讨论)。例如,如果传感器网络的传感器网络地址前缀为3fe8:1:1:1:1:1:1:/112,传感器节点内部地址为1220,那么此传感器节点的IPv6地址为3fe8:1:1:1:1:1:1:1220/112。3 性能分析我们设置了一个小型的实验平台来测试传感器节点是否能与IPv6节点进行正确通信。实验平台包括10个传感器节点和一个6LoWPAN网关,每个传感器节点的硬件和软件结构图分别如图1和图2所示,传感器节点初始状态下的电池能量为2焦耳。通过在IPv6节点上向传感器节点(IPv6地址为3fe8:1:1:1:1:1:1:1220/112)发送Ping报文来测试传感器节点的可达性,实验结果如图6所示。实验中数据源的传输速率设置在128bps至 1024bps之间,传感器的带宽设置为19.2kbps。实验对传感器节点的数据包接收率、平均延迟时间以及平均消耗能量等性能进行了分析,其中,数据包接收率指接收方接收到的数据包总数与发送方发送的数据包总数的比值,平均延迟时间是指发送方发送数据包时刻到接收方接收到数据包时刻之间的时间间隔平均值,平均消耗能量指传感器节点在每个轮回中消耗能量的平均值(轮回指传感器节点从初始化到稳定接收传送数据的一个工作周期),分析结果如图7所示。实验采用如下参数测试平均消耗能量:两个距离r米的传感器节点传输k比特数据所耗费的能量可用如下公式计算:其中,为源节点发送k比特数据所耗费的总能量,为发送1bit所消耗的能量,本实验设定此值为50nJ/bit,为信号放大器的放大倍数,此值设定为10pJ/b/m2;为目的节点接收k比特数据所耗费的能量,为接收1bit所消耗的能量,此值设定为50nJ/bit,每个轮回(round)中传感器传送的数据总量为5120byte。图6 传感器节点与IPv6节点互通实验(a)数据包接收率(b)平均延迟时间(c)平均消耗能量图7 性能分析4 结论本文提出了一种基于6LoWPAN 的传感器节点的设计方案,并对传感器节点的硬件与软件设计进行了详细的论述与讨论。最后,在小型的试验平台上对传感器节点的数据包接收率、平均延迟时间以及平均消耗能量等性能参数进行了比较分析。实验数据表明,本传感器节点能很好地实现与IPv6网络的互联并确保其连续性。参考文献1.K.Akkaya, M.Younis,A survey on routing Protocols for wireless sensor networks, Ad Hoc Networks, 2005, 3(3), 325-349.2.J.N.AI Karaki,A.E.Kamal,Routing techniques in wireless sensor networks: a survey, IEEE Wireless Communications, 2004, 11(6), 6-28.3.L.ShijinDai, XiaorongJing, Research and analysis on routing Protocols for wireless sensor networks, in: Proceedings of International Conference on Communications, Circuits and Systems,HongKong,China,2005.4.X.Wang,T.Berger,Self-organizing redundancy cellular architecture for wire-less sensor networks,in: Proceedings of IEEE Wireless Communications and Networking Conferenee,Ithaea,NY,USA,March2005.5. A.Dunkels,T.Voigt,J.Alonso, Making TCP/IP viable for wireless sensor networks, in:Proeeedings of EuroPean Workshop on Wireless Sensor Netwo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年青海省西宁市初中政治九年级期末上册提升绝密预测题附答案
- 婚礼仪式流程执行操作规程
- 燃气报警器安装及校验方案
- 原发性淋巴水肿皮肤日常防护方案共识
- 狼疮肾炎蛋白尿长期随访监测方案共识
- PayPal专业考核试题及详细参考答案
- 新生儿无创通气鼻部敷料更换周期标准共识
- 重症脓毒症器官功能支持指南(2026版)
- 预制构件防腐保护施工工规程
- 宠物过敏人群室内环境管控专家共识(2026版)
- ISO 22000-2018 食品安全管理体系要求培训课件
- 护患沟通人文关怀课件
- 大学转学协议书
- T-CITS 256-2025 分子检测实验室核酸去污染技术规范
- 菜鸟驿转让合同协议书
- 北京市住宅物业服务标准(三级)
- 特殊教育学校家长培训
- 2025年医学实验室质量控制知识试题及答案
- 多发骨折伴失血性休克的护理
- 教师法制安全知识培训课件
- (人教2024版PEP)英语一年级上册Unit 1单元测试(含答案+听力音频)
评论
0/150
提交评论