DTC 19服务学习1

在UDS(统一诊断服务)协议中,0x19是用于DTC(诊断故障代码)信息的服务。以下是你提到的子服务的功能和作用:

0x01 - 报告DTC按状态掩码。这个子服务用于获取当前存储在ECU中的DTC列表。状态掩码用于过滤DTC,只返回满足特定条件的DTC。

0x02 - 报告DTC快照记录识别。这个子服务用于获取特定DTC的快照记录。快照记录包含了DTC被设置时的环境信息,如速度、温度等。

0x03 - 报告存储的DTC。这个子服务用于获取ECU中存储的所有DTC。

0x04 - 报告DTC存储期间的记录。这个子服务用于获取在DTC存储期间记录的环境信息。

0x06 - 报告DTC测试结果。这个子服务用于获取DTC的测试结果,包括测试是否通过,是否存在故障等。

0x0A - 报告所有ECU支持的DTC。这个子服务用于获取ECU支持的所有DTC。

0x42 - 报告故障症状码。这个子服务用于获取与特定DTC关联的故障症状码。

这些子服务的主要用途是帮助诊断车辆的问题。例如,如果车辆的某个部分出现问题,可以使用0x01子服务获取相关的DTC,然后使用0x02子服务获取DTC被设置时的环境信息,以帮助确定问题的原因。如果需要获取所有可能的DTC,可以使用0x0A子服务。

这些子服务的使用通常需要专门的诊断工具,如OBD-II扫描器。这些工具可以发送UDS请求到车辆的ECU,并接收ECU的响应。然后,工具可以解析响应,显示相关的DTC和其他信息。

例如,如果你想获取所有存储的DTC,你可以发送一个包含0x19和0x03的UDS请求到ECU。ECU会返回一个包含所有存储的DTC的响应。然后,你可以使用诊断工具解析响应,显示DTC列表。

详细介绍0x19的子服务

0x01

DTC状态包括:DTC未在请求时测试失败、DTC从未在当前操作循环内失败、DTC在当前或前一个操作循环内失败、DTC未在请求时确认、DTC测试完成,自上一次清除操作、DTC测试失败,自从上一次清除操作、DTC测试在这个操作循环内完成和服务端未要求警告指示器激活。请求的参数状态掩码是一个字节,比如参数是0x01,请求过去掩码0x01会进行与操作,会将满足testFailed的DTC的数目返回回来。

符合testFailed条件的DTC只有一个,切当前的DTC的状态码是0x2F。

0x02

与前面的0x01类似,只是服务端返回符合状态掩码的DTC和状态码。

上面例子说明,场景是服务端不支持bit7warningIndicatorRequested状态,表示符合DTC在当前或前一个操作循环内失败有两个DTC,分别是0A9B17和080511.

相关推荐
油丶酸萝卜别吃9 小时前
前端转全栈学习路线
前端·学习
2401_8653825013 小时前
密评与等保的关系:不是替代,而是互补
网络·信息化造价
GlueNa2SiO313 小时前
第十八章 Linux故障排查与恢复
linux·服务器·笔记·学习
weixin_4316004413 小时前
NestJS 入门(3):Guard 如何挡住未登录请求?
前端·后端·学习·nest.js
带娃的IT创业者13 小时前
DeepTutor:当 Agent-Native 架构撞上个性化学习的临界点
学习·架构·ai agent·大模型应用·个性化学习·教育技术·agent-native架构
xian_wwq14 小时前
【学习笔记】Context Engineering,AI Agent 真正的内存管理-4/16
笔记·学习·context
白狐_79815 小时前
408计算机网络第3章:PPP协议——帧格式、LCP/NCP、状态机与真题精讲
网络·计算机网络·智能路由器
寒月小酒15 小时前
AnythingLLM 学习
学习
MIXLLRED15 小时前
解决——Ubuntu远程桌面指令更换网络
linux·网络·ubuntu
zt1985q17 小时前
本地部署开源网络书签与内容管理工具 Karakeep 并实现外部访问
运维·服务器·网络·数据库·网络协议·开源