ZHCADD3 November 2023 AM2431 , AM623 , AM625-Q1 , AM625SIP , AM62A1-Q1 , AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM62P-Q1 , AM6412 , AM6526 , AM6528 , AM6546 , AM6548 , AM67 , AM67A , AM68 , AM68A , AM69 , AM69A , DRA821U , DRA821U-Q1 , DRA829J , DRA829J-Q1 , DRA829V , DRA829V-Q1
在 RT Linux 上运行且采用 Codesys EtherCAT 主站但未进行任何调优或优化的 Sitara AM6412 的时序如图 4-2 所示。测量基于 TX_EN RGMII 信号,该信号从帧开始到结束都为高电平。该信号在传输帧的持续时间内保持高电平。例如,对于以 100Mbit/s EtherCAT 速度传输的 200 字节帧,TX_EN RGMII 信号处于高电平的持续时间为 16μs。在 TX_EN 测量中需要考虑抖动测量值。使用的周期时间为 1.5ms,放置在线路上的帧开始的抖动约为 ±120μs。在具有 2GHz Cortex A72 的 AM682 上,图 4-3 中的相同测试显示了该抖动的大约一半。
图 4-2 Sitara AM6412 的基准 CODESYS EtherCAT 帧 TX_EN 时序 - 1.5ms 周期时间,示波器处于持续模式
图 4-3 Sitara AM682 上的基准 Codesys EtherCAT 帧 TX_EN 时序 - 1.5ms 周期时间,示波器处于持续模式图 4-4 显示了 AM6412 同一用例的以太网线流量的 Wireshark 捕获。
图 4-4 Sitara AM6412 Wireshark 上的基准 Codesys 捕获 EtherCAT 帧 - 1ms 周期时间这些抖动结果与典型的 RT Linux 系统中断延迟一致 [12]。可以使用 [13] [14] 中所示的步骤将其降低到几十微秒的低值。这仍然比 TTS 方法可实现的数量级至少高两个甚至三个。不使用支持 EtherCAT 的 TTS,而是使用 EST 的 TSN 特性创建了一个调度,其中所有发送门都是关闭的,但每隔 100μs,门都会打开一次以便将一个帧发送出去,如图 4-5 中的命令行片段所示。
图 4-5 用于实现“时间触发发送”的 EST 调度命令图 4-5 中的命令最初可能看起来很复杂,但 [15] 中介绍了细节。带有“sched-entry”的两行对于实现 TTS 非常重要。这些行指定在 2848 纳秒内,所有 8 个队列(ff,8 个队列的位图)均打开,而在 97152 纳秒内,所有门均关闭 (00)。根据该调度,假设应用程序已完成其处理并已准备好发送该帧,则每次发送一个帧。为了模拟 EtherCAT 主站向从站发送数据,使用 AM625 入门套件作为端点(代替主站),并将 Sitara AM6412 配置为网桥(代替从站)。Plget 数据包生成器用于生成表示 EtherCAT 主站流量。接收以太网端口的 Plget 硬件时间戳由从站使用。按照图 4-5 中的 EST 调度运行 10k 个数据包时,数据包间隙在 -2ns 到 +10ns 之间,如图 4-6 所示。
图 4-7 显示了使用 EST 调度时 Codesys EtherCAT 主站设置的 TX_EN RGMII 测量。该图与图 4-2 中没有 EST 调度时的基准 TX_EN RGMII 测量结果相当。由于以 100Mbit/s 的速度发送一个帧的线路长度而产生的持续时间约为 110μs。
图 4-7 EST 形状的 Codesys EtherCAT 主站的 TX_EN 时序 - 1.5ms 周期时间,示波器处于持续模式在抖动方面,在 TX_EN 信号中,10ns 的帧起始抖动在该分辨率下不可见。图 4-8 和图 4-9 显示了开始发送和结束发送帧的放大视图。这证实了抖动低于 10ns。
图 4-8 EST 形状的 Codesys EtherCAT 主站的 TX_EN 信号开始时的放大视图 - 1.5ms 周期时间,示波器处于持续模式
图 4-9 EST 形状的 Codesys EtherCAT 主站的 TX_EN 信号结束时的放大视图 - 1.5ms 周期时间,示波器处于持续模式