Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Incrustado

Comprender el UART

El UART, o receptor-transmisor asíncrono universal, es uno de los protocolos de comunicación de dispositivo a dispositivo más utilizados. Este artículo muestra cómo utilizar un UART como protocolo de comunicación de hardware siguiendo el procedimiento estándar.

Cuando se configura correctamente, la UART puede funcionar con muchos tipos diferentes de protocolos en serie que implican la transmisión y recepción de datos en serie. En la comunicación en serie, los datos se transfieren bit a bit utilizando una sola línea o cable. En la comunicación bidireccional, utilizamos dos cables para una transferencia de datos en serie exitosa. Según la aplicación y los requisitos del sistema, las comunicaciones en serie necesitan menos circuitos y cables, lo que reduce el costo de implementación.

En este artículo, discutiremos los principios fundamentales al usar un UART, con un enfoque en la transmisión de paquetes, el protocolo de marco estándar y los protocolos de marco personalizados que son características de valor agregado para el cumplimiento de la seguridad cuando se implementan, especialmente durante el desarrollo de código. Durante el desarrollo del producto, este documento también tiene como objetivo compartir algunos pasos básicos cuando se verifica el uso real en una hoja de datos.

Al final del artículo, el objetivo es una mejor comprensión y cumplimiento de los estándares UART para maximizar las capacidades y la aplicación, particularmente al desarrollar nuevos productos.

"El mayor problema de la comunicación es la ilusión de que ha tenido lugar".

—George Bernard Shaw

El protocolo de comunicación juega un papel importante en la organización de la comunicación entre dispositivos. Está diseñado de diferentes maneras según los requisitos del sistema, y ​​estos protocolos tienen una regla específica acordada entre dispositivos para lograr una comunicación exitosa.

Los sistemas integrados, los microcontroladores y las computadoras utilizan principalmente un UART como una forma de protocolo de comunicación de hardware de dispositivo a dispositivo. Entre los protocolos de comunicación disponibles, un UART utiliza solo dos cables para sus extremos de transmisión y recepción.

A pesar de ser un método de protocolo de comunicación de hardware ampliamente utilizado, no está totalmente optimizado todo el tiempo. La implementación adecuada del protocolo de tramas generalmente se ignora cuando se usa el módulo UART dentro del microcontrolador.

Por definición, UART es un protocolo de comunicación de hardware que utiliza comunicación en serie asíncrona con velocidad configurable. Asincrónico significa que no hay señal de reloj para sincronizar los bits de salida del dispositivo de transmisión que va al extremo receptor.

Interfaz


Figura 1. Dos UART se comunican directamente entre sí.

Las dos señales de cada dispositivo UART se denominan:

El propósito principal de una línea de transmisor y receptor para cada dispositivo es transmitir y recibir datos en serie destinados a la comunicación en serie.


Figura 2. UART con bus de datos.

El UART transmisor está conectado a un bus de datos de control que envía datos en forma paralela. A partir de esto, los datos ahora se transmitirán en la línea de transmisión (cable) en serie, bit a bit, al UART receptor. Esto, a su vez, convertirá los datos en serie en paralelo para el dispositivo receptor.

Las líneas UART sirven como medio de comunicación para transmitir y recibir un dato a otro. Tenga en cuenta que un dispositivo UART tiene un pin de transmisión y recepción dedicado para transmitir o recibir.

Para UART y la mayoría de las comunicaciones en serie, la velocidad en baudios debe establecerse igual tanto en el dispositivo transmisor como en el receptor. La velocidad en baudios es la velocidad a la que se transfiere la información a un canal de comunicación. En el contexto del puerto serie, la velocidad en baudios establecida servirá como el número máximo de bits por segundo que se transferirán.

La Tabla 1 resume lo que debemos saber sobre la UART.

Tabla 1. Resumen de UART

Alambres2 Velocidad 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1000000, 1500000 Métodos de transmisión Asíncrono Número máximo de maestros1 Número máximo de esclavos1

La interfaz UART no utiliza una señal de reloj para sincronizar los dispositivos transmisores y receptores; transmite datos de forma asincrónica. En lugar de una señal de reloj, el transmisor genera un flujo de bits basado en su señal de reloj mientras el receptor usa su señal de reloj interno para muestrear los datos entrantes. El punto de sincronización se gestiona teniendo la misma velocidad en baudios en ambos dispositivos. El no hacerlo puede afectar el tiempo de envío y recepción de datos que pueden causar discrepancias durante el manejo de datos. La diferencia permitida de velocidad en baudios es de hasta un 10% antes de que la sincronización de los bits se aleje demasiado.

Transmisión de datos

En un UART, el modo de transmisión es en forma de paquete. La pieza que conecta el transmisor y el receptor incluye la creación de paquetes seriales y controla esas líneas físicas de hardware. Un paquete consta de un bit de inicio, una trama de datos, un bit de paridad y bits de parada.


Figura 3. Paquete UART.

Bit de inicio

