0x19服务是读取DTC信息的服务。
经典的CAN数据链路层最大能够支持单帧8字节的数据传输。为了避免无法传输数据流的情况,ISO 15762-2实现安全快速的将多个字节通过经典CAN进行传输。它将数据帧分为四类,分别是单帧,首帧,流控帧和连续帧。
单帧的使用情况:
客户端以单帧形式发送19 01 服务,请求符合DTC状态掩码的DTC个数。服务端收到请求(如果符合单帧的规范),就以单帧的格式向客户端回复信息。
多帧的使用情况1:
1、客户端向服务端发送19 02 服务。
2、服务端收到请求,发现要回复的数据量大于单帧的最大数据量,此时向客户端回复首帧。
3、客户端收到首帧后,判断缓存空间是否大于首帧所包含的数据流的长度。如果大于,就像服务器发送流控帧,使服务器一次性将数据送出。
4、服务端收到请求后,将数据以连续帧的形式一次性发送给客户端。
多帧的使用情况2:
1 2 同情况1
3、如果缓存空间小于首帧所包含的这条数据流的长度,则向服务器发送流控帧,使服务器只发送部分数据。
4、服务器收到流控帧,根据客户端要求向客户端发送定量的连续帧,完成后,等待下一个流控帧。
5、客户端将收到的数据处理完毕后,再次发送流控帧。使服务器发送数据。
6、直到数据发送完毕,即结束。
19服务的自服务
1、01 通过状态掩码去查找与其相匹配的故障个数。
2、02 按照定义的状态掩码的形式去查找匹配的故障,将匹配的DTC标识符(3个字节)、DTC状态(1个字节)信息返回。
3、 04 请求指定故障码(DTC)的快照信息,通过查找故障发生时刻的这些数据,来分析故障原因。
4、06 请求指定故障码(DTC)的扩展信息。
5、0A 该服务用于请求所有支持的DTC信息(3个字节的DTC标识符加1个字节的DTC状态位),其响应报文与02服务一致;但要区分,该服务返回的是所有DTC的信息;而02服务是返回与请求时状态掩码相与不为“0”的DTC信息。