当前位置: 首页 > news >正文

DTC诊断测试方法

这篇文章用TSMaster工具从实操角度介绍IOS 14299中的诊断DTC测试方法,主要内容为如何搭建DTC测试环境以及测试方法

DTC的命名规则

DTC是Diagnostic Trouble Code的缩写,中文名称为诊断故障码,它的作用是将车辆上发生的故障通过固定的命名规则记录、存储并上传,方便工作人员通过诊断仪或者UDS诊断服务读取到当前故障的一种方法。

DTC由高&中字节和低字节三部分组成,DTC五位标准故障码同高、中字节间的映射关系如下

SAE J2102规定的五位标准故障码格式如下

故障码位序含义(SAE 标准)映射到图表的二进制位区间
第一位系统分类(P00 = 动力 / B10 = 车身 / C01 = 底盘 / U11 = 网络 )DTCHighByte 的 bit15 - bit14
第二位通用 / 厂家自定义(00 = 通用 / 01 = 厂家自定义/10/11=预留 )DTCHighByte 的 bit13 - bit12
第三位子系统分类(如燃油、点火、排放 )DTCMiddleByte 的 bit11 - bit8
第四、五位具体故障标识(如某传感器、某执行器故障 )DTCMiddleByte 的 bit7 - bit0

以U120587为例,根据上述规则要求,其高&中、低字节映射方法举例:

其五位标准故障码为U1205

测试环境搭建

前期输入

诊断调查表:这个表内定义了系统中所有支持的USD诊断服务、请求ID/应答ID、DTC list、DTC产生/消除条件等内容,是测试用例设计以及测试工程配置的基础;

dell文件:包括 Seed&Key 安全算法以及完整的UDS协议

测试环境搭建-以TSMaster为例
硬件搭建

准备好被测件、线束、直流电源、同星硬件、电脑,通过线束连接被测件并将CAN线连接到同星上

TSMaster工程搭建方法

打开TSMaster后选择总线分析-CAN总线测量

通道配置:在硬件-通道选择中配置实际的CAN通道数量并选择对应的硬件通道

DBC载入:在分析-数据库中在对应的CAN通道下加载对应的DBC

添加诊断模块:在应用-诊断模块下添加基础诊断,并在诊断模块-诊断传输层中配置好请求ID、应答ID、功能ID等内容,这些内容在诊断调查表中有定义;诊断服务层中加载dll文件。

配置19、14服务:在刚才添加的基础诊断-基本诊断配置-存储数据传输-19读取DTC信息下右击(14也是在这个路径),点击添加新的服务,将请求值设为01


在IOS 14299中对于19 02服务的DTC状态位定义如下,其中01代表bit 0=1的掩码,即筛选当前测试失败的DTC

14服务的请求值设置为0xFFFFFF,根据ISO 14299中14服务的定义,14 FF FF FF代表清除高、中、低字节的诊断信息请求

E2E算法配置与仿真报文发送:

首先在仿真-CAN总线仿真中添加CAN总线剩余仿真模块,该模块会根据之前配置的CAN通道和DBC自动导入,根据DTC测试所需要的节点、信号勾选激活,并发送正确的值。这里需要注意在模块-设置内将初始值设置为最后值。

在CAN总线剩余仿真模块下的报文内选中对应的CRC信号,右击设置为Checksum校验信号,这时会跳出CRC校验算法的选择框,先不要勾选。回到主界面,点击设计-C小程序,下方会出现C代码编辑器[CRC],打开后在自定义函数中新建mycrc函数,其中函数参数可直接复制程序库中的适配项目算法函数参数,如图中的mycrc函数是直接复制CRC8的,在mycrc函数中编辑项目的CRC算法,编辑完成后点击编辑器上方的“编译源代码”

这时回到CAN剩余总线仿真里点击设置-算法配置-编辑CRC算法参数,选择我们编辑的mycrc算法参数即可

