【问题标题】:How to read long values from ECU via CAPL如何通过 CAPL 从 ECU 读取长值
【发布时间】:2022-06-18 23:26:05
【问题描述】:

我能够接触到我想通过 CAPL 读取 VIN 值的 ECU。但我只能在单帧而不是连续帧中得到响应。我通过 CAN 连接到 ECU。

那么如何从 ECU 读取长值? 我也知道,这个 ECU 会定期发送一些消息,那么当我知道 ID 时,如何实时读取它们?

variables
{
  message 0x123 Request;
  message 0x124 Response;
}

on key 'v'
{
     Request.DLC = 8;
     Request.byte(0) = 0x03;
     Request.byte(1) = 0x22;
     Request.byte(2) = 0xXX;    //command for reading VIN
     Request.byte(3) = 0xYY;    //command for reading VIN
     Request.byte(4) = 0x00;
     Request.byte(5) = 0x00;
     Request.byte(6) = 0x00;
     Request.byte(7) = 0x00;
     output(Request);
}

在跟踪中,我可以看到积极的响应,但只是单帧。而且我明确地知道,VIN 比那个长。

03 22 XX YY 00 00 00 00
03 62 XX YY 12 34 56 78

我从vector(OSEK_TP等)阅读了一些材料,但我无法应用它们,因为我是capl的新手。

【问题讨论】:

    标签: vector capl canoe


    【解决方案1】:

    我刚刚遇到 ISO-TP 连续帧。
    首先,我想了解您的系统。
    您的 ECU 有/预计 VIN 17 位?
    它能够发送连续帧吗?例如:
    (发件人)第一帧:03 zz 62 XX YY 12 34 56
    (接收方)控制流:30 00 00 00
    (发送方)连续帧:21 78 9A BC DE FG H0 00(填充0 00)
    您能否也提供诊断规范。对于这个 DID XX YY?因为应该定义响应。
    可能是它被定义为短 VIN 4Bytes,所以 ECU 响应正确。

    【讨论】:

      猜你喜欢
      • 2017-08-04
      • 1970-01-01
      • 1970-01-01
      • 2018-06-07
      • 2022-08-17
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多