统一诊断服务(Unified Diagnostic Services, UDS) 是汽车电子领域广泛应用的诊断协议(基于ISO 14229标准),用于实现ECU(电子控制单元)的故障诊断、配置、刷写等功能。VBA作为行业内主流的汽车总线开发与测试工具,内置强大的UDS诊断测试模块。本篇将主要介绍通过VBA软件实现UDS on CAN的诊断测试流程。
本文关键词:故障诊断,UDS,诊断配置
导入诊断数据库文件
功能入口:Sources-CANNetworks-CAN1-Diagnostics-右键选择导入,根据具体场景进行网段配置。
目前VBA支持导入的诊断数据库格式有:PDX/ODX/CDD,若用户手上无现成文件,也可导入VBA自带的模板文件,即Import Standard Template。导入完成后,对应Diagnostics节点下会显示诊断节点以及对应的配置模块和控制模块。
Configuration配置模块
该模块涵盖诊断数据文件,安全算法DLL导入,以及CANID,UDS协议层和TP层时间参数,CANFD配置等关键信息,导入诊断数据库后,默认填充诊断数据库中定义好的CANID和相关时间参数,若需要修改可勾选“手动修改”即可。传输层请求/响应/功能寻址ID的类型若是扩展帧,则勾选29位。
诊断仪在线:可配置诊断仪在线时发送的3E服务类型,支持配置允许肯定响应(3E 00)和禁止肯定响应(3E 80)。
CANFD配置:发送CANFD报文和DLC配置,只对CANFD模式生效,分别表示是否在CANFD通道上发送CANFD诊断报文以及配置诊断报文的长度。
Console控制模块
该模块主要解析了数据库定义的基本诊断服务,可实时发送诊断请求以及监控诊断响应。左侧服务列表基于PDX/ODX/CDD文件自动生成,用户可以通过双击选择其中某条服务来发送诊断请求,并在右侧的诊断响应结果区域查看响应内容。
所有诊断交互报文会显示在Trace界面上。
典型应用场景
1. 读取ECU信息,如车辆VIN码,操作步骤:
Step1:运行工程-发送读取车辆VIN码指令。
2. 写入数据配置,如软件版本,操作步骤:
Step1:运行工程,切换至扩展会话模式;
Step2:通过安全认证;
Step3:发送写入软件版本指令。
3. 故障码读取,如根据故障码状态返回DTC,操作步骤:
Step1:运行工程,发送读取故障码指令。

整车DTC读取
Diagnostic点下存在DiagnosticDTC节点,该节点是用来读取各个ECU的故障码。支持设置故障状态掩码,添加想要读取的诊断节点,可读取、清除、导出DTC数据。
诊断序列搭建
请参考《"0"代码实现诊断测试序列搭建》https://intework.hirain.com/docs/dai-ma-shi-xian-zhen-duan-ce-shi-xu-lie-da-jian