![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
UDS
边学边记录,分享体会心得
这座城市没有海
这个作者很懒,什么都没留下…
展开
-
UDS系列讲解总目录
总目录欢迎大家来到《UDS系列讲解》。博主学习UDS的时间也不长,有一些心得体会与大家分享。后面会不定时更新。一、UDS入门篇二、UDS基础知识UDS常用缩写UDS中的定时器与时间参数三、UDS中的常用服务讲解...原创 2020-06-03 13:39:24 · 9274 阅读 · 2 评论 -
清除故障信息$14服务
一、服务说明诊断仪使用$14服务来清除一个或多个ECU内存中的诊断信息。$14服务没有子服务。二、服务应用当采用$14服务清除一个DTC时,服务ID后直接接DTC码即可;当采用$14服务清除所有DTC时,服务ID后接三个FF...原创 2021-03-22 15:03:45 · 2212 阅读 · 1 评论 -
通过标志符写数据$2E服务
一、服务说明通过标识符写数据服务(WriteDataByIdentifier )允许诊断仪将相关信息写入到数据标识符规定的ECU内部位置。通过本服务写入的DID数值应立即保存结果至EEPROM,由于EEprom写入时间较长,因此需要注意,必须要在完成全部EEPROM操作后,才能给出最终响应,若无法在规定时间内给出最终响应,应该启用增强型定时参数(NRC78)。执行此服务之前,ECU必须(must)通过安全访问服务($27)使其解锁。二、服务应用第一个字节为服务ID$22,第二个字节和第三原创 2021-03-17 16:50:42 · 1332 阅读 · 0 评论 -
通过标志符读数据$22服务
一、服务说明$22服务(ReadDataByIdentifier)通过标识符读数据服务允许诊断仪从一个或多个数据标识符(DID)的ECU中请求的数据记录的数值。诊断仪请求消息包含一个或多个占2个字节的DID,ECU通过此标识符标识记录的数据。从属性的角度来看,ECU中记录的数据可分为两部分:一部分是对所有ECU的通用性数据;另一部分是针对每个ECU的独立数据。通常通用型数据放在flash或者RAM中,只能读不能写,如软件版本号;独立数据放在EEprom或者模拟EEprom中,可读可写,如零件号。二原创 2021-03-17 16:30:45 · 1565 阅读 · 2 评论 -
DTC设置控制$85服务
一、服务说明DTC设置控制服务(ControlDTCSetting)简称CDTCS诊断服务,客户端通过该诊断服务停止或恢复诊断故障码的设置。开启DTC:子服务代码是0x01,服务器应该继续更新诊断故障码状态位关闭DTC:子服务代码是0x02,服务器应停止更新诊断故障码状态位当启用了DTC关闭后,若会话跳转到不支持$85服务,ECU应该继续更新DTC状态位信息;如果诊断仪发送$14服务,可以重置ECU状态位。需要注意的是,关闭DTC并不是关闭故障监控。二、服务应用第一个字节85表示DT原创 2021-03-17 14:10:39 · 2802 阅读 · 0 评论 -
ODX简单介绍
ODX的全称是Open diagnostic data exchange , 它是ASAM制定的标准架构诊断仪(MVCI ,Modular Vehicle Communication Interface )所使用的数据文件,从字面上我们可以知道,ODX是基于开放式诊断协议的数据库,可用于诊断数据的交换。MVCI的大体结构如下图所示:ODX是标准化格式的诊断文件,对诊断不同的车或ECU,只需要加载对应的ODX文件即可。同时由于格式的统一,诊断文件在研发到售后的整个生命周期里,不需要进行格式转换。比如说原创 2020-09-03 10:39:42 · 4547 阅读 · 0 评论 -
DTC的解析与状态掩码
返回UDS系列讲解总目录一、DTC的构成根据ISO 15031-6和ISO 14229-1的故障诊断码格式规定,故障码信息由四字节组成,如下表所示其中DTCHighByte,DTCMiddleByte,DTCLowByte表示服务中的故障诊断码;StatusOfDTC表示故障码状态。DTCHighByte,DTCMiddleByte两字节表示故障内码,对应5位标准故障码,如表下所示。5位标准故障码,第1位是字母,后面4位是数字,如P0120。第一位字母表示故障所属系统,我们把汽车系统原创 2020-08-07 14:19:23 · 30489 阅读 · 2 评论 -
UDS中数据的存储(FLASH/EEPROM/RAM)
UDS中数据的存储是一个容易混淆但又非常重要的点,下面我们就来简单捋一捋。ECU中用到的存储芯片通常有三种:FLASH,RAM,EEPROM,很多人都分不清楚这三种芯片有什么区别,其实是很好理解的。FLASH是一次写入,掉电数据不消失,也就是说只能在刷程序的时候写一次,我们不能调用2E服务对其进行操作。EEPROM可以多次写入,掉电数据不消失,我们可以通过2E服务多次重复写操作。RAM掉电消失,不能通过2E服务进行操作。因此针对这三种存储芯片的特点,我们对它们分别应用。FLASH只能写一次,而且原创 2020-08-04 13:54:19 · 3829 阅读 · 0 评论 -
安全访问$27服务
返回UDS系列讲解总目录一、服务描述该服务提供了一种保护机制,该机制用来保护访问限制的诊断服务。 加密策略采用种子和密钥相关联的方法。采用随机产生的种子,通过安全算法得到唯一的秘钥。若秘钥匹配正确则可以调用受到保护的诊断服务。秘钥核查过程如下所示:1) 客户端请求“种子”;2) 服务器发送“种子”;3) 客户端发送“密钥”(根据接收到的“种子”生成“密钥”);4) 服务器判断“密钥”是否合法,如果合法,则服务器解锁,否则服务器锁定;需要注意,会话模式切换、重置、安...原创 2020-08-03 15:39:31 · 4432 阅读 · 4 评论 -
复位$11服务
一、服务说明$11服务的功能是通过该服务控制ECU重启,通常用在调用完$2E服务后读数据看是否写入成功,刷写完成后也常调用$11服务重启。常用的子服务有三个:硬件重置:子服务代码是0x01,该服务模拟了服务器断开其电源之后通常会执行的流程,这可能导致易失性存储器和非易失性存储器初始化。点火重置:子服务代码是0x02,该服务模拟钥匙开关关闭后执行的流程。通常情况下非易失性存储器的值为保留值,易失性存储器初始化。软件重置:子服务代码是0x03,该服务可使ECU重启应用程序。若执行$11服务时原创 2020-08-03 13:22:07 · 2036 阅读 · 0 评论 -
诊断仪在线$3E服务
返回UDS系列讲解总目录一、服务描述$3E服务通过周期性地传输请求消息或者在没有其他诊断服务的时候启动,将一个或者多个ECU保持在非默认会话状态,防止服务器自动返回默认会话。这个服务的理解需要结合$10服务的特点。$10服务的非默认会话子服务——扩展会话和刷写会话通常支持$27服务,为了避免误操作,非默认回话在超过一定时间没收到请求消息时会自动跳回默认会话。但有时候我们需要长时间停留在非默认会话,这时候就需要调用$3E服务。因此$3E服务没有特定的对ECU操作的功能,仅仅只是发送一帧报文告诉EC原创 2020-08-03 11:27:55 · 2505 阅读 · 0 评论 -
通信控制$28服务
返回UDS系列讲解总目录一、服务描述$28服务主要用于关闭或者开启ECU的通信报文的传输或接收。简单理解,就是当你需要将CAN报文的收发关闭的时候就调用这个服务,$28服务可以单独对收或者发进行设置,控制ECU只能收报文或者只能发报文。$28服务常用的子服务有四个:启用收发:子服务代码是0x00,当ECU收发状态处于禁止时调用,开启通信。启用收禁用发:子服务代码是0x01,该服务调用后ECU只能收到报文而不能发送报文。禁用收启用发:子服务代码是0x02,该服务调用后ECU只能发送报文而不原创 2020-08-03 10:49:07 · 5865 阅读 · 1 评论 -
UDS中常用的的否定响应代码
UDS中定义的否定响应代码非常多,但常用的只有以下这些:ServiceNotSupported/服务不支持($11 )当诊断仪发送的请求消息中服务标识符无法识别或不支持时,ECU应发送该响应码SubFunctionNotSupported/不支持子功能($12 )该响应码表明请求的动作不能执行的原因是ECU不支持请求消息中的服务特定参数。如果诊断仪已经发送了一请求消息,并且该请求消息包含能识别且支持的服务标识符,但子功能要么无法识别要么不支持,此时ECU应(shall)发送此响应代码In原创 2020-06-05 13:25:05 · 23474 阅读 · 0 评论 -
怎样学习ISO 14229和ISO 15765?
一、ISO 14229UDS协议就是ISO14229,你需要做的就是了解并牢固掌握ISO14229中的内容,但是14229里的内容实在是太多了,还没开始看就头疼了。从作者的学习经历来看,如果从头开始看14229是不切实际的,不但需要很长的时间,而且标准里面的描述非常生硬晦涩难懂,需要有极大的耐心,大可不必。学习没有捷径,但是学习是有方法的,因此,作者推荐初学者可以先从第八章、第九章、第十章、第十一章、第十三章、第十四章等服务介绍内容入手,如果学有余力,可以再将附表A中的内容大致了解一下。不用看得特别细致原创 2020-06-05 11:50:29 · 2610 阅读 · 0 评论 -
UDS入门
一、UDS是什么?UDS全称是Unified Diagnostic Services,即统一诊断服务。从字面“诊断”的意思理解就可以知道,它主要作用就是用来诊断汽车的故障的。当然啦,UDS的作用不仅限于此。它还可以用来进行汽车的下线检测,汽车下线时把VIN码、软硬件版本号、生产日期等信息写入汽车中的各个零部件中(ECU),以及一些其他的功能等等。二、为什么要做UDS?有人可能会问了,如果是要实现上面的那些功能,那自己定义一个接口就可以实现故障查询呀,写入就更简单了,为什么还要搞这么复杂。这就要解原创 2020-06-05 11:26:48 · 4758 阅读 · 0 评论 -
诊断会话控制$10服务
诊断会话控制服务是用于激活控制器中各种不同的会话模式的。诊断会话主要有三个子服务,分为两大类:默认会话和非默认会话。其中非默认会话又包括编程会话和扩展会话。默认会话:顾名思义,就是ECU在刚启动时保持的状态,当ECU复位的时候也是会返回默认会话,不需要超时处理。编程会话:刷写程序时用的,超时或者刷写失败时会跳转回默认会话,即ECU从底层软件跳转到应用软件。扩展会话:通常诊断用的大部分功能以及特殊功能都在这个会话模式下进行。ECU内部应始终且仅有一个激活的诊断会话。当上电时,ECU应总是首先启动默.原创 2020-06-03 13:38:18 · 5393 阅读 · 0 评论 -
UDS中的定时器与时间参数
P2定时器P2定时器是在默认会话模式下工作的,如果ECU无法在规定时间内完成对诊断服务的判断,服务器便向诊断仪发送延迟的负响应。参数P2CAN_ECU(即ISO 15765-3中的P2CAN_Server)表示从ECU接收到请求消息到开始发送响应消息之间的定时器性能要求数值。ECU必须确保一个单帧响应消息或者多帧响应消息的第一帧消息在P2CAN_ECU 时间内完成。参数P2*CAN_ECU(即ISO 15765-3中的P2*CAN_Server)表示从ECU发送了NRC为0x78的否定响应消息到原创 2020-05-22 17:35:07 · 13274 阅读 · 0 评论 -
UDS中的常用缩写
OBD On-Board Diagnostic 在线诊断/车载诊断UDS Unified Diagnostic Service 统一诊断服务DCM Diagnostic Communication Management 诊断通信管理ECU Electronic Control Unit 电子控制单元DID Data Identifier 数据标识符SID Servic...原创 2020-04-02 19:39:27 · 3908 阅读 · 4 评论