【问题标题】:Looking for an example of a OBD-II complete data frame寻找 OBD-II 完整数据框的示例
【发布时间】:2022-01-01 20:13:57
【问题描述】:

我正在开发一个 OBD-II 阅读器,我想在其中查询请求以使用 stm32 处理器读取 PID 参数。我已经明白数据字段应该做什么了,但是 ID 让我很头疼。正如我所读到的,必须发送0x7DF 来广播请求,每个ECU 都会用自己的ID 响应。但是,我被要求在 SAE J1939 协议中执行此操作,该协议使用 29 位扩展标识符,我不知道我需要在这个 ID 中添加什么。

正如我在标题中所说,有人可以使用这种方法向我展示一些来自公共汽车的实际数据吗?我一直在互联网上搜索真实的框架,但到目前为止没有任何运气。

如果 OBD-II 通信需要一些确认才能正常工作,我也很感激。

谢谢

【问题讨论】:

    标签: obd-ii j1939


    【解决方案1】:

    我建议您查看 SAE J1939 文档,尤其是 J1939/21J1939-71J1939/73

    一般来说,一个J1939传输协议响应序列可以这样处理:

    • 标识 BAM 帧,指示正在启动的新序列 (通过 PGN 60416 - 0xEC00 可以通过 0x1CECFF00 到达)
    • 从 BAM 有效载荷的字节 6-8 中提取 J1939 PGN,用作 新框架的标识符
    • 通过连接数据的 2-8 字节构造新的数据负载 传输帧(即不包括第一个字节)

    ID 为 1CEBFF00(PGN 60160 或 EB00)的 J1939 数据传输消息。

    上面,BAM 的最后 3 个字节等于 E3FE00。重新排序时,它们等于 PGN FEE3 又名引擎配置 1 (EC1)。此外,通过组合 6 个数据传输包/帧中的前 39 个字节来找到有效负载

    管理控制设备或任何发布车辆使用状态 PID 的设备应该对运行开关状态(SPN 3046 - 0xFDC0,可能可以通过 0xCFDC000 到达)和任何其他本地定义的授权使用标准(即驾驶员log-ons) 在车辆使用状态 PID 用于生成未授权使用警报之前。

    此外,您不能忘记使用读取/发送来扩展 ID 消息,因为它是 24 位的。

    事实上,我会建议您使用can-utils 让您的分析更加轻松。一个简单的 can-dump 或 can-sniffer,您可以看到广播中的内容。

    某辆车的dbc https://github.com/commaai/opendbc

    【讨论】:

    • 对不起,我不太明白这一点。在维基百科文章中,有一个可理解的列表,列出了 J1979 中使用的所有 PID。我相信这些可以在简单的汽车中使用。但是我相信城市公共汽车或卡车使用 J1939。据我了解,J1939-73 文档允许读取与您可以从 OBD 获得的 PID 等效(且符合)的 PGN 和 SPN。那么:J1939 车辆是否也符合 J1979(ISO15031-5 和 15765)?提前致谢
    • 否,J1939 车辆不符合 1979 标准。虽然 OBD2 PID 信息仅应 OBD2 测试设备的请求提供,但 J1939 协议在大多数重型车辆中用作通信的基本手段CAN 流量 - 意味着数据是连续广播的。如果您将硬件插入 j1939 卡车/公共汽车并简单地执行“can dump”,您将:
    • ----时间戳:1593742646.558943 ID:0cf00400 X DLC:8 0c 7d 7d E0 47 00 ff 7d 频道:can0 -----时间戳:1593742646.559514 ID:0cf00300 X DLC:8 d1 00 00 ff ff ff 00 ff 频道:can0 ----- 时间戳:1593742646.560094 ID:18feef00 X DLC:8 ff ff ff 64 ff ff ff ff 频道:can0
    • 因此,以第一条消息 (CF00400) 为例,如果您将 F004 转换为十进制,您会发现 61444 这是 j1939/71 PGN61444 上的数字,代表“电子发动机控制器 1 - EEC1”是其中包含一些消息的消息组。比如发动机转速是字节4-5(E0 47),代表转速,根据协议你需要像47E0这样读,转换成十进制=18400,应用发动机转速的分辨率(0.125) .所以比我们有 18400x0.125 = 2300 rpm
    • 如果您愿意,请通过 g97santos@gmail.com 给我发送电子邮件,我可以与您分享一些我过去已经收集的 MF4 和 txt 文件中的真实 J1939 Truck CAN 数据。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多