如何创建及修改诊断服务

在CDDT左侧树视图中点击Protocal services,可以看到已经建立的所有服务的请求报文、肯定响应报文、否定响应报文及该服务是否已使用和是否强制要求等信息。
在这里插入图片描述

如何创建诊断服务

点击左下角的“New”按钮或“Please click here tocreate a new element”可以新建一个协议服务,出现如下对话框,分别填入服务的名称和ID,勾选上肯定响应和否定响应。
在这里插入图片描述

点击Ok后会弹出如下对话框
在这里插入图片描述

按照请求报文的字节顺序,依次创建每部分内容。点击“New”按钮或“Please click here to create a new element”后会弹出以下对话框。
在这里插入图片描述

下面举例对上图中类型的应用场合进行说明。

  • Constant:常量代表在CDD文件中不可更改的值,服务标识符均为常量。也可以用作子功能参数,例如读取诊断信息服务(0x19),选择不同的子功能时报文结构不同,需要针对每个子功能建立一个协议服务。
  • Varible value:变量代表需要在在CDD文件中指定的值,与ECU进行通信时是固定的。可以用作子功能参数,例如诊断会话控制服务(0x10),选择不同的子功能时报文结构相同,不同子功能可以使用同一个协议服务,此时子功能参数就使用变量类型;也可以用作数据标识符,例如读取数据服务服务(0x22)中的DID,就是使用变量类型。
  • Proxy:代表在ECU和诊断仪之间传递的一系列数据对象。可以用作Data参数,允许选择不同的数据类型;也可以用作DTC、DTC状态或DTC组参数;也可以用作响应码参数,所有的否定响应报文中的否定响应码都使用Proxy类型。
  • Fixed data:用于无论用在哪种诊断类中协议服务总是传递相同的数据对象,例如诊断会话控制服务(0x10)的肯定响应报文中的定时参数。
  • Multiplexer:用于依赖之前传送过的某一个值(同一报文)的数据对象,例如读取诊断信息服务(0x19)根据DTC码报告快照记录子功能(0x04)肯定响应报文中的快照记录。
  • Iteration:用于连续传送若干次的数据对象,例如读取诊断信息服务(0x19)根据状态掩码报告DTC子功能(0x02)、根据DTC码报告快照记录子功能(0x04)、根据DTC码报告扩展数据子功能(0x06)等需要迭代报告的类型。

例如创建一个带子功能的服务,则选择Varible value,并选择相应的子功能data type,如下图所示
在这里插入图片描述

点击OK,会弹出如下窗口,在这边可以设置是否支持禁止肯定响应位。
在这里插入图片描述

协议服务创建完成后,需要选择加入某个诊断服务类,才可以在通用诊断部分使用。下一章将会介绍如何创建诊断类,及如何将新建的服务加入到诊断类中。

如何修改诊断服务

在这里插入图片描述

点击需要修改的服务,右键属性或双击会弹出如下窗口
在这里插入图片描述

可根据需求修改服务请求及响应格式。如需修改是否支持禁止肯定响应位,选中子功能右键属性或双击,如下
在这里插入图片描述

在弹出的窗口中将Supports "Suppress Positive Response Message Indoation Bit"勾选或去除
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_27718973/article/details/143170305