ZHCAEA5 August   2024 AM625 , AM6442 , AM69 , TDA4VM

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
    1. 1.1 什么是 EtherCAT?
    2. 1.2 什么是 PLC?
    3. 1.3 什么是 CODESYS?
  5. 2评估平台和方法
    1. 2.1 硬件
    2. 2.2 软件
    3. 2.3 测试拓扑
  6. 3性能指标
    1. 3.1 Cyclictest 性能指标
    2. 3.2 EtherCAT 性能指标
  7. 4优化
    1. 4.1 已实现的优化
    2. 4.2 未来注意事项
      1. 4.2.1 设置最大 CPU 频率
      2. 4.2.2 隔离核心
      3. 4.2.3 设置 CPU 亲和性
      4. 4.2.4 隔离核心并设置 CPU 亲和性
      5. 4.2.5 Ksoftirqs 到 FIFO
      6. 4.2.6 增加实时调度时间
      7. 4.2.7 禁用 irqbalance
      8. 4.2.8 使用独立的网络接口卡 (NIC)
      9. 4.2.9 禁用不必要的驱动程序
  8. 5总结
  9. 6参考资料
  10. 7附录 A:如何使用 CODESYS 协议栈将 TI 嵌入式处理器设置为 EtherCAT 控制器
    1. 7.1 硬件要求
    2. 7.2 软件要求
    3. 7.3 硬件设置
    4. 7.4 软件设置
      1. 7.4.1 Windows PC 设置
      2. 7.4.2 EtherCAT 控制器设置
      3. 7.4.3 CODESYS Development System 项目
      4. 7.4.4 执行
    5. 7.5 如何查看性能测量结果
      1. 7.5.1 附录 A 资源
  11. 8附录 B:如何在 CODESYS 协议栈上实现无限运行时间
    1. 8.1 CODESYS 许可背景
    2. 8.2 获取 CODESYS 许可证
    3. 8.3 激活 CODESYS 许可证
      1. 8.3.1 背景
      2. 8.3.2 建议的步骤
    4. 8.4 验证已应用 CODESYS 许可证
      1. 8.4.1 验证已应用 CODESYS 许可证的已知问题

Cyclictest 性能指标

在运行 EtherCAT 应用程序时,在评估每个硬件平台的性能之前,通常建议先通过运行 cyclictest 收集基准性能统计信息。这些统计信息是运行 CODESYS 协议栈时 EtherCAT 控制器性能的良好指标。

Cyclictest 是 Linux 中的一种实用工具(另请参阅 Linux Foundation),它可以重复地准确测量线程的预期唤醒时间与线程实际唤醒时间之间的差异,以提供有关系统延迟的统计信息。实时系统中由硬件、固件和操作系统引起的延迟可以通过 Cyclictest 来测量。

Cyclictest 的结果以与开源自动化开发实验室 (Open Source Automation Development Lab, OSADL) 在 QA Farm on Real-time of Mainline Linux 中发布的数据采用相同的直方图格式绘制。OSADL 是一个组织,它的宗旨是通过引入更广泛的社区来帮助开发,以促进个人、团体和公司开发开源软件。QA Farm 是 OSADL 提供的一项服务,它是嵌入式系统的质量保证和评估测试中心。

Cyclictest 的结果是在 AM62x 评估板 (SK-AM62B)、AM64x 评估板 (TMDS64EVM)、TDA4VM 入门套件 (SK-TDA4VM) 和 AM69 入门套件 (SK-AM69) 上捕获的,以显示在这些平台上运行的基本延迟。SK-AM62B 和 TMDS64EVM 分别在 PROCESSOR-SDK-LINUX-RT-AM62x 和 PROCESSOR-SDK-LINUX-RT-AM64x 默认 wic 映像上运行,这些映像均来自软件开发工具包 (SDK) 版本 09.01.00.08。TDA4VM 和 AM69 在来自各自 SDK 09.01.00.06 版本的实时内部版本上运行。在负荷试验下,每个 cyclictest 均使用 stress-ng 工具运行 6 小时。如需了解此设置,请参阅下面的代码片段。

stress-ng -c <number of cpu cores> --cpu-method all &
cyclictest -m -Sp98 -D6h -h400 -i200 -q > <histogram name>.hist
AM6442, AM625, AM69 在使用 stress-ng 的情况下 AM62x 运行 6 小时的延迟图图 3-1 在使用 stress-ng 的情况下 AM62x 运行 6 小时的延迟图
AM6442, AM625, AM69 在使用 stress-ng 的情况下 AM64x 运行 6 小时的延迟图图 3-2 在使用 stress-ng 的情况下 AM64x 运行 6 小时的延迟图
AM6442, AM625, AM69 在使用 stress-ng 的情况下 AM69 运行 6 小时的延迟图图 3-3 在使用 stress-ng 的情况下 AM69 运行 6 小时的延迟图
AM6442, AM625, AM69 在使用 stress-ng 的情况下 TDA4VM 运行 6 小时的延迟图图 3-4 在使用 stress-ng 的情况下 TDA4VM 运行 6 小时的延迟图