
数学义本与率用
算法分析
基于rsync算法的zigbee 网络代码优化方法
刘浩龚珊珊曾凡荣
(重庆邮电大学通信学院重庆400065)
摘要:针对目前再端程技术在zigbee网络中的实时性应用需求,本文提出并实现了一种代码优化传输的方法。该方法通过rsyn算法产生新旧程序的差异映像,并将差异映像通过丈本形式显示出来。实验表明:差异映像的代码量远远小于程序本身的代码量,因此大大提高了zinbee网络代码更新的实时性
关键词:zigbee rsymc算法代码压增实时性中图分类号:TN92:TP39
文献标识码:A
文章编号:1007-9416(2014)03-0113-01
Abstract:This paper proposes optimization of code and transmision on the basis of realtime requirements of the reprogramming in Zigbee network. We use sync algorithm to produce the diference image of two program and diaplay the difference image through the text.The experiment shows that the amout of the difference image is far less than the code itself. Thus it greatly improves the realtime of Zigbee network code update.
Key Words:Zigbee Rsync algorithm code compression realtime
1引言
zigbee传感网络由部署在监测区域中的一系列zigbee传感器节点组成,但由随着用户功能的变化,节点程序需要升级,因此需要 zigbee再编程
Zigbee再编程是在传感器网络首次部累完成后对其进行远程任务再分配、节点软件更新和网络功能再配置的过程。但由于各种原因,使得zigbee网络再编程面临一系列问题,尤其是再编程效率过低。再编程效率低的主要原因就是因为如果终端节点想要更新自身的程序,协调器必须向终端传输全部的更新程序,而随着我们现在应用场录越来越复杂,应用功能越来越多,更新程序的代码量一般较大。因此想要解决这一问题,必须在保持功能不变的情况下压缩传输的代码量。通过经验我们可以得知需要更新的新版本程序一般与目版本程序差异量不大,因此我们可以在上用传统的rSVTc算法对新服本的程序与旧版本的程序比对,将比对后新旧程序的差异量通过协调器传输到终端节点,终端节点根据差异量以及自身带的旧版本程序恢复出新版本程序,这样传输的代码量仅仅为差异量的字节数,这个差异量我们取名叫差异映像文件△f,本文所要研究的
主要问题就是提出一套具体生成差异映像文件的方法。 2差异映像文件具体实现方法
2.1生成源文件A.B
用iar编译新旧程序,分别对应生成的hex文件命名为A,B文件,如(图1)所示。
2.2在linux上比对A,B,比对步骤总共分三步
首先,将IAR编译生成的A,B文件存人linux中,并命名为a,b。由图可知a文件大小130.2KB.b文件大小126.1KB
其次,从rsync官网中下载源码,做一定量的修改后执行linux 命令makeclean;make编译。修改后程序流程图如(图2)所示。
最后,编译通过后,由于rsync是用于对本地计算机的两文件进行比对,因此运用回环地址执行比较命令./rsyncaroot@127, 0.0.1:b,差异映像文件△f会屏幕上显示出来。执行后的结果如图3 所示。
3实验分析
由(图1)(图3)分析可得(表1):
由(表1)可知:差异映像文件△总共分为3部分,第一部分:offset;
表1
字节数源文件A
差异映像文件么[
追号字符 442个
十六进制字符
130.2KB 38B
数宇 442个
总计
130.2KB 不超过 2KB
作者简介:刘浩(1989一),男,顾士生,主要研究领城为近距高无线通信
它代表差异量具体字节数,
Da
第二部分:十六进制字符;它代表a,b文件具体的差异量,第三部分:数字,它代表相同的字节块的块号,生成的差异映像文件么总字节数为38个16进制字符+442个数字+442个逗号字符,总字节数不超过2KB 而源文件A字节数大约为 130KB,因此传输字节数大幅度减小,提高了传输效率。 4结语
本文针对 zigbee网络再编程中实时性差提出了压缩优化这一具体解决方案,代码传输量压缩大大降低,这种方法不仅大大提高了传输效率而且由于传输时间大幅度缩短也提高了传输的可靠性。
2
900
aapre
TzmTar e2orooo
向后偏移1个块输出偏移字性
2893102886A5 NE
83903302097030
图1 源文件A
向后篇移1字节
找到Rolling checksun
NO
sa. 找到MD5 checksum
NO
Sax 输出块号图2 图3
13