Articulo de referencia

Entrada/salida de propósito general

Una entrada/salida de propósito general ( GPIO ) es un pin de señal digital no comprometido en una placa de circuito integrado o circuito electrónico (por ejemplo, MCU / MPU ) q...

Una entrada/salida de propósito general ( GPIO ) es un pin de señal digital no comprometido en una placa de circuito integrado o circuito electrónico (por ejemplo, MCU / MPU ) que puede usarse como entrada o salida, o ambas, y es controlable por software.

Los GPIO no tienen un propósito predefinido y no se utilizan de forma predeterminada. [1] [2] Si se utilizan, el propósito y el comportamiento de un GPIO se definen e implementan por el diseñador de circuitos de nivel de ensamblaje superior: el diseñador de la placa de circuito en el caso de GPIO de circuitos integrados, o el integrador del sistema en el caso de GPIO de nivel de placa.

GPIO de circuitos integrados

Los circuitos integrados (CI) tienen entradas de entrada de uso general (GPIO) que se implementan de diversas maneras. Algunos CI proporcionan entradas de entrada de uso general (GPIO) como función principal, mientras que otros las incluyen como un "accesorio" conveniente para alguna otra función principal. Algunos ejemplos de los primeros son el Intel 8255 , que conecta 24 entradas de entrada de uso general a un bus de comunicación paralelo , y varios CI expansores de GPIO , que conectan las entradas de uso general a buses de comunicación en serie como I²C y SMBus . Un ejemplo de este último es el CI Realtek ALC260, que proporciona ocho entradas de entrada de uso general junto con su función principal de códec de audio .

Los circuitos integrados de microcontroladores suelen incluir entradas y salidas de uso general (GPIO). Según la aplicación, las GPIO de un microcontrolador pueden constituir su interfaz principal con los circuitos externos o pueden ser solo un tipo de E/S utilizado entre varios, como E/S de señales analógicas , contador/temporizador y comunicación en serie.

En algunos circuitos integrados, en particular los microcontroladores, un pin GPIO puede tener otras funciones además de GPIO. A menudo, en estos casos, es necesario configurar el pin para que funcione como GPIO (en relación con sus otras funciones) además de configurar el comportamiento del GPIO. Algunos dispositivos de microcontroladores (por ejemplo, la familia dsPIC33 de Microchip) incorporan circuitos internos de enrutamiento de señales que permiten asignar GPIO a pines del dispositivo mediante programación. Las matrices de puertas programables en campo (FPGA) amplían esta capacidad al permitir que el mapeo, la instanciación y la arquitectura de los pines GPIO se controlen mediante programación.

GPIO a nivel de placa

Muchas placas de circuitos exponen los GPIO a nivel de placa a circuitos externos a través de conectores eléctricos integrados. Por lo general, se puede acceder a cada uno de estos GPIO a través de un pin de conector dedicado.

Al igual que los GPIO basados ​​en circuitos integrados, algunas placas simplemente incluyen GPIO como un recurso auxiliar conveniente que aumenta la función principal de la placa, mientras que en otras placas los GPIO son la función principal y central de la placa. Algunas placas, que se clasifican generalmente como placas de E/S multifunción, son una combinación de ambas; dichas placas proporcionan GPIO junto con otros tipos de E/S de propósito general. Los GPIO también se encuentran en placas controladoras integradas y computadoras de placa única como Arduino , BeagleBone y Raspberry Pi . [3]

A menudo, los GPIO de nivel de placa tienen capacidades de las que carecen los GPIO basados ​​en circuitos integrados. Por ejemplo, se pueden utilizar entradas de disparador Schmitt , controladores de salida de alta corriente, aisladores ópticos o combinaciones de estos para amortiguar y acondicionar las señales GPIO y proteger los circuitos de la placa. Además, a veces se implementan funciones de nivel superior, como el rebote de entrada , la detección de flancos de la señal de entrada y la salida de modulación por ancho de pulso (PWM).

Uso

Los GPIO se utilizan en una variedad diversa de aplicaciones, limitadas únicamente por las especificaciones eléctricas y de tiempo de la interfaz GPIO y la capacidad del software para interactuar con los GPIO de manera suficientemente oportuna.

Los GPIO suelen emplear niveles lógicos estándar y no pueden suministrar una corriente significativa a las cargas de salida. Cuando se complementa con un búfer de salida de alta corriente adecuado (o un relé mecánico o de estado sólido), se puede utilizar un GPIO para controlar dispositivos de alta potencia, como luces, solenoides, calentadores y motores (por ejemplo, ventiladores y sopladores). De manera similar, a menudo se utiliza un búfer de entrada, un relé o un optoaislador para traducir una señal que de otro modo sería incompatible (por ejemplo, alto voltaje) a los niveles lógicos requeridos por un GPIO.

