ZHCU890A september 2022 – may 2023
图 3-3 中的关系显示了不同内核如何协同工作。完整的帧处理是使用一个工业通信子系统 (ICSS) 完成的,其中包括周期时间生成。栈本身在单个 Arm® 内核中实现。
PRU0 可实现帧处理程序,负责在所有八个端口上发送和接收帧。内部状态机完成后,会向第二个 PRU 内核发送中断。
该中断用于生成周期时序。PRU1 拥有一个计数寄存器,每个端口都有一个比较寄存器以及一些状态位和控制位。此处配置了周期时间,一旦到了发送下一帧的时间,就会向 PRU0 发送触发器以发送一帧。
Arm 内核控制两个 PRU。在启动期间,尚未使用周期计时器,并且通过 PRU0 手动发送帧并从 Arm 内核触发 Tx。当切换到工作模式并开始交换过程数据时,PRU1 被配置为正确的周期时间并接管以控制发送数据的触发器。在这种情况下,Arm 内核在发送每一帧并收到来自器件的应答或发生超时后都会收到中断。
利用该方案,周期时间与 Arm 内核上的 CPU 负载无关。此外,由于不需要在此处生成时序,因此也减少了负载。