掌桥专利:专业的专利平台
掌桥专利
首页

一种电能表软件模块化差异升级方法及电能表系统

文献发布时间:2023-06-19 12:22:51


一种电能表软件模块化差异升级方法及电能表系统

技术领域

本发明涉及一种软件工程设计领域,尤其涉及一种电能表软件模块化差异升级方法及电能表系统。

背景技术

电能表是用来测量电能的仪表,随着政府承诺执行国际法定计量组织的IR46国际新标准,要求新一代采集系统计量功能与其它功能互相独立,满足非计量部分软件升级不影响计量部分的准确性的要求,现有的比较普遍的电能表升级方式为将功能全部一次性升级,升级效率低下且影响电能表工作。一部分电能表的升级方式做了改进,将固定不变的计量有关功能划分到一颗独立芯片上,将可能会升级的功能划分到另一颗芯片上,后续只针对功能芯片整体升级,增加芯片提高了制作成本,但并没有提升升级效率。还有电能表采用完整程序的差异化升级,将整个程序的差异包升级到表内,虽然提高了升级效率,但是在升级过程中会影响计量功能和其它不需要升级的功能模块不符合IR46国际标准。例如,一种在中国专利文献上公开的“一种电能表软件模块化升级方法及电能表系统”,其公告号CN110119281A,包括将电能表软件按照电能表的功能进行模块划分,每个功能模块编译产生模块化文件,将电能表软件的应用程序存储空间进行划分,得到至少两个存储子空间,将各模块化文件分别升级到相应的存储子空间,从而实现对各模块的单独升级。但是上述方案针对所有模块均能升级,升级过程中会影响计量功能,从而影响电表工作的准确性,且采用boot程序定义功能模块通讯时间长,升级完程序后需要重启芯片,影响升级效率。

发明内容

本发明是为了解决现有技术的电能表升级系统升级过程中影响计量功能,增加芯片,造成成本提高且升级效率低下的问题,提供一种电能表软件模块化差异升级方法及电能表系统,在不增加芯片保持低成本的同时升级过程不影响计量功能,且提高了升级效率。

为实现上述目的,本发明采用以下技术方案:

一种电能表软件模块化差异升级方法,其特征是,所述升级方法包括如下步骤:

步骤S1:将软件按照功能化分成若干功能模块,若干功能模块分为可升级模块和不可升级模块;

步骤S2:将每个功能模块做地址划分;将不可升级模块划分在同一块地址内,将可升级模块定义在另一块地址内,在这块地址内,每个模块分别划分一定的地址空间,在每个地址空间内,针对对外接口函数,定义起始地址,全局内存变量定义固定地址,分个函数定义起始地址,且各功能模块起始地址之间留有空余部分,以备后续函数功能扩展。

步骤S3:一次选取一个模块分步升级。若干功能模块独立设置,减少模块之间的联系,提高模块的独立性,从而在模块单独升级过程中,降低模块间的相互影响;不可升级模块包括引导程序、计量、驱动和解压,可升级模块包括通讯、负荷曲线、事件记录、冻结、显示、按键、费率控制、继电器控制、加密;将内存地址划分为可升级区和不可升级区,可升级区根据各个升级模块的定义对各个模块做空间地址的划分,并在可升级区预留一定的空间范围,以便后续升级需要。

作为优选,所述步骤S1中的不可升级模块包括计量模块。计量模块包括计量瞬时数据的获取,计量能量的累计和需量的计算,将计量功能单独作为一个子模块,通过任务调度机制,保证计量程序的正常运行。

作为优选,所述的升级过程中计量模块保持计量工作。在升级过程中不影响计量模块的运行。

作为优选,所述步骤S3中所述的升级包括如下步骤:

步骤S3.1:选择一位升级标志,判断升级包是否校验成功;

步骤S3.2:通过原先程序和现有程序比对差异恢复及解压产生新程序;产生新程序,单步执行,保证其他功能模块时序的可靠性。

步骤S3.3:解压完成后,关闭该模块的使能标志;使该功能模块以及后续功能模块不能被调用,启动覆盖原先程序的功能。

步骤S3.4:将新程序覆盖原先程序;保证其他功能模块的时序可靠性。

步骤S3.5:覆盖完成后,打开该程序的使能标志;使功能模块可以被调用和执行。

步骤S3.6:判断是否存在升级标志,若有则回到步骤S3.1执行。整个功能模块的升级过程均分步完成,步骤S3.1~S3.6的运行时间不超过100ms,保证其他任务能被正常的时间间隔调用。

作为优选,所述的升级包采用以模块为单位压缩。按照功能块升级,且升级文件通过差异化压缩,使得升级包进一步减小,功能模块设有不同序号,升级时可以以或形式一起下发给电能表,表内分别对比不同功能块做解压,然后覆盖到对应功能模块上;这些功能模块,其被主循环调用的入口地址固定,其函数实现内容可更改,提高升级的效率和可靠性。

作为优选,所述步骤S2中所述的将每个功能模块做地址划分包括每个功能模块对应不同的地址范围。升级的功能模块相互独立,当升级某一个功能块时,不影响其他功能块的运行。

作为优选,步骤S1中的所述的将软件按照功能化分成若干功能模块包括将计量功能划分为单独模块。计量模块包括计量瞬时数据的获取,计量能量的累计和需量的计算,将计量功能单独作为一个子模块,通过任务调度机制,保证计量程序的正常运行。

