1

我是一个完整的CAN 总线新手。我希望有 CAN 经验的人能指出我正确的方向。我得到了一个 Vector VN1610 USB 到 CAN 适配器和一个 Continental ARS-308 雷达传感器。目标是从传感器读取一些速度和距离信息。现在我只是想查看任何数据,但我得到的只是 id 为 0 或 0x80000000 的消息。数据有效载荷全部报告为 8 个字节的 0。

什么有效

我已经能够使用提供的示例 .NET 代码并设置 VN1610。ARS-308 有一个 CAN 通道,因此在我的应用程序的矢量硬件配置中,我只需将“CAN 1”映射到 VN16101 通道 1。(我未分配 CAN 2)然后我假设我使用该通道进行发送和接收. 代码报告通道设置了激活并且没有报告错误。然后我有一个线程来寻找传入的消息。如果我不调试上面提到的两个 ID,我实际上可以处理所有这些 ID,然后我会收到 XL_ERR_QUEUE_IS_EMPTY 消息。所以看起来一切正常,我只是没有得到任何真实数据。

什么没有

我认为大陆 ARS 设备会收到大量 0x200 - 0x702 范围内的数据消息。现在我更习惯于以太网类型的协议,我会在其中发送命令然后读取响应。我的文档都没有谈论 CAN 的工作原理,所以我假设在 CAN 中设备只是发送数据。我当然找不到任何命令告诉设备向我发送我感兴趣的特定 msg ID。我是否缺少一些基本的 CAN 配置步骤来通知设备它应该开始发送数据?任何建议都将不胜感激。
如果重要的话,我在 VS2013 中编写,.NET 在 Win 7 64 Ultimate 机器上。

4

1 回答 1

2

答案是否定的。事实证明,当你打开它们时,CAN 设备确实会开始流式传输消息(至少这个是这样)。id 为 0x0 和 0x8000000 的消息是伪造的。即使关闭了雷达传感器,我也继续看到这些消息。

原来我遇到了硬件问题。CAN 总线需要安装一个 120 欧姆的电阻。问题是当外壳放回电缆上时,电阻器破裂了。一旦我们修复了这个,一切都开始按预期工作。

于 2014-06-06T21:39:09.097 回答