欢迎来到天天文库
浏览记录
ID:34216163
大小:217.91 KB
页数:12页
时间:2019-03-04
《ZigBee空中下载技术研究及其优化设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ZigBee空中下载技术研究及其优化设计[导读]摘要:首先介绍基于ZigBee协议的OTA系统,并在CC2530F256硬件平台上进行验证。在Z-Staek协议栈中,设计出一种镜像页请求的空中下载(OvertheAir,OTA)更新方式,并通过实验测试,与原有的镜像块请求方式进行了比较分摘要:首先介绍基于ZigBee协议的OTA系统,并在CC2530F256硬件平台上进行验证。在Z-Staek协议栈中,设计出一种镜像页请求的空中下载(OvertheAir,OTA)更新方式,并通过实验测试,与原有的镜像块请求方式进行了比较分析。实验结果表明,镜像页请求方式可以大大减少网络的更新流量,从而
2、提高节点的更新效率。关键词:无线传感网络;ZigBee;空中下载;镜像块请求;镜像页请求;更新效率引言 本文移植并验证了一种基于ZigBee协议的空中下载(OTA)技术,其分发协议支持点对多传输更新功能,多跳网络的代码分发功能由路由协议支撑。在Z-Stack协议栈下,仅仅支持镜像块请求功能,更新效率并不理想。针对此问题,设计出一种高效的镜像页请求功能,能够提高点对多的传输更新效率,并减少网络流量。1OTA概述 ZigBee协议规范使用了IEEE802.15.4定义的物理层(PHY)和媒体介质访问层(MAC),并在此基础上定义了网络层(NWK)和应用层(APL)。针对无线传感网络
3、重编程技术的需求,ZigBee联盟在原有协议的框架上,提出了一种OTA规范,其作为一个系统可选的功能模块。OTA系统的结构示意图和服务器与客户端之间的数据交互过程略——编者注。2OTA系统设计 本文的OTA系统基于TI公司的ZigBeeSoC芯片CC2530F256设计,包括硬件与软件的设计。2.1硬件系统 CC2530F256内部集成一个增强型8051单片机,拥有8KBSRAM和256KB内部Flash存储器。内部Flash主要用来保存程序代码和常量数据。由于传统8051代码存储空间寻址范围只有64KB,CC2530把内部256KBFlash分成8个bank,每一个ban
4、k大小是32KB,通过寄存器FMAP.MAP[2:0]选择不同的bank映射到代码存储空间,解决了寻址空间受限的问题。 对于OTA客户端,启动代码位于bank0的0x0000~0x0800地址区域,大小为2KB。其余的254KB的Flash空间,用来存储当前固件和其他信息。值得注意的是,0x0888~0x088B区域存放了CRC校验信息,0x088C~0x0897区域存放了PREAMBLE,包括镜像大小、制造商ID、镜像类型和镜像版本号信息。另外,bank7最后的14KB空间(0x7C800~0x7FFFF)用作非易失性(NoneVolatile,NV)变量区(12KB)和特定信息
5、保留区(2KB)。 OTA系统升级方案有两种,分别是片内Flash升级和片外Flash升级。考虑到一般程序固件大小都超过128KB和以后程序功能升级的扩展性,本文采用片外Flash的方案。采用的片外Flash(M25PE20)容量为256KB,通过SPI总线与CC2530之间传输数据。2.2软件系统 对于基于任务事件轮询机制的Z-Stack工程,默认没有添加OTA功能。如果节点需要开启OTA功能,首先需要烧写OTA的启动代码。当节点完成镜像接收之后,对新镜像进行CRC校验,并清空当前镜像的CRC信息,然后重启。当节点重启后,首先跳转到启动代码的地址,开始执行如图1所示的工作流
6、程。3OTA的镜像页请求实现 根据ZigBeeOTA的规范,OTA客户端向OTA服务器请求镜像的方式有两种,分别是镜像块请求与镜像页请求。镜像块请求的OTA更新方式效率较低。 本文根据ZigBeeOTA的规范,在Z-Stack协议栈上设计出镜像页请求的更新方式。页请求命令与块请求命令类似,在数据帧当中附加了镜像页大小与响应间隔信息。当OTA服务器收到一次页请求后,在一定时间间隔内多次向节点发送块响应,免去了多次块请求。其中,块响应的次数由镜像页大小决定,时间间隔由响应间隔设定。正因为请求命令的锐减,能够大大减轻整个网络流量的负担,并提高节点的传输更新效率。 Z-Stack
7、运行在一个OSAL操作系统上,OSAL是一种基于任务事件调度机制的操作系统。每个任务包含若干事件,每个事件对应一个事件号。当一个事件需要产生时,可以通过API函数设置相应的事件号,然后提交给操作系统调度触发。本文设计的镜像页请求功能正是基于这种机制。OTA服务器的镜像页请求处理流程如图2所示,OTA服务器为每一个请求更新的节点分配一个事件号,并通过请求节点的短地址索引,设置特定的事件。进入事件后,OTA服务器通过串口向OTA应用控制台请求镜像数
此文档下载收益归作者所有