问题标签 [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 投票
0 回答
1112 浏览

can-bus - CAN 2.0 - 故障限制 - 错误计数器的修改

CAN 2.0B 规范中有一件事我不确定我是否理解正确。

在第 8 章 - 故障限制中 - 关于错误计数器的修改有以下规则:

规则 2:当 RECEIVER 在发送 ERROR FLAG 后检测到“显性”位作为第一位时,RECEIVE ERROR COUNT 将增加 8。

规则 6:任何节点在发送 ACTIVE ERROR FLAG、PASSIVE ERROR FLAG 或 OVERLOAD 标志后最多可容忍 7 个连续的“显性”位。在主动错误标志或过载标志的情况下检测到第 14 个连续“显性”位 9 之后,或在检测到被动错误标志之后的第 8 个连续“显性”位之后,以及在每个发送器的每个附加八个连续“显性”位序列之后将其 TRANSMIT ERROR COUNT 增加 8,每个 RECEIVER 将其 RECEIVE ERROR COUNT 增加 8。

那么规则2是否意味着如果节点A发送一个错误帧并且在发送6个显性位(错误标志)之后它检测到下一个位是显性的,它应该增加它的接收错误计数器?我认为错误标志中可能有超过 6 个显性位(准确地说是 6 到 12 个)是可以的......此外,规则 6 说“任何节点在 (...) 之后最多容忍 7 个连续的‘显性’位”

Rule6 还提到了 8 个连续显性位的序列。但这条规则究竟适用于什么?仅适用于在错误帧初始传输之后出现的此类序列?

举个例子:节点A发送一个错误帧,其他节点开始发送自己的错误帧。节点 A 发送其错误标志的 6 位,然后检测第 7 个显性位(增加计数器? - 规则 2)然后我们有另外 6 个显性位,在第 14 个显性位之后,节点 A 再次增加其错误计数器(规则 6 的第一部分)。

然后我们有另外 8 个显性位 - 节点 A 再次增加它的错误计数器(规则 6 的第二部分)。

我对么?我对这些规则感到很困惑,我需要彻底理解它们。希望有人能帮助我:)

0 投票
1 回答
996 浏览

android - 带有 CANCaseXL 工具的 obdII 蓝牙

这是基肖尔

我使用基于 ELM327 的 OBDII 到蓝牙适配器来监控乘用车中的 CAN 流量。换句话说,我们的意图是将 EML327 部署为 CAN2BT 加密狗(用于 CAN 消息接收目的)。

我很想使用 Monitor All 功能来接收车辆中的所有消息(不仅仅是通常通过 OBDII 协议完成的诊断)。我打算使用 ELM327 支持的 AT-MR 和 AT-MT 接口来选择性地收听我们的应用程序感兴趣的消息。

我遇到的问题是,在实验室中,ELM327 连接到 CANCaseXL,在 AT-MA 或 AT-MR 或 AT-MT 模式下,ELM327 不发送任何确认。由于缺少 ACK,尽管 CANcaseXL 以兼容的波特率进行传输,但传输错误会导致 CANcaseXL 进入错误状态。

有没有办法发送一系列专有 AT 命令以将 ELM327 置于不通过 OBDII 诊断协议进行通信的模式,而是通过适当的 ACK 监听原始 CAN 总线活动?

在这方面需要社区的帮助

感谢和问候基肖尔

0 投票
1 回答
5444 浏览

stm32 - 了解 CAN 过滤器

我无法理解 stm32f4-discovery 的 CAN 过滤器配置。

有人可以向我解释这是如何工作的吗?还是在任何地方都有记录?我找不到它。

0 投票
1 回答
987 浏览

c++ - 通过 CAN 通信对连接到计算机的电机进行编程?

我有一个电机连接到我的计算机,它通过 CAN 连接到电机。基本上,我有一个 USB-to-CAN 适配器,我将 USB 电缆从我的计算机连接到该适配器。然后,从适配器通过 CAN 连接电机。

现在,我希望向电机发送数据——我已经知道需要发送什么字节序列,但我不确定要使用哪些命令与通过 CAN 连接的电机“对话”。我已经能够通过直接 USB 连接从我的计算机向电机发送数据(使用 C++ 中的 WriteFile 命令),但这种方法不适用于 CAN。

是否有任何库/函数可用于通过 C++ 中的 CAN 与电机通信?

0 投票
0 回答
150 浏览

microcontroller - CAN报文读取错误

