1、前言
UDS基本做汽车软件的项目都会接触到。对于新人来说基本都很迷茫。这篇文章我想写一下关于UDS的内容,和作为新人怎么去理解UDS。
2、UDS是什么。
一般课本或者教程上面自己去看。
我这边说一下基本的内容,UDS可以是基于LIN也可以是基于CAN、CANFD的。常见是CAN和CANFD。CAN和CANFD有一些区别。具体在后面说。
先说CAN。
CAN如果作为UDS 报文长度必须是8个Byte。也就是说我们要关心内容有两个,报文的ID和报文内容,整车上给每一个带诊断的ECU一个诊断ID(诊断地址),称为物理地址,也叫物理寻址。叫法不同而已。还有一个功能地址,及按照功能给的地址。这个地址是大家都有的,只要支持都要相应的ID,一般整车用这个地址来发静默或者开启什么服务了。
下面是CAN UDS报文
ID 报文
xx cc cc cc cc cc cc cc cc
ID不做说明,记住 我们第一步调通CAN报文,让我们的ECU能够读取报文或者发出报文就可以了
。
第一步、UDS报文格式
cc cc cc cc cc cc cc cc
红色:这个位置表示后面有效数据的数量,不包括红色的自己
蓝色:表示服务ID
蓝色后面一个byte表示子服务
理解这个之后,就可以进入正题了。
有哪一些服务:
我们看标准或者别人说的文章说,简单说一下。
结合实际的报文
Tx:02 10 01 cc cc cc cc cc(cc表示填充位,实际开发过程中填充会有要求,要看规范,不可省)
Rx:06 50 01 00 32 00 c8 00
这里02 表示后面有效数据的长度,10表示服务ID $10服务 01表示子服务
$10服务是表示各种不同的权限。
-----------20231109 更新,后面明天更新