关于编辑CRC算法参数对话框内的保护起始字节是指在数据帧中,从哪个字节开始进行 CRC 校验计算,如某报文的checksum在第0字节,因此计算checksum时,将保护字节设为1,意味着第0字节不参与CRC校验的计算。保护字节数表示从保护字节起始位置开始,连续多少个字节将参与 CRC 校验计算,例如保护字节数=7,则后续的7个字节都参与校验计算。

RC信号设置也是在CAN剩余总线仿真中响应的RC信号右击,设置为rolling counter信号即可

DTC的制造与消除

在完成上述步骤后运行我们的工程,被测件所有需要的信号和E2E校验均已正常仿真,这时根据诊断调查表中的DTC list中具体DTC制造与消除的条件进行测试

如U120587这个DTC含义为EPS节点丢失,其制造条件为与0x123报文失去通讯,恢复条件为正常接收到0x123报文,这时我们在RBS模块取消勾选0x123报文的激活按钮,然后发送19 02 01服务,根据IOS 14229定义,回复的59 02 09 D2 05 87 09 ,尾数09表示是当前激活的已确认硬故障;当恢复0x123报文通讯后发送19 02 01服务,回复59 02 09 D2 05 87 08 ,尾数08表示该故障是已自愈的历史确认故障,最后发送14服务,清除DTC,进行下一DTC测试。

http://www.cnnetsun.cn/news/3196792.html

相关文章:

  • 那个差点被裁的女设计师,三个月后带着爆款杀回来了
  • 2026撰写行业报告总写不完零散专业词汇?可系统梳理行业专业词汇
  • CBAM 注意力模块 PyTorch 实战:3 步集成 ResNet-50,ImageNet 精度提升 1.2%
  • StegaStamp 2019 CVPR 实战复现:PyTorch 1.13 环境配置与 100 位消息嵌入测试
  • 【Java项目技术亮点】熔断器状态机三态转换
  • 《重启日记》第十五周|工具提效挤占写作时间,少更也守住长期节奏
  • 无计组专项・汉字编码 Easy
  • Audacity音频编辑:从录音小白到剪辑高手的完整指南
  • 区位码转汉字机内码
  • [具身智能-561]:亚博智能(YahBoom)国产具身智能全套开发板 / 学习板完整解析
  • 原生 IP、机房 IP、住宅 IP、广播 IP 有何不同?从网络身份到 ASN 识别的技术科普
  • GyroFlow视频防抖终极指南:5个技巧让抖动视频秒变电影级画面
  • 城市生命线智慧管网建设落地指南|北京益豪时代一站式解决地下管网安全管控难题
  • ClaudeCode Auto模式:可信边界内的智能代码补全决策
  • clickhouse24.9.2.42单机版linux安装
  • 如何用DistroAV实现专业级网络音视频传输:新手也能掌握的5步完整指南
  • 构建股票预测系统的完整流程
  • FastDFS V6.16发布:支持单服务器多实例部署,新增监控工具!
  • FastAPI 请求头与 Cookie:Web 世界的“身份证”与“通行证”
  • 2026年7月苏州小程序开发公司哪家好?
  • 语义鸿沟——为什么大模型看不懂你的ERP
  • 激活函数的“生”与“死”:我们如何一步步拯救了神经元?
  • 系统规划与管理师-体系结构/接口/数据/软件定义全解析
  • PWM 频率 1kHz vs 10kHz 对比:Maxon 电机实测 3 大性能差异
  • 卡内基梅隆大学造火箭:AI系统全程设计、打印、发射
  • 北海本地企业GEO工具推荐:酒店住宿行业如何选对靠谱的GEO优化工具
  • 2026.7.6总结
  • ClickHouse架构学习笔记:系统定位/存储模型/为什么快/常见问题
  • Camera Shakify:用真实运动数据为Blender相机注入生命力的插件
  • 05_C++数组