Mandar mensajes y recibir datos desde el monitor serial del IDE hacia tu Arduino es una actividad muy común cuando desarrollas un proyecto. Pero, ¿que hay detrás de las funciones del conjunto Serial? En las siguientes líneas te desarrollamos paso a paso cómo se comunican un Arduino con la PC por medio de comunicación UART.

Resumen: En este artículo vamos a revisar como se transmiten y reciben los datos en la comunicación UART.

UART significa Universal Asynchronous Transmitter/Receiver o Transmisor/Receptor Asíncrono Universal. Como tal UART no es un protocolo, sino un dispositivo, que algunas veces ni siquiera necesita estar construido físicamente en el microcontrolador. Me explico, el UART permite convertir datos de un registro a una transmisión de datos seriales. Es decir, toma bit a bit los datos del registro y los envía por las líneas de transmisión. Aunque puede integrarse mediante circuitería, también se puede implementar mediante código, tomando datos directamente del programa y mandando la información serializada al receptor y viceversa.

El UART, al ser asíncrono, no posee una señal de reloj como el protocolo SPI para indicar cuando transmitir cada dato. En cambio, los datos mismos poseen un bit de inicio y un bit de paro en sus casos más comunes, también existen bits de paridad que indican si el dato es el correcto. Para que los dos dispositivos puedan comunicarse correctamente es necesario que la velocidad de transmisión o «baudrate» coincida. Esto permite que se lean los datos de la forma correcta, pero si el baudrate es distinto el dato recibido se malinterpretará.

Los datos enviados en esta comunicación tienen el siguiente formato: bit de inicio, estructura del dato, bits de paridad y bit de paro. La estructura de datos puede tener 5 o 9 bits de datos.

Ventajas de la comunicación UART:

  • Sólo requiere dos cables
  • No requiere una señal de reloj
  • Posee bits de paridad que evitan errores en la comunicación
  • Método bien documentado y extensamente utilizado

Desventajas

  • No permite tener varios dispositivos esclavos
  • No permite la comunicación simultánea entre maestro esclavo, ya que comparten el mismo buffer de datos
  • Los dispositivos comúnmente se encuentran a cortas distancias

Como puedes ver, este tipo de comunicación resulta muy útil cuando queremos implementar comunicación entre la PC y el microcontrolador, y es posible, incluso, implementar varios «puertos» UART mediante código, si logramos establecer la estructura correcta de paquetes y el baudrate coincide.

Referencias:

Basics of UART Communication

Comentarios