无线传感器网络应用中使用差分压缩的低功耗系统更新方法

文档序号:7687115阅读:156来源:国知局
专利名称:无线传感器网络应用中使用差分压缩的低功耗系统更新方法
技术领域
本发明属于无线传感器网络领域,具体的说是一种无线传感器阿络应用中使用差分压缩 的低功耗系统更新方法。
技术背景无线传感器网络(Wireless Sensor Networks,以下简称WSN)是一种新型计算与通信 技术。WSN综合了传感器技术、嵌入式计算技术、分布式信息处理技术和通信技术,用以协 作地实时监测、感知和采集网络分布区域内的各种环境或监测对象的信息。WSN应用通常需要在监测区域部署大量无人值守的传感器节点。这种节点部署方式给应 用系统的更新带来了问题在调试程序或者应用需求改变时,把大量节点取回重新烧入新应 用程序是一种不可取的方式。因此,研究人员提出了在线更新的概念,即通过无线方式在整 个网络发布新执行代码。在线更新主要有四个指标(1)执行代码必须可靠地传输到网络中所有更新节点;(2) 尽量具备较高的能耗效率,不能严重縮短网络的生存周期;(3)尽量降低存储容量的需求; (4)尽量降低更新所需时延。其中第l个指标对于任何在线更新方法都必须满足,因为传输 内容是执行代码,任何差错都会引起程序运行失败或者以错误方式运行,从而影响应用的实 施。第2个指标的重要性仅次于第1个指标,它要求更新方法不能过度消耗节点的能量和影响 网络生存周期,这对更新时传输的数据量和传输方式提出了一定要求。第3和第4个指标则是 在线更新方法设计时兼顾考虑的两个指标。目前,现有的在线更新方法都是将整个执行代码都在网络中以多跳通信方式传输,这增 加对节点的存储要求,也较大地影响了网络生存周期和浪费了大量能量。因为代码文件一般 都是10KB的级别,并且节点能量消耗主要来源于射频模块的发送和接收。另外,也有研究 人员提出了虚拟机模式。该模式要求节点运行一个虚拟机平台,用以接收并执行新代码,这 种方法虽然简化了更新歩骤,但同时对节点的计算和存储要求提出了高要求。这与传感器节 点的设计目标是相背离的,因为节点在硬件设计上都是采用嵌入式或MEMS技术,要求低成 本和低功耗,计算和存储能力都十分有限。 发明内容本发明的目的是克服现有的无线传感器网络应用系统的执行代码更新问题,提供一种无线传感器网络应用中使用差分压縮的低功耗系统更新方法,有效地降低了传输能耗和传输 时延,保证了传输和更新的可靠性,能很好地适应大部分应用系统更新的需求。本发明的技术方案无线传感器网络应用中使用差分压缩的低功耗系统更新方法,包含 以下四个步骤(1) 将旧代码文件和新代码文件划分为多个页面;(2) 根据步骤(1)中划分的旧代码文件和新代码文件多个页面,比较旧代码文件和新 代码文件生成差分代码文件;(3) 将所述的差分代码文件以通信方式从发布节点传输到更新节点;(4) 所述的更新节点根据差分代码文件和旧代码文件重新生成新代码文件,完成更新。 本发明的原理本发明首先将更新前后的新旧执行代码文件以同样页面大小划分成多个页面,比较各页面内容的差异,采用压縮编码和消息摘要技术生成差分表压縮码和差分页表, 并组合差分代码文件,接着把该差分代码文件发布到整个网络中。本发明在发布和逐级广播 差分代码文件的过程中,对于丢失分组或页面的处理方法是依据节点度数有选择性地重发请 求。最后各更新节点在收到差分代码文件之后,通过解压和解释该文件重新生成差分表和差 分页表,再结合自身代码组合生成最终的新执行代码文件,并烧入Flash或EEPR0M完成更 新。本发明与现有技术相比的有益效果在于(1) 本发明将旧代码文件和新代码文件划分为多个页面,然后比较旧代码文件和新代 码文件生成差分代码文件,差分代码文件以通信方式从发布节点传输到更新节点,更新节点 根据差分代码文件和旧代码文件重新生成新代码文件,完成更新,这样大幅地减少了重复代 码的传输和更新时延,延长了网络生存周期,保证了传输和更新可靠性,能很好地适应大部 分应用系统更新的需求。(2) 此外,消息摘要的使用。本发明在两处使用了消息摘要。第一,在查找新代码文 件页面的偏移页面时加快了匹配速度;第二,在代码发布与传输过程中使用消息摘要进行校 验进一步保证了更新的可靠性。(3) 另外,节点度数和请求阈值的引入。第一、节点度数的引入避免了处于网络部署边缘的节点执行不必要的广播。第二、当某更新节点检测到了未完整收到各项数据的完整分 组时,会依据请求阈值等待其邻居节点的再次广播,避免不必要的数据请求和重发,减少了 信道占用冲突和传输数据量,也进一步降低了传输能耗。总之,本发明具有通用性好,更新时延短,传输数据量少,能耗效率高和完全可靠等优点。


