资源描述:
《无线传感网络节点软件高效远程更新的技术研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、无线传感网络节点软件高效远程更新的技术研究.freelbeddedSP430F149的FLASH,每一个“”对应一个中断向量,“q”表示程序文件结束。只需将程序文件里的数据按地址写入FLASH的相应位置,即可实现节点软件的更新4?5。2.2节点软件更新流程节点正常情况下运行的是应用程序。用户欲对节点软件进行远程更新时,选中节点后,用户首先选取相应的程序更新文件,然后点击节点软件远程更新按钮。节点在收到更新命令后进入更新引导程序,并向上位机索要程序数据。上位机软件收到该命令后判断并下发相应的数据,判断是否更新完成。具体更新过
2、程分为以下七步:(1)客户端发送节点远程更新命令。(2)节点收到更新命令后将更新标志位置1,回复后程序指针PC指向复位向量。(3)节点程序重新运行,检测更新标志位,跳转到更新程序后向客户端索要程序数据。(4)客户端节点远程更新软件读取、处理并发送程序数据。(5)节点解析程序数据,擦除相应的FLASH后写入新的程序数据并向客户端继续索要。(6)客户端判断程序数据是否全部发送完毕,如果发送完毕,则发送节点软件更新完成指令,否则继续发送程序数据。(7)节点判断是否为更新完成指令,如果是,则判断程序数据是否完整,并选择是否跳入新的
3、应用程序;如果不是,则继续重复步骤(3)~(7)。3高效更新设计程序数据在无线传输过程易受到电磁干扰,导致数据阻塞和丢失1。为提高传输效率,本文主要采用以下三种措施来提高节点软件远程更新的效率。3.1程序文件差异比较一个小的程序文件可以从根本上减少远程更新时间、提高更新效率6。一般情况下对节点的软件进行维护更新时只是对部分功能进行更新,生成的新程序与节点正在运行的旧程序内容差异不大,没有必要对节点的程序进行完全更新。因此本文对节点软件进行远程更新时,首先对新旧程序文件进行差异比对,删除新旧程序文件中相同的内容,保留差异的内
4、容,并重新计算差异内容在FLASH中存储的地址,从而生成数据量较少的程序文件3.2变格式传输3.3数据压缩通过分析程序数据发现,程序数据可分为以下三类:自定义变量的初始化值、寄存器的地址及寄存器的设定值。对于自定义变量的初始化值,可以将其设定为需要的值以便于压缩,但是寄存器的地址及设定值则毫无规律可言,此时对其进行压缩可能导致越压越大的反效果。因此本文对于程序文件采用基于变长编码的无线传感器网络数据压缩方法对程序数据进行有选择性的压缩7。首先对程序数据进行试压缩,只有压缩成功显着的数据帧才对其进行压缩传输,并采用标识字节的
5、某位对该帧程序数据是否进行了压缩进行标识。经过改进后的更新效率提升见表1。4可靠性设计无线传感网络工作环境复杂多变,影响无线通信质量的因素较多,节点软件远程更新的可靠性难以保证。因此本文对提高节点软件远程更新的可靠性进行了设计研究。4.1程序冗余存储程序数据冗余存储是指在MSP430F149的FLASH中存储多个应用程序,由单片机的更新引导程序通过标志位判断执行哪个应用程序。对节点软件进行更新时,只对某个应用程序进行更新,一旦更新失败,更新引导程序自动修改标志位,执行冗余的应用程序,从而保证节点的正常工作。图3为单片机FL
6、ASH中程序存储图。4.2强制更新由于节点绝大部分时间是在运行应用程序,所以上位机给节点发送远程更新命令时,节点应在应用程序中响应。但是由于两个应用程序在无线传输过程中和使用过程中有可能受到强磁干扰等未知的干扰而导致程序遭到破坏,因此,本系统为了增加节点软件远程更新的可靠性,增加了强制更新功能:客户端设置无线通信模块的强制更新管脚为低电平,然后通过无线通信模块复位单片机,节点单片机在重启后首先检测强制更新管脚电平的高低状态,若该管脚为低电平,则不再判断标志位,自动进入更新函数对节点的应用程序进行更新,从而避免了标志位判断异
7、常导致无法远程更新情况的出现。采取强制更新措施后,节点软件的可靠性提高了74%,即只要更新引导程序不被破坏,就可实现节点软件远程更新。5结论本文根据无线传感网络的特点及节点软件远程更新的需求,利用现有的无线传感网络设备,无需对节点硬件做任何改动,设计了一种无线传感网络节点软件高效远程更新方法,降低了无线传感节点软件的更新维护成本。目前,该方法已在电磁环境极为恶劣的京津高铁某段试用,经过近一年的现场实际应用结果表明:该更新方法效果显着,远程更新效率和可靠性高,降低了节点更新维护成本。该更新方法适用于对其他可自编程的嵌入式设备
8、,具有很高的实用性和通用性。注:本文通信作者为张志新。