工具/软件:
您好、
我们基于 C2000 的 ECU 上存在 CAN 通信故障问题。 该问题是随机发生的、但它是可重复出现的。
这是 3 个 ECU 单元的通用方框图。 它们共用同一个内部 CAN 总线。 ECU1 和 ECU2 是 C2000。

ECU3 首先通电、然后是 ECU1 和 ECU2。
在上电序列期间、ECU1 正确上电、并将 CAN 消息正确发送至 CAN 总线。
ECU1 上电后、ECU2 通电。
在 ECU2 上电期间、它会阻止 CAN 总线通信。 TXD 显性低故障。 该模式在 ECU2 上电 2ms 期间发生。 您可以在连接处检查示波器波形。
ECU2 上电后、我的 ECU1 无法向 CAN 总线发送任何 CAN 消息。 它似乎是偶然的,它不能发送任何 CAN 消息到 CAN-bus。 我不知道是哪个器件发生的:C2000-SW、C2000-HW 或者 CAN 收发器。
我看到 RX 处于高电平状态、如上图所示。 我连接了故障情况和无故障情况下的示波器波形。 您还可以看到、发生故障后橙色 ON 始终较高。
在故障瞬间、ECU2 使 CAN 总线 TXD 处于显性低故障状态。 这是在我的 ECU1 发送消息期间发生的、如果在我的消息发送后(随机)打开 ECU2、将不会出现故障。
- 我不知道哪一个是 CAN 收发器、ecu1-sw 或 ecu1-HW CAN 模块。 您能否评论 ECU1 的 Rx 引脚在发生故障后为何始终为高电平? 发生故障后、什么可能导致 Rx 引脚变为高逻辑电平?
2. ECU1 在收到 msg 时进入 CAN-中断,并发送消息而不中断。 它发送周期时间为 10ms 和 100ms 的消息。 此故障模式可能随时发生、我的 ecu1 c2000-SW 不应卡住、并应在发生任何故障后恢复。 如果有任何软件错误、或者我错过了 CAN 中断例程上的任何清除软件线路、我需要修复该问题。 您能为我提供 C2000 的 CAN 模块软件推荐来解决此类冲击问题吗? 它如何进入安全通信状态? ECU1 无法在总线上发送任何 CAN 消息、但是、我的 TX 引脚的行为类似于进行通信。 Rx 在发生故障后设置为高电平。
如果有任何关于 C2000ware 的软件代码示例、您能给我展示一下吗? C2000-SW 应避免这种 CAN 总线故障。
总之、只有在 ECU1 发送消息并且同时打开 ECU2 时、才会发生故障模式。 如果在发送消息后 ECU2(随机)打开、则不会出现故障。
我附加了问题情况和没有问题情况波形。
示波器图通道说明如下所示。
CH2:ECU2 的电源电压| CH3:ECU2 收发器的 TXD 引脚| CH5:ECU1 的 TJA1057 的 Rx | CH7:CANH | CH8:CANL
无故障情况波形如下所示

故障情况波形如下所示

