同样是ARM+FPGA,这套方案的中断响应仅2.7μs
在运动控制、数据采集和图像处理等工业场景中普遍面临“ARM响应慢”、“ARM与FPGA通信延迟高或带宽低”等问题。今天给大家带来瑞芯微RK3576 FPGA的PCIe XDMA实时通信方案基于“AMP异构多核 GPIO硬件中断 PCIe XDMA高速搬运”实现全链路微秒级确定性延迟零误码稳定传输实现国产化工业实时控制需求。▍2.7μs低时延响应全链路的延迟表现如下FPGA GPIO中断触发 → ARM GPIO中断响应ARM GPIO输出高电平(2.7us) → PCIe XDMA启动(2.7us) → PCIe写数据(12.5us)总时长17.9us。图1仅2.7us的硬件中断响应证明了该方案在处理突发实时事件时的卓越性能满足系统硬实时需求。▍AMP多核异构架构这套方案的核心在于充分挖掘RK3576的多核异构潜力。AMP非对称多核架构Linux常规系统运行在Cortex-A72(CPU0~3)和Cortex-A53(CPU0~2)核心负责复杂的业务逻辑与网络通信。RTOS实时系统独立运行在Cortex-A53(CPU3)核心上专门负责处理PCIe链路管理和实时IO交互。GPIO中断触发机制为了避免Linux系统调度带来的不确定性延迟我们将实时性要求最高的GPIO中断处理放在了RTOS系统上这种“专核专用”的模式确保了中断响应不受Linux系统负载波动的影响。图2▍PCIe XDMA高速搬运基在数据传输层面我们采用XDMA技术利用PCIe总线的高带宽特性实现FPGA与ARM内存之间的高速数据交换。XDMA允许FPGA直接访问ARM的DDR内存无需CPU参与数据搬运极大地降低了CPU负载。▍方案实测验证我们通过Xilinx Artix-7 FPGA端的KEY0按键模拟外部中断触发。按下按键Artix-7 FPGA会产生GPIO中断RTOS响应中断并启动PCIe XDMA搬运。图3图4使用示波器测量Artix-7 FPGA GPIO绿色波形中断触发至ARM GPIO黄色波形输出高电平的时间间隔约为2.7us即ARM GPIO中断响应时间约为2.7us。图5串口终端将打印GPIO中断次数、ARM GPIO中断响应到启动PCIe XDMA的耗时、PCIe平均读写速率、PCIe读写耗时、误码率等相关信息如下图所示图6从上图打印信息可知ARM GPIO中断响应到启动PCIe XDMA的平均耗时为2.7us最大耗时为4us。图7 中断响应测试结果图8 PCIe读写速率测试结果

相关新闻