公开/公告号CN105677422A
专利类型发明专利
公开/公告日2016-06-15
原文格式PDF
申请/专利权人 惠州市蓝微新源技术有限公司;
申请/专利号CN201610013360.4
申请日2016-01-05
分类号G06F9/445(20060101);G06F11/08(20060101);
代理机构44245 广州市华学知识产权代理有限公司;
代理人蒋剑明
地址 516006 广东省惠州市仲恺高新区和畅五路西101号
入库时间 2023-12-18 15:32:47
法律状态公告日
法律状态信息
法律状态
2019-04-30
授权
授权
2016-07-13
实质审查的生效 IPC(主分类):G06F9/445 申请日:20160105
实质审查的生效
2016-06-15
公开
公开
技术领域
本发明涉及电池管理系统技术领域,具体涉及一种同时更新监控程序和应 用程序及后续更新应用程序的方法。
背景技术
在电池管理系统(BMS,BATTERYMANAGEMENTSYSTEM)在前期的生产测试 过程中,为了能够满足在线更新程序要求,在生产出货前需要先用PE烧录器烧 录监控程序,然后再通过CAN总线在线更新应用程序。此方法在程序代码量较 大时,其以下几个缺陷非常明显:
(1)程序更新的步骤繁琐,需要先用PE烧录器烧录监控程序,再通过CAN 总线更新应用程序,而且顺序不能改变,增加了生产环节的工位,影响生产效 率;
(2)在生产过程中,通过CAN总线更新应用程序时间较长,如更新一块电 池管理系统的主控板(BCU)应用程序的更新大约需要3~4分钟,从控板(BMU) 应用程序的更新大约需要2~3分钟,应用程序更新时间长,因此,监控程序及 应用程序的烧录耗时长,生产效率低。
发明内容
本发明的目的是克服现有技术的不足和缺陷,提供一种通过PE烧录器同时 更新监控程序和应用程序的方法。
本发明的目的是通过以下技术方案来实现的:
同时更新监控程序和应用程序的方法,包括以下步骤:
S1为监控程序分配固定的Flash地址空间和RAM地址空间;
S2为应用程序分配与监控程序地址空间不重合的Flash地址空间和RAM地 址空间;
S3将监控程序与应用程序合并为合并程序;
S4通过PE烧录器将合并程序进行烧录。
具体地,所述将监控程序与应用程序合并为合并程序的步骤具体为:
S31按照特定的设计规则将应用程序的.S19文件和监控程序的.S19文件进 行合并。
具体地,所述按照特定的设计规则将应用程序的.S19文件和监控程序 的.S19文件进行合并的步骤具体如下:
S311按照特定的命名方式分别给监控程序的.S19文件和应用程序的.S19 文件进行命名;
S312分别在命名后的监控程序的.S19文件和应用程序的.S19文件后面增 加MD码;
S313将监控程序的.S19文件中除S0和S9两条程序代码外的内容复制到应 用程序的.S19文件中,实现监控程序的.S19文件与应用程序的.S19文件的合并, 得到合并.S19文件;
S314修改合并后的合并.S19文件。
具体地,所述修改合并后的合并文件的步骤S314具体如下:
A将合并.S19文件中监控程序的地址0xEAF0后面的一个字节的内容修改为 0xAA,并将最后的校验和从S104EAF055CC改为S104EAF0AA77;
B修改合并.S19文件中应用程序的内容。
具体地,所述修改合并.S19文件中应用程序的内容的步骤具体为:修改中 断向量表的地址,并修改每一条中断向量表地址的校验和。
具体地,所述修改中断向量表的地址的步骤具体为:将中断向量表的地址 从0xFF10~0xFFFE修改为0xEB10~0xEBFF。
具体地,所述通过PE烧录器将合并程序进行烧录的步骤如下:
(1)将PE烧录器分别与上位机、待烧录设备连接,并上电;
(2)在上位机打开刷写环境;
(3)在上位机的刷写环境选择待烧录的设备;
(4)在上位机的刷写环境装载合并.S19文件;
(5)将合并.S19文件下载到待烧录设备中。
具体地,所述通过PE烧录器将合并程序进行烧录的步骤还包括进行防错校 验的步骤(6),具体为:
(61)上位机装载合并.S19文件后将合并.S19文件的每条程序代码的内容 进行叠加得到累加值,并将累加值的前6个字节下发到待烧录设备中;
(62)待烧录设备将所接收的合并.S19文件的每条程序代码的内容进行叠 加得到校验和;
(63)将待烧录设备计算的校验和的6个字节与上位机计算的累加值的前6 个字节进行比较,以判断整个合并.S19文件是否烧录成功。
具体地,所述通过PE烧录器将合并程序进行烧录的步骤还包括进行防错校 验的步骤(6-0),具体是对合并.S19文件的每条程序代码的校验和进行验证。
具体地,所述对合并.S19文件的每条程序代码的校验和进行验证的步骤 (6-0)具体如下:
(6-01)上位机装载合并.S19文件后分别截取合并.S19文件的每条程序代 码的前6个字节,并将每条程序代码的前6个字节下发到待烧录设备中;
(6-02)待烧录设备分别截取所接收的合并.S19文件的每条程序代码的前 6个字节;
(6-03)将上位机截取的每条程序代码的前6个字节与待烧录设备截取的 每条程序代码的前6个字节分别进行比较,以判断每条程序代码是否烧录成功。
本发明的另一目的在于提供一种经所述的同时更新监控程序和应用程序的 方法烧录应用程序后更新应用程序的方法,该更新应用程序的方法通过CAN更 新应用程序,过程如下:
a1进入复位程序;
a2判断是否进入应用程序,若是则执行步骤a3,否则执行步骤a5;
a3设置IVBR=0xEB;
a4跳转至应用程序的Startup函数;
a5进入监控程序的main函数;
a6按照固件更新通信协议进入更新过程;
a7判断是否更新成功,若更新成功,则执行步骤a8,否则执行步骤a9;
a8将应用程序有效标志位写入0xAA;
a9应用程序请求bootloader更新标志清零。
具体地,所述判断是否更新成功的步骤具体如下:
判断是否同时满足以下三个条件:
a71文件校验成功;
a72擦除应用程序flash区成功;
a73新更新的应用程序的.S19文件每条程序代码写入flash成功。
具体地,所述判断是否进入应用程序的步骤具体为:
判断是否同时满足应用程序请求bootloader更新标志不等于0x55AA及应 用程序有效标志位等于0xAA。
本发明相比现有技术包括以下优点及有益效果:
本发明将监控程序和应用程序合并为合并程序后,通过PE烧录器进行烧录, 减少生产过程中程序烧录的步骤,提高程序烧录效率,且后续更新应用程序直 接通过CAN更新即可,应用程序更新效率高、操作简单、方便。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创 造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为实施例1通过PE烧录器同时更新监控程序和应用程序的方法流程图;
图2为实施例2中经过bootloader更新后的存储区示意图;
图3为实施例2中应用程序的.S19文件和监控程序的.S19文件合并流程图;
图4为实施例2中监控程序与应用程序的合成界面;
图5为实施例2中通过PE烧录器将合并程序进行烧录的流程图;
图6为实施例2中对整个合并.S19文件进行防错校验的流程图;
图7为实施例2中对合并.S19文件每条程序代码进行防错校验的流程图;
图8为实施例3中更新应用程序的方法流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方 式不限于此。
实施例1
实施例1提供一种通过PE烧录器同时更新监控程序和应用程序的方法,参 考图1,所述通过PE烧录器同时更新监控程序和应用程序的方法包括以下步骤:
S1为监控程序分配固定的Flash地址空间和RAM地址空间;
S2为应用程序分配与监控程序地址空间不重合的Flash地址空间和RAM地 址空间;
S3将监控程序与应用程序合并为合并程序;
S4通过PE烧录器将合并程序进行烧录。
本发明通过预先为监控程序和应用程序分配不同的Flash地址空间和RAM 地址空间,并将监控程序和应用程序合并为合并程序后,通过PE进行烧录,减 少生产过程中程序烧录的步骤,提高程序更新效率。
实施例2
实施例2提供一种通过PE烧录器同时更新监控程序和应用程序的方法,是 在实施例1的基础之上进行的改进。所述通过PE烧录器同时更新监控程序和应 用程序的方法包括以下步骤:
S1为监控程序分配固定的Flash地址空间和RAM地址空间。
S2为应用程序分配与监控程序地址空间不重合的Flash地址空间和RAM地 址空间。参考图2,所述应用程序的Flash地址空间和RAM地址空间与监控程序 的Flash地址空间和RAM地址空间不重合。
S3将监控程序与应用程序合并为合并程序。将监控程序与应用程序合并为 合并程序的步骤S3具体为:
S31按照特定的设计规则将应用程序的.S19文件和监控程序的.S19文件进 行合并。参考图3,将应用程序的.S19文件和监控程序的.S19文件进行合并的 步骤具体过程如下:
S311按照特定的命名方式分别给监控程序的.S19文件和应用程序的.S19 文件进行命名。命名规则为:
针对待烧录设备为主控板(BCU):
应用程序(应用程序.s19):******MS****(MS前面表示工程代码号,如 B32901;后面表示年月日,如5922--15年5月22日)。
监控程序(boot.s19):****MSBT****(MSBT前面表示版本号,如B000;后 面表示年月日)。
针对待烧录设备为从板(BMU):
应用程序(应用程序.s19):******SS****(SS前面表示工程代码号,如 B32901;后面表示年月日,如5922--15年5月22日)。
监控程序(boot.s19):****SSBT****(SSBT前面表示版本号,如B000;后 面表示年月日)。
S312分别在命名后的监控程序的.S19文件和应用程序的.S19文件后面增 加MD码。
S313将监控程序的.S19文件中除S0和S9两条程序代码外的内容复制到应 用程序的.S19文件中,实现监控程序的.S19文件与应用程序的.S19文件的合并, 得到合并.S19文件。具体为将监控程序的.S19文件中除S0和S9两条程序代码 外的内容复制到应用程序的.S19文件中s9的前面。
S314修改合并后的合并.S19文件。具体如下:
A将合并.S19文件中监控程序的地址0xEAF0后面的一个字节的内容修改为 0xAA,并将最后的校验和从S104EAF055CC改为S104EAF0AA77;
B修改合并.S19文件中应用程序的内容。具体为:修改中断向量表的地址, 并修改每一条中断向量表地址的校验和,如将中断向量表的地址从 0xFF10~0xFFFE修改为0xEB10~0xEBFF。修改每一条程序代码后面的校验和,如: 修改前:
S123FF10C000C000C000C000C000C000C000C000C000C000C000C000C000C000 C000C000CD
S123FF30C000C000C000C000C000C000C000C000C000C000C000C000C000C000 C000C000AD
S123FF50C000C000C000C000C000C000C000C000C000C000C000C000C000C000 C000C0008D
S123FF70C000C000C000C000C000C000C000C000C000C000C000C000C000C000 C000C0006D
S123FF90D307D329D358C000C000C000C000C000C000C000C000C000D287D2A9 D2D8C0004E
S123FFB0D207D229D258C000C000C000C000C000C000C000C000C000C000D387 C000C000D5
S123FFD0C000C000C000C000C000C000C000C000C000C000D1F9D394C000C000 C000C0005C
S113FFF0C000C000C000C000C000C010C010C010CD
修改后:
S123EB10C000C000C000C000C000C000C000C000C000C000C000C000C000C000 C000C000E1
S123EB30C000C000C000C000C000C000C000C000C000C000C000C000C000C000 C000C000C1
S123EB50C000C000C000C000C000C000C000C000C000C000C000C000C000C000 C000C000A1
S123EB70C000C000C000C000C000C000C000C000C000C000C000C000C000C000 C000C00081
S123EB90D307D329D358C000C000C000C000C000C000C000C000C000D287D2A9 D2D8C00062
S123EBB0D207D229D258C000C000C000C000C000C000C000C000C000C000D387 C000C000E9
S123EBD0C000C000C000C000C000C000C000C000C000C000D1F9D394C000C000 C000C00070
S113EBF0C000C000C000C000C000C010C010C010E1
监控程序与应用程序的合成界面参考图4。
S4通过PE烧录器将合并程序进行烧录。参考图5,具体过程如下:
(1)将PE烧录器分别与上位机、待烧录设备连接,并上电;
(2)在上位机打开刷写环境;
(3)在上位机的刷写环境选择待烧录的设备;
(4)在上位机的刷写环境装载合并.S19文件;
(5)将合并.S19文件下载到待烧录设备中。
(6)进行防错校验。对整个合并.S19文件进行防错校验的流程图参考图6, 具体为:
(61)上位机装载合并.S19文件后将合并.S19文件的每条程序代码的内容 进行叠加得到累加值,并将累加值的前6个字节下发到待烧录设备中;
(62)待烧录设备将所接收的合并.S19文件的每条程序代码的内容进行叠 加得到校验和;
(63)将待烧录设备计算的校验和的6个字节与上位机计算的累加值的前6 个字节进行比较,以判断整个合并.S19文件是否烧录成功。
所述防错校验的步骤(6)还包括对合并.S19文件的每条程序代码的校验和 进行验证的步骤(6-0),对合并.S19文件每条程序代码进行防错校验的流程图 参考图7,具体如下:
(6-01)上位机装载合并.S19文件后分别截取合并.S19文件的每条程序代 码的前6个字节,并将每条程序代码的前6个字节下发到待烧录设备中;
(6-02)待烧录设备分别截取所接收的合并.S19文件的每条程序代码的前 6个字节;
(6-03)将上位机截取的每条程序代码的前6个字节与待烧录设备截取的 每条程序代码的前6个字节分别进行比较,以判断每条程序代码是否烧录成功。
实施例3
实施例3提供一种经所述的同时更新监控程序和应用程序的方法烧录应用 程序后更新应用程序的方法,参考图8该更新应用程序的方法通过CAN更新应 用程序,过程如下:
a1进入复位程序;
a2判断是否进入应用程序,若是则执行步骤a3,否则执行步骤a5;
a3设置IVBR=0xEB;
a4跳转至应用程序的Startup函数(应用程序代码段);
a5进入监控程序的main函数(bootloader代码段);
a6按照固件更新通信协议进入更新过程;
a7判断是否更新成功,若更新成功,则执行步骤a8,否则执行步骤a9;
a8将应用程序有效标志位写入0xAA;
a9应用程序请求bootloader更新标志清零。
所述判断是否更新成功的步骤a7具体为判断是否同时满足以下三个条件:
a71文件校验成功;
a72擦除应用程序flash区成功;
a73新更新的应用程序的.S19文件每条程序代码写入flash成功。
所述判断是否进入应用程序的步骤a2具体为:
判断是否同时满足应用程序请求bootloader更新标志不等于0x55AA及应 用程序有效标志位等于0xAA。
本发明提供的更新应用程序的方法由于监控程序(boot程序)分配了固定 的内存地址,对这段地址进行写保护,严禁擦除,这样在应用程序更新过程中, 当执行Flash擦除操作时,除了处于监控程序的这一页进行段擦除外,其他的 页都采取页擦除的方式,加快Flash擦除的时间。
此外,通过CAN更新特定设备的应用程序时,会设置一个标志位,当其他 的设备收到这个标志位后,统一停止往CAN总线发送信息,只有需要更新程序 的设备往总线发送信息,这样减低了CAN总线负载率,更新效率高。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实 施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、 替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
机译: 应用程序更新支持系统,应用程序更新支持方法,应用程序更新支持程序
机译: 用于对汽车中的控制器进行编程的方法,包括:通过网关通过总线执行对总线控制器的更新应用程序,以及在网关中删除更新应用程序,其中在编程设备中提供更新应用程序
机译: 用户从一类应用程序中的通用应用程序或第一个应用程序动态更新移动应用程序以创建具有所述类应用程序的特定或第二个应用程序的系统和方法