uds诊断代码怎么搞定?
发布网友
发布时间:2024-10-23 22:08
我来回答
共1个回答
热心网友
时间:2024-10-23 23:57
UDS全称为Unified Diagnostic Services,是ISO-14229系列标准定义的一种统一诊断服务,用于诊断通信过程中的请求和响应格式。在诊断仪与ECU之间,诊断仪通过发送诊断请求,ECU回应诊断响应来实现诊断功能。
常用的诊断服务包括:DiagnosticSessionControl(10服务)、SecurityAccess(27服务)、CommunicationControl(28服务)、ClearDiagnosticInformation(14服务)、ControlDTCSetting(85服务)以及ReadDTCInformation(19服务)。
10服务的主要功能是ECU诊断状态控制,其中常用sub-function有:defaultSession(ECU上电后默认状态)、ProgrammingSession(用于软件刷写的一系列诊断服务)、extendedDiagnosticSession(可执行较多诊断服务)。
27服务为安全访问服务,用于执行更高安全级别的诊断服务,需要通过简单的身份验证过程。此过程包括:诊断仪请求“请求种子”,ECU发送“反馈关键字”,诊断仪根据反馈关键字和本地密码计算出“Key”,ECU验证Key的有效性。
28服务用于控制报文的发送与接收,sub-function包括:enableRxAndTx(激活接收和发送)、enableRxAndDisableTx(激活接收和关闭发送)、disableRxAndEnableTx(激活发送和关闭接收)、disableRxAndTx(关闭接收和发送)。communicationType则用于指定报文类型,如普通应用报文、网络管理报文。
14服务用于清除存储在ECU中的DTC,通过sub-function标识要删除的DTC种类,如发送14 FF FF FF清除所有DTC。
85服务用于控制ECU的DTC存储状态,sub-function包括:on(开启存储)、off(关闭存储)。
19服务用于读取ECU中的DTC,sub-function包括:读取特定条件下的DTC数量(0x01)、读取特定条件下的DTC列表(0x02)、读取某个DTC及其相关环境数据(0x06)。Parameter用于标识DTC的状态,包括DTC是否active或passive以及是否被confirm。
31服务用于调用ECU内置的操作序列,sub-function包括:启动(0x01)、停止(0x02)、查询结果(0x03)以及routineControlOptionRecord(用于标识routine执行所需参数,由各家自定义内容)。例如,使用0x0801 ID代表检查ECU刷写条件的routine。