一、预编程阶段
1、3E服务,维持状态
2、10 03切换到扩展会话
3、85--关闭DTC 28--关闭非诊断报文
二、主编程模式
1、10切换到编程模式(正确的方式是App段程序回复0x78 NRC,接下来跳转到boot段程序,最后由Boot段程序来回复10 02的肯定响应。错误的方式是由App段回复10 02的肯定响应,再进行跳转。)
2、读取一个DID,tester要判断一下返回值。返回值里面可能包含密钥的一部分信息。
3、27服务,安全解锁
4、写DID指纹,标记写软件人的身份,ECU回复写指纹成功。
5、31服务,擦除flash
6、34服务,请求下载
7、36服务,传输数据
8、37服务,退出传输
9、31服务,校验数据
10、11服务,ECU复位(之后应直接跳转到新下载的APP段程序中)
11、31(擦Flash)-34-36-37-31
三、后编程状态
1、10 03切换到扩展会话
2、28服务,使能非诊断报文
3、85服务,使能DTC
4、27服务,安全访问
5、2E服务,将编程信息写入到ECU中
6、10 01,退回到默认会话,结束。