Articulo de referencia

Entrada/salida programable

En sistemas embebidos y otros ordenadores, una entrada/salida programable ( E/S programable , PIO ) es un componente de hardware que gestiona pines de entrada/salida (como GPIO ...

En sistemas embebidos y otros ordenadores, una entrada/salida programable ( E/S programable , PIO ) es un componente de hardware que gestiona pines de entrada/salida (como GPIO ) sin requerir la atención constante de la CPU ; esencialmente, realiza operaciones de manipulación de bits en lugar de la CPU. Su comportamiento viene determinado por un programa cargado en el chip PIO por la CPU. Se comunica con la CPU mediante interrupciones .

Sistemas embebidos

Algunos microcontroladores incluyen un módulo PIO para mejorar el rendimiento de E/S. Dos ejemplos clásicos de PIO integrado son el PIO de Raspberry Pi Pico (RP2040; 2021) [ 1 ] y el FlexIO de NXP (KL43; década de 2010). [ 2 ]

Mucho se ha escrito sobre el módulo PIO del RP2040 debido a su bajo costo y enfoque educativo. El RP2040 tiene dos módulos PIO, cada uno con cuatro máquinas de estados de hardware, una FIFO RX , una FIFO TX y un par de registros de desplazamiento . Estas máquinas de estados se programan usando un lenguaje ensamblador especial [ 1 ] (o, equivalentemente, una transliteración sintáctica de MicroPython). [ 3 ] Los módulos PIO pueden acceder a los pines GPIO (solo digitalmente), establecer/desestablecer IRQ y realizar acceso directo a memoria . PIO se puede usar para comunicación serial UART , [ 1 ] MIDI , [ 4 ] e incluso Ethernet 10BASE-T y 100BASE-T de solo envío. [ 5 ]

El FlexIO de NXP es anterior al RP2040 PIO. Consta de 4 desplazadores de 32 bits, 4 temporizadores de 16 bits, 8 pines de E/S digitales bidireccionales, varios registros de configuración para cada desplazador y temporizador, y multiplexores para la entrada, el temporizador y la salida. Se programa configurando los registros de configuración para que los componentes se encadenen y logren el comportamiento deseado. [ 6 ] Existe documentación oficial para emular UART, SPI , I2C e I2S . [ 2 ]

Sistemas industriales

Existen controladores de E/S programables industriales, pero generalmente representan sistemas más complejos que un PIO integrado. Suelen ser compatibles con E/S analógicas, RS-232 y RS-485. Por ejemplo:

  • Un PIO EN 50155 diseñado para su uso en vagones de ferrocarril contiene su propia CPU, una NXP Vybrid VF50N. [ 7 ]
  • Un módulo de E/S remoto industrial contiene un Atmel SAM4E16E (Cortex-M4). Proporciona acceso Ethernet. [ 8 ]
  • Un PIO IEC 61131-3 se describe como funcionando como un "microcontrolador local". [ 9 ]

FPGA

Existen módulos PIO dedicados para ser utilizados con chips FPGA . Estos módulos contienen su propio chip FPGA, por lo que pueden realizar la tarea en lugar del módulo principal. [ 10 ]

Véase también

  • Freescale 683XX , que tiene una unidad de procesamiento de temporización (TPU)

Referencias

  1. 1 2 3 "Ejemplo de comunicación serial Pico de Raspberry Pi (MicroPython)" . Electrocredible . 24 de enero de 2023. Archivado del original el 3 de junio de 2023. Consultado el 10 de junio de 2023 .
  2. 1 2 Krenek, Pavel (2015). "Emulando UART usando FlexIO" (PDF) . NXP . Archivado (PDF) del original el 05-10-2022 . Recuperado el 10-06-2023 .
  3. "E/S programable: la documentación más reciente de MicroPython" . docs.micropython.org .
  4. McKinney, Josh (5 de noviembre de 2022). "E/S programable (PIO) para MIDI con la Raspberry Pi Pico" . joshka.net . Archivado del original el 4 de abril de 2023. Consultado el 10 de junio de 2023 .
  5. Markgraf, Steve (2 de abril de 2026). "steve-m/Pico-100BASE-TX: Transmisor Fast Ethernet de 100 Mbit/s con control por bits y enmarcador UDP para Raspberry Pi RP2040/RP2350" .
  6. "Comprendiendo FlexIO" . Comunidad NXP . 16 de junio de 2015.
  7. " PC2610 - Controlador de E/S configurable PC2" . www.duagon.com
  8. "Módulo controlador de E/S programable" . IEN.EU - Noticias de ingeniería industrial en Europa .
  9. "Módulos de E/S programables MX - MX" . Leroy Automation .
  10. " Módulos de E/S programables de Simulink® | Speedgoat" . www.speedgoat.com
  • Emulador PIO RP2040