数字电路基础知识—— IO外设之GPIO介绍

一、GPIO 原理

GPIO,英文全称为 General-Purpose IO ports,也就是 通用IO口。嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备/电路,对这些设备/电路有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。而且,许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如灯亮与灭。对这些设备/电路的控制,使用传统的串行口或并行口都不合适。所以在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO。

接口至少有两个寄存器,即 “通用IO控制寄存器”“通用IO数据寄存器”。一个是做控制的通用IO端口控制寄存器,另外一个是存放数据的通用IO端口数据寄存器

即数据寄存器的各位都直接引到芯片外部,与GPIO引脚一一对应,而对这种寄存器中每一位的作用,即每一位的信号传递方向,则可以通过控制寄存器中对应位独立的加以设置。这样,有无GPIO接口也就成为微控制器区别于微处理器的一个特征。

二、GPIO相关的寄存器

1)GPxCON寄存器

它用于配置引脚的功能,GPACON中每一位对应一根引脚

某位为0时,对应引脚为输出,此时在GPADAT中相应位写入0或1,让此引脚输出低电平或高电平;当某位被设为1时,对应引脚为地址线或用于地址控制,此时GPADAT保留不用。

2)GPxDAT寄存器

GPxDAT用于存储引脚值(读和写)。当引脚被设为输入时,读此寄存器得到对应引脚的电平状态是高还是低;当引脚被设为输出时,写此寄存器相应位可令此引脚输出高低电平。

三、zynq GPIO 结构


对于ZYNQ XC7z020 GPIO结构图来说,bank0,bank1分别为32、22共54 个引脚。通过MIO连接到PS上,每个引脚通过寄存器设置来确定该引脚的输入输出或者中断状态。这54个引脚不需要通过硬件配置即可直接编程使用。

bank2,bank3 通过EMIO接口讲cpu的gpio连接到PL部分,共64个引脚。可以在PL部分进行逻辑设计,进行特定功能的GPIO设置。然后在PS部分,控制编程。但是使用EMIO引脚必须通过硬件哦欸之,才能在SDK中进行编程控制。


上半部分用于GPIO中断控制的寄存器,下半部分即为GPIO查询方式读写相关的寄存器。
有 DATA_RO、MASK_DATA_LSW、MASK_DATA_MSW、DIRM、OEM寄存器。

例:用C语言查询方式来实现GPIO的方法

通过查询方式,如果开发板上MIO_PIN_13为高电平,点亮LD9,否则,熄灭LD9。

真个c程序控制GPIO的流程图如上。


使用ARM 来控制GPIO驱动,进而控制LED的工程会在下面的博客中介绍,详细的介绍了如何通过C语言程序初始化GPIO并控制PL部分的逻辑设计。
https://blog.csdn.net/vivid117/article/details/99678303

