嗨,NXP 小组:
测试硬件:S32G274
软件版本:bsp38
can setting: ip link set llcecan(0~3)type can \
bitrate 500000 \
sample-point 0.8 \
dbitrate 2000000 \
dsample-point 0.7 \
fd on
测试用例:
1: Vector v1640 can1 可以连接到 s32g 的 can0~can3, can2 可以连接到 s32g 的 llce_can0~llce_can3
2: vector1640 发送 can 数据,s32g 接收 can 数据。
3: 检查发送和接收的数据帧是否一致。
测试结果:
1:数据帧在 llce_can0~llce_can3 中丢失,但在 can0~can3 中没有丢失。
参考图像如下
图 1:我们可以看到 v1640 can1 共发送了 1,823,705 帧,而在图 2 中,s32g274 can0~can3 收到了 1,823,705 帧而没有任何帧损失。
我们可以看到,v1640 can2 发送的帧总数为 1 845 947,而 s32g274 llce_can0~llce_can3 接收的帧总数约为 1 845 887。损失 60 帧。
当 CPU 负载相对较高时,丢帧情况就会恶化。是否有可能增加 LLCE_CAN_MAX_RX_MB,以减少 CPU 负载。同时,如何解决丢帧问题?是否有任何优化项目?
ZHANGBOWEN_0-1780368083252.png
ZHANGBOWEN_1-1780368090168.png
你好,@张博文
感谢您的回复。
为了进一步调查这个问题,我首先希望在本地 RDB2 上重现这个问题。
您能否澄清以下问题?
1.您的测试使用的是哪个版本的 LLCE FW?
2。你有没有用其他版本的 BSP 测试过?如果是这样,结果也一样吗?
3.是否只有在通过所述的 8 个 CAN 通道进行基准测试时才会出现丢帧现象?请问您是否只对 LLCE CAN 接口进行过压力测试?有没有简化的测试设置可以重现该问题?
4.测试的负载是多少?发现帧丢失时的吞吐量值是多少?测试期间 CPU 的平均负载是多少?
BR
切宁
您好,
感谢您的回复。
在我将 LLCE_CAN_MAX_RX_MB 修改为 64 和 128 后,CPU 负载并没有减少,或者减少得不明显,因此很难观察到。 而 llcecan 的丢帧现象依然存在
你好,@张博文
谢谢您的帖子。
从共享的描述来看,似乎是在系统负荷较高时丢失了帧。
我建议尝试更改 LLCE_CAN_MAX_RX_MB 中的 值。
BR
切宁
您好,
感谢您的回复。
1.LLCE FW 版本为 HHFF_2A [REL_LLCE1_0_6|BLD_RDC2303221606]。
2.只对 bsp38 进行了测试。
3.仅对 llcecan 进行了无帧丢失的压力测试。但是,在同时对所有 8 个 can 通道进行压力测试时,出现了丢帧(4 通道 llce 测试和 8 通道 can 测试使用的软件相同)。
4. canoe 总线负载为 55% ,8 通道 can 测试期间的平均 CPU 负载为 60% ,4 通道 llce 测试期间的平均 CPU 负载为 37%
你好,@张博文
感谢您的回复。
1.请您帮助检查是否有更简单的方法来重现该问题?
2。我知道目前它只发生在 8 通道测试中,我能知道你的板上是否只有 4+4 CAN 接口吗?是否只能在 LLCE 上进行测试才能重现该问题?(说LLCE 接口上有 4 个以上通道)
在 RDB2 上,只有 2 个 FlexCAN,但有 16 个 LLCE CAN,如果能提供简化的测试方法,将非常有帮助。
BR
切宁
您好,
(1) 我在开发板上运行了我们的项目程序。我不方便把整个文件发给你进行测试。您可以直接使用 canoe 将 llcecan0 连接到 llcecan3,而无需运行任何程序,以每秒 8000 帧的速度进行流媒体测试。
(2) 它只能以每秒 8000 帧的速度流式传输 4 个频道的 llcecan。即使发送 1000 万帧,也不会出现丢帧现象