UDS浅记

最近几周一直在搞lin的uds,浅浅记录下几个之前不知道的知识盲区:

28服务

28服务的作用是打开/关闭ecu通信的接收和发送,简单讲就是让ecu禁言和取消禁言的。禁的什么言呢?是应用层报文和网络管理报文,对诊断报文是不起作用的。同时还需要在扩展模式下才起作用。

其支持的子功能码:

主要就用00和03,注意28服务的子功能都支持禁止肯定响应位的,所以对应子功能码还有80/81/82/83。

举例------禁言:

83为禁止肯定响应,所以3D不回,注意测试条件,需要先切到扩展模式,11为无条件帧PID,即应用报文。

举例------取消禁言

子功能码之后还有个参数叫通讯类型,一般支持0x1/0x3即可,0x2可选。

无论是boot还是app,其他模式下28服务是不支持。

22服务

22服务作用一般就是读取版本号信息什么的,之前一直以为22服务只支持单个did读取,前段时间客户提出需求,要支持多个did在一帧报文里同时读出,这块属实涉及到之前的知识盲区了,不过最后还是帮客户把这个功能给实现了。

(1)通过软件配置一次可支持最多5个did读取;

(2)通过did+数据的形式,将几段数据给拼接到一块;

(3)如果5个did中有不支持的,就忽略,如果5个did都不支持,就反馈否定码31;

36服务

36服务的作用主要是下载数据,以数据块的方式依次写入,客户主要提出了2个问题:

  1. 数据块不连续/重复,回复否定响应73;
  2. 传输输出长度与设定长度不一致(以下图为例:设定长度0x102,实际只下发了0x101,少了一一个字节),回复否定响应71;

第一个问题好改,主要比较上次写入的数据块计数值和现在接收到的数据块计数值是不是+1关系,很好判断;第二个问题就涉及到要每次累加写入的数据长度和,在最后一次的时候做判断,是否和设定长度一致。

10服务:

10服务的作用是切换模式,并复位ECU的,之前对几个模式之间的切换一直不清晰,这次用的多了终于清晰了点,10 01/81切入默认模式,10 02/82切入编程模式,10 03/83 切入扩展模式,但是如果从默认模式直接切编程模式是不允许的,需要先切入扩展模式,再切入到编程模式。

相关推荐
Zevalin爱灰灰23 天前
深入理解统一诊断服务(UDS)【上】
物联网·嵌入式·uds·车联网
Zevalin爱灰灰24 天前
深入理解统一诊断服务(UDS)【下】
物联网·嵌入式·uds·车联网
Electron-er1 个月前
汽车ECU重编程中的Bootloader设计原理:如何实现安全回滚?
autosar·uds·汽车电子·bootloader·功能安全·ecu刷写
汽车通信软件大头兵2 个月前
Autosar--ETAS Isolar能够自由学习啦!
网络·学习·安全·汽车·etas·uds·isoalr
汽车通信软件大头兵2 个月前
Autosar 工具 :Vector Davince 可用于个人学习啦
学习·汽车·uds·isolar
无畏jh2 个月前
【汽车嵌入式开发】-UDS协议解读
uds·汽车嵌入式
汽车通信软件大头兵2 个月前
Autosar KeyM模块
网络·安全·汽车·uds·isolar
明如正午3 个月前
UDS中NRC否定响应码理解
uds
汽车通信软件大头兵3 个月前
信息安全--安全XCP方案
网络·安全·汽车·uds