This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM6442:AM6442:RT Linux:igh EtherCAT 测试的实时性能较差

Guru**** 2551110 points
Other Parts Discussed in Thread: AM6442

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1178832/am6442-am6442-rt-linux-the-real-time-performance-of-igh-ethercat-test-is-poor

器件型号:AM6442

大家好、当我在 AM6442 RT 内核上测试 igh EtherCAT 时会出现问题。

1. RT 内核来自 ti-processor-sdk-linux-rt-am64xx-evm-08.01.00.39, 配置 CONFIG_PRETER_RT 被打开

2.使用 cyclictest 测试 RT 内核

CPU0、CPU1的实时性能不是很好。

隔离 CPU1,CPU1的实时性能优于 CPU0。

IGH EtherCAT 测试

我将电机控制模块(硬件)连接到 cpsw 网络端口或 PRU 网络端口。

使用 EtherCAT 通用驱动 程序、该驱动程序基于 cpsw 网络端口驱动程序或 PRU 网络端口驱动程序。

我 :了一个应用程序、测试 IGH EtherCAT 的第一个 clock_nanosleep (1ms) 、然后通过 EtherCAT API 在 每个周期获取和更改电机状态。

此应用程序将始终计算 每个周期消耗的时间 并记录最小/最大值,、然后每1秒将结果打印到 UART 控制台。

3.1请勿 隔离 CPU1,、然后运行 IGH EtherCAT 测试应用

  无论是 使用 cpsw 网络端口还是 PRU 网络端口、某些周期的耗时都远大于1ms。

3.2隔离 CPU1,、然后在 CPU1上运行 IGH EtherCAT 测试应用

  大多数周期的耗时更好,在1.2ms 左右。

 

但某些 时间段 的功耗远远大于1ms、 跳过 EtherCAT 不匹配的数据报。

由于需要隔离 CPU1、 因此会经常出现有关通过 EtherCAT 跳过不匹配数据报的警告。

无论使用 cpsw 网络端口还是 PRU 网络端口测试 igh EtherCAT、都会出现此问题。

使用 USB 以太网端口(AX88772C)进行测试

  大多数周期的耗时更好,在1.2ms 左右。

即使隔离 CPU1、 也很少出现关于跳过 EtherCAT 不匹配的数据报的警告。

如果 cpsw 网络端口驱动程序或 PRU 网络端口驱动程序限制了 EtherCATRegistered

3.3如果可以在 AM6442 RT 内核上提供某些 EtherCAT 测试结果、该结果如何?

4.如何提高 AM6442 RT 内核的实时性能

除了  隔离 CPU1之外、还有其他方法可以提高 AM6442 RT 内核的实时性能吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的详细信息和背景。 我们尚未在 AM64x 上对 IGH EtherCAT 主站进行基准测试、也没有示例。 我认为您可以采取几个步骤来进行优化。 我在下面按简单顺序列出它们。 首先、我将重点介绍仅使用 CPSW3G 以及前几个步骤。

    1.确定优先事项

    我假设 IGH 应用已经以某种高 RT 优先级运行(即 ps -ALO -policy、priority 将 FF 显示为策略、将-50显示为优先级或类似的内容)、以太网驱动程序将 ksoftirqs 用于以太网帧。 默认情况下、这些运行时长(尽力而为)。 运行 ps aux | grep ksoftirq、然后查找它们的优先级。 使用 chrt -f -p 10和  chrt -f -p 10 21实时设置它们。  

    2.磁芯隔离

    隔离网络和 IGH。 内核。 包括使用隔离器和/或配置。  

    3.对网络的精细控制

    一旦 Linux 调度足够好、就可以利用以太网 TX 中的 QoS 功能、如 https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/08_04_01_04/exports/docs/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSW3g.html#enhancements-for-scheduled-traffic-est-offload 、甚至不使用 Linux 网络堆栈。 EtherCAT 网络不是通用 LAN、它仅具有单个应用和单个原始以太网帧。 因此、编写一个拥有以太网外设且仅可从 IHG EtherCAT 主站使用的定制器件驱动程序。 这种方法有时称为本机驱动程序。

     Pekka