考虑有些同学没有项目开发经验,所以还是从专业术语开始讲起。 0 术语 Diagnostic Service (诊断服务) 诊断服务是介于诊断设备和ECU之间的一种信息交互方式。通常由诊断设备发出请求,ECU做出回应。 Diagnostic Trouble Code (故障码) 故障码是用来标记ECU故障的代码,它遵循一定的规则,存储在ECU的非易失性存储中。(以后...
读取DTC code 支持子功能 DTC, Diagnostic Trouble Code,当ECU的某些功能发生了错误,比如说连接的音频线路短路、开路,ECU所接的电压过高过低,ECU有些消息未收到等等等等,都会产生相应地DTC code,通过19 + 子功能,就可以读取当前DTC或者历史DTC 什么是当前DTC,历史DTC? 当前DTC就是故障当前还是存在的,历史DTC就是...
即使当ECU中的数据地址发生变化时,改变DID和地址单元的映射关系即可,对于使用者来说DID屏蔽了具体实现细节,而将重点放在了数据本身。 NegativeResponseCode 可以简称为NRC,或者叫负响应码,是一个字节的无符号整数。它是诊断协议为每种执行失败的诊断服务分配的失败原因代号。 Sub-function 有些诊断服务可以支持不同的诊...
①配置DTC信息 在这个界面如图7,可以进行“DTC Code”的新增与删减,点击现有的信息可进行编辑改动;图7 ②设置服务 在左侧目录切换到“Base Variant”下的“Supported Diagnostic Classes”,点击“Fault Memory”;图8 点击图9上面标签页中的“DTCs”,然后会跳转到图9所示界面,将我们前面配置的DTC信息更新到这里...
ISO14229-1标准为所有诊断服务提供了统一的负响应格式:7F + SID + NRC。其中,NRC(Negative Response Code)具有唯一含义,代表诊断请求错误的具体原因。 NRC优先级说明 当诊断请求存在多个不满足条件时,需要引入NRC优先级的概念来确定应回复哪个NRC。以下是2E诊断服务的NRC优先级供参考。
DTC(diagnostic trouble code):如果系统检测到了一个错误,它将其存储为DTC。DTC可表现为:一个显而易见的故障:通讯信号的丢失(不会使故障灯亮起);排放相关的故障;安全相关的错误等。DTC可以揭示错误的位置和错误类型。通常DTC占用3个字节,OBD II占用两个字节。
无论是单独的UDS,还是AUTOSAR,config文件至关重要。因为,这些配置文件,是按照客户需求,进行特殊客制化的文件,是可以随项目变动的文件。 配置文件的优劣、多寡,直接关系后面的项目维护,以及其他项目的移植。 本Demo有两个配置性文件,一个是UDS结构体的配置文件,一个是回调函数(CallBack)的配置文件。
在这个界面如图7,可以进行“DTC Code”的新增与删减,点击现有的信息可进行编辑改动; 图7 ②设置服务 在左侧目录切换到“Base Variant”下的“Supported Diagnostic Classes”,点击“Fault Memory”; 图8 点击图9上面标签页中的“DTCs”,然后会跳转到图9所示界面,将我们前面配置的DTC信息更新到这里来,如图9所示,当...
Negative Response Code 总结:诊断通信的过程就是诊断仪和ECU交换数据,前者发的是request,后者发的是response,而UDS最重要的作用就是定义了这些request和response的格式和内容。今天这篇文章对request和response进行了简要介绍,在后面描述各种诊断服务的文章中我会通过更多的示例来说明这两个基本概念。
其中NRC全称为Negetive Responce Code,每个NRC具有唯一的含义来代表当前诊断请求错误的原因所在。当然每个诊断服务支持的NRC不尽相同,具体支持的NRC需要参考ISO14229-1标准文档,对于22服务而言支持的NRC如下图9所示: 图9 22服务NRC Code 例如当尝试读取F190的DID值且当前车速条件不满足,此时Client发送诊断指令"22 F1 ...