文章目录
- 前言
- 一、理论描述
- 二、使用步骤
- 1.请求
- 2.响应
- 总结
->返回总目录<-
前言
简称: “TesterPresent”,测试工具保持连接服务
功能: 此服务用于告知电控单元测试工具仍在线。该服务需周期性发送,用于重置 S3server 计时器并维
持当前激活的非默认诊断会话。
一、理论描述
该服务很简单,就是让诊断会话处于激活状态。
二、使用步骤
1.请求
请求报文: 3E 00
解析报文log:
10 03 : 进入Extend会话模式
50 03 00 32 01 F4: 成功切换会话(00 32 01 F4 不必纠结,是两个诊断时间参数)
等待5秒,会话超时,会话自动退出Extend模式。
27 01: 请求Extend会话下支持的安全访问服务
7F 27 7F: NRC回复,请求服务的会话不支持。
3E 00: 请求握手功能
7E 00: 握手功能已开启
10 03 : 进入Extend会话模式
50 03 00 32 01 F4: 成功切换会话(00 32 01 F4 不必纠结,是两个诊断时间参数)
此时诊断会话会一直处于Extend会话模式,因此无需再次切换Extend会话,就可以直接访问该会话支持的服务。
*等待5秒,检测会话是否会超时(3E是否成功请求)*
27 01: 请求Extend会话下支持的安全访问服务
67 01 00 00 A0 AC: ECU正响应,回复请求的Seed。(验证了,3E服务请求正确,保持会话模式)
27 02 E0 59 97 DA: 上位机发送计算好的Key交给ECU,用来比较验证
67 07: ECU验证成功,安全访问解锁。
2.响应
1)正响应
参见CANoe图中的蓝框
2)否定响应
支持的否定响应如下,一般工作上根据整车厂给的诊断输入文档来选择要支持的NRC码。
博主平日项目中支持NRC如下:
NRC12: Sub-Function不支持(请求数据 3E 01。而你请求的子功能01根本找不到啊,规范里也没有01子服务,ECU收到你这条报文,无法识别subfunc,因此回复该NRC)
NRC13: 请求报文数据长度有误(正确请求数据3E 00 有2个字节。而你请求的是3E 00 00有3个字节,ECU收到你这条报文,无法理解,因此回复该NRC)
总结
0x3E服务太简单了!诊断服务方面基本告一段落。接下来,逐步更新网络会话层的文章!
->返回总目录<-