xilinx ZYNQ 7000 AXI GPIO

.0AXI GPIO
xilinx ZYNQ 7000 AXI GPIO_第1张图片
第一部分
PS 和 PL之间的通讯有一个接口称为AXI。AXI总线具体的内容这边不去深究,可以理解为一种特殊协议的通讯方式。
AXI GPIO是什么意思?
PL是FPGA它可以做成任何你想要的东西,做一个GPIO外设当然是可以的。
xilinx ZYNQ 7000 AXI GPIO_第2张图片
如上图所示,假设我们用FPGA 设计了一个GPIO外设,它可以通过引脚进行电平的输入和输出。
这个时候PS端的APU需要使用GPIO,通常就是GPIO的读写操作。这个事件这个需要数据通信,上图所示有个connect的模块横跨PS,PL,用于数据的传输,没错AXI就是这个connect。这里我们把AXI单纯的看做一个有特殊协议的通信线路,暂时不去关系实现方式。

第二部分
什么是GPIO,这个问题好像非常简单,但是好像也不简单。为了寻求这个答案,可以看一下MCU的GPIO结构
打开STM32F407(Cortex M4)手册的GPIO章节
xilinx ZYNQ 7000 AXI GPIO_第3张图片
上图所示,最右边是最后芯片引出的物理引脚。最左边是GPIO模块对外的接口。提供读写操作。
那么我们如果要做一个GPIO外设就需要物理引脚和读写接口。
那么物理引脚可以想到FPGA开发中的引脚分配。这里会问不是有EMIO了吗为啥还要AXI GPIO
1.EMIO本质上是硬核
2.AXI GPIO是真正的软核FPGA开发

那么读写接口就是第一部分所说的AXI接口。
那么GPIO具体什么实现呢,xilinx 官方把GPIO如何实现已经做好了,封装成AXI GPIO IP。我们直接调用即可。
Create Block design->添加IP ->AXI GPIO
xilinx ZYNQ 7000 AXI GPIO_第4张图片
在AXI IP官方手册中
xilinx ZYNQ 7000 AXI GPIO_第5张图片
AXI GPIO de 构成如上图所示,
1.AXI Interface 用于AXI中线的通讯
2.interrupt Module 检测GPIO模块的Read信号,判断是否发生中断,送入专用的信号线IP2INTC.
3.GPIO Core 就是GPIO 外设了

GPIO 具体的结构
xilinx ZYNQ 7000 AXI GPIO_第6张图片
1.GPIO 三态门的控制TRI
2.Write
3.read
还可以通过多路选择器构建两个GPIO外设。

第三部分
知道AXI GPIO是什么东西后,那么要怎么去配置

xilinx ZYNQ 7000 AXI GPIO_第7张图片
可以配置默认的输出电平和门控状态(输入还是输出)。
添加zynq PS 后,点击自动连接,vivado自己生成了axi interconnect和PS reset

xilinx ZYNQ 7000 AXI GPIO_第8张图片
PS的FCLK_CLK0 ,给AXI Interconnect 和AXI GPIO提供了时钟。peripheral aReastn提供了复位信号。
PS的M_AXI_GP0 和AXI Interconnect连接,PS也提供AXI时钟。
xilinx ZYNQ 7000 AXI GPIO_第9张图片
FCLK_CLK0 是PS端提供给PL端的时钟信号,供给了所有AXI 相关的所有IP。
FCLK_RESET0_N 这个信号给到processor System Reast IP ,然后通过peripheral aReastn 对AXI 互联和AXI GPIO提供复位信号。
xilinx ZYNQ 7000 AXI GPIO_第10张图片
xilinx ZYNQ 7000 AXI GPIO_第11张图片

AXI Interconnect 是一个AXI总线的连接矩阵,有点像路由器的意思
xilinx ZYNQ 7000 AXI GPIO_第12张图片

xilinx ZYNQ 7000 AXI GPIO_第13张图片
这样通过xilinx AXI GPIO IP核构建了一个 AXI 接口的GPIO模块。
xilinx ZYNQ 7000 AXI GPIO_第14张图片
clock Configuration 设置时钟,提供给AXI和AXI GPIO
打开AXI GPIO的中断,它的中断信号属于PL中断信号,相关设置在GIC中。
如下图所示,双击GIC

xilinx ZYNQ 7000 AXI GPIO_第15张图片
xilinx ZYNQ 7000 AXI GPIO_第16张图片
打开PL -PS的中断信号,其中断号是84~91。
最后进行引脚分配
.xilinx ZYNQ 7000 AXI GPIO_第17张图片
配置AXI GPIO的端口,生成比特流。

第四部分
AXI GPIO编程,导入官方例程。见下章
xilinx ZYNQ 7000 AXI GPIO_第18张图片

你可能感兴趣的:(zynq,fpga开发,单片机,嵌入式硬件)