数字电路基础知识—— IO外设之GPIO介绍相关推荐

  1. 数字电路基础知识——乘法器的设计(二)( 串行、流水线、有符号数八位乘法器)

    数字电路基础知识--乘法器的设计(二)( 串行.流水线.有符号数八位乘法器) 前面一节关于乘法器的具体实现方式有很多种方法,均有各自的优缺点. 本节将再介绍一下两种乘法器的设计,分别用Verilog语 ...

  2. 数字电路基础知识——组合逻辑电路(奇偶校验电路、数据比较器的设计)

    数字电路基础知识--组合逻辑电路(奇偶校验器.比较器的Verilog设计) 本次主要介绍组合逻辑电路中的奇偶校验电路以及比较器的设计,以及相干的实例来熟悉这两种电路. 一.奇偶校验电路 奇偶校验码 奇 ...

  3. 数字电路基础知识——组合逻辑电路之乘法器的设计(一)—— 并行、移位相加、加法树、查找表乘法器

    数字电路基础知识--乘法器的设计(一)-- 并行.移位相加.加法树.查找表 乘法器的设计主要应用在数字信号处理和数字通信,本节主要介绍乘法器的四种实现方法.使用并行乘法器.移位相加乘法器.查找表乘法器 ...

  4. 数字电路基础知识——组合逻辑电路实现一些简单逻辑电路 (一)(用Verilog实现:绝对值函数运算(补码问题),取对数函数(移位寄存器),取整函数)

    数字电路基础知识--组合逻辑电路实现一些简单逻辑电路 (一)(用Verilog实现:绝对值函数运算(补码问题),取对数函数(移位寄存器),取整函数) 在数字逻辑设计中,本节介绍绝对值运算函数如何用Ve ...

  5. 存储系统基础知识与RAID存储技术介绍【转载自微信公众号开源Linux】

    存储系统基础知识与RAID存储技术介绍 存储系统是整个IT系统的基石,是IT技术赖以存在和发挥效能的基础平台.早先的存储形式是存储设备(通常是磁盘)与应用服务器其他硬件直接安装于同一个机箱之内,并且该 ...

  6. 数字电路基础知识——格雷码和二进制码的转换的算法和Verilog实现

    数字电路基础知识--格雷码和二进制码的转换的算法和Verilog实现 关于数字电路中的码制问题在这篇博客中已经做了详细分析, 数字电路基础知识--数字IC中的进制问题(原码,反码,补码以及各进制的转换 ...

  7. 数字电路基础知识|时钟和时序

    时钟的概念 时钟对数字电路而言非常重要,没有时钟数字电路就没法工作,其全称是时钟频率,一般由晶振来提供时钟频率. 在数字电路中,所有数据.逻辑单元等状态的更新都是以时钟为基础的,时钟频率在数字电路中起 ...

  8. java基础知识---IO常用基础操作(二)

    九. 缓冲流 9.1 概述 缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流:BufferedInputStream,BufferedOutp ...

  9. Java基础知识——IO流

    简介 IO是指Input/Output,即输入和输出.以内存为中心: Input指从外部读入数据到内存,例如,把文件从磁盘读取到内存,从网络读取数据到内存等等 Output指把数据从内存输出到外部,例 ...

  10. IC验证必备的数字电路基础知识(一):数字逻辑基础

    参考教材:数字电路与逻辑设计(第2版)邬春明 目录 1. 数制和编码 1.1. 数制 1.2. 原码,反码,补码 1.3. 常用编码 2. 逻辑代数和运算 2.1. 逻辑变量与逻辑运算 2.2. 逻辑 ...

最新文章

  1. Ubuntu中如何使得程序在后台运行
  2. 3.5 矩阵 $4$ 个空间和方程 $A\mathbf{x}=\mathbf{y}$ 的关系
  3. 微信开发3之php模板信息推送
  4. Description Resource Path Location Type Java compiler level does not match the version of the insta
  5. H5脱离微信通过调起微信客户端支付
  6. android适配工具,Android自动适配工具
  7. 开源GIS(五)——openlayers中interaction的select、draw与modify
  8. 解析多层list_基于laravel5.2进行中间件源码的解析
  9. redis集群环境搭建入门
  10. .netcore signalR 实时消息推送
  11. Set集合练习题02
  12. 精美网站登录界面 php,window_教你自己做xp精美登录界面,    一、在你的电脑 - phpStudy...
  13. python获取管理员权限
  14. 详细讲解CASS勘测定界图的绘制及出图
  15. 三维气象数据可视化系统介绍
  16. java实训意义_java实习心得体会
  17. 小学计算机表格制作教学,《制作表格》~试讲稿~小学信息技术
  18. zzulioj1008: 美元和人民币
  19. Linux intel-xed反汇编引擎使用
  20. 艾默生质量流量计因测量原理不同可分为多种系列

热门文章

  1. 10个SQL注入工具
  2. 我们要不要上线「个人app」 ?
  3. windows解压jar文件
  4. 手机12306买卧铺下铺技巧_12306订下铺有什么技巧?
  5. Google式用户体验的十大内在原则
  6. 软件工程 超市库存管理系统 可行性研究-需求分析
  7. android 周日历控件加事件动态添加
  8. 408计算机考研题型分布,计算机考研:计算机408大纲考点变化解析指导
  9. Python实现Hart协议
  10. 如何查看浏览器Cookie数据(以360为例)