gpt4 book ai didi

java - 试图理解 CANopen 的程序员

转载 作者:行者123 更新时间:2023-12-02 08:38:33 59 4
gpt4 key购买 nike

  1. CAN 接口(interface)卡可能会安装为 COM 端口吗?

  2. 如何分解消息作为单独的帧发送?将接收到的多个帧中的数据组装成一条消息怎么样?这是一个合理的担忧吗?

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

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

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

(这是我上周在 Java and CANopen 发布的一系列 Stack Overflow 问题的延续。)

最佳答案

  1. 这取决于您的接口(interface)卡。但最有可能的是,它不是一个 COM 端口,但您会得到一个 DLL 文件,其中包含访问该卡的导出函数(大多数可用的 CAN 接口(interface)通过 USB 端口连接到您的 PC)。但不用担心:尽管它不是官方标准,但大多数 DLL 文件都使用相同的函数,因此您可以毫无问题地与其他制造商的 CAN 接口(interface)交换。

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

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

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

关于java - 试图理解 CANopen 的程序员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/432458/

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