【问题标题】:How can I design Diagnostic Handler in my ECU?如何在我的 ECU 中设计诊断处理程序?
【发布时间】:2021-04-02 07:04:32
【问题描述】:

在我的应用程序中,我们的内部客户有关于诊断的要求。 经过一番讨论,我们定义了多达 20 个诊断案例,如果需要,我们将要发送到目标车辆。但到目前为止,我们从未从事过诊断工作。

我知道有一些标准,例如 OBD 或 UDS,但我找不到任何关于如何在 CAN 中管理诊断的论文。

我对 Autosar 中的诊断系统的理解是,如果发生错误情况,ECU 会将其存储到具有特定 ID 的特定地址。然后,如果诊断会话开始请求来自 CAN,ECU 将允许以某种方式读取诊断内存。

这些会话请求是否仅来自诊断工具?如果我的 ECU 坏了,我该如何通知 BUS?如果总线能够启动诊断会话,这是否会定期发生?有什么方法可以在不触及 UDS 的情况下以更简单的方式处理这个问题?

【问题讨论】:

    标签: diagnostics autosar automotive uds


    【解决方案1】:

    提供关于诊断协议、车辆诊断和堆栈溢出中的 AUTOSAR 诊断堆栈的基本培训是不现实的,但更多的是几周辅导的主题。

    但是,这是简短的版本:

    • 理论上,您可以使用“事件响应”功能来通知车载或非车载诊断客户端 DTC 已更改状态。
    • 实际上,我从未在其他 ECU 需要此信息的用例中看到此信息。
    • 车辆通常会定义周期性 CAN 信号,这些信号用于报告足够多的信息,以便在需要时更改其行为。
    • 然后消息中存在汇总位,例如以类似于节点消息的形式通知车辆是否确认了任何 DTC。

    在 AUTOSAR 应用程序中,您将执行以下操作:

    • 您的软件组件具有连接到诊断事件管理器的客户端接口,以通知它有关诊断事件的信息
    • 诊断事件管理器将它们映射到 DTC,并与诊断通信管理器、传输协议和其他与通信相关的模块一起提供接口,供诊断客户端读取。
    • 另一个软件组件从诊断事件管理器轮询状态并根据该信息设置 COM 信号。

    【讨论】:

      猜你喜欢
      • 2019-01-30
      • 2022-09-30
      • 2023-03-08
      • 2017-08-15
      • 2023-03-31
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多