各个主机厂会在ISO 15765定义的刷新流程基础上,结合具体实际情况,定义各自的刷新流程。电子控制单元Bootloader刷新流程主要包括3个部分:预刷新、刷新程序、刷新后处理。电子控制单元BootloaderRIJ新流程如图1所示刷新流程中每一步骤均由相应的诊断服务实现。
1)预刷新主要步骤包括:①通过10诊断服务,进入扩展会话模式。②通过85诊断服务关闭记录诊断故障码功能:在扩展会话模式下,通过功能寻址,向所有控制单元发送关闭记录诊断故障码功能指令,使得所有控制单元在刷新期间不记录诊断故障码。③通过28诊断服务,屏蔽非诊断相关总线通信:在扩展会话模式下,通过功能寻址向所有控制单元发送屏蔽非诊断相关总线通信功能指令,使得所有控制单元在刷新期间不进行非诊断相关的总线通信,以降低负载率,保证控制单元Bootloader刷新的正常进行。预刷新步骤如表2所示。
2)刷新程序是整个刷新流程的主体,将原有的应用程序或标定数据擦除,写入新的应用程序或标定数据。常见刷新步骤分为以下几步:①通过10诊断服务进入编程会话模式。②通过27诊断服务完成安全访问:刷新之前需要验证刷新工具的合法性。电子控制单元向上位机发送Seed,上位机根据约定算法计算出Key,并发送给电子控制单元进行判断,如果正确则允许刷新,如果错误则拒绝刷新。③通过2E诊断服务写入识别信息:包括维修站代码或诊断仪序列号,编程日期。④刷新驱动程序:驱动程序的主要作用为擦除原有程序,引导安装新程序。通常驱动程序并不保存在电子控制单元内部,需要通过此步骤下载到RAM存储器中。刷新过程需要时进行调用,当刷新结束,电子控制单元返回正常模式时,此驱动程序就从RAM中清除掉。有的电子控制单元,其驱动程序是固化在电子控制单元的Flash存储器里面的,因此就可以跳过此步骤。在刷新过程中,通过34136137诊断服务进行循环操作,直至所有驱动程序刷新完成。完成后,通过31诊断服务进行CRC校验,以保证所有字节正确传输。⑤通过31诊断服务调用驱动程序,擦除原程序。⑥刷新新程序:刷新新程序的过程与刷新驱动程序的过程完全相同。⑦通过2E诊断服务写入配置信息,包括VIN码、系统配置信息、车辆模式。刷新程序步骤如表3所示。
3)刷新后处理在刷新程序完成后,需对电子控制单元进行复位操作,使新程序被激活生效,同时擦除驱动程序。由于预刷新阶段对车辆所有电子控制单元进行了关闭诊断故障码记录功能,并屏蔽了非诊断类的通信报文,所以在刷新后处理阶段,需先对车辆所有电子控制单元开启非诊断类报文的通信,再重新开启诊断故障码的记录功能,恢复车辆原来的正常状态。
在进行刷新的电子控制单元进行复位后,会话模式将自动切换到默认会话模式,导致被刷新的电子控制单元在预编程阶段关闭的诊断故障码记录功能重新被开启,而此时其他电子控制单元仍然保持在扩展会话模式,在未开启非诊断类通信报文的这段时间里,可能会导致被刷新的电子控制单元记录其他节点丢失的诊断故障码,所以在所有控制单元开启非诊断类通信和诊断故障码记录后,需对进行刷新的电子控制单元进行清除诊断故障码操作。编程后处理阶段操作步骤见表4。