公众号:can总线教学
UDS必须支持物理寻址和功能寻址两种寻址方式,今天就来给大家介绍一下UDS的两种寻址方式;
物理寻址简单的说就是当你进行点对点的进行诊断用到诊断ID就是物理地址,它是针对某个特定ECU进行的诊断;诊断的物理地址是由OEM定义分配;
如请求ID为0x710,反馈ID0x718等等;
如果你想用诊断仪同时对多个ECU进行诊断,这个时候你就得用到功能寻址;比如你在刷新ECU前需使用功能ID关闭网络上周期通信,让刷新时网络负载压力变小;功能ID是固定的,对于11位标准帧功能ID是一般是0x7df;
功能寻址支持的服务:
两种寻址方式所支持的服务是不一样的,ECU所支持的服务,物理寻址都可以访问,功能寻址只能访问部分服务;
下班可以看出,功能寻址只支持10,11,28,3E,85,22以及14,19这几个服务;
功能寻址与NRC:
用物理寻址进行诊断时,当出现错误时都会反馈NRC码,但功能寻址却有一些差别,当出现下列几种情况时,功能寻址不需要反馈错误码;
31(requestOutOfRange);
12(subFunctionNotSupported);
11(serviceNotSupported);
7F(serviceNotSupportedInActiveSession);
7E(subFunctionNotSupportedInActiveSession);
功能寻址一般使用场景:
刷新软件前使用28服务失能ECU通信;
刷新软件前使用85服务关闭ECU故障检测功能;
使用22服务读取多个ECU信息;
使用14服务清除多个ECU DTC;
等等;
最后放个log数据供大家参考: