首页 > 其他分享 >1分钟学会如何提升PCIe通信速率,基于RK3568J + FPGA国产平台!

1分钟学会如何提升PCIe通信速率,基于RK3568J + FPGA国产平台!

时间:2024-11-29 16:44:48浏览次数:6  
标签:RK3568J DMA FPGA 读写 PCIe DRAM

测试数据汇总

表 1

 

PCIe总线介绍

PCIe,即PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准。主要用于扩充计算机系统总线数据吞吐量以及提高设备通信速度。

图 1

 

DMA技术介绍

DMA(Direct Memory Access,直接内存访问)是一种让硬件外设直接与存储器进行数据交换的技术,无需CPU参与数据传输过程。

使用非DMA方式进行数据传输时,外设与内存之间的数据搬运需要依靠CPU来完成。这意味着每次数据传输都需要CPU的介入,导致CPU资源占用较高,并且数据传输速度相对较低。

使用DMA方式进行数据传输时,外设可以直接与内存进行数据交换。减少了CPU的介入和中断处理,数据传输过程更加流畅和高效。

图 2

 

RK3568J + FPGA典型应用场景

图 3

 

基于RK3568J + FPGA的PCIe通信案例

本文主要介绍基于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 + 紫光同创Logos-2)

为了简化描述,本文仅摘录部分方案功能描述与测试结果,详细产品资料可以通过公众号(Tronlong创龙科技)下载。

 

案例说明

ARM端基于PCIe总线对FPGA DRAM进行读写测试。应用程序通过ioctl函数发送命令开启DMA传输数据后,等待驱动上报input事件;当应用层接收到input事件,说明DMA传输数据完成。

程序流程如下图所示。

图 4

(1)ARM端程序原理说明如下:

a)采用DMA方式;

b)将数据写至dma_memcpy驱动申请的连续内存空间(位于DDR);

c)配置DMA,如源地址、目标地址、传输的数据大小等;

d)写操作:通过ioctl函数启动DMA,通过PCIe总线将数据搬运至FPGA DRAM;

e)程序接收驱动上报input事件后,将通过ioctl函数获取DMA搬运数据耗时,并计算DMA传输速率(即写速率);

f)读操作:通过ioctl函数启动DMA,通过PCIe总线将FPGA DRAM中的数据搬运至dma_memcpy驱动申请的连续内存空间(位于DDR);

g)程序接收驱动上报input事件后,将数据从内核空间读取至用户空间,然后校验数据,同时通过ioctl函数获取DMA搬运数据耗时,并计算DMA传输速率(即读速率)。

(2) FPGA端程序原理说明如下:

a)实现PCIe Endpoint功能;

a)处理PCIe RC端发起的PCIe BAR0空间读写事务;

b)将PCIe BAR0读写数据缓存至FPGA DRAM中。

 

案例演示

评估板上电启动后,进入评估板文件系统执行如下命令,将随机数据先写入FPGA DRAM,再从FPGA DRAM读出。测试完成后,程序将会打印最终测试结果,包含读写平均传输耗时、读写平均传输速率、读写错误统计等信息。

Target#./dma_memcpy_demo -a 0xf0200000 -s 65536 -c 100 -d /dev/input/event6

图 5 表 2 测试结果说明 到这里,我们的演示步骤结束。想要查看更多瑞芯微RK3568J + FPGA相关的案例演示,欢迎各位工程师通过公众号(Tronlong创龙科技)下载,快来试试吧!

标签:RK3568J,DMA,FPGA,读写,PCIe,DRAM
From: https://www.cnblogs.com/Tronlong818/p/18577045

