Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

SPI I2C UART:protocolos de comunicación y usos

El desarrollo de microcontroladores es un proceso cardinal en el ensamblaje de componentes electrónicos. Pero la entrada de protocolos seriales e interfaces de comunicación facilitan esta empresa. En este artículo, tenemos la intención de explorar exhaustivamente los protocolos de comunicación en serie, como la interfaz SPI I2C UART y UART. Analizaremos las características, ventajas, desventajas y ejemplos de los protocolos en serie.

1. Interfaz UART

¿Qué es UART?

Figura 1:un protocolo UART en Arduino 

Recepción y transmisión asincrónica universal ( UART ) es un protocolo de comunicación en serie que facilita la comunicación del host con dispositivos auxiliares. Principalmente, permite la transmisión de datos en serie. Además, es capaz de comunicación asíncrona y transmisión bidireccional.

El protocolo simple también presenta dos líneas de datos:manejo de transmisión (Tx) y otra recepción de señal (Rx). Por lo general, la transmisión de la señal se realiza a través del pin digital 0, mientras que la recepción se realiza a través del pin digital 1.

Además, ayuda a sincronizar la gestión de una computadora y dispositivos seriales externos.

¿Cómo funciona?

Figura 2:Una placa USB UART electrónica de bricolaje

Esencialmente, UART administra la comunicación de señales entre dos dispositivos a través de los siguientes medios:

Simplex implica transmisión de datos unidireccional, mientras que half-duplex significa comunicación no simultánea entre dos dispositivos en cualquier dirección. Por último, un dúplex completo implica la transferencia simultánea de datos en cualquier dirección.

Generalmente, después de la conexión, hay una transferencia de datos desde la línea de datos del UART transmisor al UART receptor. Ocurre a través del siguiente principio;

  1. Primero, el UART transmisor convertirá los datos paralelos de un dispositivo maestro a un formato en serie para transferirlos al UART receptor. De manera similar, el UART receptor cambia los datos en serie a datos paralelos para que los use el dispositivo receptor conectado.
  2. Dado que UART implica comunicación asincrónica, no presenta relojes. Así, la UART generará bits de inicio y parada para indicar el comienzo y el final de un mensaje.
  3. Los dos UART deben funcionar a la misma tasa BAUD o velocidad de transmisión de datos UART. Idealmente, esto es para garantizar la sincronización precisa de los bits de datos, ya que una diferencia de más del 10% hace que los datos sean inútiles.

Protocolo de trabajo UART

Transmisión y recepción de datos

  1. Para la transmisión, el UART de transmisión requiere recibir datos de un bus de datos como una CPU.
  2. A continuación, agrega los tres bits, a saber, el bit de inicio, el bit de paridad y el bit de parada. Los tres formarán un paquete de datos transmitido al UART receptor a través del pin TX.
  3. La transmisión de datos se detiene después de agotarse los datos en el UART de transmisión.

Control de interrupciones

Las interrupciones de datos son útiles en el envío automático de contenido de búfer. Puede solicitar un control de interrupción en caso de los siguientes escenarios:

Operación FIFO

Fig. 3. Una interfaz UART en Arduino

Los módulos UART de la familia Stellaris cuentan con dos FIFO de 16 bytes, uno para la recepción de datos y el otro para la transmisión. Además, puede configurarlos en varias profundidades para entregar diferentes interrupciones. Por ejemplo, puede tener 1/8 de profundidad, 1/4 de profundidad, 1/2 de profundidad, etc.

Proceso de trabajo de transmisión FIFO

  1. Principalmente, la transmisión de datos comienza después de la entrada de datos. Además, dado que lleva mucho tiempo, la entrada de datos es continua hasta que el FIFO de transmisión está lleno.
  2. Una vez lleno, debe detener la entrada de datos para no perder todos los datos nuevos.
  3. Luego, el FIFO de transmisión envía los datos poco a poco hasta que está vacío. Finalmente, el FIFO transmisor creará una ranura adicional.

Proceso de trabajo de recepción FIFO

  1. Después de recibir los datos del paso mencionado anteriormente, el hardware los almacena en el FIFO receptor. Idealmente, recibir y borrar datos por parte del programa FIFO receptor es un proceso automático. Por lo tanto, habrá suficiente espacio en el FIFO receptor.
  2. También cuenta con un transceptor FIFO que es esencial para resolver problemas de ineficiencia de la CPU. Además, ayuda a resolver el problema de las frecuentes interrupciones del transceptor UART.
  3. Por último, FIFO no tiene pérdida de datos, ya que sella todas las posibles vías de pérdida de antemano.

Bucle invertido

El UART tiene un loopback interno para depuración y diagnóstico sobre dónde la entrada RX recibirá los datos enviados.

Protocolo de infrarrojos en serie

UART cuenta con un infrarrojo en serie IrDA (SIR) que funciona como un módulo codificador/decodificador. Es útil para traducir una interfaz SIR serial semidúplex y un flujo de datos UART asíncrono.

Además, el protocolo de comunicaciones en serie entrega una entrada decodificada y una salida codificada digitalmente al UART.

