一:UDS诊断之$10服务
1:诊断会话模式简介
ECU会话模式一般有三种,分别是默认模式、编程模式、拓展模式,如果需要用到其他模式也可以自行定义。
不同的会话模式下,ECU可以提供的UDS诊断服务也不尽相同。
整个$10服务目的内容大概如下
不同会话支持的诊断服务大体如下,实际会根据诊断调查表后续确认。
不同会话模式跳转总体规则如下,实际中有更复杂的状态跳转
实际可能用到的状态转换如下。(11 01,11 03是ECU重置服务相关的,故也可以进行状态间的跳转)
1.1默认会话01
01 Default Session,仅支持信息的读取和査询操作,权限最小。DCM模块(autosar概念中的诊断通信管理模块)初始化完成后,诊断会话进入默认会话。当服务端在默认会话模式下收到默认会话的请求时,服务端应当重新初始化默认会话,即之前被临时激活或者改变的数据都应该恢复到刚上电初始化的状态,写入到非易失存储器(断电数据不会消失的存储器)的数据不会重新初始化。
1.2编程会话02
编程会话一般来说诊断(UDS)刷写功能需要在编程会话下进行。
1.3拓展会话03
拓展会话主要是用来读写数据,如写入VIN,序列号,读写诊断码,强控部件等。
2:诊断会话支持的NRC
UDS标准中给出了三个NRC:分别是不支持子功能、数据长度错误、请求条件不对
二:UDS诊断之$11服务
1:复位模式介绍
$11服务提供的是ECU复位服务,实际应用中主要用到包括软复位(03)和硬复位(01)。
由于复位会导致ECU的重置,所以ECU存在无法响应的可能性,UDS协议关于ECU处理该请求的逻辑,没有强制性定义,主要有两种方式:
A:ECU收到ECUResetrequest message后是先执行重启动作再ECUResetpositive response
message
B:ECU收到ECUResetrequest message后,先回复ECUResetpositive response message再执行动作(此逻辑被普遍应用且是UDS标准中的推荐做法)