一种无线传感器网络的在线渐进式程序更新方法

文档序号:7894904阅读:374来源:国知局
专利名称:一种无线传感器网络的在线渐进式程序更新方法
技术领域
本发明涉及一种应用于无线传感器网络的在线渐进式程序更新方法,属于无线传感器网络技术领域。
背景技术
无线传感器网络被称为21世纪最具影响カ的新技术之一,具体采用低成本、低功 耗的嵌入式系统作为硬件基础,采用高能效、传输距离近、通信数据速率低的通信协议,以自组织和多跳的形式构成无线通信网络。无线传感器网络的ー个核心指标是网络的生存周期,即希望在一个较长的时间内网络中的绝大多数节点能够正常的工作,完成数据采集和传递的功能。无线传感器网络在运行的过程中需要进行程序更新,用来满足功能升级、漏洞修复等常见的软件维护需求,以及应对网络状态改变的情况,如储能減少、部分节点死亡、节点位置移动等。采用在线更新的方式,利用无线通信连接进行更新数据的传递,可以避免针对大量无线传感器网络节点的手工操作,降低了维护代价。传统的嵌入式系统的在线更新方式采用点对点无线通信获取完整的程序映像文件来替换旧的程序,这种在线更新方式需要繁琐地针对每个待更新的无线传感器网络节点重复进行,并且每次更新传输数据量大,消耗大量网络通信资源并占用较长的更新时间,容易导致无线传感器网络的运行中断。

