使用 CANoe 进行 UDS 诊断测试 时,可以通过两种主要方式来实现测试:有CDD文件 和 无CDD文件。
CDD文件是基于 ASAM MCD-2D 标准格式的描述文件,提供了车辆诊断通信所需的详细描述,包括诊断服务、参数、PDU格式等。
通过导入 CDD 文件,CANoe 可以自动解析和识别ECU支持的UDS诊断服务及相关数据格式,从而提供更高效和自动化的测试过程。
在没有 CDD 文件的情况下,诊断测试通常依赖手动配置或脚本编写进行服务的调用。
这意味着,测试人员需要自行指定每个诊断服务的服务ID、参数ID、数据格式等。
可以直接在Diagnostics/ISO-TP Configuration窗口导入CDD文件,通常CDD文件中设置好了传输层和诊断层参数。
加载 CDD 文件 后,会自动弹出两个窗口:“Fault Memory”(故障记忆) 和 “Session Control”(会话控制)。
如果使用 CANoe 自带的 “Basic Diagnostic Editor”(基本诊断编辑器) 模板(即没有 CDD 文件),则这两个窗口将被置为灰色,无法进行操作。
如果没有CDD文件,就需要根据诊断问卷调查表在Diagnostics/ISO-TP Configuration窗口设置传输层和诊断层参数。
点击 “Transport Layer” 打开 “Configure Transport Layer (CAN)” 界面,对传输层参数进行设置。主要设置项包括 “Addressing”(诊断地址信息) 和 “Additional ISO TP Protocol Parameters”(TP协议参数)。
Addressing(诊断地址信息) 包括请求地址、物理寻址和功能寻址。一般来说,诊断地址以 0x7 开头。ECU 所支持的诊断服务通常都支持物理寻址。功能寻址仅支持以下服务:10、11、28、3E、85、22、14、19,即不支持 31、2E、2F、34、36、37。
Additional ISO TP Protocol Parameters(TP协议参数)
Mixing of CAN 2.0 and FD frames
此项设置表示是否兼容 CAN 帧和 CAN-FD 帧。
其选项说明如下:
点击 “Diagnostic Layer” 打开 “Configure Diagnostic Layer (CAN)” 界面,进行 Tester Present 参数的设置。
设置“Tester Present”参数
勾选 “Send Tester Present”,选择 “Manually defined”,并填写会话保持诊断报文,通常为 “0x3E 00”。
接着,设置 “S3 client time”,即会话保持报文发送的周期。
UDS诊断中的 0x3E 服务主要作用是确保诊断服务或之前激活的通信仍然处于激活状态,从而保持当前的非默认会话(Default Session)。通过周期性发送请求帧,防止自动跳回默认会话。
在实际应用中,当进行 DID(Data Identifier)写入 时,通常需要进入用户自定义会话(Custom Session),并且可能需要通过 0x27 服务 达到特定的安全等级。为了在写入 DID 时确保这些服务保持激活状态,可以使用 0x3E 服务定期发送会话保持报文。
添加好会话保持报文并勾选 “Send Tester Present” 后,后续只需通过点击 CANoe 中的 “Tester Present On” 功能,即可自动发送或停止会话保持报文,轻松实现会话保持功能。
根据诊断信息表设置“Timing”参数
“Timing” 参数需根据诊断信息表进行设置,通常由 OEM 或 ECU 开发方提供。具体参数如下:
注意:
“Security Access” - 安全访问配置
Seed & Key DLL:用于 27 服务 安全解锁。为了保护 ECU 数据不被误改,许多诊断服务要求在不同的安全访问等级下进行访问。
在 CANoe 中,用户需要配置自定义的动态链接库(DLL)文件,提供解锁安全访问的算法。该 DLL 文件通常由 OEM 或 Tier 1 提供。
加载该文件后,当需要解锁时,只需在诊断控制台手动点击 27 服务,即可完成解锁操作。
没有CDD文件,根据诊断问卷调查表在Diagnostics/ISO-TP Configuration窗口设置好传输层和诊断层参数后,需要在Basic Diagnostic Editor窗口手动创建诊断服务。
这是 CANoe 自带的模板,我们需要根据诊断信息表中的服务汇总,在每个服务的框架下手动添加项目所需的子服务,右键选择“Add New Service”可以添加子服务。
可以根据CAN矩阵和诊断问卷调查表设置请求和响应的数据,例如以下操作:
在Diagnostic Console 窗口中可以选择进行发送诊断请求和查看响应。
点击建立好的子服务按钮,就可以测试发送诊断请求。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有