跳到主要内容

ETStudio 诊断

ETStudio 的诊断模块提供了一个强大的诊断控制台,允许用户高度定制发送(Tx)和接收(Rx)请求以进行整车通信测试。本指南说明通过配置传输层、服务层和安全访问(seed 与 key)等参数来确保诊断性能达到最佳状态。

诊断配置文件

要充分利用 ETStudio 的诊断功能,需要将 Diagnostic Description 导入到 ETStudio 的仿真项目中。ETStudio 常将诊断规范类文档称为 “diagnostic instructions”(诊断说明),本文也采用该术语以避免混淆。对于较简单的诊断场景,用户也可以使用 ETStudio 自带的 DiagnosticsISOTP

诊断测试窗口

执行默认会话的步骤示例:

  1. 单击 Start

  2. 右键单击 10 01 Excute 来执行默认会话

  3. 响应将在 Response 列显示

DTC 查看器

ECU 包含用于存储故障诊断码(DTC)及其相关故障日志的专用区域。所有检测到的异常事件(例如传感器断开、信号异常、ECU 自检错误)都会记录在故障内存中,供售后、测试和开发团队使用。

  • 操作:点击 UDS -> UTC

Tester on/off(会话保活机制)

  • 功能:Tester Present 服务(0x3E)用于维持诊断会话处于活动状态,防止超时。如果在扩展/编程会话期间(例如高权限操作)没有收到诊断,则 ECU(示例:0x03、0x02)会在超时时间(如 5000ms 或 10000ms)后自动回到默认会话并终止高权限操作。

更新故障内存(0x19 服务)

  • 功能:强制 ECU 重新执行当前故障快照检测,更新 DTC 状态并刷新内部故障列表。

  • 结果:DTC 会填写至表格。

启用定期更新(0x19 服务)

  • 功能:按计划重复发送 0x19 服务以刷新内部故障列表。

  • 结果:DTC 会填写至表格。

删除 DTC(0x14 服务)

  • 功能:清除 ECU 中存储的指定 DTC 记录。当检测到异常(如传感器断开、信号错误)时,ECU 会将其记录为故障内存中的 DTC。

  • 操作:选择某个 DTC,然后单击 Delete 将其从 ECU 中移除。

  • 功能:清除 ECU 中的所有 DTC 记录并将故障内存重置为初始状态。

导出 DTC 记录

  • 功能:将 DTC 记录保存为本地文件。默认日志路径为 ETStudio 安装目录,可在属性页面中配置自定义路径。

属性配置页面

常规(General)选项卡

  • 更新故障内存间隔:默认值为 5 秒,用于配置定期更新的间隔。

  • 日志文件路径:修改 DTC 日志的存储路径。

消息(Message)选项卡

  • PDU 配置:查看或修改特定服务的协议数据单元(PDU),PDU 中包含与协议控制相关的信息。

  • 操作:在左侧菜单中单击对应项以编辑或查看该服务的 PDU。

服务层配置

控制诊断会话的时序及 ECU 的响应行为。

S3 Server Time:ECU 回退到默认会话前的超时时间。
S3 Client Time:发送 TesterPresent (0x3E) 以维持会话活跃的时间间隔。可点击 View Schematic Details 查看示意图。
P2 Timeout:表示 ECU 必须在此时间内回复诊断请求帧;诊断工具可据此判断是否超时。若在 P2 Timeout 内未收到回复,则视为请求超时失败。
P2 Extension:当 ECU 无法在 P2 超时时间内回复时,会返回 7F XX 78 通知诊断工具需等待更长时间,之后等待时间参数切换为 P2Extended,诊断工具应相应切换超时判断。

添加 Tester 节点

虚拟诊断响应

自动化诊断流程

ETStudio 的自动化诊断流程用于简化并管理诊断操作,适用于单次用例也适用于整个项目周期。用户可自定义诊断测试工作流,系统提供界面用于配置、执行和监控诊断流程,以提高效率与准确性。

要访问流程用例管理菜单,请在 UDS Process Management Bar 上右键单击,即可显示可用操作列表:

主要功能包括:

  • Add New Uds Flow:创建新的诊断流程用例,用户可在其下定义并组织诊断步骤。
  • Edit Name:选中用例后右键选择 Edit Name 修改节点标签。
  • Start Uds Flow:启动选中用例的诊断流程,系统将按预配置顺序在右侧仪表盘依次执行每步设置。
  • Abort Uds Flow:中断当前正在执行的诊断流程。
  • Delete Selected:删除所选节点。
  • Delete all flows:清空所有用例节点。

配置诊断流程(UDS Flow)

基本配置步骤:

  • 在左侧管理仪表盘中选择诊断流程节点。
  • 在右侧编辑区添加、删除或编辑诊断步骤。
  • 添加步骤后可修改步骤名称。
  • 选择步骤类型。
  • 选择步骤的地址类型(physical 或 functional)。
  • 配置详细的诊断请求和响应报文。

