问题标签 [uds]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3905 浏览

uds - 根据 ISO 14229 统一诊断服务 (UDS) 的安全级别的用例是什么?

据我了解,如果测试仪(客户端)返回的安全密钥是正确的,则 ECU 将以肯定的 UDS 响应进行响应。在此之后,测试人员将被授予所请求的安全级别的安全访问权限。

我的问题是:如果测试人员总是被授予所请求的安全级别的安全访问权限,那么安全级别的目的是什么?

0 投票
2 回答
831 浏览

capl - 我们如何通过 CAPL 检查 UDS 消息的响应?

我已经编写了一个基本程序以在 CAPL 中发送 UDS 消息,但我不知道如何在 testcase 函数中获取响应。

下面是代码片段

0 投票
1 回答
1285 浏览

python - 用于通过 DoIP 发送 UDS 命令的 Python 库

在我的一个项目中,必须使用 DoIP 协议发送 UDS 命令。我们正在使用 Robot Framework 对汽车原型的 ECU 进行一些自动化测试。是否有一些现有的 python 库允许通过 DoIP 而不是 CAN 发送 UDS 命令?

0 投票
0 回答
288 浏览

canalyzer - 为什么 CANalyzer 在 P2ServerMax 之后不超时

P2ServerMax 和 P2*ServerMax 在 CANalyzer 中配置正确。但是,发送“10 01”后,需要 100ms 才能收到“50 01”,并且 CANalyzer 没有检测到超时。中间没有收到“10 78”。

我该如何解决?

0 投票
1 回答
110 浏览

diagnostics - 如何在我的 ECU 中设计诊断处理程序?

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

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

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

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

0 投票
0 回答
90 浏览

can-bus - 使用带有 CAN_TP 的 UDS 服务通过 CAN 接收一帧 256 字节数据

我正在尝试通过 UDS 服务 0x36 接收 40 kb 的文件数据。我为此使用 s32k148 板。我目前面临的问题是数据接收限制。我能够通过板载服务 36 在 128 字节帧中接收 40 kb 数据。现在我想接收 256 字节帧中的数据,或者如果可能的话。我确认我正在以 256 字节块的形式将数据发送到 CAN 总线。但是板子不能接收这么长的帧数据。因此,如果我需要在某个地方进行配置以接收更多数据,请告诉我。

我用于 128 字节帧的 CAN_TP 参数如下

设置:RiPi 正在通过 UDS 36 服务以 128 字节的块在 CAN 总线上发送数据。Ripi 和 NXP 通过 CAN BUS 连接。

0 投票
1 回答
269 浏览

python - 如何使用 python 程序中的安全 dll 执行 UDS 会话解锁?

我想自动化一些需要安全解锁的 WDBI 服务。我有一个可以从 CANoe 调用的 dll,但我不想使用独木舟硬件,我也不知道 dll 中的函数调用。有什么方法可以从 python 程序调用 dll 来执行会话解锁?

0 投票
1 回答
570 浏览

capl - 按地址读取内存 - 读取超过 255 个字节

我想使用 Read Memory By Address UDS 服务从 NVRAM 读取大约 336 字节的数据。我给出的命令是“23 22 1C 22 01 50”,其中

  1. 0x23 - 按地址读取存储器的 UDS 命令
  2. 0x22 - 地址和长度格式标识符(内存地址参数 - 2 和内存大小参数 2)
  3. 0x1C 0x22 - 2 个字节的内存地址
  4. 0x01 0x50 - 以 2 个字节读取的数据长度(长度为 336 个字节)

当我提交命令时,我收到“0x13 消息长度不正确或格式无效错误”。

有人可以帮我解决这个问题。提前致谢。

参考:https ://piembsystech.com/uds-protocol/

0 投票
1 回答
245 浏览

request - 无法通过 CANoe 上的 CAPL 发送原始电报请求

编辑:主要问题已经解决,但我还有一个问题,请检查第三次尝试查看它。

我正在尝试发送未在我的诊断说明中定义的诊断请求。

我的脚本上有以下内容:

但是请求永远不会发送,在 Trace 窗口中没有看到任何新内容。有人知道我做错了什么吗?我尝试使用在诊断描述中声明的诊断请求进行此操作,并且它可以发送请求,因此我知道我的诊断配置正常。此外,CANoe 没有报告错误

谢谢你的帮助

编辑:我也尝试过这种方式

但结果相同绝对没有任何反应。

在 M. Spiller 的建议下编辑

这行得通!请求已发送,虽然没有显示在 Trace 窗口中,但我知道它已发送,因为可以在 Trace 上看到响应。现在我唯一的问题是如何使用diagGetLastResponse(Parameter_res);on diagResponse Parameter_res 使用相同的方法来声明响应?

因为这些函数接收到诊断描述中声明的请求/响应的名称,但是使用这种方法请求的类型是 * 那么我该如何使用它呢?

0 投票
0 回答
453 浏览

capl - 使用 dll 文件 CANOE CAPL 生成安全访问密钥

我正在尝试使用 DiagStartGenerateKeyFromSeed 从 ECU 发送的种子生成密钥,但我得到的结果是“缓冲区太小”

如果一旦 ECU 发送种子回调函数 _Diag_GenerateKeyResult 事件 OndiagResponse 处于活动状态,则 DiagStartGenerateKeyFromSeed 正常工作我得到“安全级别 1 的密钥计算已启动”