我正在使用英飞凌 XC2768X 微控制器。问题出在if声明中。'uwspeed' 是我从外部 CAN 总线接收到的电机速度。当代码到达这一行时,它不会打开LED P10_6 和 P10_7。我该如何解决这个问题?

0 投票
1 回答
2151 浏览

c++ - 我可以强制冲洗 CAN 总线插座吗

在我的软件(用 C++ 编写)中,我使用 Linux 标准函数在 CAN 总线套接字上打开并执行 I/O 操作。

套接字打开并使用如下:

后面的代码...

但是我注意到有时我刚刚在套接字上写的消息不会通过总线发送。我认为它就像一个有时需要显式刷新的缓冲区(比如同时有很多消息等)。我在网上搜索过,但没有发现任何适合我的情况(很多人建议使用 fflush(),但我只有文件描述符声明为 int),所以问题是:有一种方法可以在不使用 FSTREAM 的情况下强制刷新套接字?

也许不是可以通过我的软件解决的问题,但值得一试...

0 投票
3 回答
3682 浏览

embedded - 是否可以在没有额外硬件的情况下在 Arduino 上安装 CAN?

我想让 Arduino 在 CAN 网络中运行。Arduino是否存在提供OSI模型网络层的软件?我想用 GPIO/ADC 检测 HI/LOW 电平并用 DAC 将信号发送到网络。如果没有附加任何额外的硬件,那就太好了。不过,我不介意 CAN 网络需要一个终端电阻。

我所说的 Arduino 是指其中任何一个。我的目的是保持开发环境。

如果不存在这样的软件,是否存在任何技术障碍,例如有限的闪存大小(再次,我不是指具有某些 Atmega 芯片的特定板)。

0 投票
1 回答
1995 浏览

c# - 使用单声道的 SocketCAN C#

我对单声道和 C# 真的很陌生,但我想使用套接字通过 CAN 打开通信。问题是实现了许多协议地址系列,但目前单声道不支持 CAN。系统内核支持它,但我无法以这种方式修补文件以降低到 SystemCall 级别。因此,如果有人读到这个是非常好的单声道开发社区的一员,请帮助我和许多其他需要这个功能的人。自从三周以来,我用谷歌搜索了任何东西,并试图找到自己的解决方法来启动它,但直到现在还没有成功。即使我的问题在 stackvoerflow 上无法通过这个问题得到解决,我也希望激励那些在改进单声道和硬代码方面比我更好的人,以便其他人能够轻松地使用 CAN 和单声道。SI认为基本问题是,变量 AF_CAN 和 PF_CAN 不是在单声道中实现的。我尽力通过添加值为 29 的 PF_CAN 和 AF_CAN 来调整这些文件,但这对我不起作用

我希望得到帮助,因为它都在那里,但我无法将它们放在一起。使用 C 可以很容易地以这种方式打开一个套接字,并且 CAN 总线工作正常,但使用单声道时,缺少一块小石头才能使其全部正常工作。

最好的问候本

0 投票
1 回答
6108 浏览

windows - 以太网上的 SocketCAN

我将尝试简要解释我们的场景。

我们想为在 Ubuntu 上运行的系统设置一个模拟环境,以便我们可以将它与基于 Windows 的模拟工具套件一起使用。目前,我们在 Windows 主机上使用 VirtualBox 在虚拟机中运行 Ubuntu。在 Ubuntu 中,我们使用 SocketCAN,我们希望继续这样做,但不是使用真正的 CAN 硬件,而是以某种方式通过以太网设置 CAN 与 Windows 主机的通信。

我是 Linux 上的 CAN 新手,但我一直在阅读 SocketCAN 并且想知道我们是否可以以某种方式使用虚拟罐(vcan)?

我感谢任何帮助澄清是否以及如果是,如何实现 SocketCAN over Ethernet。

0 投票
3 回答
2788 浏览

arduino - 如何编程 CAN-BUS arduino shield 来控制车窗?

我的项目是使用语音识别来控制车窗。我已经使用 EasyVR arduino shield using 和 arduino MEGA 成功控制了一些 LED。现在我想使用 CAN-BUS arduino shield 来控制窗户。

因为我拥有的汽车没有 OBD-II 连接器,所以我使用了两个带有两个 CAN-BUS arduino 屏蔽的 arduino,一个作为发送器,另一个作为接收器。现在我不知道如何编程 CAN-BUS arduino shield 来模拟汽车的窗户?

我正在使用的 CAN-BUS 屏蔽:https ://www.sparkfun.com/products/10039

Arduino巨型:https ://www.sparkfun.com/products/11061