0

这是基肖尔

我使用基于 ELM327 的 OBDII 到蓝牙适配器来监控乘用车中的 CAN 流量。换句话说,我们的意图是将 EML327 部署为 CAN2BT 加密狗(用于 CAN 消息接收目的)。

我很想使用 Monitor All 功能来接收车辆中的所有消息(不仅仅是通常通过 OBDII 协议完成的诊断)。我打算使用 ELM327 支持的 AT-MR 和 AT-MT 接口来选择性地收听我们的应用程序感兴趣的消息。

我遇到的问题是,在实验室中,ELM327 连接到 CANCaseXL,在 AT-MA 或 AT-MR 或 AT-MT 模式下,ELM327 不发送任何确认。由于缺少 ACK,尽管 CANcaseXL 以兼容的波特率进行传输,但传输错误会导致 CANcaseXL 进入错误状态。

有没有办法发送一系列专有 AT 命令以将 ELM327 置于不通过 OBDII 诊断协议进行通信的模式,而是通过适当的 ACK 监听原始 CAN 总线活动?

在这方面需要社区的帮助

感谢和问候基肖尔

4

1 回答 1

2

尝试 CSMx 命令。请参阅 ELM327 数据表的第 15 页:

CSM0 和 CSM1 [CAN Silent Monitoring off 或 on ]

ELM327 设计用于完全无声地监控 CAN 总线。因此,它能够准确地报告所看到的内容,而无需以任何方式对信息进行着色。有时(在台架测试时,或连接到专用 CAN 端口时),ELM327 最好不要静默运行(即生成 ACK 位等),这就是 CSM 命令的用途。CSM1 开启,CSM0 关闭,默认值由 PP 21 决定。实验时要小心,如果选择了错误的波特率,然后在静默监控关闭的情况下监控 CAN 总线,会干扰流量数据。始终保持静音监控,直到您确定您选择了正确的波特率。

于 2014-02-08T18:33:03.470 回答