同样是arm fpga,这套方案的中断响应仅2.7μs
在运动控制、数据采集和图像处理等工业场景中,普遍面临“arm响应慢”、“arm与fpga通信延迟高或带宽低”等问题。
今天给大家带来瑞芯微rk3576 fpga的pcie xdma实时通信方案,基于“amp异构多核 gpio硬件中断 pcie xdma高速搬运”,实现全链路微秒级确定性延迟,零误码稳定传输,实现国产化工业实时控制需求。
全链路的延迟表现如下:
fpga gpio中断触发 → arm gpio中断响应(arm gpio输出高电平)(2.7us) → pcie xdma启动(2.7us) → pcie写数据(12.5us),总时长:17.9us。

仅2.7us的硬件中断响应,证明了该方案在处理突发实时事件时的卓越性能,满足系统硬实时需求。
这套方案的核心,在于充分挖掘rk3576的多核异构潜力。
amp非对称多核架构
linux常规系统:运行在cortex-a72(cpu0~3)和cortex-a53(cpu0~2)核心,负责复杂的业务逻辑与网络通信。
rtos实时系统:独立运行在cortex-a53(cpu3)核心上,专门负责处理pcie链路管理和实时io交互。
gpio中断触发机制
为了避免linux系统调度带来的不确定性延迟,我们将实时性要求最高的gpio中断处理放在了rtos系统上,这种“专核专用”的模式,确保了中断响应不受linux系统负载波动的影响。

基在数据传输层面,我们采用xdma技术,利用pcie总线的高带宽特性,实现fpga与arm内存之间的高速数据交换。
xdma允许fpga直接访问arm的ddr内存,无需cpu参与数据搬运,极大地降低了cpu负载。
我们通过xilinx artix-7 fpga端的key0按键,模拟外部中断触发。按下按键,artix-7 fpga会产生gpio中断,rtos响应中断并启动pcie xdma搬运。


使用示波器测量artix-7 fpga gpio(绿色波形)中断触发至arm gpio(黄色波形)输出高电平的时间间隔约为2.7us,即arm gpio中断响应时间约为2.7us。

串口终端将打印gpio中断次数、arm gpio中断响应到启动pcie xdma的耗时、pcie平均读写速率、pcie读写耗时、误码率等相关信息,如下图所示:

从上图打印信息可知,arm gpio中断响应到启动pcie xdma的平均耗时为2.7us,最大耗时为4us。

中断响应测试结果

pcie读写速率测试结果

客服