Los GPIO de circuitos integrados se utilizan comúnmente para controlar o supervisar otros circuitos (incluidos otros circuitos integrados) en una placa. Algunos ejemplos de esto incluyen habilitar y deshabilitar el funcionamiento (o la alimentación) de otros circuitos, leer los estados de los interruptores integrados y las derivaciones de configuración, y controlar los indicadores de estado de los diodos emisores de luz (LED). En este último caso, un GPIO puede, en muchos casos, suministrar suficiente corriente de salida para alimentar directamente un LED sin utilizar un búfer intermedio.

A veces se utilizan varios GPIO juntos como una interfaz de comunicación de bit banging . Por ejemplo, se pueden utilizar dos GPIO para implementar un bus de comunicación en serie como un circuito integrado ( I²C ), y se pueden utilizar cuatro GPIO para implementar un bus de interfaz periférica en serie (SPI); estos se utilizan normalmente para facilitar la comunicación en serie con circuitos integrados y otros dispositivos que tienen interfaces en serie compatibles, como sensores (por ejemplo, sensores de temperatura, sensores de presión, acelerómetros ) y controladores de motores . Llevado al extremo, este método se puede utilizar para implementar un bus paralelo completo, lo que permite la comunicación con circuitos integrados o placas de circuitos orientados al bus.

Aunque los GPIO son fundamentalmente de naturaleza digital, se utilizan a menudo para controlar procesos analógicos. Por ejemplo, un GPIO se puede utilizar para controlar la velocidad del motor, la intensidad de la luz o la temperatura. Por lo general, esto se hace a través de PWM, en el que el ciclo de trabajo de la señal de salida GPIO determina la magnitud efectiva de la señal de control del proceso. Por ejemplo, al controlar la intensidad de la luz, la luz se puede atenuar reduciendo el ciclo de trabajo del GPIO. Algunos procesos analógicos requieren un voltaje de control analógico. En tales casos, puede ser factible conectar un GPIO, que funciona como una salida PWM, a un filtro RC para crear un convertidor digital a analógico simple y de bajo costo .

Implementación

Las interfaces GPIO varían ampliamente. En algunos casos, son simples: un grupo de pines que pueden conmutarse como grupo a entrada o salida. En otros, cada pin se puede configurar para aceptar o generar diferentes voltajes lógicos, con intensidades de control configurables y subidas y bajadas de tensión . Los voltajes de entrada y salida suelen estar limitados, aunque no siempre, al voltaje de suministro del dispositivo con los GPIO, y pueden verse afectados por voltajes mayores.

El estado de un pin GPIO puede exponerse al desarrollador de software a través de una de varias interfaces diferentes, como un periférico de E/S asignado a la memoria o mediante instrucciones de puerto de E/S dedicadas. Algunos GPIO tienen entradas tolerantes a 5 V: incluso cuando el dispositivo tiene un voltaje de suministro bajo (como 2 V), el dispositivo puede aceptar 5 V sin sufrir daños.

Un puerto GPIO es un grupo de pines GPIO (generalmente 8 pines, pero puede ser menos) dispuestos en un grupo y controlados como un grupo.

Las capacidades de GPIO pueden incluir: [2]

  • Los pines GPIO se pueden configurar para ser de entrada o salida.
  • Los pines GPIO se pueden habilitar/deshabilitar
  • Los valores de entrada son legibles (normalmente altos o bajos )
  • Los valores de salida se pueden escribir y leer
  • Los valores de entrada a menudo se pueden utilizar como IRQ (generalmente para eventos de activación)

Véase también

Referencias

  1. ^ White, Jon, ed. (2016). Raspberry Pi – The Complete Manual (7.ª ed.). Bournemouth , Inglaterra , Reino Unido : Imagine Publishing . pág. 36. ISBN. 978-1785463709.
  2. ^ ab "Entrada/salida de propósito general". Guía del desarrollador de Oracle Java ME Embedded (8.ª edición). Oracle Corporation . 2014.
  3. ^ "GPIO – Documentación de Raspberry Pi". Raspberry Pi Foundation . Consultado el 3 de noviembre de 2016 .
  • Marco GPIO para FreeBSD Archivado el 5 de septiembre de 2017 en Wayback Machine
  • Manual de la API gpio(3) de FreeBSD
  • Manual de gpioctl(8) de FreeBSD
  • Manual de gpio(4) de FreeBSD
  • Lista de desarrollo de ALSA
  • Documentación del kernel de Linux sobre GPIO
  • Información sobre pines GPIO de LinuxTV
Obtenido de "https://es.wikipedia.org/w/index.php?title=Entrada/salida_de_propósito_general&oldid=1241875251"