Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CANoe UDS诊断测试

CANoe UDS诊断测试

作者头像
不脱发的程序猿
发布于 2025-04-02 02:15:54
发布于 2025-04-02 02:15:54
4270
举报

使用 CANoe 进行 UDS 诊断测试 时,可以通过两种主要方式来实现测试:有CDD文件无CDD文件

CDD文件是基于 ASAM MCD-2D 标准格式的描述文件,提供了车辆诊断通信所需的详细描述,包括诊断服务、参数、PDU格式等。

通过导入 CDD 文件,CANoe 可以自动解析和识别ECU支持的UDS诊断服务及相关数据格式,从而提供更高效和自动化的测试过程。

在没有 CDD 文件的情况下,诊断测试通常依赖手动配置或脚本编写进行服务的调用。

这意味着,测试人员需要自行指定每个诊断服务的服务ID、参数ID、数据格式等。

1、Diagnostics/ISO-TP Configuration窗口

可以直接在Diagnostics/ISO-TP Configuration窗口导入CDD文件,通常CDD文件中设置好了传输层和诊断层参数。

加载 CDD 文件 后,会自动弹出两个窗口:“Fault Memory”(故障记忆)“Session Control”(会话控制)

如果使用 CANoe 自带的 “Basic Diagnostic Editor”(基本诊断编辑器) 模板(即没有 CDD 文件),则这两个窗口将被置为灰色,无法进行操作。

如果没有CDD文件,就需要根据诊断问卷调查表在Diagnostics/ISO-TP Configuration窗口设置传输层和诊断层参数。

1.1、设置传输层参数

点击 “Transport Layer” 打开 “Configure Transport Layer (CAN)” 界面,对传输层参数进行设置。主要设置项包括 “Addressing”(诊断地址信息)“Additional ISO TP Protocol Parameters”(TP协议参数)。

Addressing(诊断地址信息) 包括请求地址、物理寻址和功能寻址。一般来说,诊断地址以 0x7 开头。ECU 所支持的诊断服务通常都支持物理寻址。功能寻址仅支持以下服务:1011283E85221419,即不支持 312E2F343637

Additional ISO TP Protocol Parameters(TP协议参数)

  • STmin:接收方发送流控帧之后,发送方发送连续帧之间的最小时间间隔。
  • Block size:接收方发送流控帧后,发送方可以连续发送的最大帧数。如果该值为 0,则表示没有连续帧数目的限制。
  • FC delay:CANoe 收到首帧或连续帧后,延迟回复流控帧的时间。
  • Max. length:最大传输数据长度,通常取最大值 4095(3 位 DLC 最大值)。

Mixing of CAN 2.0 and FD frames

此项设置表示是否兼容 CAN 帧和 CAN-FD 帧。

其选项说明如下:

  • Ignore:两者不兼容。如果配置为 CAN 帧,CANoe 不接受 CAN-FD 帧;如果配置为 CAN-FD 帧,则不支持 CAN 帧。
  • Accept:兼容。当配置为 CAN 帧时,CANoe 可以接受 CAN-FD 帧,但返回的是 CAN 帧。
  • Adapt:兼容。当配置为 CAN 帧时,CANoe 可以接受 CAN-FD 帧,但返回的是 CAN-FD 帧。

1.2、配置诊断层参数

点击 “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 开发方提供。具体参数如下:

  • S3 client time:诊断仪(如 CANoe)自动发送会话保持报文(0x3E 服务)的周期。
  • S3 server time:停止发送会话保持报文后的最大时间,ECU 保持在非默认会话的时间。
  • P2 client:诊断仪(如 CANoe)发送请求报文到接收到回复的时间间隔。
  • P2 server:ECU 收到请求报文到开始回复的时间间隔。
  • P2 extended client:诊断仪(如 CANoe)收到 NRC 78 错误后,到下一次回复的时间间隔。
  • P2 extended server:ECU 发送完 NRC 78 错误后,到下一次回复的时间间隔。

注意

  • P2 client 的值必须大于 P2 server 的值。
  • 同理,P2 extended client 必须大于 P2 extended server

“Security Access” - 安全访问配置

Seed & Key DLL:用于 27 服务 安全解锁。为了保护 ECU 数据不被误改,许多诊断服务要求在不同的安全访问等级下进行访问。

CANoe 中,用户需要配置自定义的动态链接库(DLL)文件,提供解锁安全访问的算法。该 DLL 文件通常由 OEM 或 Tier 1 提供。

加载该文件后,当需要解锁时,只需在诊断控制台手动点击 27 服务,即可完成解锁操作。