工具栏:

  • 启动诊断流程执行。
  • 中断当前运行的诊断流程。
  • 切换诊断流程设置的可编辑状态以防止误修改。

诊断步骤类型

ETStudio 支持四种步骤类型,适用于不同诊断场景:

  1. 常规步骤(Normal steps):
  • 适用场景:请求与预期响应都已定义的简单诊断用例。
  • 示例:
    • 请求:10 03
    • 预期响应:50 03 12 34
    • 操作:在请求字段输入请求字节,在响应字段输入预期响应。如果 ECU 未返回响应,可取消勾选 Responsive
  1. 选择配置(Select Config):选择已有配置以复用在 Diagnostics 中已调试的诊断步骤,推荐先在诊断控制台完成子流程的配置与测试,再在自动化流程中引用。

在自动化诊断流程中,其执行行为与诊断控制台一致。

  1. Seed & Key 步骤(Seeds and key steps):
  • 目的:处理需要 seed/key 的安全认证挑战。
  • 配置选项:
    • 方案 A:通过 SelectConfig 引用已有的 SeedAndKey 配置。
    • 方案 B:在自动化流程中直接选择 SeedAndKey 配置类型。
  • 关键参数:指定 SeedLevel;DLL 解密与 TP 参数配置会自动关联。
  1. Tester 操作步骤:
  • 目的:管理 TesterPresent 命令的启用/禁用。
  • 配置参数:
    • 启用/禁用命令:根据测试需要切换。
    • 命令数据与发送间隔:定义消息内容和发送频率。

C applet 诊断测试模块实现

请求与响应是诊断的基本要素,在 CAPL 中发送诊断请求并获取响应是测试的基本步骤。

  1. 实现步骤:
  • 定义测试条件:根据软硬件需求定义测试条件(硬件检查、内存检查、通信检查等)。
  • 实现测试逻辑:在 runDiagnostics 函数中实现具体测试逻辑,例如读取寄存器值并检查通信接口状态。
  • 输出结果:根据测试结果输出日志信息,便于调试与排查。
  1. 集成到 ETStudio:
  • 创建项目:在 ETStudio 中创建新的 C 项目。
  • 添加代码文件:将代码拷贝到主文件(例如 main.c)。
  • 编译与下载:使用 ETStudio 的编译工具生成二进制并下载到目标硬件。
  • 运行测试:通过串口或调试工具观察测试结果。

工程运行测试

手动诊断测试仪表盘

首先需要创建新的 UDS 文件,然后使用手动诊断测试仪表盘发送诊断请求并接收响应。

当配置界面出现后,选择合适配置并保存。

然后选择 UDS Setup 进行配置,右键添加新的服务。

右键单击执行以运行。

自动化诊断测试模块
选择 UDS Auto Sequence 模块,完成配置并运行,即可获得如下结果:

在下图位置可以设置循环执行testflow功能

Repeat Sequence为序列循环执行次数。勾选Restart on Error,序列会在没有收到正确回复后直接进入下个序列循环,不勾选则会直接停止执行。

UDS导入导出文件

1.导入CDD文件 在主界面的UDS/TP下选择New UDSDB(NEW UDS不支持导入CDD文件)

在打开的页面中右侧位置可以导入CDD文件

2.导出PDX文件 在主界面的UDS/TP下选择New UDS(New UDSDB不支持导出PDX文件)

在打开界面的左侧可以导出PDX文件

LIN诊断独立发送报文

当设置UDS的Bus TypeLIN后,启动工程,如果此时IG与C小程序有发送ID为3C的报文,上位机会提示关闭,关闭后会发送3C报文。

Doip 快速入门指南

本节简要介绍如何在本工具中快速搭建 DoIP(Diagnostics over Internet Protocol,基于 IP 协议的诊断)环境。按照以下步骤配置必要的硬件和 UDS 设置,即可启用基于 DoIP 的诊断通信。

1. 硬件通道配置

  1. 在主界面中导航至 "Channel Assignment"(通道分配)

quickstart1 2. 根据测试要求将可用的物理通信通道映射到逻辑通道。 quickstart2 3. 确认所选物理接口与测试硬件上的目标以太网端口一致。 quickstart3

2. 创建 UDS 配置

  1. 导航至 "UDS" → "UDS TP" → "New UDS TP",创建新的 UDS 配置。

2-1 2. 在 UDS 配置窗口中,依次选择 "Property" → "Transport" → "Bus Type",并将其设置为 Ethernet(以太网)。

2-2 3. 分配之前创建的以太网通道,并配置相关网络参数(如 IP 地址、端口号)。

2-3 4. (可选)UDS Layer 选项卡中配置其他参数。如果需要 Seed&Key 安全访问,请在此指定相应的 DLL 或逻辑。

2-4

3. 使用 UDS 功能

完成上述步骤后,DoIP 诊断环境即已就绪。后续使用 UDS 服务通过 DoIP 进行通信的方式与其他传输协议(如 CAN)完全一致。 3-1