Ventajas de usar UART

  1. El protocolo de comunicación simple es un módulo bien documentado que también es fácil de usar.
  2. En segundo lugar, no requiere una línea de reloj en serie.
  3. En tercer lugar, tiene un bit de paridad que permite la comprobación de errores.

Desventajas de usar UART

  1. La interfaz UART tiene un límite de tamaño de marco de datos de 9 bits y tiene velocidades de transferencia lentas.
  2. Además, es incapaz de usar muchos sistemas maestros y dispositivos esclavos.
  3. Además, tiene una tasa de baudios obligatoria dentro del 10 % como protección contra la pérdida de datos.
  4. En cuarto lugar, generalmente tiene velocidades más lentas durante la transferencia de datos entre dispositivos.

Ejemplos de UART en Microcontroladores

2. Interfaz I2C

¿Qué es I2C?

Figura 4:un sensor de presión diferencial utiliza I2C

El Inter-circuito-integrado (I2C) El protocolo de comunicación se parece al UART. Pero, mientras que UART está diseñado para la comunicación entre PC y dispositivos, I2C es útil en sensores y aplicaciones de módulos.

Además, el bus serie síncrono bidireccional de dos hilos puede conectar múltiples dispositivos sin comprometer la vía de comunicación. Es gracias a su propiedad de bus compartido y sistema de direcciones.

Pero esta característica tiene el costo de tener una comunicación relativamente lenta entre dispositivos en comparación con un SPI. Su velocidad depende del ruido externo, la calidad del cable y la velocidad de los datos.

Por último, la interfaz de dos cables permite la conexión a dispositivos de baja velocidad como EEPROM, convertidores analógicos/digitales y microcontroladores.

¿Cómo funciona?

Un protocolo I2C presenta dos líneas:el puerto de aceptación de línea de datos en serie (SDA) y una línea de reloj en serie (SCL). SCL facilita la sincronización de la transmisión, mientras que SDA representa la línea de datos para enviar y recibir bits de datos.

Durante la transferencia, el dispositivo maestro solicita la transmisión de datos del bus. Simultáneamente, genera un reloj que abre el dispositivo de transferencia. En este escenario, el dispositivo direccionado en la transmisión es un dispositivo esclavo.

Cabe destacar que el dispositivo maestro y el dispositivo esclavo no tienen una tasa de transmisión de datos constante. Más bien, su relación se basa en la dirección de transferencia de datos en el momento de la transmisión.

Además, el dispositivo maestro único debe informar al dispositivo de selección esclavo antes de iniciar una transmisión de datos. De manera similar, debe informar al esclavo antes de recibir datos del esclavo.

También es importante conectar una resistencia pull-up a la fuente de alimentación I2C para un funcionamiento óptimo.

Protocolo de trabajo I2C

Figura 5:Módulo de pantalla OLED 128X64 OLED de un pin de 0,96 pulgadas IIC I2C

Método de transmisión de datos

El procedimiento de conexión es el siguiente:

  1. La salida maestra enviará una señal de transmisión a los esclavos conectados, principalmente cambiando la línea SDA de nivel de voltaje alto a bajo. A continuación, cambiará la línea SCL de nivel de alto voltaje a bajo.
  2. Luego, el maestro envía direcciones de 7 o 10 bits y lee/escribe bits a cada uno de los esclavos.
  3. En tercer lugar, los esclavos comparan la dirección con la suya. Si coincide, devolverá un bit ACK, cambiando la línea SDA a baja. Sin embargo, si no coinciden, el esclavo dejará la línea SDA en un nivel alto.
  4. Luego, el maestro envía el marco de datos o lo recibe (dependiendo de las direcciones coincidentes). Luego, después de completar la transmisión de datos, el componente receptor devuelve un bit ACK al remitente de datos. Es para acusar recibo de una transmisión completa.
  5. Finalmente, el maestro cambia el SCL a alto y luego el SDA para comunicar el final de la comunicación.

Sincronización de reloj

Cada maestro debe generar su señal de reloj en la línea SCL para la transmisión de datos. Además, es solo durante el período alto del reloj que los datos siguen siendo válidos en una transmisión I2C.

Modos de transmisión

Se transmite principalmente a través de dos medios, a saber:

Modo Rápido

Los dispositivos en modo rápido reciben y transmiten datos a una velocidad de 400 kbit/s. Además, un bus I2C de modo rápido puede suprimir significativamente los fallos y su salida presenta una función de control de pendiente.

Modo de alta velocidad

Un bus I2C en un modo de alta velocidad transmitirá/recibirá datos a una tasa de bits de 3,4 Mbit/s. Por lo tanto, presenta velocidades de transmisión de datos más rápidas que el antiguo modo rápido.

Ventajas de I2C

  1. Cuenta con una cantidad significativamente limitada de pines/señales incluso cuando ha conectado numerosos dispositivos en el maestro.
  2. En segundo lugar, un dispositivo I2C ofrece flexibilidad gracias a su capacidad multimaestro y multiesclavo.
  3. Además, es fácil de usar, ya que solo necesita dos cables bidireccionales para conectarse a numerosos dispositivos.
  4. Además, ofrece una amplia adaptabilidad y también puede admitir numerosos maestros.

