• ug585里的block design里可以知道zynq-7000的主要分成两个模块,PS部分是处理器系统,是zynq系统的核心。PS包括APU应用处理单元,存储器接口,IOPIO外设,interconnect内部互联;PL指可编程逻辑即FPGA部分,FPGA可以看作外设使用。

  • MIO即multiuse I/O多用IO,具体定义详见ds190-Zynq-7000-Overview的PS Interfaces(ds是datasheet的缩写)。

The function of the MIO is to multiplex access from the PS peripheral and static memory interfaces to the PS pins as defined in the configuration registers. There are up to 54 pins available for use by the IOP and static memory interfaces in the PS.

  • MIO的功能是把来自PS外设和静态存储器接口的访问多路复用到PS引脚上。PS中的IO外设和静态内存接口最多可使用54个引脚。

  • IO外设和静态存储器接口都要连接在MIO上,但MIO只有54个不太够用,因此引入多路复用的概念。比如当UART和I2C都想使用两个引脚时,就先连接在MIO上,通过MIO连接到外部引脚上,再通过软件编程决定MIO是给UART还是I2C使用。

  • GPIO即Genernal Purpose I/O,定义详见ug585-Zynq-7000-TRM的Ch14(ug是user guide的缩写)。

The general purpose I/O (GPIO) peripheral provides software with observation and control of up to 54 device pins via the MIO module. It also provides access to 64 inputs from the Programmable Logic (PL) and 128 outputs to the PL through the EMIO interface. The GPIO is organized into four banks of registers that group related interface signals.

  • GPIO外设通过MIO模块为软件提供多达54个设备引脚做观测控制。它同样通过EMIO接口提供PL端的64个输入和128个到PL的输出访问。GPIO根据接口信号被分成4组寄存器(4 bank)。
  • 观测即观测器件引脚上的高低电平,作输入控制,把高低电平读入软件程序,比如GPIO通过外部引脚接到按键,假设按下按键为低电平,读取高低电平即可确定按键状态
  • 控制即控制引脚的输出,把GPIO接到外部引脚LED上,通过GPIO控制引脚上的高低电平,从而控制LED的亮灭

Each GPIO is independently and dynamically programmed as input, output, or interrupt sensing. Software can read all GPIO values within a bank using a single load instruction, or write data to one or more GPIOs (within a range of GPIOs) using a single store instruction. The GPIO control and status registers are memory mapped at base address 0xE000_A000

  • GPIO可独立且动态的编程作为输入,输出和中断感知(中断模式)。软件可以通过load指令读取bank里所有GPIO的值,通过一个独立的store指令写入bank里GPIO的值。GPIO的控制和状态寄存器存储映射到基地址 0xE000_A000
  • 软件通过一组 存储映射(memory-mapped) 的寄存器来控制GPIO。

The GPIO is controlled by software through a series of memory-mapped registers. The control for each bank is the same, although there are minor differences between the MIO and EMIO banks due to their differing functionality.

  • 存储即操作对象位于存储器内,映射指读写操作给定寄存器的地址

If additional I/O pins beyond the 54 are required, it is possible to route these through the PL to the I/O associated with the PL. This feature is referred to as extendable multiplexed I/O (EMIO).

  • 如果需要使用超过54个IO引脚,可以把这些引脚连接到PL上。这个特性被称为可扩展多路复用IO(EMIO)。

  • GPIO还可以连接到EMIO,即extendable MIO,EMIO属于PL部分。PS可以通过EMIO连接到FPGA的引脚上,即EMIO扩展了PS的引脚

  • 在ug585的ch2 PS-PL MIO-EMIO Signals and Interfaces介绍了EMIO和MIO的区别

  • USB和静态存储器不能连接在EMIO上,看连线也能看出只能连接到MIO上。Static Memory Controller (SMC)

  • GPIO的bank 2分为三组分别用来输入、输出和输出使能

感谢正点原子B站发布的视频【第二期】手把手教你学ZYNQ之嵌入式开发篇