发明内容
一种无线传感器网络的在线渐进式程序更新方法,其特征在于,依次含有以下步骤步骤(I)构造无线传感器网络节点所述无线传感器网络节点是ー个至少包括嵌入式的处理器、存储器、内存和外部设备在内的嵌入式系统,所述存储器根据存储的内容划分为程序存储空间和数据存储空间,所述程序存储空间根据所述无线传感器网络节点的各项不同的功能分为若干个离散的功能模块,每个所述功能模块对应于所述程序存储空间的ー个映像文件,完整的程序至少包括更新辅助模块、网络路由模块、能量收集管理模块、传感数据采集模块以及定位算法模块,所述更新辅助模块在待更新节点接收到更新映像文件后,辅助完成所述无线传感器网络节点的升级更新和重启,所述待更新节点为所述无线传感器网络中需要更新的全部或某一类无线传感器网络节点,包括更新源节点在内的全部的所述无线传感器网络节点都有唯一的序号,所述更新是指渐进式在线程序更新,毎次只更新其中的某个或某几个功能模块,更新的结果为程序存储空间中的相应的功能模块被替换、删除或添加,每个所述映像文件在所述程序存储空间中的存储结构由索引部分和函数体部分构成,所述函数体部分由若干个函数子模块构成,所述索引部分位于所述映像文件的起始位置,由各个所述函数子模块的名称和对应的入口地址构成,所述嵌入式的处理器通过调用所述功能模块的函数子模块来实现功能模块的相应的功能,所述调用是指所述嵌入式的处理器查询所述功能模块对应的映像文件的索引部分,获得所述函数子模块的入口地址,并跳转到所述入口地址执行程序指令,所述数据存储空间用于暂存更新映像文件,步骤(2)无线传感器网络执行在线渐进式程序更新,其步骤如下步骤(2. I)更新源节点向待更新的无线传感器网络以洪泛的方式发送更新开始 指令,包括更新目标节点的类型标识、更新功能模块的名称、更新版本信息,所述更新源节点是所述无线传感器网络中的汇集节点,步骤(2. 2)所述待更新的无线传感器网络的各个节点分析接收到的更新开始指令,判断更新目标节点的类型标识符合当前无线传感器网络节点的类型,且更新版本高于对应的功能模块的当前版本,则当前无线传感器网络节点成为所述待更新节点,进入监听和接收状态,步骤(2. 3)所述更新源节点把新版本的功能模块的更新映像文件拆分为多个适合传输大小的更新数据包,包含有功能模块名称、数据包分拆序号、分包数据以及CRC校验信息,并按数据包分拆序号依次以洪泛方式发送到所述待更新的无线传感器网络,步骤(2.4)所述待更新节点接收到所述更新源节点发送的更新数据包之后,把CRC校验正确的更新数据包按照数据包分拆序号重新组成更新映像文件,写入所述数据存储空间中,步骤(2. 5)所述待更新节点统计接收到的更新数据包的信息若有缺失的更新数据包,则点对点地向所述更新源节点发送缺包反馈信息,包括缺失包的数据包分拆序号和所述待更新节点的序号,若更新映像文件接收成功,则点对点地向所述更新源节点发送成功反馈信息,包括所述待更新节点的序号,所述缺失包是指数据包分拆序号丢失的更新数据包,CRC校验错误的更新数据包和超过接收时间门槛尚未接收到的更新数据包中的任何ー种,所述接收时间门槛为5分钟 50分钟范围内的预设值,所述接收成功是指,收到序号连续的所有更新数据包并全部通过CRC校验,步骤(2. 6)更新源节点动态的接收并统计所述待更新节点的缺包反馈信息和成功反馈信息,新的缺包反馈信息会覆盖待更新节点之前的缺包反馈信息,新的成功反馈信息会清零待更新节点之前的缺包反馈信息,所述更新源节点根据更新成功率和更新消耗的时间来决定缺包重发或者结束更新若更新成功率超过更新成功率门槛或者更新消耗的时间超过了更新时间门槛,则结束更新,所述更新源节点向所述无线传感器网络洪泛发送更新结束指令,否则所述更新源节点向所述无线传感器网络优先重新洪泛发送缺包统计较多的更新数据包,所述更新成功率是指更新成功的待更新节点的数量与待更新节点的总数的比值,所述更新成功率门槛为80% 90%范围内的预设值,所述更新时间门槛为10分钟 100分钟范围内的预设值,
步骤(2. 7)更新映像文件接收成功的所述待更新节点接收到所述更新结束指令之后,调用所述更新辅助模块把更新映像文件从所述数据存储空间写入到对应的程序存储空间,再进行节点重启,运行新的程序版本,步骤(2. 8)对于更新失败的所述待更新节点按步骤(2. I)到步骤(2. 7)的过程采取点对点的指令和更新数据包的传输方式进行更新。本发明提出的应用于无线传感器网络的在线渐进式程序更新方法,其主要优点是減少了更新数据量,提高了代码重用性,減少更新过程对于网络资源的消耗,降低更新失败率,保证了无线传感器网络的正常无间断运行。本发明结合洪泛方式和点到点方式高效地 实现更新指令的下达和更新数据的传递,并且对无线传感器网络节点的程序存储空间采用离散的功能模块划分方式,通过本发明提供的映像文件的索引机制进行函数子模块调用。毎次进行无线传感器网络节点的更新只需替换、増加或者删除程序存储空间中的某个或者某几个功能模块,实现了程序的在线渐进式更新。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I是无线传感器网络在线渐进式程序更新场景;图2是无线传感器网络节点的程序存储空间的功能模块划分方法;图3是更新前后各功能模块的映像文件在存储器中变换示意图;图4是无线传感网络进行在线渐进式程序更新的流程原理图;图5是更新数据包格式示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明提出的在线渐进式程序更新方法适用于无线传感器网络,如图I所示,无线传感器网络由ー个更新源节点和一定数量的普通节点构成,更新源节点为无线传感器网络中的汇集节点,汇集节点的主要功能是传感数据的收集,并可以向整个无线传感器网络发送指令,在更新过程中,有更新需求的部分或全部普通节点成为待更新节点。无线传感器网络必须已经实现了常规的网络路由协议,能够正确的实现洪泛方式和点到点方式的路由通信,包括更新源节点在内的全部无线传感器网络节点都有唯一的序号。无线传感器网络节点是包括嵌入式的处理器、存储器、内存和外设在内的嵌入式系统,其中存储器根据存储的内容分为程序存储空间和数据存储空间,处理器通过执行程序存储空间的程序指令运行程序。
无线传感器网络节点的程序存储空间根据节点的各项不同的功能分为若干个离散的功能模块,如图2所示,每个功能模块对应于程序存储空间中的ー个映像文件,单个映像文件本身占据ー块连续的存储空间,不同功能模块的映像文件在存储器中互相是不连续的,完整的程序由全部功能模块构成,包括但不限于更新辅助模块、网络路由模块、能量收集管理模块、传感数据采集模块、定位算法模块。如图2所示,每个功能模块所对应的映像文件在程序存储空间中的存储结构由索引部分和函数体部分构成,函数体部分由一系列函数子模块构成,函数子模块是实现功能模块所提供的具体功能的内部函数,以能量管理模块为例,其函数子模块包括电压电流数据测量函数、节点休眠控制函数、电池充放电控制函数等,索引部分位于映像文件的起始位置,索引部分的内容是各个函数子模块的名称和相应的入口地址,用于处理器对各个函数子模块的入口地址进行查找,当处理 进行函数子模块调用时,通过查询映像文件起始处的索引部分获得函数子模块的入口地址,然后直接跳转到该入口地址读取程序指令并执行。无线传感器网络节点具有ー个固定的更新辅助模块,用于辅助完成所述无线传感器网络节点的升级更新,具体实现的功能包括映像文件的复制写入、节点的重启,如图3所示,无线传感器网络启动在线更新过程后,待更新节点将更新映像文件下载至存储器的数据存储空间,然后调用更新辅助模块将更新映像文件由数据存储空间写入到程序存储空间,用更新映像文件覆盖或替换原有的映像文件,或者对旧的映像文件进行删除,并在文件操作完成时进行待更新节点的重启,重启后待更新节点运行更新后的程序,这个过程对应着图4中的“文件更新覆盖和节点重启”部分。更新辅助模块本身为固定模块,不进行在线更新,可以手工更新。结合图4所示的流程图,整个无线传感器网络的在线渐进式更新的执行过程包括以下步骤步骤(I)更新源节点向待更新的无线传感器网络以洪泛的方式发送更新开始指令,包括更新目标节点的类型标识、更新功能模块的名称、更新版本信息。所述更新目标节点的类型标识用来标明网络中需要更新的节点的类型。所述洪泛方式是无线传感器网络的一种简单通信方式,网络中的节点接收到数据后立即将数据转发,不保证数据传输的可靠性。步骤(2)待更新的无线传感器网络的各个节点分析接收到的更新开始指令信息,如果满足更新判决条件,即更新目标节点的类型标识符合当前无线传感器网络节点的类型,且更新版本高于对应的当前功能模块的版本,则成为待更新节点,进入监听和接收状态。步骤(3)更新源节点将新版本的功能模块的更新映像文件拆分为多个适合传输大小的更新数据包,包含了功能模块名称、数据包分拆序号、分包数据主体以及CRC校验信息,如图5所示,并按数据包分拆序号依次以洪泛方式发送到待更新的无线传感器网络。所述数据包分拆序号为ー种编号方式,用于待更新节点确认更新数据包分拆顺序。步骤(4)待更新节点接收到更新源节点发送的更新数据包,对接收到的数据包进行CRC校验,校验通过后依照数据包分拆序号将更新数据包重新恢复组成更新映像文件,写入到待更新节点的数据存储空间中。步骤(5)待更新节点统计接收到的更新数据包的信息如果有缺失的更新数据包,则向更新源节点发送缺包反馈;如果成功接收到完整的映像文件,则向更新源节点发送成功反馈。缺包情况包括以下情形接收到数据包分拆序号不连续的更新数据包,则丢失序号的相应更新数据包为缺失包,CRC校验错误的更新数据包为缺失包,超过预设的接收时间门槛(5分钟 50分钟)尚未接收到的更新数据包为缺失包;成功接收情况为待更新节点接收到序号连续的所有更新数据包并且全部通过CRC校验。所述缺包反馈和成功反馈利用无线传感器网络的点到点方式实现,点对点方式利用无线传感器网络的网络协议建立起来的可靠链接进行数据的传递,缺包反馈的反馈信息包含缺失包的数据包分拆序号和待更新节点的序号,成功反馈的反馈信息包含待更新节点的序号。步骤(7)更新源节点接收并统计待更新节点的缺包反馈和成功反馈,根据更新成功率和已经更新的时间来决定缺包重发或者结束更新如果更新成功率超过预设的更新成功率门槛(80% 90% )或者更新时间超过了预设的更新时间门槛(10分钟 100分钟)则结束更新,缺包重发继续采用洪泛的方式,优先重发缺包统计较多的更新数据包。所述更新源节点对于缺包反馈和成功反馈的统计是ー个动态的过程,待更新节点的新的缺包反馈信息会覆盖该节点之前的缺包反馈信息,待更新节点新的成功反馈信息会清零该节点之前的缺包反馈信息,所述更新成功率是指更新成功的待更新节点的数量与待更新节点的总数的比值。步骤(8)更新源节点确定结束更新后向整个网络洪泛发送更新结束指令,获得完整更新映像文件的待更新节点接收到更新结束指令之后调用更新辅助模块将更新映像文件写入相应的功能模块在原程序存储空间中的位置,如图2所示,毎次更新某个或者某几个功能模块的映像文件,并保留原有程序存储空间中无需更新的其他功能模块,更新的结果为程序存储空间的相应功能模块被替换、删除、添加,文件操作完成之后更新辅助模块进行待更新节点的重启,重启后,待更新节点运行更新之后的程序版本。步骤(9)对于更新失败的剩余待更新节点采取点对点方式进行单独更新,点对点的更新过程按照上述步骤(I)到步骤(8)的过程采取点对点的指令和更新数据包的传输方式进行更新,对于无法建立点到点通信连接的待更新节点,采用手工方式进行更新或者调 试修复。
权利要求
1. 一种无线传感器网络的在线渐进式程序更新方法,其特征在于,依次含有以下步骤 步骤(I)构造无线传感器网络节点 所述无线传感器网络节点是ー个至少包括嵌入式的处理器、存储器、内存和外部设备在内的嵌入式系统,所述存储器根据存储的内容划分为程序存储空间和数据存储空间, 所述程序存储空间根据所述无线传感器网络节点的各项不同的功能分为若干个离散的功能模块,每个所述功能模块对应于所述程序存储空间的ー个映像文件,完整的程序至少包括更新辅助模块、网络路由模块、能量收集管理模块、传感数据采集模块以及定位算法模块,所述更新辅助模块在待更新节点接收到更新映像文件后,辅助完成所述无线传感器网络节点的升级更新和重启,所述待更新节点为所述无线传感器网络中需要更新的全部或某一类无线传感器网络节点,包括更新源节点在内的全部的所述无线传感器网络节点都有唯一的序号,所述更新是指渐进式在线程序更新,毎次只更新其中的某个或某几个功能模块,更新的结果为程序存储空间中的相应的功能模块被替换、删除或添加, 每个所述映像文件在所述程序存储空间中的存储结构由索引部分和函数体部分构成,所述函数体部分由若干个函数子模块构成,所述索引部分位于所述映像文件的起始位置,由各个所述函数子模块的名称和对应的入口地址构成,所述嵌入式的处理器通过调用所述功能模块的函数子模块来实现功能模块的相应的功能,所述调用是指所述嵌入式的处理器查询所述功能模块对应的映像文件的索引部分,获得所述函数子模块的入口地址,并跳转到所述入口地址执行程序指令, 所述数据存储空间用于暂存更新映像文件, 步骤(2)无线传感器网络执行在线渐进式程序更新,其步骤如下 步骤(2. I)更新源节点向待更新的无线传感器网络以洪泛的方式发送更新开始指令,包括更新目标节点的类型标识、更新功能模块的名称、更新版本信息,所述更新源节点是所述无线传感器网络中的汇集节点, 步骤(2. 2)所述待更新的无线传感器网络的各个节点分析接收到的更新开始指令,判断更新目标节点的类型标识符合当前无线传感器网络节点的类型,且更新版本高于对应的功能模块的当前版本,则当前无线传感器网络节点成为所述待更新节点,进入监听和接收状态, 步骤(2. 3)所述更新源节点把新版本的功能模块的更新映像文件拆分为多个适合传输大小的更新数据包,包含有功能模块名称、数据包分拆序号、分包数据以及CRC校验信息,并按数据包分拆序号依次以洪泛方式发送到所述待更新的无线传感器网络, 步骤(2. 4)所述待更新节点接收到所述更新源节点发送的更新数据包之后,把CRC校验正确的更新数据包按照数据包分拆序号重新组成更新映像文件,写入所述数据存储空间中, 步骤(2. 5)所述待更新节点统计接收到的更新数据包的信息 若有缺失的更新数据包,则点对点地向所述更新源节点发送缺包反馈信息,包括缺失包的数据包分拆序号和所述待更新节点的序号, 若更新映像文件接收成功,则点对点地向所述更新源节点发送成功反馈信息,包括所述待更新节点的序号,所述缺失包是指数据包分拆序号丢失的更新数据包,CRC校验错误的更新数据包和超过接收时间门槛尚未接收到的更新数据包中的任何ー种,所述接收时间门槛为5分钟 50分钟范围内的预设值, 所述接收成功是指,收到序号连续的所有更新数据包并全部通过CRC校验, 步骤(2.6)更新源节点动态的接收并统计所述待更新节点的缺包反馈信息和成功反馈信息,新的缺包反馈信息会覆盖待更新节点之前的缺包反馈信息,新的成功反馈信息会清零待更新节点之前的缺包反馈信息, 所述更新源节点根据更新成功率和更新消耗的时间来决定缺包重发或者结束更新 若更新成功率超过更新成功率门槛或者更新消耗的时间超过了更新时间门槛,则结束更新,所述更新源节点向所述无线传感器网络洪泛发送更新结束指令,否则所述更新源 节点向所述无线传感器网络优先重新洪泛发送缺包统计较多的更新数据包, 所述更新成功率是指更新成功的待更新节点的数量与待更新节点的总数的比值,所述更新成功率门槛为80% 90%范围内的预设值,所述更新时间门槛为10分钟 100分钟范围内的预设值, 步骤(2. 7)更新映像文件接收成功的所述待更新节点接收到所述更新结束指令之后,调用所述更新辅助模块把更新映像文件从所述数据存储空间写入到对应的程序存储空间,再进行节点重启,运行新的程序版本, 步骤(2. 8)对于更新失败的所述待更新节点按步骤(2. I)到步骤(2. 7)的过程采取点对点的指令和更新数据包的传输方式进行更新。
全文摘要
一种无线传感器网络的在线渐进式程序更新方法,属于无线传感器网络技术领域,其特征在于,对无线传感器网络节点的程序存储空间划分成离散的功能模块,设置了一个更新辅助模块来删除、替换、添加嵌入式节点需要更新的功能模块,并以无线传感器网络中的汇集节点作为更新源节点,以洪泛方式结合点到点方式高效实现更新指令的下达和更新数据的传递,从而实现程序的在线渐进式更新,具有减少更新数据量,提高代码重用性,减少更新过程对于网络资源的消耗,降低更新失败率的优点,保证了无线传感器网络的正常无间断运行。
文档编号H04W88/18GK102665196SQ20121013518
公开日2012年9月12日 申请日期2012年4月28日 优先权日2012年4月28日
发明者刘伟, 徐淑正, 李让坤, 杨华中, 王鹏军, 罗洪 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1