本文框架
- 前言
- 1. 物理寻址及功能寻址基本概念
- 1.1物理寻址及功能寻址-定义
- 1.2两种寻址方式区别
- 1.3不同诊断服务寻址方式配置
- 2.不同寻址方式的应用场景
前言
UDS(Unified Diagnostic Services)协议,即统一的诊断服务,是面向整车所有ECU的一种诊断通信方式,是基于ISO 14229规范的规范化诊断服务标准,其位于OSI模型中的应用层,UDS可基于不同的总线实现,如基于CAN总线可再结合ISO1576协议进一步实现传输层。
本篇将介绍物理寻址及功能寻址,在诊断部分开发时,针对诊断服务会遇到这两种寻址方式,如前期未接触过这一块,可能会上来有点懵,两种寻址方式分别是什么意思?有什么区别?对应哪些使用场景等,下面我们就逐一介绍,保证大家看了就能理解。
本文对应大纲如下:
1. 物理寻址及功能寻址基本概念
本章我们主要了解下两种寻址方式的概念及不同UDS服务对寻址方式的配置。首先我们来看一下两种寻址方式是如何定义的。
1.1物理寻址及功能寻址-定义
在UDS 14229协议中对物理寻址及功能寻址的定义截图如下:
即物理寻址为一对一的通信方式,功能寻址为通过功能类型寻找具备此功能的对应地址,一对多的通信方式,如何理解呢?
物理寻址就是:上位机提前知道某个ECU具备某项功能,直接对该ECU发送对应诊断命令就可以了。就比如,快递员提前知道某个快递是某某小区某号某室的快递,直接就找到这户人家进行签收就行了。
功能寻址是通过功能类型寻找具备此功能的对应地址,上位机向总线上广播该诊断命令所有具备该功能的ECU都需要响应,这就比如某个快递上只写到某小区的几号楼未具体到某户,快递员就需要在楼下喊一嗓子谁家的快递到了,所有可能买快递的人家都会伸头响应。
1.2两种寻址方式区别
- 面向对象不同,物理寻址为确定的对象一对一通信,功能寻址为一对多的广播式通信
- 两种寻址方式所支持的服务不同,在ECU所支持的服务中,物理寻址都可以访问,功能寻址只能访问部分服务,一般来讲功能寻址只支持10,11,28,3E,85,22以及14,19这几个服务。
- 对NRC的响应规则不同,物理寻址对所有的NRC都需要响应,而功能寻址对于11(serviceNotSupported)、12(subFunctionNotSupported)及31(requestOutOfRange)不响应。
1.3不同诊断服务寻址方式配置
在Dcm中对不同的诊断服务开发时,有一项DcmDsdSidTabAddressingFormat配置,即选取对应的寻址方式有三个选项分别为:物理寻址、功能寻址、物理及功能寻址。
2.不同寻址方式的应用场景
物理寻址一般为对某个特定ECU的诊断请求,在此主要说一下功能寻址可能的应用场景:
- 直接通过14服务清除多个ECU的故障码;
- 刷新软件前使用28服务关闭ECU APP通信,以降低刷新时网络负载;
- 刷新软件前使用85服务关闭ECU故障检测功能等。