智能远传表嵌入式软件远程升级方法技术

技术编号:30637926 阅读:31 留言:0更新日期:2021-11-04 00:26
本发明专利技术涉及一种智能远传表嵌入式软件远程升级方法,包括以下步骤:根据原程序和升级程序生成升级包,升级服务器将升级包发送给智能远传表,所述升级包包括升级信息和升级增量数据,所述升级增量数据为新增数据以及与原程序相同数据的描述信息;所述智能远传表接收升级包,并根据所述升级增量数据和原程序复原得到升级程序,以及根据所述升级信息判断是否执行升级操作。本发明专利技术可以大大减少了传输文件大小,增加升级包传输的准确性,继而保障升级成功的可靠性,而且通过升级信息进行验证,可以有效地保障升级程序的准确性。有效地保障升级程序的准确性。有效地保障升级程序的准确性。

【技术实现步骤摘要】
智能远传表嵌入式软件远程升级方法


[0001]本专利技术涉及表具
,特别涉及一种智能远传表嵌入式软件远程升级方法。

技术介绍

[0002]智能远传气表是指带有控制芯片,并且支持4G或NB

IoT无线通讯的远传气表。智能远传气表的嵌入式软件,在产品生产时,通过有线烧录方式写入程序存储区。智能远传气表部署后,安装到千家万户。随客户业务的发展要求,智能远传气表的功能会有部分调整,因此需要对智能远传气表嵌入式软件进行升级。基于智能远传气表安装的分散性,不可能现场直接对智能远传气表嵌入式软件进行升级,只能利用升级服务器,借助智能远传气表所支持的无线通讯方式,将升级所需要的升级文件,通过无线网络传输到智能远传气表,实现远程升级。目前是将升级后的程序传输给智能远传气表,在通信正常的情况下,智能远传气表的升级包能够传输成功,但是也时常存在传输失败的情况,继而导致升级失败。

技术实现思路

[0003]本专利技术的目的在于改善现有技术中所存在的容易出现因传输失败而导致升级失败的情况,提供一种智能远传表嵌入式软件远程升级方法。
[0004]为了实现上述专利技术目的,本专利技术实施例提供了以下技术方案:一种智能远传表嵌入式软件远程升级方法,包括以下步骤:根据原程序和升级程序生成升级包,所述升级包包括升级信息和升级增量数据,所述升级增量数据为新增数据以及与原程序相同数据的描述信息;升级服务器将升级包发送给智能远传表;所述智能远传表接收升级包,并根据所述升级增量数据和原程序复原得到升级程序,以及根据所述升级信息判断是否执行升级操作。
[0005]所述智能远传表根据所述升级增量数据和原程序复原得到升级程序的步骤,包括:所述智能远传表根据升级增量数据中的所述与原程序相同数据的描述信息,确定出与原程序相同数据在原程序中的位置;智能远传表根据所述位置从原程序中提取出所述相同数据;智能远传表将所述相同数据与升级增量数据中的所述新增数据组合,得到所述升级程序。
[0006]描述信息直接是相同数据的位置信息,一方面,位置的描述信息相比于直接的数据要小很多,实现数据量缩小的目的;另一方面,根据位置描述可以准确地从原程序中提取出相同数据,继而将相同数据与新增数据组合得到升级程序,提高升级数据的准确性。
[0007]所述与原程序相同数据的描述信息通过以下方式获得:假设原程序数据OldData大小为M个字节,升级程序数据NewData大小为N个字节,构造一个宽为N、高为M的矩阵E,若NewData[i]与OldData[j]值相等,则E[i,j]为1;否则为
0;在矩阵E中找到多条由1组成的长度不小于设定阈值的连续右斜线'\'形成的斜线,在这些右斜线中找出覆盖NewData最佳的一种直线组合,由该直线组合确定出与原程序相同数据在升级程序中位置、原程序位置及数据长度,所述描述信息包含所述与原程序相同数据在升级程序中位置、原程序位置及数据长度。
[0008]上述方案中,首先构造矩阵,然后再基于矩阵得到与原程序相同数据的描述信息,不仅可以得到更加简化的升级包,而且得到的升级包也更加准确,避免基于升级包复原升级程序时出现错误,保障远程升级的可靠性。
[0009]所述新增数据为NewData中没有被覆盖到的数据。通过构造矩阵的形式,对于新增数据也很容易被发现,即很容易确定出新增数据的位置,继而方便于从升级程序中提取出新增数据,与所述描述信息一起放入升级包。
[0010]所述升级信息包括原程序版本号、升级程序大小、升级包CRC校验码中的任一项或多项。本方案中,通过这些信息验证升级包是否正确,既避免了升级程序自身的错误(例如用错升级程序),也避免了因传输过程中出错(例如数据遗失)而导致升级包错误,可以有效地保障升级包的准确性,避免因升级包错误而导致复原得到的升级程序错误,继而导致升级失败。
[0011]智能远传表根据所述升级信息判断是否执行升级操作的步骤,包括:判断升级包中的原程序版本号与当前运行程序的版本号是否一致,如果不一致则不执行升级操作,否则进一步判断升级包中的升级程序的大小与复原得到的升级程序的大小是否一致,如果不一致则不执行升级操作,否则进一步判断升级包中的升级包CRC校验码与生成的校验码一致,则执行升级操作,否则不执行升级操作。本方案适用于已经复原得到升级程序后再进行验证的情况。
[0012]智能远传表根据所述升级增量数据和原程序复原得到升级程序,以及根据所述升级信息判断是否执行升级操作的步骤,包括:先从接收到的升级包中获取原程序版本号,并与当前运行程序的版本号比较,如果两者一致,则执行下一步,否则不执行升级操作;利用接收到的升级包计算校验值,并将计算出的校验值与升级包中的升级包CRC校验码做比较,如果两者一致,则执行下一步,否则不执行升级操作;根据所述升级增量数据和原程序复原得到升级程序,并判断升级包中的升级程序大小与复原得到的升级程序的大小是否一致,如果一致则执行升操作,否则不执行升级操作。
[0013]本方案适用于先进行判断,再复原得到升级程序的情况,本方案更加优化,可以预先检测出版本号不一致和校验值不一致的情况,避免此种情况下也复原升级程序,避免智能远传表的无效复原操作。
[0014]所述升级信息还包括智能远传表每次可读入原程序的分块大小、升级程序存储代码区的起始地址。
[0015]所述升级包由所述升级服务器生成。升级包可以由其他设备生成,然后提交至升级服务器,也可以由升级服务器直接执行,由升级服务器直接执行的操作可以避免升级包的上传操作,更简化。
[0016]与现有技术相比,本专利技术具有以下有益效果:无线传输的文件越小,传输的成功性越高,本专利技术方法从原程序和升级程序数据
中,获取升级程序增量数据来生成升级包,所以升级包比升级程序文件小很多,通常升级包大小只是升级程序大小的10%左右,升级时只传输升级包,大大提高了无线通讯效率,且保障了传输的可靠性。同时利用校验算法,智能远传气表对接收到升级包校验数据进行检查,确保通讯过程数据准确,继而保障复原得到的升级程序的准确性。
附图说明
[0017]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0018]图1为升级服务器和智能远传表组成的拓扑图。
[0019]图2为实施例中智能远传表嵌入式软件远程升级方法的流程图。
[0020]图3为示例中所举例的矩阵图。
[0021]图中标记:10