一种电能表系统,其特征是,电能表应用程序按功能进行模块化划分为若干功能模块,电能表功能模块划分为可升级模块和不可升级模块,所述不可升级模块包括计量模块、驱动模块、引导程序模块和解压模块。

作为优选,所述若干功能模块对应不同地址范围。升级的功能模块相互独立,当升级某一个功能块时,不影响其他功能模块的运行。

作为优选,在所述单颗芯片内划分可升级区域和不可升级区域,所述可升级模块设在可升级区域内,所述不可升级模块设置在不可升级区域内。计量功能与其它功能互相独立,满足非计量部分软件升级不影响计量部分的准确性的要求。

因此,本发明具有如下有益效果:(1)计量功能单独作为子模块,通过任务调度机制,保证计量程序的正常运行。(2)升级的功能模块相互独立,当升级某一个功能块时,不影响其他功能模块的运行,且升级的文件通过差异化压缩,使得升级包进一步减小,提高升级的效率及可靠性。(3)单颗芯片划分为可升级区域和不可升级区域,在保持单芯片成本的同时升级过程不影响计量功能,且提高了升级效率。

附图说明

图1是本发明一实施例升级程序执行流程示意图。

具体实施方式

下面结合附图与具体实施方式对本发明做进一步的描述。

实施例:

如图1所示的一种电能表模块化差异升级方法与单芯电能表系统,通过将电能表应用程序按功能进行模块化划分为若干功能模块,电能表功能模块划分为可升级模块和不可升级模块,所述不可升级模块包括计量模块、驱动模块、引导程序模块和解压模块。可升级模块包括通讯、负荷曲线、事件记录、冻结、显示、按键、费率控制、继电器控制、加密;将单颗芯片内存地址划分为可升级区和不可升级区,可升级区根据各个升级模块的定义对各个模块做空间地址的划分,并在可升级区预留一定的空间范围,以便后续升级需要。如表一所示:

表一:

功能设计框架中,引导程序、计量、驱动和解压部分是不允许升级的,在地址划分上,处于最前面的空间范围。单颗芯片划分为可升级区域和不可升级区域,在保持单芯片成本的同时升级过程不影响计量功能,且提高了升级效率。

引导部分:包括启动引导程序和启动驱动。电能表上电后,启动引导程序和驱动程序,保证程序运行的基本环境构建完成。驱动程序包括芯片内部的时钟,定期器,串口等驱动,外设驱动,EEPROM,Dataflash,通讯模块,LED灯,显示驱动等。

周期任务:调度时基机制,定义每个任务的执行时间和执行间隔,将到达的任务置位后,执行该任务。

计量任务:包括跟计量芯片的配合的程序和能量累计程序等。该部分不受升级过程的影响。每间隔一定时间执行,且该时间需要保证。

功能升级标志判断:分为32位,每位对应一个功能模块,当有升级需求时,置位至少1位,对应的功能启动解压过程。

计量功能单独作为子模块,通过任务调度机制,保证计量程序的正常运行。升级的功能模块相互独立,将不可升级模块划分在同一块地址内,将可升级模块划分在另一块地址内,分个函数定义起始地址,且各功能模块起始地址之间留有空余部分,以备后续函数功能扩展,当升级某一个功能块时,不影响其他功能模块的运行。

升级包采用以模块为单位压缩,差异化压缩需要区分不同的功能模块,每个功能模块单独差异化压缩。工具软件设置不同的地址范围,对应到每个功能块。将编译生成的新文件和旧文件导入到工具中,划分不同的地址范围后,工具开始执行新旧文件的差异化比对,然后通过压缩算法将差异部分压缩完后放到对应的地址范围内。按照功能模块升级,且升级文件通过差异化压缩,使得升级包进一步减小,功能模块设有不同序号,升级时可以以或形式一起下发给电能表,表内分别对比不同功能块做解压,然后覆盖到对应功能模块上,这些功能模块,其被主循环调用的入口地址固定,其函数实现内容可更改,提高升级的效率和可靠性。

升级步骤如下:

步骤S1:先取其中一位升级标志,判断升级的程序包是否校验成功。

步骤S2:通过原先在已有的程序跟现有的程序比对差异恢复及解压,产生新程序。该步骤单步执行,保证其他功能模块时序的可靠性如果解压完成后,关闭对应的功能模块的使能标志,使后续的功能模块不再被调用,启动覆盖原先程序的功能。

步骤S3:单步执行覆盖原先程序,保证其他功能模块时序的可靠性。

步骤S4:如果覆盖完成,则打开对应的功能模块的使能标志,可使功能模块被成功调用和执行。

整个升级过程都是分步完成,最大运行时间不能超过100ms,保证其他任务能被正常的时间间隔调用。

当在升级过程中的功能模块,标志位不被允许执行。功能模块分成事件记录,通讯,负荷曲线,按键,冻结,显示,费率控制,加密,继电器控制等,预留部分,总共定义32位。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

尽管本文较多地使用了计量、差异化、地址、升级、模块等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。

相关技术
  • 一种电能表软件模块化差异升级方法及电能表系统
  • 电能表嵌入式软件远程差异化升级方法及升级系统
技术分类

06120113270523