首页车问答问答详情

汽车 ECU Flash BootLoader 如何刷写

2025-05-26 11:12 发布

汽车ECU的FlashBootLoader刷写流程是一个关键步骤,它涉及到了车载控制器的MCU程序刷新:

在成品车上,ECU软件刷新通常通过Bootloader刷写或OTA升级实现。其中,通过OBD接口进行Bootloader刷新是目前的主要方式。Bootloader分为PrimaryBootloader和SecondaryBootloader。

PrimaryBootloader是由ECU供应商预先编辑到非易失性存储器中的,并且这部分区域必须防止擦除,以避免意外擦除导致的问题。而SecondaryBootloader则存储在易失性存储器中。

Bootloader的主要流程如下:

第一步:

1. 通过22服务读取供应商ECU硬件版本号、引导程序软件识别号、零件BOM号。

2. 通过1003服务切换到扩展会话模式,并获取P2CAN_Server_max和P2*CAN_Server_max,这两个参数分别代表ECU对诊断仪请求回复的最大时间限值和收到增强响应时间后的最大响应时间限值。例如,发送1003后收到5003003200C8,那么P2CAN_Server_max就等于0x32,即50毫秒;P2*CAN_Server_max则等于0xC8,即2000毫秒。需要注意的是,这里有一个10倍的关系。

3. 通过85服务关闭DTC存储,因为在切换到1002会话后,会停止发送应用报文,以避免其他ECU记录节点丢失DTC故障。

4. 通过28服务禁用应用报文收发。

第二步:

1. 通过1002服务切换到编程会话模式。

2. 通过27服务进行安全解锁。

3. 通过2E服务写入诊断仪序列号和ECU软件刷新日期。

第三步:

1. 通过34、36、37服务下载SecondaryBootloader,即FlashDriver文件。

2. 通过31服务检查SBL程序的数据一致性和完整性。Bootloader会计算所有下载数据的校验和,并与31服务发送的数据进行比较,如果一致则认为数据可用。

3. 通过31服务请求目标ECU清除部分内存。

4. 通过34、36、37服务下载APP程序,即最终的MCU程序。

5. 通过31服务检查APP程序的数据一致性和完整性。

6. 通过31服务请求目标ECU运行一个例程,检查所有下载的软件部分的依赖关系。

第四步:

1. 通过1101服务重启ECU。

2. 等待2秒。

3. 通过1003服务切换回扩展会话模式。

4. 通过28服务启用应用报文发送接收。

5. 通过85服务启用DTC记录。

6. 通过1001服务切换到默认会话模式。

7. 通过14FFFFFF清除DTC。

至此,已经通过Bootloader完整地刷新了一遍ECU软件。

精彩栏目

限时优惠

查看更多