AXI总线

397 阅读3分钟

AXI总线

ZYNQ将ARM处理器与FPGA在单芯片内紧密结合,两者之间通过高级可扩展接口AXI4总线进行交互,主机与从机之间的数据传输方式通过AXI协议完成。

片内总线具有分离的数据通道,控制通道,地址通道,支持不对齐传输与突发传输。

AXI4-Full: 最多256个数据。面向高性能。

AXI4-Lite: 轻量级低速吞吐通信。支持单次突传。

AXI4-Stream: 高速流数据接口通信。传输数据不受限制。

AXI协议包含5个独立的通道,即写地址通道、写数据通道、写响应通道、读地址通道以及读数据通道,独立式通道。

AXI接口

PS与PL之间通过AXI接口实现。 分为GP接口,ACP接口,HP接口。

PS与PL之间的交互接口支持AXI4-Lite 与AXI4-Full相连的接口,AXI4-Stream 只在PL端实现。

这里只是用了HP接口,GP接口。

图像采集模块的寄存器配置以及图像帧存储模块全部基于PS端实现,去雾算法模块以及显示模块则由PL端完成,两者通过AXI总线实现数据交互。

在PL端

OV5640采集到的图像数据不能对其直接进行处理,需要将摄像头数据进行转化解码,以使得数据满足FPGA时序要求。图像数据进行去雾加速后,图像数据并不能满足VDMA输入接口对数据帧的存储,因此需要将数据转化为AXI4-Stream形式来通过VDMA。

通过Xilinx提供的Video to AXI-Stream IP核进行数据转换。

VDMA支持将AXI-Stream数据转化成AXI-Memory Map格式从而实现数据地址的映射,通过HP接口高效的访问DDR3。

VDMA从DDR3中再将数据通过AXI-Stream to Video Out IP核将帧缓存的数据转化成视频输出的数据格式,视频数据再由RGB2DVI IP转化到HDMI支持的差分信号,从而显示图像去雾效果。

采用由米联客所开发的一款FDMA IP核用于图像处理帧缓存。

Video In to AXI-Stream将视频输入数据转化为AXI4-Stream格式
AXI-Stream to Video Out将AXI4-Stream数据流转化为视频流输出格式
OV5640_capture_dataOV5640数据采集模块
Video Timing Controller视频流数据产生符合的行场同步信号
RGB2DVI将数据转化为支持HDMI输出的差分信号
FDMA应用于去雾算法模块帧缓存

GP接口:AXI通用传输接口,数据总线宽度为32-bit,主端口的事务传输能力为8个读端口和8个写端口。AXI_GP接口仅用于通用目的,并不用于实现高性能。一般用于在PL-PS间传输低速的控制信息和少量数据,可通过AXI_Interconnect进行扩展连接。

HP接口:一般用于逻辑与挂载在CPU的DDR间高速数据交互,数据搬移一般通过PL的DMA完成。如,图像可由FPGA直接完成采集、预处理,然后通过 AXI_HP接口将数据传输到 DDR中以便CPU进一步处理。

ACP接口:ACP是一个64位的AXI从接口,通过这个接口PL 端逻辑可以直接访问 PS 部分的Cache。因此PL可以直接获取到CPU计算的结果,同时也可以第一时间将逻辑加速运算的送至Cache中,所以ACP接口延时最低。

其中AXI4-Memory Map为AXI4接口的内存映射。AXI4-Lite接口用于配置寄存器,AXI4-Stream用于连接数据流接口的IP核,AXI4-Memory Map用于连接ZYNQ端的HP接口,实现DDR3存储器的地址映射。为了满足流接口以及内存映射数据传输速度匹配,加入行缓存用于暂存数据。