天天看點

基于Zynq的MIO與EMIO的差別和應用

MIO與EMIO的差別與應用

1 MIO與EMIO概念

MIO:多功能IO接口,屬于Zynq的PS部分,在晶片外部有54個引腳。這些引腳可以用在GPIO、SPI、UART、TIMER、Ethernet、USB等功能上,每個引腳都同時具有多種功能,故叫多功能。

EMIO:擴充MIO,依然屬于Zynq的PS部分,隻是連接配接到了PL上,再從PL的引腳連到晶片外面實作資料輸入輸出。

2 MIO與EMIO的使用例程(雙序列槽、雙網口等的實作)

以雙序列槽為例:

實作功能:

①   實作資料直接從PS的MIO口接收與發送

②   通過PL口實作資料的接收與發送

③   實作資料的雙序列槽接收與發送(即PS可同時從兩個UART口接收或發送資料)

建立工程——建立block design——添加Zynq ps IP——預設為Zedboard闆

可以看到UART1 的48、49 MIO接口被選中(如下圖)

基于Zynq的MIO與EMIO的差別和應用

回到Peripheral I/OPins選項,勾選UART0,可以看到EMIO框框變亮

基于Zynq的MIO與EMIO的差別和應用

點選ok,此時的Zynq ps IP中,UART0已經添加,其中一個接收(UART0_RX),一個發送(UART0_TX)

基于Zynq的MIO與EMIO的差別和應用

接下來對UART0_RX、UART0_TX作限制

限制到Zedboard闆的Pmod口上(本例中使用JA口進行擴充)限制檔案如下:

set_propertyPACKAGE_PIN Y11 [get_ports UART0_RX]

set_propertyPACKAGE_PIN AA11 [get_ports UART0_TX]

set_propertyIOSTANDARD LVCMOS33 [get_ports UART0_TX]

set_propertyIOSTANDARD LVCMOS33 [get_ports UART0_RX]

生成比特流,進行SDK開發

此時便可從Pmod的JA1口和JA2口進行序列槽資料的接收與發送,實作從PL讀取接收資料。

讀取接收到的資料通過SDK程式設計實作在PS中處理資料,之後我們可以添加其它外設IP,用PS中處理後的資料控制外設IP。

</div>