+1 500 000 productos en oferta
7000 paquetes cada día
+300 000 clientes de 150 países
Fecha de publicación: 26-07-2024 Fecha de actualización: 10-04-2026 🕒 13 lectura min
I2C, SPI, GPIO, UART… Todo ingeniero electrónico, al explorar la oferta de kits de desarrollo o de ordenadores monoplaca, o al buscar un microcontrolador para su proyecto, se topa con estas abreviaturas. Si todavía se te plantean algunas dudas, no hay motivo para preocuparte, y este texto es solo para ti.
Ante la pregunta de a qué se refieren las abreviaturas mencionadas en la introducción, la respuesta es muy sencilla: son los nombres de las interfaces de comunicación. Lamentablemente, este problema se complica muy rápidamente cuando empezamos a investigar. Primero surge una duda: ¿la interfaz y el bus son lo mismo? ¿Y el protocolo? ¿Qué es la "serialización" de la interfaz? Etcétera.
Comprender las cuestiones básicas de la comunicación digital facilita la navegación en muchas áreas de la electrónica. Aparecen no sólo en las telecomunicaciones o en la construcción de sistemas de microprocesadores, sino incluso cuando se habla de la arquitectura de los propios procesadores. Entonces, familiaricémonos con los conceptos básicos de este tema y veamos cuáles son las características de los métodos de comunicación más populares en los circuitos electrónicos.
En este artículo respondemos a las preguntas:
Para alguien que no esté familiarizado con la electrónica moderna, el uso de la palabra "comunicación" cuando se refiere a circuitos integrados puede parecer un poco confuso. De hecho, sería exagerado incluso en el caso de los circuitos electrónicos clásicos, donde el flujo de corriente y los cambios en su intensidad provocaban una reacción específica de los componentes, que a su vez interactuaban entre sí de manera similar a engranajes, válvulas y otros mecanismos en una máquina.
En el caso de la electrónica digital la situación es diferente. Tomemos el ejemplo de un interruptor de luz en un moderno sistema electrónico de construcción "inteligente". Un interruptor tradicional contiene contactos: al presionar una palanca, el usuario pone en cortocircuito físicamente dos piezas de metal, completando así el circuito y permitiendo que la corriente fluya a través de la bombilla. En el caso de un interruptor "inteligente", la cuestión es mucho más complicada (de ahí también su nombre). Al presionar el botón se cambia el estado lógico en la entrada del microcontrolador (por ejemplo, de alto a bajo, de 1 a 0). El programa ejecutado por el microcontrolador recibe dicho mensaje. Utilizando una de sus interfaces, ordena al módulo de comunicación inalámbrica soldado en el mismo circuito que envíe al éter un paquete de datos que contiene información de que tal o cual interruptor acaba de ser presionado. Las ondas de radio llegan al controlador escondido en la caja de distribución. En su interior, el módulo receptor decodifica el mensaje y luego lo envía (nuevamente a lo largo de rutas de PCB y a través de alguna interfaz) al microprocesador central. Pero ni siquiera él controla directamente los circuitos de iluminación. En su lugar, envía otro mensaje a través de otra interfaz, generalmente dirigida al sistema de expansión, que envía un mensaje "0" o "1" a la puerta del transistor unipolar, lo que resulta en el encendido o apagado de la fuente de alimentación de la bombilla.
Incluso una descripción tan extensa contiene muchas simplificaciones, pero principalmente sirve para ilustrar la magnitud del problema que nos ocupa. La comunicación entre sistemas en un circuito y entre circuitos juega un papel clave en la electrónica actual.
Empecemos con tres conceptos básicos relacionados con la transferencia de información: interfaz, bus y protocolo. Sus equivalentes pueden encontrarse en cualquier teoría de la comunicación, incluso si se refieren a interacciones interpersonales.
Interfaz debe entenderse como circuito electrónico cuya tarea es transmitir señales de un sistema a otro. Generalmente tiene capacidad de transmisión/recepción. El concepto de interfaz se refiere tanto a la capa física (por ejemplo, la presencia de pines específicos o incluso un conector específico) como a la capa funcional (la capacidad de codificar/decodificar mensajes según un estándar específico). Por tanto, si decimos que un microcontrolador está "equipado con una interfaz UART", significa que tiene un circuito integrado capaz de transmitir datos en este estándar y que este circuito está conectado a pines específicos del circuito integrado. También sería correcto decir que "un portátil típico tiene una interfaz USB".
Bus Se refiere a la estructura del circuito en sí. Estamos hablando de rutas físicas o cables que se utilizan para conectar componentes. El bus se compone de buses, es decir, líneas (cables, circuitos de PCB) agrupadas según su función, p. ej. líneas de dirección, bus de datos, etc. En la práctica de los sistemas electrónicos básicos, los buses rara vez se encuentran, ya que la mayoría de las veces cada línea de bus tiene su propia línea. propia función específica. Notemos inmediatamente que aunque los conceptos de interfaz y bus son similares, se refieren a diferentes elementos del sistema de comunicación: una interfaz es un circuito electrónico que se utiliza para conectar un circuito determinado al bus.
Esto nos deja con el último concepto importante: protocolo. Este es el nombre más intuitivo, incluso puede entenderse literalmente: protocolo, es decir un conjunto de reglas que constituyen un método de comunicación. Es más que sólo el "lenguaje" en el que se transmiten los datos, porque también describe todo el procedimiento de intercambio de información. Muy a menudo en sistemas de microprocesadores, dispositivos electrónicos simples, etc. – la interfaz, el bus y el protocolo se describen mediante un estándar, que será visible más adelante en el texto. Pero esto no es una regla, cuyo mejor ejemplo son los métodos de uso de Internet. Aunque no seamos conscientes de ello, lo utilizamos todos los días no sólo a través de varias interfaces (tarjeta de red, módulo WiFi), a través de varios buses (conexiones eléctricas, de fibra óptica), sino también utilizando varios protocolos (TCP/IP, HTTPS, SMB y muchos otros).
Antes de ver ejemplos de interfaces, es necesario aclarar una distinción presente en las comunicaciones electrónicas: la división en interfaces paralelas y seriales (buses).
El método de comunicación en paralelo implica la transmisión de varios bits de datos al mismo tiempo, mientras que las interfaces en serie se suelen utilizar para la transferencia secuencial. Los buses paralelos fueron muy populares a finales del siglo XX porque permitían la transmisión de cantidades relativamente grandes de datos a bajas frecuencias de señal. Por ejemplo: el puerto de impresora (LPT) incluía ocho líneas de datos, gracias a las cuales podía transmitir un byte completo de datos en un tramo, es decir, un solo carácter (en realidad, un código en formato ASCII). Para transmitir la misma cantidad de bits, la transmisión en serie requiere ocho pulsos, por lo que dicha interfaz opera a ocho veces la frecuencia.
Actualmente, los sistemas de comunicación alcanzan frecuencias de cientos de gigahercios, lo que permite el uso generalizado de interfaces en serie, incluso cuando se requiere una velocidad de transmisión significativa. Un ejemplo de tal evolución tuvo lugar en la industria informática, donde hace dos décadas comenzaron a utilizarse pequeñas interfaces SATA en serie, reemplazando la tecnología ATA paralela. SATA es, literalmente, "ATA serie", que viene del inglés: Serial AT Attachment.
El método en serie tiene ventajas estructurales y prácticas ya que requiere menos líneas y, por lo tanto, por ejemplo, el uso de cables con pocos hilos, que se pueden fabricar con hilos más gruesos (es decir, más duraderos). Los buses en serie ocupan un área más pequeña de circuitos impresos que los paralelos, porque requieren solo de 2 a 4 rutas (en lugar de una docena aproximadamente), lo que contribuye a la miniaturización de los dispositivos electrónicos.
Una de las pantallas más populares puede servir como ejemplo de este último avance: los modelos LCD alfanuméricos equipados con (o compatibles con) el controlador HD44780. Están disponibles en dos versiones: con interfaz paralela, donde se necesitan 10 líneas de interfaz para el control; y variantes más modernas, controladas mediante una interfaz serie I2C (se analiza más adelante en el texto). Su uso le permite incluir una pantalla en su proyecto utilizando solo 4 cables (¡incluidas las líneas eléctricas!).
Ahora que conocemos los conceptos básicos, podemos llegar al meollo del tema y analizar los métodos populares de comunicación en los sistemas digitales. Cabe señalar, sin embargo, que no entraremos en detalles sobre protocolos, sintaxis y especificaciones aquí, por dos razones. En primer lugar, estamos limitados por el volumen, pero lo importante: a menudo no se necesita información precisa sobre el funcionamiento de la interfaz para utilizarla o incluso aplicarla en el proyecto. Por supuesto, debemos ser conscientes de las capacidades y limitaciones de una determinada tecnología, pero en muchos casos los microcontroladores y los entornos de programación están diseñados de tal manera que el uso de la interfaz sea lo más sencillo posible. Y esto no es un elogio a la ignorancia; la facilidad de uso y la funcionalidad son las ideas principales que guían la creación de todas las interfaces electrónicas.
El estándar I2C (del inglés: Inter-Integrated Ciruit) fue desarrollado por Philips como un método universal para la comunicación bidireccional entre circuitos integrados en circuitos electrónicos. El bus serie I2C consta de dos líneas: reloj SCL (cada pulso señala la transmisión de un bit) y datos SDA (un solo bit).
Un sistema conectado al bus actúa como controlador (master), genera una señal de reloj y gestiona la comunicación (transmitiendo comandos para iniciar/finalizar la transmisión, enviando comandos a sistemas individuales), mientras que los componentes restantes funcionan en el modo slave y, por lo tanto, en modo ejecutivo. (su comportamiento está determinado por instrucciones provenientes del sistema master). En algunos casos, el slave es sólo un receptor (por ejemplo, una pantalla), en otros (por ejemplo, convertidores analógicos/digitales) estas unidades transmiten datos a través del bus, pero sólo en respuesta a un comando específico del sistema central y de acuerdo con sus propios protocolo (que determina con precisión el número de bits disponibles), que los fabricantes describen en detalle en la documentación.
Cada elemento slave conectado al bus tiene una dirección única de 7 bits que le permite reconocer si los comandos enviados por el controlador están dirigidos a él. Por tanto: este método de comunicación permite la conexión de más de 100 sistemas. A menudo, al usuario se le da alguna opción con respecto a la dirección, que se selecciona cortando pines específicos a tierra o a la línea de alimentación del circuito. Gracias a esto, se pueden conectar varios o incluso una docena de elementos del mismo tipo (o incluso modelo) a un único bus.
La simplicidad de I2C permite su emulación de software, por lo que este método de comunicación puede ser utilizado incluso por microcontroladores que no tienen una interfaz de hardware. Es más: un microcontrolador puede soportar varios o incluso una docena de buses I2C y, por tanto, circuitos muy complejos.
I2C se utiliza a menudo para comunicarse con módulos de Arduino (controladores LED o de motor, sensores, pantallas), superposiciones de ordenadores Rasperry Pi y muchos otros productos destinados a aficionados y aficionados, pero también goza de una popularidad inquebrantable en aplicaciones profesionales. Debido a que permite velocidades de transmisión de hasta 5 Mbit/s, se puede utilizar fácilmente para transmitir imágenes de vídeo o monitorear el estado de los sensores en tiempo real.
Un bus relacionado pero incompatible con I2C es el estándar I2S, que fue desarrollado para transmitir sonido estereofónico (del inglés: sound) en formato PCM sin pérdidas. Este es un método utilizado en muchos dispositivos multimedia, desde teléfonos inteligentes hasta amplificadores HiFi. Se basa en tres líneas (una de ellas determina a qué canal se dirigen los datos) y (opcionalmente) una señal de sincronización adicional para mantener la frecuencia correcta de reproducción de la muestra.
En sus supuestos, SPI (del inglés:Serial Peripheral Interface) permanece muy cerca de I2C. Este es un intento más antiguo de crear una interfaz de comunicación universal en circuitos digitales. Se llevó a cabo a finales de los años 1970 en Motorola (en aquel momento era uno de los principales proveedores de microprocesadores para ordenadores personales). SPI sigue siendo un estándar muy popular utilizado, por ejemplo, para la comunicación con tarjetas de memoria SD o la programación de microcontroladores.
El bus SPI consta de cuatro conexiones: señal de reloj (SCLK), dos líneas de datos y Chip Select (CS) . Cada sistema que opera en modo slave tiene su propia línea CS, que se utiliza para señalar qué elemento conectado al bus se está comunicando (en circuitos más complejos, se utiliza un direccionamiento análogo a I2C). SPI tiene en cuenta dos líneas de datos porque la transmisión puede tener lugar simultáneamente en ambas direcciones (este modo se conoce como full duplex, a diferencia de half duplex, donde un par de sistemas intercambian los roles de emisor y receptor). El bus contiene una señal MOSI (Master Out, Slave In) y MISO (Master In, Slave Out), donde la primera se utiliza para transmitir datos e instrucciones desde el controlador a los sistemas slave, mientras que la segunda funciona en sentido contrario.
La interfaz SPI es sencilla de implementar y permite una transmisión de datos muy rápida, lo que la hace ampliamente utilizada para admitir varios módulos de comunicación, memoria, registros y otros periféricos. Hoy en día, prácticamente todos los microcontroladores ofrecen soporte de hardware para esta interfaz, lo que significa que su uso no sobrecarga el núcleo y permite la construcción de dispositivos en miniatura con funcionalidades complejas.
UART es una interfaz full duplex, pero utiliza solo dos líneas: transmisión (Tx, de transmit) y recepción (Rx, de receive). Como puede ver, a diferencia de los métodos de comunicación descritos anteriormente, el bus no proporciona una señal de reloj. Esto resulta de los supuestos fundamentales de UART, es decir, Universal Asynchronous Receiver-Transmitter. Esto plantea el problema de la transmisión asincrónica, que aún no hemos encontrado.
Tanto I2C como SPI son interfaces síncronas, es decir, prevén la presencia de una señal de sincronización de comunicación (por ejemplo, SCL), determinando su velocidad y el comportamiento de los dispositivos incluidos en el circuito. En el caso de la transmisión asíncrona, la transmisión se lleva a cabo mediante mensajes de inicio e interrupción, y su velocidad suele determinarse en el momento del inicio: en el código del programa ejecutado por el microcontrolador o en la configuración del puerto (como parte de las opciones del sistema operativo o de una aplicación específica).
UART es la solución más antigua presentada y sus supuestos todavía se utilizan en la electrónica digital hoy en día; también son la base para estándares como USB, Ethernet, etc. La mayoría de los sistemas operativos o cargadores de arranque admiten puertos de comunicación en serie asíncronos, que se utilizan para fines de diagnóstico y para actualizar software, etc. Los pines UART se pueden encontrar como campos de prueba en la PCB de casi todos los dispositivos basados en Linux, UNIX y sistemas relacionados. Además, existe una amplia selección de adaptadores disponibles en el mercado para conectar dispositivos que utilizan diferentes versiones de esta interfaz (las diferencias a menudo se deben a los valores de voltaje que ocurren en las líneas de transmisión), por ejemplo, la transición de UART 5V a 3,3V, o al puerto RS de un ordenador- 232.
La presencia de una interfaz UART no implica el uso de un protocolo específico – en la práctica, el puerto UART se puede utilizar para comunicarse con un terminal de texto, controlar dispositivos de comunicación (GSM, módem LTE, receptores GPS), para qué comandos AT son utilizados o requeridos por las instrucciones de un módulo determinado.
GPIO es un término impreciso. Es el nombre de todos los pines de un sistema/circuito cuya función es la comunicación o el control. El nombre en sí GPIO significa "entrada/salida de propósito general" (del inglés: General-Purpose Input/Output). En la práctica, se trata simplemente de pines de un sistema electrónico cuyo propósito es recibir o enviar señales binarias (que pueden usarse para emular interfaces). A menudo, los pines GPIO pueden realizar varias funciones configurables por software, como es el caso, por ejemplo, de los microcontroladores. Su circuito interno le permite conectar un solo pin a la entrada de un convertidor A/D, la salida de un generador PWM u otro componente. No es raro que las líneas GPIO contengan pines para interfaces de hardware SPI, I2C, UART, etc.
JTAG (deJoint Test Action Group) es una interfaz y protocolo para programación, prueba y diagnóstico de sistemas de microprocesadores (aunque su uso es posible y puede resultar beneficioso incluso en circuitos muy simples). La funcionalidad JTAG incluye, entre otras, ISP (In-System Programming), es decir, programar microcontroladores después de colocarlos en la PCB y depurar circuitos, es decir, verificar conexiones. El estándar supone la conexión en serie de los sistemas probados; gracias a esto, los componentes instalados en el sistema se pueden conectar mediante un bus, que en etapas posteriores de creación de prototipos/producción se utilizará para cargar software y comprobar la calidad del dispositivo. o probarlo en caso de fallo.
Las interfaces de teléfonos, tabletas y muchos otros dispositivos se basan en pantallas a color. Para garantizar una interacción cómoda y un tiempo de respuesta óptimo, el contenido de la pantalla debe actualizarse varias docenas de veces por segundo. Esto significa transmitir datos de color de cientos de miles o incluso millones de píxeles en aproximadamente una docena de milisegundos. En teoría, esta tarea podría realizarse utilizando una de las interfaces descritas anteriormente, pero consumiría una parte importante de la potencia informática del procesador. Por eso un grupo de influyentes fabricantes de electrónica creó el proyecto MIPI (del inglés: Mobile Industry Processor Interface), que desarrolló, entre otros, MIPI DSI (MIPI Display Serial Interface). Esta interfaz está actualmente ampliamente implementada en circuitos integrados de microcontroladores y microprocesadores, ya que facilita y estandariza los métodos de comunicación con pantallas, especialmente aquellas de alta resolución, montadas en teléfonos inteligentes, consolas, gafas VR, etc.
La tecnología se basa en un bus serial de dos puntos que incluye una señal de reloj de alta frecuencia y uno o más buses de transmisión. Utilizan el método de transmisión diferencial (señal transmitida a través de dos líneas con polarización opuesta), gracias al cual consiguen una alta resistencia a las interferencias. MIPI DSI también describe su propio protocolo de corrección de errores.
Los estándares descritos anteriormente son las soluciones más comunes en circuitos electrónicos; sin embargo, la lista de interfaces que encontramos en el contexto de dispositivos RTV, ordenadores y automatización (incluida la automatización industrial) es, por supuesto, mucho más larga. No describiremos aquí los detalles de todos los métodos de comunicación populares, pero describiremos las características y aplicaciones básicas de los más importantes. Este conocimiento nos ayudará a identificar componentes electrónicos, buscar adaptadores adecuados e incluso realizar diagnósticos básicos de dispositivos y máquinas.
El bus CAN (Controller Area Network) fue desarrollado para la comunicación entre dispositivos en vehículos de carretera. Gracias a su alta resistencia a las interferencias, ahora se utiliza en muchas otras aplicaciones, p. ej. en automatización de edificios, dispositivos médicos y robótica. Gracias a él, se estandarizó la transmisión de datos en la industria automotriz, lo que permitió simplificar aún más los procedimientos de diagnóstico, así como la regulación electrónica de los parámetros operativos de los componentes del automóvil (desde la iluminación hasta las unidades de control del motor).
El nombre Peripheral Component Interconnect Express, o PCIe, se encuentra en la industria informática. Este es un bus utilizado para conectar tarjetas de expansión con el procesador. Hoy en día, este estándar lo utilizan casi todos los periféricos conectados directamente a la placa base: tarjetas de red, tarjetas de sonido, tarjetas gráficas, discos duros (SSD con conector M.2). PCIe viene en varias versiones, identificadas por los sufijos x1, x16, etc. Este número indica cuántas líneas de comunicación serie contiene un bus determinado. Debido a que el estándar se caracteriza por una velocidad de transmisión muy alta (teóricamente incluso cientos de GB/s), ha ido reemplazando gradualmente a sus predecesores y competidores (SATA, PCI, AGP).
El bus USB (Universal Serial Bus) Merece un artículo aparte, ya que este concepto abarca una serie de cuestiones, desde posibilidades en constante expansión hasta diversos formatos de conectores. Las generaciones posteriores del estándar introdujeron líneas de bus adicionales e incluso ampliaron los parámetros de tensión y corriente de las líneas eléctricas. USB es, por supuesto, un estándar de comunicación ampliamente reconocido para dispositivos de consumo, pero también vale la pena señalar que cada vez más es compatible de forma nativa con microcontroladores, por lo que conectarlos a un ordenador ya no requiere el uso de un adaptador (un adaptador para la interfaz UART).
HDMI es una interfaz con enormes posibilidades, aunque en esencia se utiliza principalmente para transmitir señales multimedia (es decir, sonido e imagen) en formato digital. Las últimas generaciones del estándar, sin embargo, tienen una funcionalidad mucho más amplia, pudiendo entregar mensajes de control a muchos receptores. (CEC, Consumer Electronic Control), realizar transmisión bidireccional (canal inverso) e incluso mediar en la comunicación con Internet.
En el campo de la automatización se encuentran muchos estándares de comunicación específicos. En este campo, todavía se pueden encontrar estándares nuevos y competitivos desarrollados por los principales fabricantes de equipos industriales. Cada bus (modbus, Profibus, S-Bus etc.) tiene sus propias características y metodología, lo que permite un control integral de las máquinas en fábricas, almacenes, puntos logísticos y otras industrias donde las capacidades de escalado y centralización son clave. Este campo es extremadamente amplio también debido a la excepcional durabilidad de algunas soluciones, como la interfaz RS-485. También existen muchas soluciones altamente especializadas, como el bus M-Bus, que se utiliza casi exclusivamente para la comunicación con dispositivos de medición.
Un poco antes señalamos que un claro ejemplo de distinción entre una interfaz y un protocolo es el campo de la informática, especialmente las redes informáticas. Finalmente, echemos un vistazo a los protocolos de comunicación más populares que utilizamos – más o menos conscientemente – cuando usamos un ordenador:
Transfer Multisort Elektronik (TME) es uno de los mayores distribuidores mundiales de componentes electrónicos, partes electrotécnicas, equipos de taller y automatización industrial. El catálogo incluye más de 1.500.000 de productos de 1.300 fabricantes líderes. Los modernos centros logísticos de TME en Łódź y Rzgów (Polonia), con una superficie total de más de 40.000 m², envían casi 6.000 paquetes diarios a clientes en más de 150 países.
TME también invierte en el desarrollo de los conocimientos y habilidades de jóvenes ingenieros y entusiastas de la electrónica a través del proyecto TME Education, y apoya a la comunidad tecnológica organizando la serie de eventos TechMasterEvent, que promueve la innovación y el intercambio de experiencias.