若没有提供此 DLL 文件,也可以根据安全算法编写 CAPL 脚本来实现解锁功能 2、Basic Diagnostic Editor窗口

没有CDD文件,根据诊断问卷调查表在Diagnostics/ISO-TP Configuration窗口设置好传输层和诊断层参数后,需要在Basic Diagnostic Editor窗口手动创建诊断服务。

这是 CANoe 自带的模板,我们需要根据诊断信息表中的服务汇总,在每个服务的框架下手动添加项目所需的子服务,右键选择“Add New Service”可以添加子服务。

可以根据CAN矩阵和诊断问卷调查表设置请求和响应的数据,例如以下操作:

3、Diagnostic Console窗口

在Diagnostic Console 窗口中可以选择进行发送诊断请求和查看响应。

点击建立好的子服务按钮,就可以测试发送诊断请求。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 美男子玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何使用VH6501进行CAN采样点测试
Vector 的 VH6501 是一种专为 CAN 和 CAN FD 网络设计的干扰测试设备,集成了干扰生成和 CANoe 网络接口功能,支持通过 CAPL 脚本实现测试自动化。
不脱发的程序猿
2025/05/21
310
如何使用VH6501进行CAN采样点测试
虹科干货 | 避免百万级召回!车辆安全网关的防护要点
安全网关是保障CAN总线安全的常用技术(与加密消息传递、入侵检测和硬件安全一同使用 [1])。其主要目的是保护硬实时机电控制总线,使其免受无线连接的易受攻击设备的干扰,例如远程信息处理控制单元(TCU)和车载信息娱乐系统(IVI)。这是非常必要的,因为(对于足够复杂的系统而言,是「何时」而非「是否」[2])当这些易受攻击的设备在攻击中被攻破时,安全网关等技术可以保证攻击者无法危及车辆的基本控制功能。
用户11291338
2025/05/22
50
虹科干货 | 避免百万级召回!车辆安全网关的防护要点
CANoe UDS诊断测试界面说明
CANoe是汽车电子领域广泛应用的一款综合性工具,其UDS诊断功能尤为强大,为汽车电子系统的开发、测试与维护提供了诸多便利。
不脱发的程序猿
2025/03/20
3500
CANoe UDS诊断测试界面说明
详解UDS CAN诊断:什么是UDS(ISO 14229)诊断?
之前讲解到CAN物理层和数据链路层的相关知识,这些属于ISO 11898-1、ISO 11898-2和ISO 11898-3协议方面的知识,本篇博文开启新篇章,讲解依托于CAN通信的应用层服务:UDS(ISO 14229)诊断协议。
不脱发的程序猿
2022/11/22
7.6K0
详解UDS CAN诊断:什么是UDS(ISO 14229)诊断?
如何读懂UDS诊断报文
UDS(Unified diagnostic services),即统一诊断服务。UDS提供一个诊断服务的基本框架,主机厂和零部件供应商根据实际情况自定义出一些私有化服务,其优势在于方便生产线检测设备开发,同时更大的方便了售后维修保养和车联网功能的实现。
xbai921031
2022/05/25
6.5K0
如何读懂UDS诊断报文
详解UDS CAN诊断:SecurityAccess Service(SID:0X27)
诊断和通信管理功能单元(Diagnostic and communication management functional unit)包含10种服务,本篇博文将详细讲解SecurityAccess Service(SID:0X27)的特性和协议。
不脱发的程序猿
2022/12/20
1.3K0
详解UDS CAN诊断:SecurityAccess Service(SID:0X27)
工具推荐: 汽车CAN总线分析框架CANToolz
aka YACHT (又一个汽车黑客工具) CANToolz 是一个分析控制局域网络CAN(Controller Area Network) 和设备的框架。该工具基于不同的模块组装在一起,可以被安全研
FB客服
2018/02/08
2K0
工具推荐: 汽车CAN总线分析框架CANToolz
CAN总线之ISO15765协议
ISO 15765协议是一种CAN总线上的诊断协议。其中ISO 15765-1包括物理层和数据链路层,ISO 15765-2对网络层进行说明,ISO 15765-3则是规定到应用层的具体服务。
心跳包
2020/08/31
1.5K0
CAN总线之ISO15765协议
UDS诊断时间参数说明
在阅读客户释放的诊断问卷调查表时,基本有一页会介绍许多与时间相关的参数,这些参数对于确保通信的有效性和可靠性至关重要。
不脱发的程序猿
2024/05/26
1.3K0
UDS诊断时间参数说明
详解UDS CAN诊断:ECUReset Service(SID:0X11)
诊断和通信管理功能单元(Diagnostic and communication management functional unit)包含10种服务,本篇博文将详细讲解ECUReset Service(SID:0X11)的特性和协议。
不脱发的程序猿
2022/12/09
1.2K0
详解UDS CAN诊断:ECUReset Service(SID:0X11)
CANoe UDS DTC测试
Fault Memory 窗口用于查看和管理目标 ECU 的故障码(DTC,诊断故障代码)。
不脱发的程序猿
2025/04/22
1650
CANoe UDS DTC测试
使用STM32开发板学习UDS诊断
搞车联网安全的肯定都会涉及到 UDS 诊断,但除非能接触到实际项目,否则目前没见过有开源的能进行真实 UDS 诊断的练习板,只能看网上的一些理论知识,不咋过瘾
yichen
2023/12/31
6132
使用STM32开发板学习UDS诊断
CAN通信协议栈(三)之对ISO15765-2的理解
用于把接收到的分段报文的首帧发送给上层,如果首帧发现任何错误,那么整个报文都将被忽略;如果数据长度(FF_DL)大于接收方可用的缓冲区,也会被认为是一个错误。
xbai921031
2022/05/25
1.6K0
CAN通信协议栈(三)之对ISO15765-2的理解
LIN总线开发之LDF文件介绍
之前的文章大致介绍过LIN总线,本篇文章就来讲一下LIN Stack配置中比较关键的一个文件,就是LDF(LIN description file)。
xbai921031
2022/05/25
4.7K0
LIN总线开发之LDF文件介绍
详解UDS CAN诊断:DiagnosticSessionControl Service(SID:0X10)
诊断和通信管理功能单元(Diagnostic and communication management functional unit)包含10种服务,本篇博文将详细讲解DiagnosticSessionControl Service(SID:0X10)的特性和协议。
不脱发的程序猿
2022/12/02
1.2K0
详解UDS CAN诊断:DiagnosticSessionControl Service(SID:0X10)
车辆网络安全架构——安全通信协议
车载总线(Automotive Bus)是指在车辆内部用于不同电子控制单元(ECU)之间进行通信和数据传输的系统。它充当了车辆内部各个电子模块之间的数据传输媒介,使得不同的车辆系统可以相互协作和交换信息。
FB客服
2023/08/08
6680
车辆网络安全架构——安全通信协议
CANard工具套件:CAN总线安全工具
CAN是控制器区域网络(Controller Area Network, CAN)的简称,是国际上应用最广泛的现场总线之一。在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线。 前特斯拉员工Eric Evenchick在今年Black Hat Asia 2015大会发布了一款CAN总线协议的安全工具CANard,通过硬件抽象实现对多种CAN适配器的支持,向上提供统一的调用接口。还支持CAN-TP、OBD-II、UDS多种上层协议的通信。针对CAN总线协议设备的模糊测试
FB客服
2018/02/06
2.9K0
CANard工具套件:CAN总线安全工具
CANoe之CAPL编程(CANoe系列其三)「建议收藏」
与Vspy的”C Code Interface”一样;在CANoe的使用中,一样提供了我们进行二次编程开发的工具——”CAPL Browser”。通过CAPL的编程,我们可以在节点上完成更为复杂的功能需求。操作如下:在CANoe工程的”Simulation Setup”界面下的左侧的网络节点中,点击铅笔形状的图标,进入CAPL编辑界面(若当前节点还没有创建对应的CAPL程序,则此时会先提示输入CAPL程序名,并保存为.can后缀的文件)
全栈程序员站长
2022/11/18
10.7K0
CANoe之CAPL编程(CANoe系列其三)「建议收藏」
CAN通信协议栈(四) 之对ISO14229的理解
ISO14229是UDS诊断应用层的协议,定义了诊断服务的实现步骤及具体的诊断服务定义。本文主要依据的是ISO14229-1:2013和ISO14229-3:2012,这是最新版协议,分别代替了之前的ISO14229-1:2006和ISO15765-3:2004,这一点请读者注意。
xbai921031
2022/05/25
2.3K0
CAN通信协议栈(四) 之对ISO14229的理解
CAN总线仿真工程开发流程及策略
总线仿真工程作为ECU开发中的核心环节,它贯穿了整个开发过程,从需求分析到软件开发、软件测试,再到硬件验证和失效分析等多个阶段。
不脱发的程序猿
2025/04/24
1230
CAN总线仿真工程开发流程及策略
相关推荐
如何使用VH6501进行CAN采样点测试
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档