为什么要使用GPIO?

时间:2011-02-13 23:07:12

标签: embedded computer-architecture

我一直在寻找一些好的链接/来源,以帮助理解GPIO以及它们在嵌入式系统中使用的原因。有谁能指点我一些?

4 个答案:

答案 0 :(得分:21)

在任何有用的系统中,CPU都必须有一些与外界交互的方式 - 无论是向用户呈现的灯光还是声音,还是用于与系统其他部分通信的电子信号。 GPIO(通用输入/输出)引脚允许您从CPU外部获取程序输入或向用户提供输出。

GPIO作为输入的一些用途:

  • 检测按钮
  • 接收来自外部设备的中断请求

GPIO作为输出的一些用途:

  • 闪烁LED
  • 发出蜂鸣声
  • 控制外部设备的电源

双向GPIO或一组GPIO的一个好例子可能是“bit-bang”您的SoC本身不提供的协议。例如,您可以滚动自己的SPI或I 2 C接口。

答案 1 :(得分:7)

你无法找到答案的原因可能是因为如果你知道嵌入式系统是什么和做什么,或者确实是什么关于数字电子系统,那么答案就太明显了,不能写下来!也就是说,如果你实际上实现了一个有效的嵌入式系统,你应该已经知道它们是什么了。

GPIO引脚至少是两个状态数字逻辑I / O.在大多数情况下,它们中的一些或全部也可能是中断源。这些中断可以具有上升,下降,双边沿或电平触发的选项。

在某些目标上,GPIO引脚可能具有可配置的输出电路,例如,可以省略外部上拉电阻,或允许连接到需要开集输出的器件,在某些情况下甚至可以提供高滤波频率噪声和毛刺。

答案 2 :(得分:3)

在大多数嵌入式系统中,处理器最终负责检测将外部刺激转换为数字级逻辑电压的各种设备的状态(例如,当按下按钮时,引脚将变低;否则它将处于高位)和控制将逻辑电平电压直接转换为动作的设备(例如,当引脚为高电平时,指示灯将亮起;当电压低时,它将熄灭)。过去,处理器没有通用I / O,而是必须使用共享总线与可以处理I / O请求并设置或报告外部电路状态的设备进行通信。虽然这种方法并非完全没有优势(一个处理器可以监控或控制共享总线上的数千个电路),但在许多实际应用中都很不方便。

虽然处理器可以使用四线SPI总线甚至双线I2C总线控制任意数量的输入和输出,但在许多情况下,处理器需要监视或控制的信号数量是足够小,以至于更容易简单地包括用于直接在芯片本身上监视或控制某些信号的电路。虽然专用接口硬件通常具有仅输出或仅输入引脚(选择硬件接口芯片的人将知道需要监控多少信号,以及需要控制多少信号),但可以使用特定系列的处理器在一些需要例如的应用中4个输入和28个输出,以及需要28个输入和4个输出的其他应用。不需要在输入和输出之间具有不同平衡的应用中使用不同的部件,根据需要,只需要一个具有输入的部件就可以更简单地配置为输入或输出。

答案 3 :(得分:2)

我认为你倒退了。 GPIO是电子产品的默认设置。它是一个可编程的引脚,一个信号。一切都是由这些组成的。对于处理器而言,专用外设是一种特殊情况,当您知道自己需要更有限的功能时,它们就是额外的功能。

从芯片制造商的角度来看,您通常不确切知道用​​户需要什么,因此您无法在芯片上制作精确的外围设备。你做的是通用的。许多应用程序非常罕见,因此没有特定芯片的市场。您唯一能做的就是使用GPIO或自己制作特定的硬件。此外,所有(未使用或可能未使用)引脚都值得转换为GPIO,因为这使得该部件更加通用和可重用。通用和可重用几乎是可编程芯片的全部要点,否则你只需要制造ASIC。

一些特别合适的应用程序:

  • 重置系统中的部件(芯片)
  • 开关,键盘,指示灯的接口(它们只有一个引脚/信号!)
  • 使用继电器或半导体开关控制负载(开关)
    • 电磁阀,电机,加热器,阀门......
  • 从单个信号中获取中断
    • 恒温器,限位开关,液位检测器,报警装置......
顺便说一下,Parallax Propeller几乎没有GPIO引脚。外围设备是用软件制作的。它适用于许多用途。