我建议您查看 SAE J1939 文档,更具体地说是J1939/21、J1939-71和J1939/73。
一般来说,一个J1939传输协议响应序列可以这样处理:
- 识别 BAM 帧,指示正在启动一个新序列(通过 PGN 60416 - 0xEC00 可以通过 0x1C ECFF 00 到达)
- 从 BAM 有效载荷的字节 6-8 中提取 J1939 PGN 以用作新帧的标识符
- 通过连接数据传输帧的字节 2-8(即不包括第一个字节)来构造新的数据有效负载
A J1939 数据传输消息,ID 为 1CEBFF00(PGN 60160 或 EB00)。
上面,BAM 的最后 3 个字节等于 E3FE00。重新排序时,它们等于 PGN FEE3 又名引擎配置 1 (EC1)。此外,通过组合 6 个数据传输包/帧中的前 39 个字节来找到有效负载
管理控制设备或任何发布车辆使用状态 PID 的设备应该对运行开关状态(SPN 3046 - 0xFDC0,可能可以通过 0xCFDC000 到达)和任何其他本地定义的授权使用标准(即驾驶员登录)敏感) 在车辆使用状态 PID 用于生成未授权使用警报之前。
此外,您不能忘记使用读取/发送来扩展 ID 消息,因为它是 24 位的。
事实上,我会建议你使用can-utils来使你的分析更加容易。一个简单的罐头转储或罐头嗅探器,您可以看到广播中即将发生的事情。
一些汽车的 dbc https://github.com/commaai/opendbc