历史上的今天
返回首页

历史上的今天

今天是:2025年01月28日(星期二)

2020年01月28日 | 【ARM】ARM体系结构-GPIO

2020-01-28 来源:eefocus

GPIO

    Gerneral-Purpose IO ports,即通用IO口。


  在嵌入式系统中常常有数量众多,但是却比较简单的外部设备/电路。


  对这些设备/电路,有的需要CPU为之提供控制手段,有的则需要被CPU用做输入信号。

  许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如控制某个LED灯亮与灭;或者通过获取某个管脚的电平属性来达到判断外围设备的状态。


  对这些设备/电路的控制,使用传统的串行口或并行口都不合适,所以在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO。


   接口至少有两个寄存器,即“通用IO控制寄存器”与“通用IO数据寄存器”。


   数据寄存器的各位都直接引致芯片外部,而对这种寄存器中每一位的作用,即每一位的信号流通方向,则可以通过控制寄存器中对应位独立地加以设置,比如可以设置某个管脚的属性为输入、输出或其它特殊功能。

 


注意

  在实际的MCU中,GPIO是有多种形式的。比如,有的数据寄存器可以按照位寻址,有些却不能按照位寻址,这在编程时就要加以区分。


  为了使用方便,很多MCU的GPIO接口除去两个标准寄存器必须具备外,还提供上拉寄存器,可以设置IO的输出模式是高阻,还是带上拉的电平输出,或者不带上拉的电平输出。这使得在电路设计中,外围电路就可以简化不少。


为什么要使用上拉电阻

  一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。


   数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定!


   一般说的是I/O端口,有的可以设置,有的不可以设置,有的是内置,有的是需要外接,I/O端口的输出类似于一个三极管的C,当C接通过一个电阻和电源连接在一起的时候,该电阻成为上拉电阻,也就是说,该端口正常时为高电平;C通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻。


   上拉电阻是用来解决总线驱动能力不足时提供电流的问题的。一般说法是上拉增大电流,下拉电阻是用来吸收电流。

推荐阅读

史海拾趣

Eutech公司的发展小趣事

EUtech Scientific Engineering公司起初以测量技术为核心,专注于为能源和电力系统提供高精度测量设备。随着技术的不断发展和市场需求的变化,公司意识到控制技术在电力系统中的重要性。于是,公司投入大量研发资源,成功将测量与控制技术相结合,开发出具有自主知识产权的控制系统,实现了从测量到控制的跨越。

DMEL Inc公司的发展小趣事

DMEL Inc公司成立于XX世纪初,最初由几位热衷于电子技术的工程师创立。他们凭借对半导体技术的深入研究,开发出了几款具有创新性的产品,这些产品在市场上获得了初步的成功。公司注重技术创新,不断投入研发资金,建立起了一支高效的研发团队。随着技术的不断积累,DMEL Inc逐渐在电子行业中崭露头角。

Eurosil Electronics Ltd公司的发展小趣事

随着全球对环保问题的日益关注,Eurosil也积极响应这一趋势。公司注重环保和可持续发展,在生产过程中采取了一系列环保措施,如减少废弃物排放、提高能源利用效率等。同时,Eurosil还积极研发环保型电子产品,为客户提供更加绿色、健康的产品选择。

CDE [ CORNELL DUBILIER ELECTRONICS ]公司的发展小趣事

经过近百年的发展,CDE公司始终坚守品质至上的原则,为全球客户提供高品质的电容器产品。公司通过不断的技术研发和产品升级,逐步在全球市场上树立了良好的口碑。如今,CDE的电容器产品已广泛应用于电源、电机、驱动器、航空电子、电力和军用电子设备等多个领域,赢得了全球客户的信赖。

GCi Technologies公司的发展小趣事
内部包含一个定时器,用于设定充电时间。当充电时间达到预设值时,IC将自动切断充电电流,防止电池过充。
Habia Cable公司的发展小趣事
内部包含一个定时器,用于设定充电时间。当充电时间达到预设值时,IC将自动切断充电电流,防止电池过充。

问答坊 | AI 解惑

IR小型高性能高压IC可简化HID镇流器设计

 国际整流器公司推出IRS2453D系列600V自激式全桥驱动器集成电路IC。该系列适用于一般照明、室外照明及投影机等HID镇流器应用。        新器件采用IR专有的高压集成电路(HVIC)技术,集成了两个高端和两个低端的栅极驱动器。此 ...…

查看全部问答>

招聘汽车电子产品硬件开发工程师

1、电子工程及三年以上的相关经验,有车载DVD音响系统的产品开发经验; 2、具有MCU和模拟电路的设计能力,懂得嵌入式开发中的微控制器知识; 3、具有产品文档编制的能力 4、工作地点:深圳蛇口 联系人:熊先生 26834615 szyinzhi@163.com…

查看全部问答>

Win Ce开发教程

时髦的WinCE 开发教程,及资料…

查看全部问答>

可调电压输出并数码显示的毕业设计

本帖最后由 paulhyde 于 2014-9-15 09:45 编辑 求助可调电压输出并数码显示的毕业设计,要逐伏调节,调节范围30v以下吧。哪位大侠有资料吗?在此先谢谢进来浏览的兄弟,不管是否能帮上忙  …

查看全部问答>

sop元件PCB封装资料图

sop元件PCB封装资料图 --EDN电子设计技术…

查看全部问答>

请教驱动高手,怎么编写PCM驱动?

我现在刚接触嵌入式下驱动的开发,现在项目组长要我写个UART驱动和PCM驱动,望各位驱动高手给我指点一下,怎么去编写一个PCM接口的驱动,PCM模块连接在板子上一般是遵从什么协议呢?PCI?USB?有协议遵从的话那我写的驱动应该是 ...…

查看全部问答>

初学嵌入式的痛苦的小弟有话要问

各位前辈们,我是大一广东二A计算机专业的学生,学完C语言,听网上说嵌入式怎么怎么好,怎么怎么有前景,你们的实际感受怎样呢? 学的步骤是怎样的? 计算机专业的学生学这怎样啊? 说是工资比纯软件的高,有这回事吗? 我刚开始看61单片机,感 ...…

查看全部问答>

中断处理程序里的等待机制出错

我编写了一个AT91RM9200平台下使用armlinux的设备驱动,主要功能是在中断程序里面读外设FPGA产生的数据,然后通过read系统调用传给用户空间,特殊一点的地方是外设需要由我自己启动。这里贴出有关的几个程序:   驱动部分: // 全局变 ...…

查看全部问答>

编译驱动模块后,导入出现问题,请解决!

我写了一个虚拟的字符驱动,编译没有问题,可是作为模块导入时,却出现如下的错误提示: unresolved symbol DECLARE_WAIT_QUEUE 下面是源码,请帮忙找一下原因,谢谢! #include #include #include #include #include #include #include ...…

查看全部问答>

FILEIOSHELL 和HEX2BIN两个文件有什么区别

看文档SPRAAQ2中用了两个文件,其中对APPCODE的由HEX到BIN用了FILEOSHELL,而对在RAM中运行的程序用了HEX2BIN,这两个有区别吗?…

查看全部问答>