ZHCAGC6 August 2026 AM625
TI SOC上的PRU(Programmable Real-Time Unit) 的框图如 图 1-1 所示,PRU是一个专门为了硬实时、低延迟控制而设计的RISC内核。它通过无流水线单周期执行机制以及引脚直接映射架构,在物理边界上保证了时序的确定性。
图 1-1 AM62x PRU-ICSS功能框图在实际的工业应用中,系统经常需要与不使用标准协议的外部设备进行交互。对于特殊时序接口,通过SOC可能不具备直接连接的方式,传统的做法是使用FPGA来实现SOC和特殊时序接口外设的高带宽通信,Sitara 处理器内部包含可编程实时单元 (PRU) 内核,在这种情况下无需在设计中添加 FPGA、ASIC、CPLD 等器件。另一种方式则是使用微控制器 (MCU) 的GPIO进行模拟,然而,使用 MCU内核来操作 GPIO 引脚存在一些根本性的缺陷,与 FPGA 相比,标准 MCU 在与 GPIO 交互时将具有更高的延迟和更低的确定性。使用软件来控制GPIO的翻转,由于内部总线的延时,可以支持的频率和精度将极大受限,无法满足占空比控制和时序控制的要求。
PRU 系统包含 32 个 32 位寄存器,其中两个寄存器专用于 GPIO 功能,一个寄存器直接连接到通用输出 (GPO) 信号,通过写入该寄存器来切换 GPO 信号,另一个寄存器直接连接到通用输入 (GPI) 信号,通过读取该寄存器来读取 GPI 信号。通过这种设计,从PRU到实际的GPIO直接连接,输入输出信号的性能也都得到了提升。PRU 具有暂停程序运行直至 GPI 事件发生的指令,这使得在检测到输入触发信号后,能够以最佳延迟产生输出响应,PRU 能够实现单个输入和输出之间,以及多个输入信号或多个输出信号之间完全确定的时序关系。高确定性的物理层通信需求与上层复杂的非实时操作系统解耦,在333MHz主频下,将单周期GPIO的执行精度控制在了3ns,中断响应周期可以控制在6ns。并且PRU 核心集成了创新的宽边接口(Broadside Interface),该接口打破了传统通用 CPU 逐字(Word-by-Word)读取的总线瓶颈,允许 PRU 在单个时钟周期内完成与本地硬件加速器之间高达 124 字节的大容量数据并行吞吐。此外,每个 PRU 核心均配有 2kB 的专用宽边专用内存(Broadside RAM)。该内存挂载于相同的宽边专用总线上,不仅具备与共享内存同等的访问速度,更通过物理隔离保障了多核并发时的零总线冲突。
以上介绍适用于所有带有 PRU 子系统的 Sitara 处理器,包括 AM243x、AM263x、AM335x、AM437x、AM57x、AM62x、AM64x 和 AM65x。TI处理器中包含多种PRU子系统如PRU-ICSS,PRU-ICSSG,PRUSS等,本文主要针对AM625系列PRUSS进行研究和讨论,每个PRU子系统具体的差异可以参见以下文章: PRU-ICSS Feature Comparison (Rev. H) 。本文基于PRUSS实现高速串口通讯功能,理论上可以直接迁移到其他PRU子系统。