CN113312078A - 一种电能表软件模块化差异升级方法及电能表系统 - Google Patents
一种电能表软件模块化差异升级方法及电能表系统 Download PDFInfo
- Publication number
- CN113312078A CN113312078A CN202110494976.9A CN202110494976A CN113312078A CN 113312078 A CN113312078 A CN 113312078A CN 202110494976 A CN202110494976 A CN 202110494976A CN 113312078 A CN113312078 A CN 113312078A
- Authority
- CN
- China
- Prior art keywords
- module
- electric energy
- energy meter
- upgrading
- modules
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000008569 process Effects 0.000 claims abstract description 15
- 238000007306 functionalization reaction Methods 0.000 claims abstract description 4
- 230000006837 decompression Effects 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 50
- 238000004891 communication Methods 0.000 description 6
- 230000008014 freezing Effects 0.000 description 5
- 238000007710 freezing Methods 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 102100038591 Endothelial cell-selective adhesion molecule Human genes 0.000 description 1
- 101000882622 Homo sapiens Endothelial cell-selective adhesion molecule Proteins 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
一种电能表软件模块化差异升级方法及电能表系统,其特征是,所述升级方法包括如下步骤:步骤S1:将软件按照功能化分成若干功能模块,功能模块分为可升级模块和不可升级模块;步骤S2:将每个功能模块做地址划分;步骤S3:一次选取一个模块分步升级。计量功能单独作为子模块,通过任务调度机制,保证计量程序的正常运行。升级的功能模块相互独立,当升级某一个功能块时,不影响其他功能模块的运行,且升级的文件通过差异化压缩,使得升级包进一步减小,提高升级的效率及可靠性。单颗芯片划分为可升级区域和不可升级区域,在保持单芯片成本的同时升级过程不影响计量功能,且提高了升级效率。
Description
技术领域
本发明涉及一种软件工程设计领域,尤其涉及一种电能表软件模块化差异升级方法及电能表系统。
背景技术
电能表是用来测量电能的仪表,随着政府承诺执行国际法定计量组织的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所示的一种电能表模块化差异升级方法与单芯电能表系统,通过将电能表应用程序按功能进行模块化划分为若干功能模块,电能表功能模块划分为可升级模块和不可升级模块,所述不可升级模块包括计量模块、驱动模块、引导程序模块和解压模块。可升级模块包括通讯、负荷曲线、事件记录、冻结、显示、按键、费率控制、继电器控制、加密;将单颗芯片内存地址划分为可升级区和不可升级区,可升级区根据各个升级模块的定义对各个模块做空间地址的划分,并在可升级区预留一定的空间范围,以便后续升级需要。如表一所示:
表一:
模块名称 | 功能定义 | Flash地址划分 | 备注 |
引导程序 | 包括不同功能模块的加载起动 | 0x00000000-0x00002fff | 不可升级 |
计量 | 负责瞬时数据的获取及能量的累计 | 0x00003000-0x00004fff | 不可升级 |
驱动 | 包括芯片相关驱动、外设驱动等 | 0x00005000-0x00006fff | 不可升级 |
解压 | 对差异化压缩升级包做解压 | 0x00007000-0x00008fff | 不可升级 |
通讯 | 包括内部协议部分和对外协议部分 | 0x00009000-0x0000afff | 可升级 |
负荷曲线 | 按照要求记录一定间隔的数据 | 0x0000b000-0x0000bfff | 可升级 |
事件记录 | 包括电压类,窃电类的事件记录 | 0x0000c000-0x0000dfff | 可升级 |
冻结 | 分为5类冻结数据,不同的方式冻结 | 0x0000e000-0x0000ffff | 可升级 |
显示 | 显示配置的数据项和当前的状态,包括LED的状态灯信息 | 0x00010000-0x00012fff | 可升级 |
按键 | 对按键的一些功能,短按,长按等 | 0x00013000-0x00013fff | 可升级 |
费率控制 | 费控转换机制 | 0x00014000-0x00014fff | 可升级 |
继电器控制 | 包括远程继电器命令控制和继电器自检相关 | 0x00015000-0x00015fff | 可升级 |
加密 | 包括ESAM的模块和内部软件加密部分 | 0x00016000-0x00018fff | 可升级 |
... | ... | ... | ... |
功能设计框架中,引导程序、计量、驱动和解压部分是不允许升级的,在地址划分上,处于最前面的空间范围。单颗芯片划分为可升级区域和不可升级区域,在保持单芯片成本的同时升级过程不影响计量功能,且提高了升级效率。
引导部分:包括启动引导程序和启动驱动。电能表上电后,启动引导程序和驱动程序,保证程序运行的基本环境构建完成。驱动程序包括芯片内部的时钟,定期器,串口等驱动,外设驱动,EEPROM,Dataflash,通讯模块,LED灯,显示驱动等。
周期任务:调度时基机制,定义每个任务的执行时间和执行间隔,将到达的任务置位后,执行该任务。
计量任务:包括跟计量芯片的配合的程序和能量累计程序等。该部分不受升级过程的影响。每间隔一定时间执行,且该时间需要保证。
功能升级标志判断:分为32位,每位对应一个功能模块,当有升级需求时,置位至少1位,对应的功能启动解压过程。
计量功能单独作为子模块,通过任务调度机制,保证计量程序的正常运行。升级的功能模块相互独立,将不可升级模块划分在同一块地址内,将可升级模块划分在另一块地址内,分个函数定义起始地址,且各功能模块起始地址之间留有空余部分,以备后续函数功能扩展,当升级某一个功能块时,不影响其他功能模块的运行。
升级包采用以模块为单位压缩,差异化压缩需要区分不同的功能模块,每个功能模块单独差异化压缩。工具软件设置不同的地址范围,对应到每个功能块。将编译生成的新文件和旧文件导入到工具中,划分不同的地址范围后,工具开始执行新旧文件的差异化比对,然后通过压缩算法将差异部分压缩完后放到对应的地址范围内。按照功能模块升级,且升级文件通过差异化压缩,使得升级包进一步减小,功能模块设有不同序号,升级时可以以或形式一起下发给电能表,表内分别对比不同功能块做解压,然后覆盖到对应功能模块上,这些功能模块,其被主循环调用的入口地址固定,其函数实现内容可更改,提高升级的效率和可靠性。
升级步骤如下:
步骤S1:先取其中一位升级标志,判断升级的程序包是否校验成功。
步骤S2:通过原先在已有的程序跟现有的程序比对差异恢复及解压,产生新程序。该步骤单步执行,保证其他功能模块时序的可靠性如果解压完成后,关闭对应的功能模块的使能标志,使后续的功能模块不再被调用,启动覆盖原先程序的功能。
步骤S3:单步执行覆盖原先程序,保证其他功能模块时序的可靠性。
步骤S4:如果覆盖完成,则打开对应的功能模块的使能标志,可使功能模块被成功调用和执行。
整个升级过程都是分步完成,最大运行时间不能超过100ms,保证其他任务能被正常的时间间隔调用。
当在升级过程中的功能模块,标志位不被允许执行。功能模块分成事件记录,通讯,负荷曲线,按键,冻结,显示,费率控制,加密,继电器控制等,预留部分,总共定义32位。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
尽管本文较多地使用了计量、差异化、地址、升级、模块等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。
Claims (10)
1.一种电能表软件模块化差异升级方法,其特征是,所述升级方法包括如下步骤:
步骤S1:将软件按照功能化分成若干功能模块,若干功能模块分为可升级模块和不可升级模块;
步骤S2:将每个功能模块做地址划分;
步骤S3:一次选取一个模块分步升级。
2.根据权利要求1所述的一种电能表软件模块化差异升级方法,其特征是,所述步骤S1中的不可升级模块包括计量模块。
3.根据权利要求1或2所述的一种电能表软件模块化差异升级方法,其特征是,所述的升级过程中计量模块保持计量工作。
4.根据权利要求1所述的一种电能表软件模块化差异升级方法,其特征是,所述步骤S3中所述的升级包括如下步骤:
步骤S3.1:选择一位升级标识,判断升级包是否校验成功;
步骤S3.2:通过原先程序和现有程序比对差异恢复及解压产生新程序;
步骤S3.3:解压完成后,关闭该模块的使能标识;
步骤S3.4:将新程序覆盖原先程序;
步骤S3.5:覆盖完成后,打开该程序的使能标识;
步骤S3.6:判断是否存在升级标识,若有则回到步骤S3.1执行。
5.根据权利要求4所述的一种电能表软件模块化差异升级方法,其特征是,所述的升级包采用以模块为单位压缩。
6.根据权利要求1所述的一种电能表软件模块化差异升级方法,其特征是,所述步骤S2中所述的将每个功能模块做地址划分包括每个功能模块对应不同的地址范围。
7.根据权利要求1所述的一种电能表软件模块化差异升级方法,其特征是,步骤S1中的所述的将软件按照功能化分成若干功能模块包括将计量功能划分为单独模块。
8.一种电能表系统,其特征是,包括单颗芯片,电能表应用程序按功能进行模块化划分为若干功能模块,电能表功能模块划分为可升级模块和不可升级模块,所述不可升级模块包括计量模块、驱动模块、引导程序模块和解压模块。
9.根据权利要求8所述的一种电能表系统,其特征是,所述若干功能模块对应不同地址范围。
10.根据权利要求8或9所述的一种电能表系统,其特征是,在所述单颗芯片内划分可升级区域和不可升级区域,所述可升级模块设在可升级区域内,所述不可升级模块设置在不可升级区域内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110494976.9A CN113312078A (zh) | 2021-05-07 | 2021-05-07 | 一种电能表软件模块化差异升级方法及电能表系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110494976.9A CN113312078A (zh) | 2021-05-07 | 2021-05-07 | 一种电能表软件模块化差异升级方法及电能表系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113312078A true CN113312078A (zh) | 2021-08-27 |
Family
ID=77371732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110494976.9A Pending CN113312078A (zh) | 2021-05-07 | 2021-05-07 | 一种电能表软件模块化差异升级方法及电能表系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113312078A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930193A (zh) * | 2016-05-05 | 2016-09-07 | 国网重庆市电力公司电力科学研究院 | 一种基于操作系统的电能表软件在线升级方法及系统 |
CN109144547A (zh) * | 2018-08-20 | 2019-01-04 | 贵州电网有限责任公司 | 一种电能表法制计量程序和非法制功能程序分离方法 |
CN109933358A (zh) * | 2019-01-28 | 2019-06-25 | 金卡智能集团股份有限公司 | 用于减少计量设备程序升级量的控制方法 |
CN110119281A (zh) * | 2018-02-07 | 2019-08-13 | 河南许继仪表有限公司 | 一种电能表软件模块化升级方法及电能表系统 |
CN111258621A (zh) * | 2019-11-19 | 2020-06-09 | 浙江瑞银电子有限公司 | 一种固件差异化升级方法 |
CN111694590A (zh) * | 2020-06-15 | 2020-09-22 | 泉州慧霁科技有限公司 | 一种智能水电表的升级方法 |
-
2021
- 2021-05-07 CN CN202110494976.9A patent/CN113312078A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930193A (zh) * | 2016-05-05 | 2016-09-07 | 国网重庆市电力公司电力科学研究院 | 一种基于操作系统的电能表软件在线升级方法及系统 |
CN110119281A (zh) * | 2018-02-07 | 2019-08-13 | 河南许继仪表有限公司 | 一种电能表软件模块化升级方法及电能表系统 |
CN109144547A (zh) * | 2018-08-20 | 2019-01-04 | 贵州电网有限责任公司 | 一种电能表法制计量程序和非法制功能程序分离方法 |
CN109933358A (zh) * | 2019-01-28 | 2019-06-25 | 金卡智能集团股份有限公司 | 用于减少计量设备程序升级量的控制方法 |
CN111258621A (zh) * | 2019-11-19 | 2020-06-09 | 浙江瑞银电子有限公司 | 一种固件差异化升级方法 |
CN111694590A (zh) * | 2020-06-15 | 2020-09-22 | 泉州慧霁科技有限公司 | 一种智能水电表的升级方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kum et al. | AUTOSAR migration from existing automotive software | |
CN101206467B (zh) | 通用数控代码解析方法 | |
CN107479913A (zh) | 一种fpga配置多启动低资源占用更新方法及实施系统 | |
CN105930186B (zh) | 多cpu的软件加载方法及基于多cpu的软件加载装置 | |
CN107168275B (zh) | 一种继电保护功能模块自动识别配置方法及装置 | |
CN101739266A (zh) | 固件更新方法 | |
US8949821B2 (en) | Cap file for the personalization of a java application | |
US10452389B2 (en) | Computer-implemented method for editing data object variants | |
CN103019794A (zh) | 一种嵌入式多程序文件离线批量烧写方法 | |
CN110221828B (zh) | 一种汽车电子控制单元通讯程序的可视化编程方法 | |
US8874302B2 (en) | Automotive scanner with advanced module programming options | |
CN106528123A (zh) | 一种基于eFuse模块的SoC启动方法和装置 | |
US20040177345A1 (en) | Method for generating computer software for embedded systems | |
CN113312078A (zh) | 一种电能表软件模块化差异升级方法及电能表系统 | |
CN106709386B (zh) | 智能卡数据写入方法及装置 | |
US20100058276A1 (en) | Method for the integration of an integrated circuit into a standardized software architecture for embedded systems | |
CN107067042B (zh) | 汽车电子标识分类处理方法及系统 | |
CN115049374B (zh) | 一种工艺设备的数据加工方法及装置 | |
CN107168133B (zh) | 电机控制器的可视化编程方法及系统 | |
CN103345413A (zh) | 一种代码更新方法、装置及电子设备 | |
CN106371841A (zh) | Adb设备的管理方法及其系统 | |
CN112579433B (zh) | 一种伺服软件的集成化测试系统 | |
CN105183502B (zh) | 一种雷达阵面数字单元程序并行刷新方法 | |
CN113791833A (zh) | 一种软件版本动态适配不同车型硬件配置方法与系统 | |
CN109634230B (zh) | 一种信号采集与控制装置及其业务配置方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210827 |