首页 > 其他分享 >RK3399+PCIe+FPGA 在高速AD无线通信中的应用

RK3399+PCIe+FPGA 在高速AD无线通信中的应用

时间:2023-03-25 15:06:48浏览次数:40  
标签:AD FPGA PCIe RK3399 Class 00.0


一、需求
要实现高速AD/DA的数据采集,并发送到高性能arm核进行数据处理;

方案RK3399+pcie+FPGA+AD/DA。

二、器件介绍
一、RK3399
RK3399是一款低功耗、高性能处理器,用于计算、个人移动互联网设备和其他智能设备应用。基于Big.Little架构,它将双核Cortex-A72和四核Cortex-A53与单独的NEON协处理器集成在一起。

许多嵌入式功能强大的硬件引擎为高端应用程序提供了优化的性能。RK3399支持多格式视频解码器,包括H.264/H.265/VP9,可达4Kx2K@60fps,特别是,H.264/H265解码器支持10比特编码,并且还通过以下方式支持H.264/MVC/VP8编码器:1080p@30fps、高质量JPEG编码器/解码器以及特殊图像预处理器和后处理器。

嵌入式3D GPU使RK3399与OpenGL ES1.1/2.0/3.0/3.1/3.2、OpenCL 1.2和DirectX 11.1完全兼容。带有MMU的特殊2D硬件引擎将最大化显示性能并提供非常平滑的操作。

RK3399具有高性能双通道外部存储器接口(DDR3/DDR3L/LPDRDR3/LPDDR4),能够维持苛刻的存储器带宽,还提供了一整套外围接口,支持非常灵活的应用。

二、FPGA
纯FPGA的选择,主要用于前端高速AD/DA的逻辑操作,Xilinx的7系列目前还是有很多的优势;同时也集成PCIe 硬核,在与RK3399配合方面,相当合适。

RK3399+PCIe+FPGA 在高速AD无线通信中的应用_ci

 

 充足的差分对也可以满足前端AD/DA的接口设计。

三、PCIe
一、为什么是PCIe
RK3399有不少专用的高速接口,比如MIPI、千兆网络、USB3.0、Type-C、EDP等;但如果是板上器件间的内部通讯,专用接口受到协议的限制、及各种PHY,灵活性就差很多。比如高速AD/DA的数据,FPGA采集完要传输到ARM进行数据处理,数据格式是私有的,并不能满足MIPI,那要去套用MIPI的数据格式,就存在各种问题了。最终只能选择PCIe,在便捷性和速率上得到满足。

RK3399 PCIe特性如下:

RK3399+PCIe+FPGA 在高速AD无线通信中的应用_fpga开发_02

 

RK3399中的一个PCIe端口

与PCI Express基本规范2.1版兼容

操作模式:(RC)

最大链路宽度为4,单个双向链路接口

支持每个方向每车道2.5GT/s串行数据传输速率

支持模块内的DMA,2个通道,2个RAM分区,2K字节深度

支持可调整大小的BAR功能

在端点模式下支持单个物理PCI功能

支持传统中断、MSI和MSI-X中断

支持出站和入站地址转换

支持物理功能附带的8个虚拟功能

支持PCI Express活动状态电源管理(ASPM)状态L0和L1

支持L1电源管理

支持PCI功能电源状态D0、D1和D3以及相应的链路电源状态L0、L1和L2

二、PCIe驱动调试
正确生成FPGA固件后,加载RK3399驱动后,便可看到PCIe设备,并进行调用。

root@rk3399:/# lspci -vvv
00:00.0 Class 0604: 1d87:0100
01:00.0 Class 0700: 10ee:9021
root@rk3399:/# lspci -m
00:00.0 "Class 0604" "1d87" "0100" "0000" "0000"
01:00.0 "Class 0700" "10ee" "9021" "10ee" "0007"
root@rk3399:/# lspci -k
00:00.0 Class 0604: 1d87:0100 pcieport
01:00.0 Class 0700: 10ee:9021
root@rk3399:/sys/bus/pci/devices# ls
0000:00:00.0  0000:01:00.0

RK3399+PCIe+FPGA 在高速AD无线通信中的应用_RK3399+FPGA_03

 

三、硬件调试
 

通过官方开发板转接验证正常,最终集成一体板。

RK3399+PCIe+FPGA 在高速AD无线通信中的应用_fpga开发_04

 

标签:AD,FPGA,PCIe,RK3399,Class,00.0
From: https://blog.51cto.com/u_15812463/6149482

相关文章

  • 一种RK3399+MIPI+FPGA的高速工业相机的设计方案(二)
    图像采集模块电路设计  3.4图像处理模块电路设计Spartan6芯片采用45nm制造工艺,内部一共有43661的LogicCells资源,同时含有丰富的DSP48A1Slice......
  • 一种RK3399+MIPI+FPGA的高速工业相机的设计方案(一)
    目前,嵌入式相机逐渐代替了传统相机进入大众的视野,应用在公安刑侦、生物医学和文物保护等诸多领域。但是随着人们对......
  • RT-Thread BSP qemu-virt64-aarch64 挂载 ext4文件系统
    前言经常简单的配置,在RT-ThreadBSPqemu-virt64-aarch64上可以支持fat文件系统,但是如何支持ext4文件系统呢?经过验证,也是配置使能ext4就可以支持ext4软件包当前RT......
  • RT-Thread BSP qemu-virt64-aarch64 文件系统
    前言前面大体上搭建了RT-ThreadBSPqemu-virt64-aarch64的交叉编译环境,运行后发现,文件系统没有挂载上,感觉是没有mkfs。通过RT-Thread官方的文档,找到了解决方法创建独立......
  • 从应用层到MCU,看Windows处理键盘输入 [1.在应用层调试Notepad.exe (按键消费者)]
    文本编辑器/文本编辑框是应用层常见的键盘处理程序。微软泄露的WinXP源码下有文本编辑器Notepad的实现:Microsoft_leaked_source_code\nt5src\Source\XPSP1\NT\shell\osshell......
  • NBU备份恢复AD操作指引​
    AD粒度恢复前提AD粒度恢复需要在如下前提下进行:配置NetBackup客户端服务的登录帐户安装和配置用于ActiveDirectory粒度恢复的网络文件系统(NFS),AD安装NFS之后,禁用并停用“......
  • 为什么有的人 markdown 的 heading 从 `##` 开始
    为什么有的人markdown的heading从##开始TL;DR:因为一级标题用来表示文章的title了。看到过很多文章的heading都是从<h2>(对应markdown里面的##)开始,但不知......
  • 【JAVA】InputStreamReader的正确使用方法
    InputStreamReader是JavaI/O中的一个类,用于将字节流转换为字符流。下面是InputStreamReader的正确使用方法:创建InputStreamReader对象。可以传入一个InputStream对象和一个......
  • Android Studio Gradle Sync issues问题
     当时重装系统,发现出了这个问题,展开发现JDK相关。 在csdn搜索,后将默认的更改为java用的8版本。    退出,重新进入,完成。第一次耗时很久,33分钟。后面再进就......
  • 简洁明了的Vivado下载与安装
    1.注册首先进入中文官网:Xilinx-灵活应变.Intelligent|同超越,共成就_点击上图中的我的资料进入如下注册界面,进行注册即可2.选择版本点击首页的下载与支持选择V......