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

Posted 深圳信迈科技DSP+ARM+FPGA

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RK3399+PCIe+FPGA 在高速AD无线通信中的应用相关的知识,希望对你有一定的参考价值。

一、需求
要实现高速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配合方面,相当合适。

 

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

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

RK3399 PCIe特性如下:

 

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平台开发系列讲解(高速设备驱动篇)6.59PCIe各类接口简介

RK3399平台开发系列讲解(高速设备驱动篇)6.57PCIe路由方式详解

RK3399平台开发系列讲解(高速设备驱动篇)6.55PCIe体系结构

RK3399平台开发系列讲解(高速设备驱动篇)6.33PCIe 配置空间介绍

RK3399平台开发系列讲解(高速设备驱动篇)6.49PCIe设备的内存是如何访问的?

RK3399平台开发系列讲解(高速设备驱动篇)6.56PCIe事务包(TLP)详解