公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

我正在使用 TC387 控制器,当 CAN 总线上的流量增加时,CPU 负载约为 100%。

如何增加流量-

通过以 1 毫秒的周期从 Canoe 发送消息,无论这些消息按照 DBC 文件配置的周期性如何。

CAN 配置为基于中断。

CPU 负载增加的影响-

由于 Core0 的负载增加,CAN 通信停止工作。

通信堆栈在 Core0 上实现。

核心影响力-

Core0 上的 CPU 负载已达到峰值,可以接收和处理来自 COM 的 CAN 消息,并进一步共享给其他应用程序。

由于 CAN 流量的增加,其他内核没有受到显著影响。

查询-

可以采取/检查哪些措施来优化 CAN 流量增加导致的 CPU 负载,从而使 CAN 通信不受影响?

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/CPU-Load-Increase-with-CAN-Traffic/td-p/657828

0 点赞
1 解答
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

由于我们不完全了解您的应用程序和要求,因此很难确定根本原因,但是您可以检查以下可能的优化:

1。分析您的 ISR 执行时间并检查是否可以对其进行优化。

2。请检查从不同内核执行的可行性,以便在内核之间分配 CAN 节点。

3。检查为代码访问启用缓存是否改善了行为。

4。如果从应用程序的角度来看,有足够的 PSPR RAM 可用,请尝试直接从 PSPR 执行 ISR。

5。请检查您的 CAN 消息对象配置,我想您可能会收到所有 CAN 消息,无论您的应用程序是否需要它。 如果这是真的,那么我认为你可以重新配置 CAN 消息对象配置。

问候,

Prudhvi。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/CPU-Load-Increase-with-CAN-Traffic/m-p/664355

在原帖中查看解决方案

0 点赞
3 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

很明显,发送所有 CAN 消息 @1ms rate 的方法正在导致 CPU 负载。 我可以知道你用这种方式测试的原因吗?

假设如果波特率为 500k,则每个比特大约需要 2us。 因此,对于典型的经典 CAN 帧 32 位标识符 + 64 位数据 + 协议位,它需要大约 120-130 位,因此无论来自其他外围设备的 ISR 处于活动状态,ISR 都应在此时间内处理 CAN 帧。

此外,我不了解你的系统,但我可以看出这是可能的,因为这个 CPU 为这些中断提供更高的负载,我认为优化的可能性是按照 dbc 要求配置所有消息。

问候,

Prudhvi。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/CPU-Load-Increase-with-CAN-Traffic/m-p/658301

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

当按照 DBC 定期传输消息时,在我们的 HIL 平台上进行的测试会导致 CPU 负载增加。

因此,以 1 毫秒发送只是为了重现高流量情况。

即使以配置的周期传输消息,我们如何优化由于 CAN 流量过高而导致的 CPU 负载增加。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/CPU-Load-Increase-with-CAN-Traffic/m-p/658663

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

由于我们不完全了解您的应用程序和要求,因此很难确定根本原因,但是您可以检查以下可能的优化:

1。分析您的 ISR 执行时间并检查是否可以对其进行优化。

2。请检查从不同内核执行的可行性,以便在内核之间分配 CAN 节点。

3。检查为代码访问启用缓存是否改善了行为。

4。如果从应用程序的角度来看,有足够的 PSPR RAM 可用,请尝试直接从 PSPR 执行 ISR。

5。请检查您的 CAN 消息对象配置,我想您可能会收到所有 CAN 消息,无论您的应用程序是否需要它。 如果这是真的,那么我认为你可以重新配置 CAN 消息对象配置。

问候,

Prudhvi。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/CPU-Load-Increase-with-CAN-Traffic/m-p/664355

0 点赞