概述
数字电路基础知识—— 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介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复