Desventajas de I2C

  1. Tiene una velocidad relativamente lenta y debe usar resistencias pull-up, a diferencia del SPI, que solo necesita resistencias push-pull. Además, su diseño de drenaje abierto reduce su velocidad.
  2. Además, las resistencias ocupan un espacio que es de gran importancia en el ensamblaje de PCB.
  3. No es fácil de usar cuando ha conectado numerosos dispositivos.

Ejemplos de I2C en Microcontroladores

3. Interfaz SPI

¿Qué es SPI?

Figura 6:una interfaz SPI es útil en los módulos de pantalla.

La interfaz de periféricos en serie (SPI) está diseñado para su uso en microcontroladores. Además, dado que funciona en dúplex completo, permite la transmisión y recepción simultánea de datos.

El SPI es relativamente más rápido que I2C, con una tasa de transmisión de datos de al menos 8 bits. Principalmente, el protocolo simple de este módulo permite velocidades de datos más rápidas. Por lo tanto, es importante en aplicaciones que requieren velocidad, como módulos de visualización y tarjetas SD.

También es esencial en aplicaciones que involucran un cambio repentino de información, por ejemplo, termómetros.

¿Cómo funciona?

Figura 7:Las tarjetas SD utilizan SPI

Una forma de dispositivo SPI funcionará de cualquiera de las siguientes dos maneras:

Puede conectar tantos dispositivos como desee en una interfaz SPI. Sin embargo, en la mayoría de los casos, estará limitado por las líneas de selección de hardware disponibles. Por último, durante la comunicación punto a punto, el módulo no necesita abordar operaciones.

Protocolo de trabajo SPI

SPI funciona a través de cuatro puertos, a saber:

  1. Salida de datos maestros, entrada de datos esclavos (MOSI)
  2. Entrada de datos maestros, salida de datos esclavos (MISO)
  3. Una señal de reloj (SCLK)
  4. Señal habilitada para esclavo (NSS)

Cuando se utiliza un sistema de esclavos múltiples, cada esclavo respectivo exige una señal de habilitación única. Este requisito complica el requisito de hardware en comparación con una comunicación I2C.

Además, la interfaz SPI cuenta con dos registros de desplazamiento. Permite la transmisión de datos en serie síncrona entre un solo dispositivo maestro, como una CPU, a dispositivos periféricos.

Ventajas de usar SPI

  1. Es fácil de usar ya que, a diferencia de un I2C, carece de un sistema de direccionamiento esclavo complejo.
  2. En segundo lugar, es el protocolo más rápido de todas las interfaces seriales que hemos cubierto (más rápido que UART e I2C).
  3. No tiene bits de inicio y parada como en la comunicación UART. Por lo tanto, permite la transmisión continua de datos sin interrupciones.
  4. Por último, cuenta con líneas MISO y MOSI separadas que permiten el envío y la recepción de datos simultáneos.

Desventajas de usar SPI

  1. La mayoría de sus puertos PIN están ocupados, lo que limita la cantidad de dispositivos que puede conectar.
  2. Además, carece de un control de flujo específico y, a diferencia de I2C, no hay ningún mecanismo para confirmar que se han enviado o recibido datos.
  3. Requiere el uso de 4 líneas, como hemos destacado anteriormente y, a diferencia de UART, carece de un mecanismo de verificación de errores.
  4. En cuarto lugar, también tiene un solo maestro.

Ejemplos de SPI en Microcontroladores

Comparación de UART, I2C y SPI

¿Cuál de estos periféricos de comunicación es el "mejor"? ¿UART, SPI o I2C?

No hay periféricos de comunicación superiores de los tres, ya que cada uno tiene sus ventajas y desventajas clave. Por lo tanto, elija el protocolo que mejor se ajuste a su proyecto. Por ejemplo, SPI le serviría mejor si está buscando velocidad.

Pero si desea conectar numerosos dispositivos sin tener una matriz compleja, opte por I2C.

Conclusión

Hemos puesto al descubierto toda la información clave que necesita saber sobre las interfaces de comunicación UART, I2C y SPI y sus diversas tasas de transferencia. Además, estamos para resolver cualquier duda sobre los protocolos de comunicación. Comuníquese con nosotros y acudiremos en su ayuda de inmediato.


Tecnología Industrial

  1. MQTT y DDS:comunicación de máquina a máquina en IoT
  2. Flujo de datos
  3. Protocolos de red
  4. Términos y conceptos de la memoria digital
  5. Placas - Desglose el Pi - I2C, UART, GPIO y más
  6. 14 Usos desconocidos de la nanotecnología | Beneficios y aplicaciones
  7. ¿Qué es la soldadura fuerte de plata? - Proceso, varilla y usos
  8. Fabricación basada en datos:beneficios, desafíos y estrategias
  9. Automatice la ingesta de datos y optimice la toma de decisiones
  10. Tipos de madera y sus usos.
  11. Usos del tungsteno antes y ahora