NRC Code 绝大多数情况下,Server针对Client的请求都会给到正响应,比如发生重启前需确保整车处于安全状态,如引擎熄火,车速不能超过3km/h等,或者为了防止不按照诊断请求格式进行请求,那么Server需要通过某种方式来告诉Client执行不成功的原因在哪里以便于调查问题直至得到正响应。 因此ISO14229-1针对所有的诊断服务提供了一...
UDS本质上是一种定向的通信,是一种交互协议(Request/Response),采用的是Client/Server的模式,基本是Client发送一个请求报文,Server根据请求报文做出回应;Client一般情况下是指测试仪(Tester),Server一般是指电控单元(ECU)。UDS协议栈中,协议分为常规的七层,其中主机厂最为关注的也是第七层应用层。根据协议的类型,采用...
Client 发送诊断指令给到Server,Server接收到指令后通过确认Routine Type来决定调用不同的回调函数; 在每个回调函数中便可以实现客户自定义的控制场景,具体场景就是要根据客户需求来自定义来实现的。 图1 31服务控制流程图 服务请求 服务请求是Client发送给到Server的诊断服务指令。 请求格式 按照ISO14229-1标准所述,如...
其中NRC全称为NegetiveResponceCode,每个NRC具有唯一的含义来代表当前诊断请求错误的原因所在。当然每个诊断服务支持的NRC不尽相同,具体支持的NRC需要参考ISO14229-1标准文档,对于10服务而言支持的NRC如下表: 图910服务NRC支持 例如当进入到编程会话时且当前车速条件不满足,此时Client发送诊断指令"1002"请求Server进入编程模...
(5)Negative Response Code:简称NRC,错误响应码,是一个字节的无符号整数,是诊断协议为每一种执行失败的诊断服务分配的失败原因代号 诊断Request格式: 格式1:[SID] + [Sub-function] 格式2:[SID] + [DID] 格式3:[SID] + [Sub-function] + [DID] ...
Client:外部诊断设备,如诊断仪、CANoe等 Server:车身电子件(ECU) 诊断的最基本的内容其实就是请求和响应,请求即由Client端发出的数据指令,响应为由Server端返回的数据信息;搞明白UDS,最先需要搞明白请求和响应的通用格式,即做到一通百通。 2.2 掌握通用格式,即掌握所有 ...
类比client-server通信方式,诊断仪即客户端,发送request,服务器即ECU,收到request之后进行处理,然后向诊断仪回复response。 有些情况下,我们可能只需要给ECU发送请求,而不需要ECU返回响应,例如用诊断命令雨刷动两下,我们可以通过雨刷的动作来判断诊断指令是否执行成功。这种通信方式是无反馈的,也是允许的。
这个服务是用来执行一系列操作序列的,是笔者见过的用途最广泛的一个服务,可以根据需求进行一些服务定制,例如擦除内存,一些自学习流程,故障自检测,配置某些数据参数等。 例程控制可以用来进行以下操作: 开始一个例程 结束一个例程 查看例程执行结果 1.服务请求报文定义 ...
类比client-server通信方式,诊断仪即客户端,发送request,服务器即ECU,收到request之后进行处理,然后向诊断仪回复response。 但是,诊断协议有自己的特色,它规定了request和response的格式,在收到request的时候要做格式检查。同时由于寻址方式的不同,有无sub-function的支持等,也会影响request和response的处理方式和结果。
三、服务的详细介绍 10 3.1诊断和通信管理类 10 3.1.1 0x10 诊断会话控制 10 3.1.2 0x11 ECU复位服务 14 3.1.3 0x27 安全访问服务 17 3.1.4 0x28 通信控制服务 22 3.1.5 0x3E 待机握手服务 26 3.1.6 0x85 控制DTC的设置 27 3.2数据传输类 30 3.2.1 0x22 通过ID读数据 读DID 30 3.2.2 0x2E...