打印
[ARM入门]

延时仅4us!最新的全国产RK3568J+FPGA PCIe实时通信方案来了

[复制链接]
216|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 Tronlong创龙 于 2025-4-10 17:21 编辑

实时通信方案


图 1 中断响应到PCIe通信过程
AMP + GPIO中断技术-协同运作
AMP即Asymmetric Multi-Processing,(非对称多处理架构),多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux+RTOS/裸机组合。系统需要一个主核心统筹全局,各处理器核心相互隔离,拥有独立内存,既能各自执行不同任务,又可实现核间通信。

图 2
GPIO中断技术通过硬件级事件触发机制,当GPIO引脚电平变化,能够立即中断处理器当前任务,在工业控制信号采集、紧急按键处理等对实时性要求严苛的场景中表现卓越。
当AMP架构与GPIO中断技术实现强强联合,既能充分发挥主核调度与从核实时响应优势,又可以大幅度提升系统计算的性能与实时性。

DMA技术-加速数据传输
DMA技术(Direct Memory Access,直接内存访问)允许硬件外设直接与存储器进行数据交换,全程无需CPU参与数据传输。
使用非DMA方式进行数据传输时,外设与内存之间的数据搬运需要依靠CPU来完成。这意味着每次数据传输都需要CPU的介入,导致CPU资源占用较高,并且数据传输速度相对较低。而采用DMA方式进行数据传输,外设可直接与内存进行数据交换,减少了CPU介入与中断处理,数据传输更流畅高效。


图3
RK3568J + FPGA典型应用场景


图4
pcie_dma_memcpy_io_irq案例
本文主要介绍基于RK3568J + FPGA的PCIe实时通信案例,适用开发环境如下。
Windows开发环境:Windows 7 64bit、Windows 10 64bit
Linux开发环境:VMware15.5.5、Ubuntu18.04.4 64bit
U-Boot:U-Boot-2017.09
Kernel:Linux-4.19.232、Linux-RT-4.19.232
LinuxSDK:LinuxSDK-[版本号](基于rk356x_linux_release_v1.3.1_20221120)
硬件平台:创龙科技TL3568F-EVM工业评估板(基于瑞芯微RK3568J + 紫光同创**s-2)

案例说明
案例通过PCIe DMA在FPGA端(PCIe EP)与ARM端(PCIe RC)之间建立高速数据传输通道,由FPGA端按键触发GPIO中断启动数据传输,动态调整1KByte、16KByte、32KByte、64KByte数据量并统计传输速率、延迟及误码率。

图5
案例演示
请参考产品资料完成U-Boot镜像、内核镜像替换,加载FPGA可执行程序,并将amp.img镜像固化至评估板。
按下评估板FPGA端的USER3按键(KEY7),程序运行一次。
如下图所示,使用示波器测量FPGA GPIO(黄色波形)中断触发至ARM GPIO(蓝色波形)输出高电平的实际耗时,可看到FPGA GPIO信号上升沿至ARM GPIO信号上升沿的时间间隔约为4us,即FPGA GPIO中断响应时间约为4us。

图6
图7
RS232 UART0串口终端将打印GPIO中断次数、GPIO中断响应到启动PCIe DMA的耗时、PCIe平均读写速率、PCIe读写耗时、误码率等相关信息,如下图所示。
从上图RS232 UART0串口终端的打印信息可知,FPGA GPIO中断响应到启动PCIe DMA的最大耗时为4us。


查看更多瑞芯微RK3568J + 紫光同创**s-2相关的案例演示,各位工程师可以搜索创龙科技公众号或官网。


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

336

主题

347

帖子

4

粉丝