图1为本发明方法的示意图;图2为本发明的划分页面后的新旧代码文件图,其中a旧代码文件,b为新代码文件; 图3为本发明的差分代码文件的生成过程;图4为本发明的消息摘要表、差分表、差分页表和差分代码文件的格式,其中a为消息 摘要表,b为差分表,c为差分页表格式,d为差分代码文件格式;图5为本发明的新旧代码文件生成的消息摘要表,其中a为旧代码文件消息摘要表,b 为新代码文件消息摘要表;图6为本发明的初次差分表的生成流程图;图7为本发明的初次生成的差分表;图8为本发明的差分表的二次处理流程图;图9为本发明的二次处理后的差分表,其中a为计算偏移页后差分表,b为差分页表; 图10为本发明的网络拓扑、节点度数和请求阈值示例,其中a为网络拓扑,b为节点度 数和请求阈值;图11为本发明的数据更新传输分组格式。
具体实施方式
本发明是一种无线传感器网络应用中使用差分压縮的低功耗系统更新方法。如图1所示,本发明的技术方案为主要分为三个步骤1. 将旧代码文件和新代码文件划分为多个页面。设旧代码文件大小为S。字节,其页数P。计算规则为将S。用L整除,若余数为零,则P。等于除数,否则P。等于除数加1;其中第m页内容用符号p。On)表示。同理设新代码文件大小为S。 字节,其页数为P。,其中第m页内容用符号pUm)表示。如图2a和2b所示,旧代码文件大小为12K字节,新代码文件为16K字节,页面容量为 2K字节,新旧代码文件分别划分为6个和8个页面。其中箭头表示新代码文件的页面与旧代 码文件中箭头所指的页面内容相同。2. 比较旧代码文件和新代码文件生成差分代码文件。本步骤流程图如图3所示,本步 骤进一步的详细步骤如下(1)建立和初始化三张表消息摘要表、差分表和差分页表。消息摘要表用于文件各 页面的消息摘要表;差分表用于标记新代码文件与旧代码文件内容相异的页面;差分页表则 用于存储新代码文件与旧代码文件内容相异的页面。消息摘要表、差分表和差分页表格式如图4a、 b、 c所示。(2) 使用MD5算法计算生成新代码文件和旧代码文件各页面内容的滑息摘要,具体过 程描述如下对于每个页面,先按512位分组来处理输入的页面字节内容,每一个分组又划分为16个 32位子分组。算法的输出将由4个32位分组组成,将它们级联形成一个128位散列值。 算法细分步骤如下-第一步,在原消息中增加填充位,目的是使原消息长度等于一个值,即比512的倍数少 64位。填充位使用一个1位和多个0位,填充总是增加的,填充长度为1-512的值。第二步,添加长度。增加完填充位后,紧接着要计算消息的原长,并将其加进填充后的 消息末尾。例如,原消息为1000位,则填充472位,使其变成比512的倍数(1536)少64位, 并且将长度值1000附加到消息的末尾(用64位二进制数表示)。第三步,将输入分成512位的块。第四步,初始化链接变量。4个链接变量,分别称为A、 B、 C、 D,其初始化值为A=0 X01234567、 B=0X89abcdef、 C=0Xfedcba98、 D-0X 76543210。第五步,处理块。将消息分为N个512位分组M(l), M(2), ..., M(N)。对上述N个 512位分组做如下处理-① 把4个初始化变量A、 B、 C、 D分别复制到变量a、 b、 c、 d中。② 每一个512位消息分组划分为16个32位子分组。③ 对上述分组进行4 $&,每轮16次操作,共64次操作。每次操作对a、 b、 c、 d中 的3个做一次非线性函数运算,然后将所得结果加上第四个变量, 一个分组和一个常数T。 再将所得结果向右循环移一个不定的数,并加上a、 b、 c、 d中之一。 将A、 B、 C、 D分别加上a、 b、 c、 d,然后用于下一个512位分组数据。 最后MD5算法产生128位的输出是A、 B、 C、 D的级联。本实施例中假设生成的消息摘要表如图5所示,其中a为旧代码文件消息摘要表,b为 新代码文件消息摘要表。(3) 按顺序比较新代码文件与旧代码文件的页面,将是否匹配记录在所差分表图4b中, 此步骤的流程图如图6所示。本实施例中根据流程初步生成差分表如图6所示。其中 P。(l广P。(4)与p。(l)、(4)相同,差分表中相应的前4项标记为0, O表示匹配会使行程编码 效率更高;p。(5广p。(8)与p。(5)、(8)不相同,在差分表中相应的后4项标记为-l。(4) 按顺序处理差分表中标记为不匹配的表项,更新差分表,并生成差分页表。此步 骤的流程图如图8所示,其中检测到pn(5)与p。(6)内容一致,则更新差分表第5项的匹配标 记为6,同理将第8项的匹配标记更新为5。处理完毕后的差分页表内容如图9b所示。(5) 采用行程编码差分表压缩码,生成差分表压縮码V裉据行程编轉原理,本实施例 中生成的差分表压縮码为0 4 5 1 -1 2 6 1。应当指出本实施例中展示的行程编码效率一 般,但实际应用当中如新旧代码文件存在大量页面内容相同时,行程编码的效率将非常高。(6) 类似新旧代码文件各页面的消息摘要生成过程,使用MD5算法为差分表压縮码和 差分页表计算消息摘要,最后将差分表压缩码的消息摘要、差分表压縮码、差分页表的消息 摘要和差分页面按顺序组合成差分代码文件,差分代码文件格式如图3d所示。3.将差分代码文件以可靠通信方式从发布节点传输到更新节点。网络拓扑如图10a所 示,其中汇聚节点(即Sink节点,无线传感器网络与外部网络的连接节点,相当于网关) 为系统代码更新的起始点,即代码文件的消息摘要表,差分表和差分页表等主要计算都由 Sink节点完成。本步骤进一步地细分歩骤如下(1) 计算所有节点的度数和请求阈值。节点度数即为其一跳邻居数目。节点度数的计算可调用媒体控制层提供的函数完成。请 求阈值是网络中所有节点度数的平均值。如图10a所示,图中显示节点1的邻居节点为节点 7和节点2,则节点1有2个邻居节点,即节点度数为2;同理可计算出节点2, 3, 4, 5, 6, 7和8的节点度数分别为5, 4, 1, 2, 3, 3和3。此时,根据请求阈值的定义可计算出本网络拓扑的请求阈值为2 + 5 + 4 + 1 + 2 + 3 + 3 + 3 = 2.875,如图10b所示。8(2) 汇聚节点(即Sink节点,无线传感器网络与外部网络的连接节点,相当于网关) 向整个网络广播系统更新消息,各节点进入更新状态。(3) 将差分表压縮码和差分页表的消息摘要传输到各更新节点。本实施例中此步骤如下首先汇聚节点(即Sink节点,无线传感器网络与外部网络的连接节点,相当于网关) 将差分表压縮码和差分页表的消息摘要拆分成多个分组(分组格式如图11所示,其中分组 标记假定为0x00-消息摘要,0x01-差分表压缩码,0x02-差分页表),然后广播这些分组。 节点3收到分组存储后变成发布节点,向其邻节点2, 4, 5广播分组数据。当节点4发现自 身度数为1时,不再广播数据,而节点2, 5度数大于1,会接着广播数据。如节点5的邻节 点6发现未能正确接收分组时,判断出自身度数大于请求阈值,则不会立即请求节点5重发 分组,而是设定一个超时等待时间,选择等待自身其他邻居节点的分组数据。如此后节点6 能在超时等待时间内收到节点2广播的分组,则节省了请求重发的数据传输及其能耗,如等 待超时,则再向节点5请求重发。如此进行广播和重发请求,直至所有节点都正确收到差分 表压縮码和差分页表的消息摘要。(4)将差分表压縮码和差分页表传输到所有待更新节点。本步骤的传输过程类似步骤 (3),但在收到所有分组后须对已收到的消息摘要对收到的差分表压縮码和差分页表进行校验,以保证最后的代码没有任何错误。4.更新节点根据差分代码和旧代码重新生成新代码,完成更新。本步骤过程如下-首先从差分代码文件中读取出差分表压缩码,进行解压生成如图9a所示的差分表,然后逐一处理差分表项,如果该表项匹配标记为-1,就从差分代码文件中的差分页表按序读取一页面,否则就从自身的旧代码文件查找对应页面,处理完所有差分表项后同时也生成了新代码文件,最后把它烧入到Flash或EEPROM,完成更新。为了达到低功耗更新无线传感器应用系统的目的,本发明分析了更新前后代码在结构上的联系,采用的差分压縮减少了数据传输量,具有通用性好,更新时延短,能耗效率高和完全可靠等优点。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员 来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也 应视为本发明的保护范围。
权利要求
1、无线传感器网络应用中使用差分压缩的低功耗系统更新方法,其特征在于包括以下步骤(1)将旧代码文件和新代码文件划分为多个页面,所述的页面为一段连续地址中的字节;(2)根据步骤(1)中划分的旧代码文件和新代码文件多个页面,比较旧代码文件和新代码文件生成差分代码文件;(3)将所述的差分代码文件以通信方式从发布节点传输到更新节点;(4)所述的更新节点根据差分代码文件和旧代码文件重新生成新代码文件,完成更新。
2、 根据权利要求1所述的无线传感器网络应用中使用差分压缩的低功耗系统更新方法, 其特征在于所述歩骤(1)中给出定义如下页面容量页面所包含的字节数量,用符号L表示,页面容量须是处理器字长的倍数; 所述步骤(1)过程如下设旧代码文件大小为S。字节,其页数P。计算规则为将S。用L整除,若余数为零,则P。等于除数,否则P。等于除数加1;其中第m页内容用符号p。(m)表示;设新代码文件大小为S。字节,其页数为K,其中第m页内容用符号Pn(m)表示。
3、 根据权利要求1所述的无线传感器网络应用中使用差分压縮的低功耗系统更新方法, 其特征在于所述步骤(2)中差分代码文件的生成进一步分为步骤-(2.1)建立和初始化三张表消息摘要表、差分表和差分页表,其中消息摘要表用于文件各页面的消息摘要表,差分表用于标记新代码文件与旧代码文件内容相异的页面,差分页表则用于存储新代码文件与旧代码文件相异的页面;(2. 2)使用MD5算法计算生成新代码文件和旧代码文件各页面内容的消息摘要;(2.3) 按顺序比较新代码文件与旧代码文件的页面,将是否匹配记录在差分表中;(2.4) 按顺序处理差分表中标记为不匹配的表项,更新差分表,并生成差分页表;(2.5) 采用行程编码差分表压缩码,生成差分表压縮码;(2.6) 使用MD5算法为差分表压縮码和差分页表计算消息摘要,最后将差分表压縮码 的消息摘要、差分表压縮码、差分页表的消息摘要和差分页面按顺序组合成差分代码文件。
4、 根据权利要求2所述的无线传感器网络应用中使用差分压缩的低功耗系统更新方法, 其特征在于所述步骤(2.4)进一步分为步骤(2.3. 1)若队(m)与p。(nO不同,则扫描旧代码文件中有哪些页面的消息摘要与pn(ta)相同;(2. 3. 2)若p。(i)与p (m)消息摘要相同则进一步逐字节地比较,如完全相同,则称p。(i) 为"(m)的偏移页面,并将页号i记录在差分表中,否则转向歩骤(2.3.3); (2.3.3)将Pn(m)的内容追加到差分页表中。
5、 根据权利要求1所述的无线传感器网络应用中使用差分压縮的低功耗系统更新方法, 其特征在于所述步骤(3)中进一歩包含如下歩骤(3.1) 计算所有节点的度数和请求阈值,其中节点度数为节点的一跳邻居数;请求阈值为网络中所有节点度数的平均值;(3.2) 向整个网络广播系统更新特殊分组消息,各节点进入更新状态; (3. 3)将差分表压縮码和差分页表的消息摘要传输到各更新节点;(3. 4)将差分表压縮码和差分页表传输到所有待更新节点;
6、 根据权利要求4所述的无线传感器网络应用中使用差分压縮的低功耗系统更新方法,其特征在于所述步骤(3.3)中的传输方式细分如下(3.3.1) 发布节点将差分表压縮码和差分页表的消息摘要按序分成多个分组,并广播 给其邻居节点;(3.3.2) 各邻居节点按需接收分组,然后判断自己是否收到所有分组;(3.3.2.1) 若收到所有分组,则判断度数是否大于l,如大于l,转换为发布节点并广 播收到的所有分组;(3.3.2.2) 若没有收到所有分组,则判断自身度数是否大于请求阈值,若大于请求阈 值,则等待;若小于请求阈值,则向发布节点请求重发丢失的分组,直到确认收到所有分组 为止;(3.3.3) 重复步骤(3.3.1)和(3.3.2)直到所有节点都正确收到差分表压縮码和差 分页表的消息摘要为止。
7、 根据权利要求4所述的无线传感器网络应用中使用差分压縮的低功耗系统更新方法, 其特征在于所述步骤(3.4)中的传输方式细分如下(3.4.1) 发布节点将差分表压縮码和差分页表按序分成多个分组,并广播给其邻居节占.'"、,(3.4.2) 各邻居节点按需接收分组,然后判断自己是否收到所有分组;(3.4.2. 1)若收到所有分组,则判断度数是否大于l,如大于l,转换为发布节点并广 播收到的所有分组;(3.4.2.2)若没有收到所有分组,则判断自身度数是否大于请求阈值,若大于请求阈 值,则等待;若小于请求阈值,则向发布节点请求重发丢失的分组,直到确认收到所有分组 为止;(3.4.3) 重复步骤(3.4.1)和(3.4.2)直到所有节点都正确收到差分表压縮码和差 分页表的消息摘要为止;(3.4.4) 使用MD5算法根据已收到的差分表压縮码消息摘要和差分页表消息摘要分别 校验差分表压縮码和差分页表。
8.根据权利要求1所述的无线传感器网络应用中使用差分压缩的低功耗系统更新方法, 其特征在于所述歩骤(4)中的进一歩分为如下歩骤-(4.1) 将差分表压縮码进行解压,生成完整的差分表;(4.2) 按序逐一检查差分表的每项记录,处理如下对于标记为相同的项,直接从自 身的执行代码中提取该页面,对于标记为不同的页面,则从差分页表中提取该页面;如此直 至生成完整的新执行代码文件,完成更新。
全文摘要
无线传感器网络应用中使用差分压缩的低功耗系统更新方法(1)将旧代码文件和新代码文件划分为多个页面,所述的页面为一段连续地址中的字节;(2)比较旧代码文件和新代码文件生成差分代码文件;(3)将所述的差分代码文件以多跳通信方式从发布节点传输到更新节点;(4)所述的更新节点根据差分代码文件和旧代码文件重新生成新代码文件,完成更新。本发明具有通用性好,更新时延短,传输数据量少,能耗效率高和完全可靠等优点。
文档编号H04L29/08GK101232516SQ200810057298
公开日2008年7月30日 申请日期2008年1月31日 优先权日2008年1月31日
发明者威 吴, 忠 周, 涛 尚, 王春平, 赵沁平 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1