0

我在 2 个 ECU 之间使用 CANCase VN1640A 以伪造 CAN 消息。在桥梁模拟设置下方:

在此处输入图像描述

在我的 CAPL 代码中,从通道 1 接收到的消息将被重定向到通道 3,反之亦然。(到目前为止,我没有伪造任何消息)

variables{
message can1. msgCAN1;
message can3. msgCAN3;
}

on message can1.{
 msgCAN3=this;

 if(this.dir == rx)
 output(msgCAN3);
}

on message can3.{
 msgCAN1 = this;

 if(this.dir == rx)
 output(msgCAN1);
}

但是当我启动 CANoe 时,我收到以下错误消息:

在此处输入图像描述

此错误意味着 CANoe 尝试发送更多信息。发送缓冲区溢出。我已将传输队列大小的硬件配置更改为最大 32768 条消息,接收延迟也更改为非常快,但不幸的是错误再次发生。

有没有人有任何提示可以帮助解决这个问题并提前感谢。

4

3 回答 3

0

错误消息可能意味着 CANoe 尝试发送更多信息。发送缓冲区溢出。这可能有几个原因:

  • 总线上充满了高优先消息,因此 CAN 硬件无法发送
  • 您有一个程序可以非常快速地将消息写入缓冲区,因此卡无法发送(while 循环)。
  • 发送时出现错误帧,因此卡无法发送。

Vector工具提供循环测试:

从 CH1 向 CH3 发送消息。如果这工作正常,那么问题似乎是由您的 CANoe 配置引起的。

必要的测试程序是 Vector Driver Setup Files 的一部分,位于 Common 文件夹中。您可以从 www.vector.com/driver-setup 下载驱动程序设置文件。

CAN 高速环路测试: http ://kb.vector.com/entry/589/

CAN 低速环路测试:http: //kb.vector.com/entry/590/

在此处输入图像描述 如果循环测试工作正常,您可以看到时间、总线负载等。如果没有,您将收到一条失败的消息。 在此处输入图像描述

笔记:

  • 减少 CANoe/CANalyzer 中使用的通道数量:

    配置| 选项| 测量| 一般| 渠道使用

  • CANoe 配置中的选定通道是否比矢量硬件配置中分配的 CANcab 多?

    开始|控制面板|硬件和声音|矢量硬件

  • 请检查 Vector Hardware Config 中的通道和应用程序分配。

于 2019-12-10T12:52:46.680 回答
0

请检查 CANoe 中的硬件映射。当映射不正确或受到干扰时,通常会出现此错误。转到硬件-> 网络硬件配置-> 驱动程序-> 为矢量硬件选择正确的通道在此处输入图像描述

我希望这有帮助 !

于 2020-01-03T08:37:23.557 回答
-2

所以这个错误并不意味着 CANoe 试图发送更多。

相反,这意味着:我们在 CAN 总线上有(许多)错误帧。CANoe 尝试发送不起作用的消息(无论出于何种原因)-> 结果是错误帧。CAN 控制器将重试发送可能再次导致错误帧的帧。现在,随着时间的推移,发送请求会累积并导致更多错误帧。在某些时候,错误帧的缓冲区确实会溢出,从而导致您在写入窗口中看到消息。

解决方案:我们必须检查 Trace Window 并检查我们到达那里的错误帧类型(然后采取适当的措施来防止它们)。

于 2019-12-10T08:59:48.840 回答