La línea de transmisión de datos UART normalmente se mantiene a un nivel de voltaje alto cuando no está transmitiendo datos. Para iniciar la transferencia de datos, el UART transmisor tira de la línea de transmisión de alta a baja durante un (1) ciclo de reloj. Cuando el UART receptor detecta la transición de voltaje alto a bajo, comienza a leer los bits en el marco de datos a la frecuencia de la velocidad en baudios.


Figura 4. Bit de inicio.

Marco de datos

El marco de datos contiene los datos reales que se están transfiriendo. Puede tener cinco (5) bits hasta ocho (8) bits de longitud si se utiliza un bit de paridad. Si no se utiliza ningún bit de paridad, la trama de datos puede tener nueve (9) bits de longitud. En la mayoría de los casos, los datos se envían con el bit menos significativo primero.


Figura 5. Marco de datos.

Paridad

La paridad describe la uniformidad o la rareza de un número. El bit de paridad es una forma de que el UART receptor sepa si algún dato ha cambiado durante la transmisión. Los bits se pueden cambiar por radiación electromagnética, velocidades en baudios no coincidentes o transferencias de datos a larga distancia.

Después de que el UART receptor lee la trama de datos, cuenta el número de bits con un valor de 1 y verifica si el total es un número par o impar. Si el bit de paridad es un 0 (paridad par), el 1 o el bit lógico alto en la trama de datos debe sumar un número par. Si el bit de paridad es un 1 (paridad impar), el bit 1 o los máximos lógicos en la trama de datos deben sumar un número impar.

Cuando el bit de paridad coincide con los datos, la UART sabe que la transmisión no tuvo errores. Pero si el bit de paridad es un 0 y el total es impar, o el bit de paridad es un 1 y el total es par, la UART sabe que los bits en la trama de datos han cambiado.


Figura 6. Bits de paridad.

Stop Bits

Para señalar el final del paquete de datos, el UART de envío impulsa la línea de transmisión de datos de un voltaje bajo a un voltaje alto durante uno (1) a dos (2) bit (s) de duración.


Figura 7. Bits de parada.

Pasos de la transmisión UART

Primero:el UART transmisor recibe datos en paralelo desde el bus de datos.


Figura 8. Bus de datos al UART transmisor.

Segundo:el UART transmisor agrega el bit de inicio, el bit de paridad y el bit de parada a la trama de datos.


Figura 9. Marco de datos UART en el lado Tx.

Tercero:El paquete completo se envía en serie comenzando desde el bit de inicio hasta el bit de parada desde el UART transmisor al UART receptor. El UART receptor muestrea la línea de datos a la velocidad en baudios preconfigurada.


Figura 10. Transmisión UART.

Cuarto:el UART receptor descarta el bit de inicio, el bit de paridad y el bit de parada de la trama de datos.


Figura 11. El marco de datos UART en el lado de Rx.

Quinto:El UART receptor convierte los datos en serie de nuevo en paralelo y los transfiere al bus de datos en el extremo receptor.


Figura 12. Recepción de UART al bus de datos.

Protocolo de trama

Una característica clave que está disponible en la UART pero que no se utiliza por completo es la implementación de un protocolo de trama. El principal uso e importancia de esto es un valor agregado para la seguridad y protección en cada dispositivo.

Por ejemplo, cuando dos dispositivos usan el mismo protocolo de trama UART, existe la tendencia de que, al conectarse al mismo UART sin verificar la configuración, el dispositivo se conectará a diferentes pines que pueden causar fallas en el sistema.

Por otro lado, implementar esto garantiza la seguridad debido a la necesidad de analizar la información recibida en alineación con el protocolo del marco de diseño. Cada protocolo de trama está diseñado específicamente para ser único y seguro.

Al diseñar un protocolo de trama, los diseñadores pueden configurar los encabezados y avances deseados, incluido CRC, en diferentes dispositivos. En la Figura 13, se establecen dos (2) bytes como parte del encabezado.

Segundo:en el mapa de memoria, verifique la dirección UART.


Figura 13. Ejemplo de protocolo de trama UART.

Según la muestra, puede establecer un encabezado, un avance y un CRC que sean únicos para su dispositivo.

Encabezado 1 (H1 es 0xAB) y Encabezado 2 (H2 es 0xCD)

El encabezado es el identificador único que determina si se está comunicando con

el dispositivo correcto.

Selección de comando (CMD)

El comando dependerá de la lista de comandos diseñados para crear la comunicación entre dos dispositivos.

Longitud de datos (DL) por comando

La longitud de los datos se basará en el comando elegido. Puede maximizar la longitud de los datos según el comando elegido, por lo que puede variar según la selección. En ese caso, la longitud de los datos se puede ajustar.

Datos n (datos variables)

Los datos son la carga útil que se transferirá desde los dispositivos.

Avance 1 (T1 es 0xE1) y Avance 2 (T2 es 0xE2)

Los tráileres son datos que se agregan después de que finaliza la transmisión. Al igual que el encabezado, se pueden identificar de forma única.

