Zigbee2006 空中下载功能(OAD)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
作者:hxl
关键字:OAD、Zigbee、z-stack
Zigbee2006功能强大,每一次使用都会有不同的惊喜,这段时间对AES加密、低功耗和改变频段都有了很满意的使用,有时间给大家共享出来,但是最近调试的OAD却始终有很大的问题,始终调试不成功。
OAD的中文名称是空中无线下载(我的理解),它是通过Zigbee本身的网络来更新自己节点的代码,以完成一个很好的升级接口,解决了很多升级过程中的麻烦。
对节点无线下载是通过一种客户服务器方式传输软件镜像来对现场传感器节点和路由节点应用代码进行软件升级。新的镜像通过无线传输,传送到目标节点上的未利用的存储空间,所以目标节点上的存储空间必须在满足存储现行程序的同时,还能够存放下与现行程序相似大小的新的镜像文件。下载镜像的过程如果被干扰或者打断,负责下载镜像的程序能够在下次恢复的时候重新开始下载。当下载完成后,当带有新的镜像的终端节点得到了来自命令执行器的授权以后,现行的程序将被下载的程序镜像所改写。在程序的改写过程中,如果系统掉电,负责改写的启动代码将会在电源恢复时重新开始程序写入。
在整个镜像下载的过程中,对原有程序是不作修改的,因此即使下载过程发生问题,也不会影响到原有程序的正常运行,即在干扰结束后,原有程序仍然完整,可以重新自行完成镜像的无线下载任务,不需要人工进行物理连线干预。
无线下载作为ZigBee节点软件调试升级的解决方案,必须保证运行的可靠性和安全性,因此,节点系统必须有自恢复的功能,保证负责下载代码任务的软件部分在下载完全之前不能受到损坏。在传输上,ZigBee 协议在安全层上运用AES-128 算法对收发的数据进行加密,防止了无线环境中用户代码的泄漏和来自外部的恶意入侵。
根据上面的介绍,可以得到一个结论就是节点要有自恢复功能和自动下载功能,这样节点就必须要满足这些条件
1. 要有读、擦、写Flash的功能
2. 必要有足够大的存储控件
CC2430芯片是一块基于IEEE802.15.4 的SoC CMOS芯片,片内除高性能2.4GHz DSSS(直接序列扩频)射频收发器核心外还集成了一颗工业级小巧高效的8051 控制器和片内128kB 的Flash 存储器。但是CC2430 平台上开发的典型程序代码通常超过64kB 大小,这样在芯片内部同时存放镜像而不影响运行的程序是做不到的。因此,要在CC2430 平台上实现OAD 无线下载功能,就必须在芯片外部添加合适大小的E2PROM 用以存放需要下载的镜像代码。
至于读写方面则采用一个boot实现,这个boot需要通过一些简单的设置后就可以和协议栈综合在一起。
在Z-stack<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1.4.2版本后就有了对OAD一些详细的介绍,具体的使用方法在一个名为Over Air Download for CC2430.pdf (在z-stack1.4.3版本中)的pdf文件中。另外TI公司还在Z-stack中提供了一个ZOAD的软件来配合这个功能的实现,希望有调试成功的朋友可以分享。
zigbee_904218839 2008-9-6 12:16