主题中讨论的其他器件:DP83869、 SysConfig
大家好、我们正在针对需要与远程 AM64x 进行低延迟通信的应用评估 AM263Px。 由于 涉及的距离和所需的带宽、我们仅限于使用以太网进行通信(而不是 FSI、SPI 或 CAN)。 在 AM64x 端、我们 使用带有 PRU-ICSSG 的自定义固件以千兆位速度进行发送和接收。 该功能在 AM64x 电路板之间非常有效、可提供极低的延迟。
遗憾的是、AM64x 上的 PWM/ADC 外设 有限、因此 我们正在考虑使用 AM263Px 与远程 AM64x (而不是第二个 AM64x)进行通信。 由于 AM263Px 不包含能够千兆位的 PRU、因此我们将评估 CPSW。 请参阅以下内容:
AM64x PRU-ICSSG ->千兆位以太网链路-> AM263Px CPSW
我们的带宽需求非常适度;我们需要每10微秒发送一个64字节数据包、即大约 51 Mbps。 我们还需要 TX 和 RX 之间的总延迟小于1.5微秒、这需要千兆位速度。 SDK v9.01 SDK 具有一项基准测试、表明 CPSW 可以在开始丢弃数据包之前处理<15Mpbs (具有64B UDP 数据报)。 显然数据包大小和带宽之间存在折衷、但即便如此、性能还是相当差。 我们考虑了使用 PRU 以太网、但由于其限制为100Mbps 、因此延迟太大(~5微秒只是为了传输64字节、不包括 PHY 或处理 延迟)。
由于 AM263Px 是一款新产品、低性能是否会导致 SDK 延迟限制、从而在将来会得到改善? 或者、这 是 DMA 引擎造成的硬件瓶颈吗?
换句话说、ENET-LLD 是否有任何绕过 DMA 引擎的 API、使我们能够直接与原始数据包进行交互以改善延迟? 我们的产品 不需要通用网络功能、只需从远程 AM64x (直接连接、中间无交换机或其他器件)接收固定大小的数据包。