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:PRU 用于 EtherCAT 主站

Guru**** 2800955 points

Other Parts Discussed in Thread: AM6442, AM6422

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1620683/am6442-pru-usage-for-ethercat-master

器件型号: AM6442
主题: AM6422 中讨论的其他器件

您好:

我使用 AM6442 实现 EtherCAT 主站功能。 目前、我只发现 PRU 用作 EtherCAT 从站器件。 是否有 PRU 用作 EtherCAT 主站的参考设计或演示?  

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

    您好:  

    因为对于 EtherCAT 从站、所以运行 EtherCAT 主站没有特定的以太网硬件要求。 这就是为什么 PRU 必须用于 EtherCAT 从站、但 CPSW 或 PRU 可用于 EtherCAT 主站的原因。

    EtherCAT 主站实现通常通过开源或商业 EtherCAT 主站协议栈来实现。 您可以在此处找到过去已在 TI 硬件上测试过的第三方栈:  【常见问题解答】如何使用 TI 处理器设置 EtherCAT 网络 

    对于我们测试的一些 EtherCAT 主站协议栈、 常见问题解答中提供了一些演示视频链接。

    请问大约有多少个 EtherCAT 从站/子器件计划使用您的 EtherCAT 主站设置进行控制? 这些子器件是运行同步电机控制还是数字 I/O?  您的终端应用需要满足的目标周期时间和抖动是多少?

    请注意、根据您最终应用的性能要求(例如,高速同步电机控制(例如机械臂/手控、传送带控制与传感器/执行器控制)、如果您想使用 AM6442 上的 R 内核或 A 内核运行 EtherCAT 主站、则必须仔细考虑。 还应考虑 EtherCAT 主站协议栈的易用性。 开源堆栈是免费的、通常更轻(处理器负载成本更低,对实时性能的干扰更少)、但需要经验更丰富的程序员来编程 PLC 逻辑。 商用堆栈提供更多的库和功能(需要更少的 PLC 编程)、但在处理负载时会更重、并且调优时可能很复杂、从而实现出色的实时性能。 这些都是您在设计系统时应仔细考虑/评估的所有方面。

    -道林

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

    尊敬的 Daolin:

    感谢您的快速回答。 以下是我的评论:

    1. EtherCAT 子设备应是伺服模块这样的运动控制单元。 通常、我们预计在 1ms 的同步周期内会有超过 30 轴的运动应用。 平均 CPU 负载预计低于 50%。

    2. 在 CPSW 和 PRU 上运行的 EtherCAT 协议栈之间是否存在性能差异? 我们基于在 Linux 上运行的 CODESYS 运行时测试包、使用 AM6442 EVM 板进行了一些测试。 但性能不太好(10 轴子模块、CSV/CST 应用、1ms 同步周期)。 平均周期时间超过 250us)。 因此、我正在考虑是否可以在 PRU 或其他方向上做出改进并进行测试。 此外、我是否可以测试 R5F 内核上 EtherCAT 主站堆栈的任何成功案例或参考设计?

    BRS

    Feng

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

    您好 Feng、  

    我们基于 CODESYS 运行时测试包进行了一些测试、该运行时测试包使用 AM6442 EVM 板在 Linux 上运行。 但性能不太好(10 轴子模块、CSV/CST 应用、1ms 同步周期)。 平均周期时间超过 250 μ s)。

    在使用 CODESYS 运行时进行的测试中是否应用了任何实时调整? CODESYS 是一种更重的协议栈、因此调优 Linux 系统以实现实时优化通常是显著提高性能的必要步骤。 这可能包括禁用 irqbalance 并将不同的以太网 IRQ 分配给特定的 CPU 内核、用于实时特定进程与非实时进程的隔离式 CPU 内核、从而实施中的步骤  2.5.1. RT-Linux 11.02.08.02 性能指南—Processor SDK AM64X 文档可改善中断延迟 — 该文档有助于解决 EtherCAT 抖动问题、并可在 https://www.linutronix.de/blog/A-Checklist-for-Real-Time-Applications-in-Linux 上找到更多建议。对于 CODESYS 特定优化、您可以查看 性能优化 (请注意,如果对 CODESYS 优化有任何疑问、您应该联系 CODESYS)

    另请注意、AM6442 只有两个用于 Linux 的 A 内核、因此我遇到的一个问题是、是否对将 AM6442 用于您的系统有任何特定的硬性要求?

    平均周期时间超过 250 μ s)。 因此、我正在考虑是否可以在 PRU 或其他方向上做出改进并进行测试。 此外、我是否可以测试 R5F 内核上 EtherCAT 主站堆栈的任何成功案例或参考设计?

    我们发现、使用的 R5F 内核具有明显更好的性能 来自 IBV 的 EtherCAT 主站协议栈。 请参阅 icECAT EtherCAT 主站协议栈 — 有关 R5F 内核上 AM6442 的基准测试白皮书基准测试、其中包含 23 个子器件、 达到 100us 周期时间 使用已集成到 IBV 的 EtherCAT 主站协议栈中的优化以太网驱动程序(针对 PRU-ICSSG 以太网实现)。 IBV 目前是 TI 的合作伙伴、您可以通过 https://www.ti.com/tool/IBV-3P-ICECAT 查看他们的页面 

    -道林

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    另请注意、AM6442 只有两个用于 Linux 的 A 内核、因此我遇到的一个问题是、是否对在您的系统中使用 AM6442 有任何特定的硬性要求?

    这并不是特定的要求、而是要与之前的产品 (AM6422) 保留相同的平台。  

    此外、正如您提到的、IBV 有用于 PRU 的优化以太网驱动程序、 TI 是否也有类似的驱动程序或任何这方面的计划? 我看到有一些 PRU 用作子器件的示例、但并没有太多用于 EtherCAT 主站。 因此、我想知道 PRU 如何提高 EtherCAT 主站设计的性能。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
     TI 是否也有类似的驱动程序或任何这方面的计划? [/报价]

    否、但如果您喜欢看这个主要不同之处、则 Linux 与 RTOS 的实时延迟是不同的。 在您提到的 1ms 周期时间内、从 R5F 运行 Enet LLD(RTOS 驱动程序)应该足以满足所需的性能。