1. CAN接口卡是否可能作为COM端口安装?

  2. 如何将邮件分解为单独的帧?如何将收到的多个帧中的数据组合成一条消息?这是一个有效的问题吗?

  3. 什么是CANopen堆栈?如果我已经有一个用于与串行端口通信的API,我可以让我的程序在没有CANopen堆栈的情况下读取/发送CANopen消息吗?我的计划究竟要做什么?

  4. 在软件中实现对象词典(OD)的理想/正确方法是什么?

  5. (目前的情况:我必须编写一个Java程序来解释CANopen消息。由于某些情况,我无法掌握CAN硬件。)

    (这是我上周在 Java上发布的一系列Stack <!> nbsp; Overflow问题的延续和CANopen 。)

有帮助吗?

解决方案

  1. 这取决于您的接口卡。但最有可能的是,它不会是一个COM端口,但你会得到一个DLL文件,它有导出功能来访问卡(大多数可用的CAN接口通过USB端口连接到你的PC)。但不要担心:尽管它不是官方标准,但大多数DLL文件使用相同的功能,以便您可以将CAN接口与另一个制造商的另一个交换机进行交换而没有任何问题。

  2. 通过CAN总线发送如此多的数据非常罕见,您必须将它们分成多个帧。但如果你必须这样做,那么你必须自己做。

  3. CANopen堆栈是一个库,它提供更高级别的功能供您使用。它负责CANopen所需的一切(例如,心跳),因此您不必自己动手。良好的堆栈也可以处理多个帧(2)。不幸的是,这样的堆栈不便宜,但恕我直言,他们是值得的。

  4. 大多数实现使用ROM或RAM中的结构,具体取决于是否可以修改OD。但是一个好的CANopen堆栈也已经为你完成了这个。

其他提示

3)虽然商用CANopen堆栈肯定是一个好主意,但仍然可以在不使用CANopen消息的情况下读取/发送CANopen消息。

我们不知道您的申请的目的是什么。但是,如果没有CANopen堆栈可能会没问题,那么如果您已经拥有一个具有主节点和从节点的CANopen总线,并且您只想收听特定消息。另一个例子可能是,如果您正在编写一个小型配置或测试实用程序,并且使用了一组定义良好的消息。在这种情况下,完整的商用CANopen堆栈可能会造成很多过度杀伤。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top