Embedded 为什么使用GPIO?

Embedded 为什么使用GPIO?,embedded,computer-architecture,Embedded,Computer Architecture,我一直在搜索一些好的链接/源代码,以帮助理解GPIO以及它们为什么被用于嵌入式系统,但都是徒劳的。有人能给我指出一些吗?在任何有用的系统中,CPU都必须有一些与外部世界交互的方式——无论是呈现给用户的灯光或声音,还是用于与系统其他部分通信的电信号。GPIO(通用输入/输出)引脚允许您从CPU外部获取程序的输入或向用户提供输出 GPIO作为输入的一些用途: 检测按钮按下 从外部设备接收中断请求 GPIO作为输出的一些用途: 闪烁发光二极管 按蜂鸣器 外部设备的控制电源 对于双向GPIO或一

我一直在搜索一些好的链接/源代码,以帮助理解GPIO以及它们为什么被用于嵌入式系统,但都是徒劳的。有人能给我指出一些吗?

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

GPIO作为输入的一些用途:

  • 检测按钮按下
  • 从外部设备接收中断请求
GPIO作为输出的一些用途:

  • 闪烁发光二极管
  • 按蜂鸣器
  • 外部设备的控制电源

对于双向GPIO或一组GPIO来说,一个很好的例子是“bit bang”一个SoC本机不提供的协议。例如,您可以使用自己的SPI或I2C接口。

您找不到答案的原因可能是,如果您知道嵌入式系统是什么、做什么,或者确实知道关于数字电子系统的任何事情,那么答案就太明显了,写不下来!这就是说,如果您已经了解了如何实际实现一个工作的嵌入式系统,那么您应该已经知道它们是什么

GPIO引脚至少是两状态数字逻辑I/O。在大多数情况下,部分或全部也可能是中断源。这些中断可能有上升、下降、双边缘或电平触发选项


在某些目标上,GPIO引脚可能具有可配置的输出电路,以允许(例如)省略外部上拉,或允许连接到需要开路集电极输出的设备,在某些情况下甚至提供高频噪声和故障的过滤。

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


虽然处理器可以使用四线SPI总线甚至两线I2C总线来控制任意数量的输入和输出,但在许多情况下,处理器需要监测或控制的信号数量足够小,因此更容易直接在芯片itse上包含监测或控制某些信号的电路lf.尽管专用接口硬件通常具有仅输出或仅输入引脚(选择硬件接口芯片的人员将知道需要监控多少信号,以及需要控制多少信号),一个特定的处理器系列可用于某些需要4个输入和28个输出的应用程序,以及其他需要28个输入和4个输出的应用程序。与其要求在输入和输出之间具有不同平衡的应用程序中使用不同的部件,不如只使用一个部件,该部件的输入可以是根据需要配置为输入或输出。

我想你已经把它倒过来了。GPIO是电子学中的默认值。它是一个引脚,一个可以编程的信号。一切都是由这些组成的。对于处理器来说,专用外设是一种特殊情况,当你知道你想要一个更有限的功能时,它们是额外的

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

一些特别适合的应用:

  • 重置系统中的部件(芯片)
  • 开关、键盘、灯的接口(它们只有一个引脚/信号!)
  • 用继电器或半导体开关控制负载(开-关)
    • 电磁阀,电机,加热器,阀门
  • 从单个信号获取中断
    • 恒温器、限位开关、液位检测器、报警装置

顺便说一句,视差推进器实际上只有GPIO引脚。外围设备是用软件制造的。它在很多方面都很好用。

你想知道什么是维基百科页面上没有介绍的?@Anon:好吧,首先,为什么要用它而不是在微处理器上提供专用引脚?同样的嵌入式处理器用于m任何不同的嵌入式系统——生产一种类型的一百万个处理器要比生产十个不同处理器中的十万个便宜得多。通用IO引脚使其更容易重新调整用途以用于各种用途。