【黑金云课堂】FPGA技术教程Vitis开发:QSPI FLASH 与 AXI_GPIO

PS QSPI Flash

一、QSPI Flash 简介

QSPI(Quad SPI)Flash 是在传统 SPI Flash 基础上发展而来的高速串行存储器,通过 IO0~IO3 四根数据线并行传输数据,相比普通 SPI 具有更高的数据吞吐率,同时保持简单的接口和较低的成本。

其主要特点包括:

  • 4 线并行数据传输,速度更快
  • 向下兼容 SPI,支持 XIP
  • 接口简单,引脚少
  • 容量多样,速度高
  • 成本较低,适用于嵌入式系统

二、QSPI Flash 引脚定义

典型 8-pin QSPI Flash 引脚如下:

引脚 功能
CS# 片选信号(低有效)
SCLK 串行时钟
SI / IO0 数据线 0
SO / IO1 数据线 1
WP# / IO2 数据线 2
HOLD# / IO3 数据线 3
VCC 电源
GND

三、存储结构

以 256Mb(32MB)Flash 为例,存储层次如下:

复制代码
Bit
↓
Byte(8 bit)
↓
Page(256 Byte)
↓
Sector(4 KB)
↓
Block(64 KB)
↓
Chip(32 MB)

四、工作原理

SoC 通过 QSPI 控制器与 Flash 通信。通信过程如下:

  1. 拉低 CS#,选中 Flash;
  2. 发送命令(Command);
  3. 发送地址(Address);
  4. Flash 返回数据(Data);
  5. 拉高 CS#,结束访问。

五、QSPI Flash 读写实验流程

初始化

  • 初始化 QSPI 控制器;
  • 配置时钟参数;
  • 配置工作模式。

写数据

  1. 写使能(Write Enable);
  2. Sector 擦除;
  3. Page Program;
  4. 等待 Busy 位清零。

读数据

  1. 发送读命令;
  2. 发送地址;
  3. 接收数据;
  4. 校验结果。

六、QSPI Flash 远程网络更新

升级流程

复制代码
PC
 │
TCP / UDP
 │
LWIP
 │
PS
 │
QSPI Driver
 │
QSPI Flash

💡 完整视频讲解可前往 ALINX 视频号进行直播回看

AXI_GPIO 应用

一、AXI 总线分类

AXI 总线分为三类,应用场景各有区分:

  1. AXI4-Lite:仅支持单数据地址传输,多用于低速外设、设备控制,也是 AXI_GPIO 所使用的总线。
  2. AXI4:支持地址 + 突发批量数据传输,适用于大批量地址数据交互。
  3. AXI4-Stream:无地址,纯突发数据传输,主要用于数据流、媒体流传输。

AXI4-Lite 关键接口信号

包含地址、传输长度、数据位宽、突发类型、握手信号、ID、访问权限等多类信号;同时明确了它与标准 AXI4 的核心差异:

  • 固定单次突发传输
  • 数据位宽限定
  • 部分功能引脚失效 / 固定电平

协议更精简。


二、AXI_GPIO 内部结构与寄存器

1. 硬件架构

AXI_GPIO 为双通道设计,每路通道都包含:

  • 数据寄存器
  • 三态控制模块
  • 输入数据缓存

还集成了中断检测逻辑,可对外输出中断信号。


2. 内部寄存器

所有寄存器默认值均为 0。地址偏移及功能如下表所示:

地址偏移 寄存器名称 功能说明 读写属性
0x0000 GPIO_DATA 通道 1 数据寄存器 可读写
0x0004 GPIO_TRI 通道 1 三态控制寄存器 可读写
0x0008 GPIO2_DATA 通道 2 数据寄存器 可读写
0x000C GPIO2_TRI 通道 2 三态控制寄存器 可读写
0x011C GIER 全局中断使能寄存器 可读写
0x0120 IP ISR 中断状态寄存器 ---
0x0128 IP IER IP 核中断使能寄存器 可读写

💡 完整视频讲解可前往 ALINX 视频号进行直播回看

更多细节欢迎关注我们黑金云课堂全年免费直播课

黑金云课堂六月直播日历 我们将在每周二、三、四,同步推进 Verilog开发、Vitis开发、Linux开发三大系列,带你从零开始,稳扎稳打掌握 FPGA 开发全流程!

系列 内容定位
Verilog开发 硬件描述语言基础、逻辑设计、仿真调试
Vitis开发 Zynq软硬件协同、外设驱动、网络协议栈
Linux开发 嵌入式Linux系统移植、驱动编写、应用开发