问题标签 [can-bus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1628 浏览

serial-port - 强大且易于实现的串行总线(汽车应用)

如果您的主要选择标准是:您将在汽车嵌入式系统中使用哪种串行通信总线:

  • 电气坚固
  • 慢速 (32 kb/s)
  • 易于编程
  • 易于与微控制器接口

它不会传输太多数据,但需要以高速(100 - 500 Hz)定期传输。我发现如果你的地线有噪音,RS-232 就不够可靠。CAN-bus 看起来很有趣,但我没有这方面的经验。

我们目前对 AVR AT90CAN128 微控制器的组合感兴趣。

0 投票
1 回答
7335 浏览

java - Java 和 CANopen

背景

我需要在笔记本电脑上创建一个 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 程序?
0 投票
2 回答
2203 浏览

java - 一个试图理解 CANopen 的程序员

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

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

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

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

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

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

0 投票
2 回答
3336 浏览

java - 使用串行端口的 CANopen PDO

我正在尝试了解 CANopen 协议。

目前,我没有任何 CAN 硬件或 CANopen 堆栈可供试验。

我想知道如何编写一个 Java 程序来简单地解释在 RS-232 端口接收到的 CANopen 消息。

  • 是否有作为串行端口安装的 CAN 接口?
  • 我可以编写一个程序来处理 CANopen 消息吗?我只想能够接收和解释消息。是否像为输入流创建缓冲区然后根据 SOF 和 EOF 将传输分解为单独的消息一样简单?我怎么知道什么是 SOF/EOF,因为它只有 1 位长?
  • 为什么CAN节点的PDO数量有限制?
  • 如何处理 PDO 以识别发送它的节点以及数据类型和值?PDO 是标准 CAN 帧吗?
0 投票
1 回答
684 浏览

java - 编写 CANopen 测试实用程序

我如何在没有商业 CANopen 堆栈的情况下侦听(最好使用 Java)一小组定义明确的CANopen消息?

0 投票
2 回答
736 浏览

can-bus - CANopen PDOs and a communication profile

If the data contains more than one value, how do I know what these values represent? And how do I break up the data into individual values? Am I right to say that the relationship between the PDOs and data to be transmitted are defined in the communication profile?

(I thank Matli for having explained that the CAN interface API probably has functions to retrieve the ID, data length and the data of a CANopen message. Based on the explanation, one could tell if the frame is a PDO and derive the sender node's ID from the COB-ID.)

0 投票
1 回答
720 浏览

can-bus - CAN接口物理内存地址

我在哪里/如何找到我的 CAN 接口卡的物理内存地址?

我需要用它来打开一个端口。

0 投票
2 回答
1927 浏览

mobile - 为 SAE J1939 标准编程

我正在尝试查找有关如何对ifm R 360等嵌入式移动控制器进行编程的信息。我在哪里可以找到有关所用编程语言、所需开发环境和任何其他有用信息的具体信息?

据我了解,编程语言基于 IEC 61131-3。我应该看哪些书籍或教程才能更好地理解这一点?

0 投票
1 回答
459 浏览

pdo - 接收 CANopen PDO 的最快速度

假设最高波特率,接收 PDO 的最高速率是多少?

0 投票
7 回答
33985 浏览

can-bus - 如何编写一个简单的 CANopen 层

我们有一个机器人项目,电机控制器使用CANopen进行通信。我需要使用主微控制器与这些电机控制器通信。问题是我需要在这个微控制器中开发一个CANopen层,但我只知道如何在低级(CAN)发送和接收。

我对 CANopen(PDO、SDO、Heartbeat、对象字典等)了解不多。我试图阅读 CiA 规范,但它非常复杂。如果有人能指出我正确的方向或给我一个很好的教程来编写一个简单的 CANopen 层,我将不胜感激。