PS部分框圖如上圖所示,PS 和外部接口之間的通信主要是通過復用的輸入 / 輸出( Multiplexed Input/Output,MIO)實現的,它提供了可以做靈活配置的 54 個引腳,這表明外部設備和引腳之間的映射是可以按需定義的。這樣的連接也可以通過擴展 MIO (ExtendedMIO,EMIO)來實現,EMIO 并不是 PS 和外部連接之間的直接通路,而是通過共用了PL 的 I/O 資源來實現的 。這些都出現在上圖的左側。當需要擴展超過 54 個引腳的時候可以用 EMIO,而當 PL 中實現了一個 IP 包的時候,這也是 PS 和 PL 中的IP 包接口的一種方法。
可用的 I/O 包括標準通信接口和通用輸入 / 輸出 (General Purpose Input/Output,GPIO),GPIO 可以用做各種用途,包括簡單的按鈕、開關和 LED。
在ZYNQ7000系列PS中除了上面提到的MIO和EMIO之外,還包括AXI_GPIO。
這三者關系如下:
其中MIO和EMIO是直接掛在PS上的GPIO。而AXI_GPIO是通過AXI總線掛在PS上的GPIO上。
我們先看一下MIO和EMIO:下圖EMIO和MIO的結構。其中MIO分布在BANK0,BANK1,而EMIO則分布在BANK2、BANK3。
注意一下幾項:
首先、MIO在zynq上的管腳是固定的,而EMIO,是通過PL部分擴展的,所以使用EMIO時候需要在約束文件中分配管腳,所以設計EMIO的程序時,需要生成PL部分的bit文件,燒寫到FPGA中。
其次、由下圖可以看出MIO共占54bit,而EMIO占64bit。其中MIO占用IO號為0-53。而EMIO占用IO號為54-117。
再者、無論是EMIO還是MIO都屬于PS上的IO,直接由PS操作。在調用頭文件,只調用#include "xgpiops.h"即可,而在調用AXI_GPIO時,則需要#include "xgpio.h"。
關于EMIO:
從 PS 出來,有幾種連接可以經由 PL 到外部接口上,這被稱作擴展的 MIO (Extended MIO) ,即 EMIO。
EMIO 涉及到兩個域之間的信號傳輸,是由一組簡單的導線連接實現的,因此,EMIO 并不支持所有的 MIO 接口,而支持的那些中,也有些的能力受到了限制 。這些連接被安排成兩個 32 位的組。
很多情況下,經由 EMIO 的接口是直接連接到所需的 PL 的外部引腳上的,這個連接是由一個約束(描述)文件中的條目所指定的。在這個模式下,EMIO 可以實現額外的 64 個輸入線和 64 個帶有輸出始能的輸出線。另一個選擇是用 EMIO 來連接PS 和 PL 里的外設模塊。下圖描繪了這兩種使用模式:
最后看一下,AXI_GPIO相當于GPIO的IP核,我們調用時是占用相應AXI總線地址空間,如下圖,占用地址為0x41200000和0x41210000
-
接口
+關注
關注
33文章
8685瀏覽量
151640 -
引腳
+關注
關注
16文章
1215瀏覽量
50763 -
GPIO
+關注
關注
16文章
1216瀏覽量
52267
原文標題:ZYNQ7000系列MIO/EMIO/AXI_GPIO接口
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論