Zynq 7000的3种IO
概念
MIO
MIO:多功能IO接口(分配在 GPIO 的 Bank0 和Bank1),属于Zynq的PS部分,在芯片外部有54个引脚。这些引脚可以用在GPIO、SPI、UART、TIMER、Ethernet、USB等功能上,每个引脚都同时具有多种功能,故叫多功能。这些 IO 与 PS 直接相连。不需要添加引脚约束,MIO 信号对 PL部分是透明的,不可见。所以对 MIO 的操作可以看作是纯 PS 的操作。
// xparameters.h
#define XPAR_PS7_GPIO_0_DEVICE_ID 0
#define XPAR_PS7_GPIO_0_BASEADDR 0xE000A000
#define XPAR_PS7_GPIO_0_HIGHADDR 0xE000AFFF
GPIO 的控制和状态寄存器基地址为:0xE000_A000,我们 SDK 下软件操作底层都是对于内存地址空间的操作。
一个GPIO端口至少需要两个寄存器,一个控制用的通用IO口控制寄存器和一个存放数据的通用IO端口数据寄存器。
GPxCON寄存器为控制寄存器,它的每一位对应一个引脚,其某位设为0,相应的引脚为输出引脚,为1时为输入引脚。
GPxDAT为数据寄存器,当引脚设为输入时,读此寄存器可以知道相应的引脚的电平状态为高还是低,当引脚设为输出时,写此寄存器可令此引脚输出为高电平或者低电平。
Bank0有32个MIO引脚,Bank1有22个MIO引脚,54个引脚直接通过MIO连接到PS上,不需硬件配置,直接使用SDK软件进行编程。
EMIO
EMIO:Extend multiuse I/O,分布在BANK2、BANK3,依然属于Zynq的PS部分,只是连接到了PL上,再从PL的引脚连到芯片外面实现数据输入输出。当我们想通过PS来访问PL又不想浪费AXI总线时,就通过EMIO接口来访问。在54个I/O中,有一些只能用于MIO,大部分可以用于MIO与EMIO,一些接口信号线只能通过EMIO访问。
下图为Vivado工程里ZYNQ CPU核配置,确保EMIO勾选,设置了多少位位宽,即为其分配了多少个管脚,再添加管脚约束文件,指向相应的PL部分管脚。
EMIO依然属于PS,只是连接到了PL,再从PL输出信号。
Q:如何理解这句话?
A:相当于说,点亮PS的对应的控制器,但是此时的外部引脚是不确定的;必须通过PL端进行管脚约束,才能知道这个控制器的外部引脚连到了哪里。
换句话说,PS控制了时序,PL端提供了引脚。
AXI_GPIO
AXI(Advanced eXtensible Interface)是一种总线。
AXI_GPIO相当于GPIO的IP核,是通过AXI总线挂在PS上的GPIO上。
EMIO的使用例程
以双串口为例:
实现功能:
① 实现数据直接从PS的MIO口接收与发送
② 通过PL口实现数据的接收与发送
③ 实现数据的双串口接收与发送(即PS可同时从两个UART口接收或发送数据)
新建工程——创建block design——添加Zynq ps IP——预设为Zedboard板
可以看到UART1 的48、49 MIO接口被选中(如下图)
回到Peripheral I/OPins选项,勾选UART0,可以看到EMIO框框变亮
点击ok,此时的Zynq ps IP中,UART0已经添加,其中一个接收(UART0_RX),一个发送(UART0_TX)
接下来对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。
参考
ZYNQ 的三种GPIO :MIO、EMIO、AXI_GPIO
ZYNQ笔记(3):GPIO的使用(MIO、EMIO)——led灯
Zynq 7000的3种IO的更多相关文章
- ZYNQ入门实例——三种GPIO应用、中断系统及软硬件交叉触发调试
一.前言 Xlinx的ZYNQ系列SOC集成了APU.各种专用外设资源和传统的FPGA逻辑,为ARM+FPGA的应用提供助力,降低功耗和硬件设计难度的同时极大提高两者间传输的带宽.之前在研究生课题中使 ...
- 简述linux同步与异步、阻塞与非阻塞概念以及五种IO模型
1.概念剖析 相信很多从事linux后台开发工作的都接触过同步&异步.阻塞&非阻塞这样的概念,也相信都曾经产生过误解,比如认为同步就是阻塞.异步就是非阻塞,下面我们先剖析下这几个概念分 ...
- Atitit 五种IO模型attilax总结 blocking和non-blocking synchronous IO和asynchronous I
Atitit 五种IO模型attilax总结 blocking和non-blocking synchronous IO和asynchronous I 1.1. .3 进程的阻塞1 1.2. 网络 ...
- 聊聊 Linux 中的五种 IO 模型
本文转载自: http://mp.weixin.qq.com/s?__biz=MzAxODI5ODMwOA==&mid=2666538919&idx=1&sn=6013c451 ...
- Linux 下的五种 IO 模型
概念说明 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的 ...
- [转载] Linux五种IO模型
转载:http://blog.csdn.net/jay900323/article/details/18141217 Linux五种IO模型性能分析 目录(?)[-] 概念理解 Lin ...
- 网络通信 --> Linux 五种IO模型
Linux 五种IO模型 聊聊Linux 五种IO模型
- 从同步阻塞聊到Java三种IO方式
本文总结自 https://zhuanlan.zhihu.com/p/34408883, https://www.zhihu.com/question/19732473中愚抄的回答, http://b ...
- (四)五种IO模型
基本概念 我们之前编写的套接字程序都是阻塞式的,其实这也是默认的形式.现在我们需要明确一些概念: 用户空间和内核空间 首先要明确,用户启动的应用程序在系统中以一个进程的形式存在,而无论对于网络数据还是 ...
- 2018.5.4 Unix的五种IO模型
阻塞非阻塞和异步同步 同步和异步关注的是消息通信机制,关注两个对象之间的调用关系. 阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态,关注单一程序. Unix的五种IO模型 以下基于Li ...
随机推荐
- QT MySQL连接自动断开
参考链接 MySQL链接10天后自动断开解决方案:<https://blog.csdn.net/xiaoxiao133/article/details/123006881 方式一 QT中可以通过 ...
- Java 泛型,这次面试我表现很棒!
public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryBy ...
- 51k+ Star!动画图解、一键运行的数据结构与算法教程!
大家好,我是 Java陈序员. 我们都知道,<数据结构与算法> -- 是程序员的必修课. 无论是使用什么编程语音,亦或者是前后端开发,都需要修好<数据结构与算法>这门课! 在各 ...
- kettle使用4-使用Pan.bat执行转换、Kitchen.bat执行作业
一.直接在spoon中执行作业 使用bat文件执行速度比执行在spoon.bat中执行慢很多,如果少数几个任务,可以直接在spoon中执行. 1.新建作业 2.在通用中,新建START 任务执行的时间 ...
- Echarts设置饼状图保证你看的明明白白
简单的饼状图 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- 小程序真机报错errMsg: “hideLoading:fail:toast can‘t be found“ ?
showLoading 和 showToast 同时只能显示一个: showLoading 应与hideLoading 配对使用: 把请求接口统一封装,开始请求接口时showLoading,请求接口后 ...
- kapt构建报错
报错信息: Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodExce ...
- JDBC连接MySQL 8时报错:MySQLNonTransientConnectionException: Public Key Retrieval is not allowed
需要设置属性 IDEA DBerver
- FFmpeg开发笔记(二十二)FFmpeg中SAR与DAR的显示宽高比
<FFmpeg开发实战:从零基础到短视频上线>一书提到:通常情况下,在视频流解析之后,从AVCodecContext结构得到的宽高就是视频画面的宽高.然而有的视频文件并非如此,如果按照A ...
- ubuntu禁止指定的软件升级
禁止软件升级 sudo echo 软件包名 hold | sudo dpkg --set-selections 取消软件禁止升级的限制 sudo echo 软件包名 install | sudo dp ...