我是靠谱客的博主 善良纸飞机,最近开发中收集的这篇文章主要介绍数字电路基础知识—— IO外设之GPIO介绍,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

数字电路基础知识—— 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介绍的全部内容,希望文章能够帮你解决数字电路基础知识—— IO外设之GPIO介绍所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(185)

评论列表共有 0 条评论

立即
投稿
返回
顶部