gpt4 book ai didi

Java 和 CANopen

转载 作者:搜寻专家 更新时间:2023-10-30 21:08:35 26 4
gpt4 key购买 nike

背景

我需要在笔记本电脑上创建一个 Java 程序来接收/发送 CANopen 消息。

RJ45 被选为网络的物理介质。我是 CANopen 和 Java 通信编程的新手。

如果我看起来很陌生,请原谅我。事实上,我已经读了很多书,但我仍然不知道如何开始。

问题

  1. 除了将 PC 连接到 CANbus 网络外,CAN-PC 适配器还能做什么?
  2. 是否可以在没有 CAN-PC 适配器的情况下将笔记本电脑连接到 CANbus 网络?
  3. 如果需要 CAN-PC 适配器,我应该使用哪种适配器? PCMCIA、并行、串行、USB 等?
  4. 我如何开始编写 java 程序来听/写 CANopen 消息?
  5. 我应该使用哪些库?
  6. 我需要创建自己的驱动程序吗?
  7. 我的程序应该处理心跳监控、错误检测等吗?或者这些由 CAN-PC 适配器处理?
  8. 如何从 CANbus 节点检索特定信息?
  9. EDS 文件和对象字典是如何创建的?每个节点都需要它们吗?
    1. 如何在不购买 CAN 硬件的情况下模拟 CAN 网络来测试我的 Java 程序?

最佳答案

问题太多了。我从来没有用 Java 做过任何与 CAN 相关的编程,但让我们看看我可能会回答哪些问题:

1) Other than connecting a PC to the CANbus network, what else does the CAN-PC adapter do?

这主要取决于您的适配器中嵌入的 CAN Controller 。但基本上它只处理低级的事情,如总线仲裁、错误处理、重传和消息缓冲。

2) Is it possible to connect the laptop to the CANbus network without the CAN-PC adapter?

没有。

3) If a CAN-PC adapter is required, what sort of adapter should I use? PCMCIA, parallel, serial, usb, etc?

在笔记本电脑上?我会选择USB接口(interface)。我对 Kvaser 的界面有很好的体验。

4) How do I get started in writing the java program to listen/write CANopen messages?

取决于您的适配器的 API。 API 很可能是基于 C 的,所以我至少会从一些简单的 C 测试程序开始。 CAN 接口(interface)供应商可能有一些很好的例子。

5) What libraries should I use?

可能是随您的 CAN 接口(interface)提供的那个,至少对于基本的 CAN 部分是这样。对于 CANopen 部分,有一些商业 CANopen 堆栈可用,甚至有些是免费的。我怀疑是否有任何用 Java 编写的。如果您只是进行简单的通信,您也可以自己实现 CANopen 堆栈的必要部分。

6) Do I need to create my own drivers?

一般不会。取决于您的操作系统和 CAN 接口(interface)型号。为您的操作系统选择带有驱动程序的 CAN 接口(interface)。

7) Should my program handle heart-beat monitoring / error detection / etc? Or are these taken care of by the CAN-PC adapter?

CANopen 协议(protocol)栈应在 CANopen 级别处理该问题。低级 CAN 总线错误处理由您的接口(interface)负责。

8) How do I retrieve specific information from a CANbus node?

我不明白你的意思。 PDO 或 SDO,具体取决于您想要的信息类型。

9) How is the EDS file and object dictionary created? Does every node require them?

您通常不需要创建 EDS 文件,但可能对文档有用。对象字典是在软件中实现的。如果要使某些东西符合标准,则 OD 的某些部分是强制性的。

10) How do I simulate a CAN network to test my java program without buying CAN hardware?

我不会... 开发一个有意义的总线模拟器可能比仅仅构建一个 CAN 适配器更昂贵。请注意,许多 CAN 适配器包含双接口(interface),因此您可以在真正的 CAN 总线上进行通信测试,除了适配器和几个端接电阻器之外,只需要很少的硬件。

关于Java 和 CANopen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/423526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com