
技术摘要:
本发明涉及一种BMS板子在线刷写方法及其装置,所述方法包括如下步骤:步骤S1,多个板子接收上位机的刷写目标板子代码的命令;步骤S2,每一板子根据所述命令识别目标板子的ID;步骤S3,每一板子根据所述目标板子的ID和自身板子ID判断自身板子是否为目标板子;其中,每一 全部
背景技术:
随着汽车“电动化”时代的到来,车载动力电池及其管理系统(BMS)的研究工作开 展的如火如荼。BMS主要功能是智能化管理及维护各个电池单元,防止电池出现过充电和过 放电,延长电池的使用寿命,监控电池的状态,其重要程度不言而喻。从拓扑上看,BMS分为 集成式和分布式两种,集成式BMS一般在同一个板子上分为高压区域和低压区域,一般常见 于容量低、总压低、电池系统体积小的场景中。分布式BMS一般由主控板、板子、高压板三部 分组成,目前主流的量产电动车型普遍采用分布式的BMS架构。 其中,对于分布式BMS而言,BMS每个板子/高压板通过不同ID的CAN报文与BMS主板 进行通信,上传电压电流采集信息,然而除了电压电流采集信息上传的CAN ID不同,板子及 高压板接收到的主板命令CAN ID完全一致,另外,各个板子及高压板除了板子ID不一致以 外,剩下的软硬件部分完全一致。当发现板子/高压板软件存在漏洞或需对一些问题进行跟 踪采集数据时,由于刷写的过程采用同样的流程,无法实现对目标板子进行单板软件刷写 升级。 所以,一旦软件存在漏洞,则需工程师进行拆电池包(以下称为“拆包”)刷写,拆包 时需要利用升降机将车辆升起,把电池包拆卸下来,再打开电池包的密封箱,利用每个板子 上的接插件口进行刷写,因此,拆包刷写的方式需要耗费大量的人力和时间成本,工作效率 低。
技术实现要素:
本发明的目的在于提供一种基于ID的BMS板子在线刷写方法及其装置,以解决分 布式BMS的从板和高压板软件更新效率低的技术问题。 为达上述目的,本发明第一方面实施例提供一种BMS板子在线刷写方法,包括如下 步骤: 步骤S1,多个板子接收上位机的刷写目标板子代码的命令;其中,所述多个板子包括若 干从板和一高压板; 步骤S2,每一板子根据所述命令识别目标板子的ID; 步骤S3,每一板子根据所述目标板子的ID和自身板子ID判断自身板子是否为目标板 子;其中,每一板子对应预先设置一独立ID; 步骤S4,每一板子根据所述步骤S3判断结果执行相应任务;其中,若自身板子为目标板 子,则执行程序刷写流程;若自身板子为非目标板子,则设置自身板子进入沉默状态,停止 发送报文; 其中,所述程序刷写流程包括目标板子接收上位机的更新的软件代码并进行程序刷 4 CN 111610981 A 说 明 书 2/6 页 写。 优选地,所述执行程序刷写流程还包括: 所述目标板子接收并根据上位机的程序刷写模式请求进入程序刷写模式,并返回刷写 握手信息给上位机; 其中,若握手信息为握手成功,则目标板子成功进入程序刷写模式并进行后续程序刷 写,若握手信息为握手失败,则停止程序刷写流程。 优选地,所述执行程序刷写流程还包括: 若握手信息为握手成功,则所述目标板子接收并根据上位机的安全验证请求进行安全 验证,并返回安全验证结果给上位机; 其中,当安全验证结果为验证通过,则进行后续程序刷写,若安全验证结果不为验证通 过,则停止程序刷写流程。 优选地,所述执行程序刷写流程还包括: 若安全验证结果为验证通过,则所述目标板子接收并验证上位机的更新的软件代码, 根据验证结果判断软件代码是否接收正确; 其中,若接收正确,则目标板子完成程序刷写并返回数据正确信息给上位机;若接收错 误,则目标板子返回数据错误信息给上位机,停止程序刷写流程。 优选地,所述执行程序刷写流程还包括: 在目标板子返回数据正确信息给上位机后,所述目标板子接收并根据上位机发送的重 启指令进行重启。 优选地,所述方法还包括: 步骤S5,目标板子完成程序刷写并重启后,所有板子接收并根据上位机发送的恢复正 常的报文将自身状态设置为正常工作模式,开始发送报文。 对应所述方法,本发明第二方面实施例提供一种BMS板子在线刷写装置,包括多个 板子,所述多个板子包括若干从板和一高压板,每一板子设置有命令接收单元、ID识别单 元、判断单元和执行单元; 所述命令接收单元用于接收上位机的刷写目标板子代码的命令; 所述ID识别单元用于根据所述命令识别目标板子的ID; 所述判断单元用于根据所述目标板子的ID和自身ID判断自身是否为目标板子;其中, 每一板子对应预先设置一独立ID; 所述执行单元用于接收并根据所述判断单元的判断结果执行相应任务;其中,若自身 板子为目标板子,则所述执行单元执行程序刷写流程;若自身板子为非目标板子,则所述执 行单元设置自身板子进入沉默状态,停止发送报文;其中,所述程序刷写流程包括目标板子 接收上位机的更新的软件代码并进行程序刷写。 优选地,所述执行单元包括第一执行模块,所述第一执行模块用于根据上位机的 程序刷写模式请求控制板子进入程序刷写模式,并返回刷写握手信息给上位机; 其中,若刷写握手信息为握手成功,则目标板子成功进入程序刷写模式,所述第一执行 模块控制板子进行后续程序刷写,若刷写握手信息为握手失败,则所述第一执行模块控制 板子停止程序刷写流程。 优选地,所述执行单元包括与所述第一执行模块通信连接的第二执行模块,所述 5 CN 111610981 A 说 明 书 3/6 页 第二执行模块用于当握手信息为握手成功时,根据上位机的安全验证请求进行安全验证, 并返回安全验证结果给上位机; 其中,当安全验证结果为验证通过,则所述第二执行模块控制板子进行后续程序刷写, 若安全验证结果不为验证通过,则所述第二执行模块控制板子停止程序刷写流程。 优选地,所述执行单元包括与所述第二执行模块通信连接的第三执行模块,所述 第三执行模块用于当安全验证结果为验证通过时,接收并验证上位机的更新的软件代码, 然后根据验证结果判断软件代码是否接收正确; 其中,若接收正确,则所述第三执行模块返回数据正确信息给上位机;若接收错误,则 所述第三执行模块返回数据错误信息给上位机并控制板子停止程序刷写流程。 与现有技术相比,本发明实施例具有以下有益效果: 现有刷写流程中,以UDS刷写流程为例,在整个内CAN中,若干从板和高压板的刷写CAN ID均相同,且所有板子刷写流程严格遵守UDS流程,若不对目标板子以外的板子进行总线信 息接收发送限制,一旦发送刷写报文,所有板子同时响应。按UDS刷写流程,上位机接到所有 板子的第一帧反馈信息后,就会继续发送UDS刷写流程的下一帧报文,其他板子的反馈信息 会留在内CAN中等待上位机下一次接收,如此反复,UDS流程会被遗留在总线上的报文打断, 刷写流程无法进行。据此,本发明实施例所提供的方法及装置,事先为若干板子和高压板等 所有板子赋予了独立ID,并修改了板子软件代码,将逻辑改为收到刷写相关板子代码的命 令后,识别板子ID,并据此判断自身板子是否为目标刷写板子,对非目标刷写板CAN报文发 送指令进行限制,若发现板子本身不是目标刷写板,相应板子不再向外发送任何报文信息, 若是目标刷写板子,则正常接收发送刷写指令,从而保证目标板子能够正常响应刷写报文, 实现在线刷写BMS的任意板子,解决了分布式BMS的从板和高压板软件更新效率低的技术问 题。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。 图1为本发明实施例一中一种BMS板子在线刷写方法流程图。 图2为本发明实施例一中一种分布式BMS结构示意图。 图3为本发明实施例一中一种BMS板子在线刷写装置示意图。 附图标记: 从板1,高压板2,命令接收单元3,ID识别单元4,判断单元5,执行单元6,第一执行模块 61,第二执行模块62,第三执行模块63。