升级服务器;20

智能远传表;30

升级包;40

升级程序;50

原程序。
具体实施方式
[0022]下面将结合本专利技术实施例中附图,对本专利技术实施例中的技术本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种智能远传表嵌入式软件远程升级方法,其特征在于,包括以下步骤:根据原程序和升级程序生成升级包,所述升级包包括升级信息和升级增量数据,所述升级增量数据为新增数据以及与原程序相同数据的描述信息;升级服务器将升级包发送给智能远传表;所述智能远传表接收升级包,并根据所述升级增量数据和原程序复原得到升级程序,以及根据所述升级信息判断是否执行升级操作。2.根据权利要求1所述的智能远传表嵌入式软件远程升级方法,其特征在于,所述智能远传表根据所述升级增量数据和原程序复原得到升级程序的步骤,包括:所述智能远传表根据升级增量数据中的所述与原程序相同数据的描述信息,确定出与原程序相同数据在原程序中的位置;智能远传表根据所述位置从原程序中提取出所述相同数据;智能远传表将所述相同数据与升级增量数据中的所述新增数据组合,得到所述升级程序。3.根据权利要求1所述的智能远传表嵌入式软件远程升级方法,其特征在于,所述与原程序相同数据的描述信息通过以下方式获得:假设原程序数据OldData大小为M个字节,升级程序数据NewData大小为N个字节,构造一个宽为N、高为M的矩阵E,若NewData[i]与OldData[j]值相等,则E[i,j]为1;否则为0;在矩阵E中找到多条由1组成的长度不小于设定阈值的连续右斜线'\'形成的斜线,在这些右斜线中找出覆盖NewData最佳的一种直线组合,由该直线组合确定出与原程序相同数据在升级程序中位置、原程序位置及数据长度,所述描述信息包含所述与原程序相同数据在升级程序中位置、原程序位置及数据长度。4.根据权利要求3所述的智能远传表嵌入式软件远程升级方法,其特征在于,所述新增数据为NewData中没有被覆盖到...

【专利技术属性】
技术研发人员:王均水郑越李中华毛冰刘仁槐
申请(专利权)人:成都千嘉科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1