Comprobación de redundancia cíclica (fórmula CRC)

La fórmula de verificación de redundancia cíclica es un modo de detección de errores adicional para detectar cambios accidentales en los datos sin procesar. El valor de CRC del dispositivo transmisor siempre debe ser igual a los cálculos de CRC en el extremo del receptor.

Es aconsejable agregar seguridad implementando protocolos de marco para cada dispositivo UART. El protocolo de trama necesita configuraciones idénticas en los dispositivos de transmisión y recepción.

Operaciones UART

Al utilizar cualquier protocolo de comunicación de hardware, es un requisito previo consultar la hoja de datos y el manual de referencia del hardware.

Estos son los pasos a seguir:

Primero:verifique la interfaz de la hoja de datos del dispositivo.


Figura 14. Hoja de datos del microcontrolador.


Figura 15. Mapa de memoria del microcontrolador.

Tercero:Verifique los detalles específicos del PUERTO UART, como el modo de operación, la longitud de los bits de datos, el bit de paridad y los bits de parada. Detalles del puerto UART de muestra en la hoja de datos:

Puerto UART
Las MCU de muestra proporcionan un puerto UART full-duplex, que es totalmente compatible con las UART estándar de PC. El puerto UART proporciona una interfaz UART simplificada a otros periféricos o hosts, que admite transferencia dúplex completo, DMA y asincrónica de datos en serie. El puerto UART incluye soporte para cinco a ocho bits de datos, y paridad par o impar. Una trama termina con uno y medio o dos bits de parada.

Cuarto:Verifique los detalles de la operación UART, incluido el cálculo de la velocidad en baudios. La velocidad en baudios se configura utilizando la siguiente fórmula de muestra. Esta fórmula varía según el microcontrolador.

Detalles de muestra de las operaciones de UART:

donde,

OSR (tasa de sobremuestreo)
UART_LCR2.OSR =0 a 3
DIV (divisor de velocidad en baudios)
UART_DIV =1 a 65535
M (velocidad en baudios fraccional DIVM M)
UART_FBR.DIVM =1 a 3
N (velocidad en baudios fraccional DIVM M)
UART_FBR.DIVN =0 a 2047

Quinto:para la velocidad en baudios, asegúrese de verificar qué reloj periférico (PCLK) usar. En este ejemplo, hay un PCLK de 26 MHz y un PCLK de 16 MHz disponibles. Tenga en cuenta que OSR, DIV, DIVM y DIVN varían según el dispositivo.

Tabla 2. Ejemplo de velocidad en baudios basado en PCLK de 26 MHz

Velocidad en baudios OSR DIV DIVM DIVN 9600324310781152003411563

Tabla 3. Ejemplo de velocidad en baudios basado en PCLK de 16 MHz

Velocidad en baudios OSR DIV DIVM DIVN 960031731078115200322348

Sexto:La siguiente parte es verificar los registros detallados para la configuración de UART. Eche un vistazo a los parámetros para calcular la velocidad en baudios, como UART_LCR2, UART_DIV y UART_FBR. La Tabla 4 conducirá a un registro específico para cubrir.

Tabla 4. Descripciones de registros UART

Nombre Descripción UART_DIV Divisor de velocidad en baudios UART_FIBR Velocidad en baudios fraccional UART_LCR2 Control de segunda línea

Séptimo:Debajo de cada registro, verifique los detalles y sustituya los valores para calcular la velocidad en baudios, luego comience a implementar el UART.

¿Por qué es importante?

La familiaridad con el protocolo de comunicación UART es ventajosa al desarrollar productos robustos y de calidad. Saber cómo enviar datos utilizando solo dos cables, así como cómo transportar un paquete completo de datos o una carga útil, ayudará a garantizar que los datos se transfieran y reciban sin errores. Dado que UART es el protocolo de comunicación de hardware más utilizado, este conocimiento puede permitir flexibilidad de diseño en diseños futuros.

Casos de uso

Puede usar UART para muchas aplicaciones, como:

Referencias

"Conceptos básicos de la comunicación UART". Electronics Hub, julio de 2017.

Campbell, Scott. "Conceptos básicos de la comunicación UART". Conceptos básicos del circuito . Keim, Robert.

"Regreso a lo básico:el receptor / transmisor asíncrono universal". Todo sobre los circuitos , Diciembre de 2016.

“¿Qué es el protocolo UART? Explicación de la comunicación UART ". Flecha.


Incrustado

  1. Comprensión del proceso de fabricación del eje
  2. Comprender la importancia de la cultura de la nube
  3. Comprender los beneficios del mantenimiento predictivo
  4. Comprensión de los conceptos básicos de la fresadora
  5. Comprender la línea de corte longitudinal
  6. Comprender los diversos tipos de tensión residual
  7. Entendiendo el funcionamiento del amortiguador
  8. Comprender los diferentes tipos de flujo de fluidos
  9. Comprender el término acoplamiento
  10. Comprender la flexibilidad de un material.
  11. Entendiendo las aplicaciones del motor diesel