相关文章

  • 铠侠 CD8-V 系列企业级SSD U.2 PCIe4.0 NVMe 3840GB KCD81RUG3T84
    优势:高性能:采用PCIe®4.0和NVMe™1.4规范,具有最大接口速度64GT/s,提供出色的读写性能。可靠性:内置断电保护(PLP)和端到端数据校正功能,确保数据安全和可靠性。**安全性:**支持安全选项SIE和SED,保护数据免受未经授权访问。性能:容量:3,840GB闪存类型:BiCSFLASH™3DTLC最大......
  • 基于 FPGA 的 AD9910 + ADF4351 扫频信号发射平台设计方案
    基于FPGA的AD9910+ADF4351扫频信号发射平台设计方案概要本文介绍一种基于FPGA的扫频信号发射系统设计方案,采用AD9910作为主扫频信号产生器,并利用ADF4351提供可控的混频信号,通过两者的协同工作实现宽频带、高分辨率的扫频信号输出。系统结合FPGA的强大逻辑控......
  • 【FPGA数字信号处理】- 数字信号处理如何入门?从零基础到精通,收藏这篇就够了!
    数字信号处理(DigitalSignalProcessing,简称DSP)是一种利用计算机或专用数字硬件对信号进行处理的技术,在通信、音频、视频、雷达等领域发挥着越来越重要的作用。现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)作为一种高性能的数字信号处理硬件,已成为许多工程师和......
  • Linux lspci查看pcie设备速度
    CUDA学习4——如何查看centos系统PCIe带宽(CSDN_0037_20231127)_如何查看服务器pcie带宽-CSDN博客#查看设备idlspci-n#根据设备id查看lspci-nn-s设备id-vv|grep-i'LnkSta:'~#lspci-hlspci:invalidoption--'h'Usage:lspci[<switches>]Basicdisplay......
  • 数字图像处理(4):FPGA中的定点数、浮点数
            (1)定点数:小数点固定在数据的某一位置的数,可以分为定点整数和定点小数和普通定点数。定点数广泛应用于数字图像处理(图像滤波、图像缩放)和数字信号处理(如FFT、定点卷积)中。定点整数:小数点在整个数据的最右侧。    +100(D)=01100100(B)定点小数:小数点在......
  • PCIe Sticky
    目录简介详细描述ROS(Sticky-Read-only)类型描述RWS(Sticky-Read-Write)类型描述RW1CS(Sticky-Write-1-to-clearstatus)类型描述辅助电源简介PCIe中的Sticky算是一种寄存器类型,也可以说成一种寄存器属性。它包括了Bit-FieldTypes(也可以说RegisterAttribut......
  • 一个PCIe板卡的逆向资料
    有这么一块XilinxFPGA板卡,主控信号是XC7K480T,上面标注的板号是YPCB-00338-1P1,背面的标签是YZCA-00338-104,通过逆向得到了一些信息,顺便写了个工程进行测试,发现效果还不错,可以跟广大网友分享一下。当然啦,这里面也有已经逆向好的引脚定义,具体可以看附件。由于附件里面用的是PCIeX4......
  • FPGA、VHDL 基于RISC-V格式的16位位缩模型机设计
    项目地址:FPGA、VHDL基于RISC-V格式的16位位缩模型机设计设计目的实现基于RISC-V格式的16位MCU设计,参考RISC-V的基本格式,进行位数缩减。实现RISC-V中寄存器加法add,立即数加法addi,半字加载lh,半字存储sh,不等条件跳转bne,相等条件跳转beq,无条件跳转链接jal。实现立即寻址、寄存......
  • 手把手教你学PCIE(3.1)--PCIe 架构的系统架构图解
    目录PCIe架构的系统架构图解1.PCIe系统架构图2.主要组件及其功能2.1RootComplex(RC)2.2Switch(SW)2.3Endpoint(EP)3.链路(Link)4.配置空间(ConfigurationSpace)5.基地址寄存器(BaseAddressRegister,BAR)6.中断机制7.地址映射8.事务层包(T......
  • 设计资料:4通道1G PCIE3.0X8采集平台
    PCIe高速数字化仪平台1GS/s14bit4通道     DC耦合    PCIExpressGen3x8具备直流耦合和双极性宽带信号输入的高速数据采集卡,它具有4通道,14bit,1GS/s采样率特性。板载FPGA具备实时信号处理能力,可实现累加平均、峰值检测、数字滤波、快速傅立叶变换等信号......