zynq文档学习之GPIO和MIO和EMIO的基本介绍相关推荐

  1. zynq文档学习之GPIO寄存器基本操作

    ug585的ch14.2介绍了GPIO具体的对器件引脚的操作,即对寄存器操作,寄存器又被直接封装成库函数,zynq一般是调用库函数进行操作.但了解寄存器可以大概了解底层驱动的原理. 首先介绍Bank0 ...

  2. zynq文档学习之向GPIO引脚写数据

    作为实验GPIO连接MIO控制LED的前置知识,摘自ug585的14.3章 首先看14.3.1启动顺序,第一步复位(上电自动复位)和第二步时钟(时钟信号由板子提供,晶振倍频)都不用考虑,重点学习第三步 ...

  3. zynq文档阅读之GPIO的中断

    中断简单来说就是让你停下手中活去做另外一件事情,比如你正在写报告,通知马上要考试就停下写报告开始准备考试,考试就可以看作一个中断(自己粗浅的理解) 根据文档ug585的ch14.2,引脚的输入连接到中 ...

  4. zynq开发系列2:GPIO连接MIO控制LED闪烁(SDK端代码编写详解)

    根据文档只需要3步,zynq文档学习之向GPIO引脚写数据 把GPIO方向设置为输出 设置输出使能 写数据到GPIO的输出引脚 参考官方参考教程学习编写代码(system.mss下没有这栏说明gpio ...

  5. zynq开发系列3:GPIO连接MIO通过按键控制LED灯亮起

    按键和LED由MIO连接,在PS端用按键控制LED,按键按下时发出信号,LED接收到信号后亮起 可以参考上一节实验 zynq开发系列2:GPIO连接MIO控制LED闪烁 的流程和代码,在vivado操 ...

  6. Spring文档学习

    Spring文档学习 参考Spring Framework Documentation学习 1. IoC 容器 1.1 容器实例化 <beans><import resource=& ...

  7. EasyUI文档学习心得

    概述 jQuery EasyUI 是一组基于jQuery 的UI 插件集合,它可以让开发者在几乎完全不需要CSS以及复杂的JS代码情况下完成美观且功能强大的Web界面. 本文主要说明一些如何利用Eas ...

  8. UHS-II文档学习

    #UHS-II文档学习 UHS-II 引脚分配 SD4.0与SD3.0相比多了底下一排引脚[10-17],UHS-II Mode使用的是三组差分信号分别为:D0.D1和RCLK差分信号.RCLK差分信 ...

  9. python文档学习

    文章目录 python文档学习 python解释器 传入参数 交互模式的提示符 帮助信息 基础知识 python保留字 注释 多行语句 缩进 python数据类型与运算符 变量与基本类型 数字类型 集 ...

最新文章

  1. 获取本地System权限
  2. python编程培训多少钱-python培训一般多少钱?[python培训]
  3. Java程序员从笨鸟到菜鸟全部博客目录
  4. SIT和UAT有什么区别?
  5. NPOI 在指定单元格导入导出图片
  6. 参加开发竞赛遇到的问题【总结】
  7. mats显存测试软件linux环境,Mats显存检测软件下载-Mats显存检测软件最新版下载-微侠手游网...
  8. Presto入门介绍
  9. pytorch tensor查找0_Pytorch简单教程
  10. jmap查看java进程占用的数据库连接数
  11. 深入理解Linux系统中的用户和组账号
  12. mongodb 良贴
  13. Linux Centos快速屏蔽IP访问(iptables)
  14. 手机变为电脑的摄像头,使像素高清起来-使用DroidCam
  15. Origin软件的安装
  16. python flask 路由_Python之Flask 路由与模板语法
  17. Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!
  18. 海图水深点的标注方法
  19. TA100 T3.7 TB(D)R
  20. python小组项目总结报告_给大家汇报一下我们学习小组的进展情况

热门文章

  1. 前端工程化(ES6模块化和webpack打包)
  2. 【链表】链表中环的入口结点
  3. MediaInfo源代码分析 5:JPEG解析代码分析
  4. JAVA编写的一个简单的Socket实现的HTTP响应服务器
  5. 使用python批量验证邮箱密码_python(Django 网页登陆账号、密码、邮箱验证)
  6. 搭建 Harbor 1.10.6 高可用集群
  7. java调用node脚本并获取输出,Node.js用readline模块实现输入输出
  8. Springboot项目启动时加载数据库数据到内存
  9. vue中v-model和v-bind区别
  10. Commit Message 规范