¿Qué es un UART?

4

Estoy tomando una clase EdX en sistemas incrustados y me cuesta un poco entender qué es un UART. El UART se ha utilizado como un medio para un fin, por lo que aún no se ha descrito bien.

Un UART parece ser un sistema de comunicación centrado alrededor de un componente de hardware (también conocido como el UART?). ¿Presumiblemente están controlados por bibliotecas de códigos estandarizados? Hemos recibido algunas funciones que controlan el UART, pero no está claro si esto forma parte de una biblioteca estándar o está escrito por los educadores:

UART_Init();    // initialize UART for printing

Todavía no me queda claro si los UART son estándar en todos los microcontroladores o si son específicos del dispositivo que estamos usando. Parece que los UART tienen una amplia gama de capacidades de E / S, pero no tengo claro qué son y qué tan ampliamente se usan.

Una explicación a nivel de principiante que puede describir brevemente y conectar cualquiera o todos estos hilos juntos se balancearía:

  • hardware UART
  • interfaz de software UART
  • El lugar de UART en el mundo de la electrónica en general
  • descripción general de uso & capacidad de UART
pregunta doub1ejack

1 respuesta

15

UART significa receptor / transmisor asíncrono universal y es una forma en que las computadoras pueden "hablar" entre sí a través de una línea serie. Es asíncrono porque no hay una línea de reloj separada como la que hay para otros protocolos en serie como SPI y I2C. Cada byte está precedido por un bit de inicio y seguido por uno o dos bits de parada (generalmente uno).

Las velocidades típicas son 9600, 19200, 57600 o 115200 baudios, aunque algunas UART pueden superar el millón de baudios. La velocidad en baudios es esencialmente de bits por segundo, por lo que una velocidad en baudios de 115.200 significa que está enviando 11.500 bytes por segundo, ya que cada byte tiene la sobrecarga de un bit de inicio y un bit de parada.

Además de hablar directamente con otro chip de computadora, los UART a veces se usan para comunicarse con otros periféricos. Por ejemplo, es muy común usar un UART para comunicarse con un módem inalámbrico, ya sea por radio celular o Bluetooth usando los comandos "AT".

Las salidas de un UART (Tx = transmitir, Rx = recibir) están en los mismos niveles lógicos (generalmente 3.3v o 5v) que el resto del circuito. El estado inactivo de una línea UART es una lógica alta. Para conectar dos microcontroladores juntos, puede vincular el cable Tx de un UART al cable Rx de otro y viceversa.

Sin embargo, los UART también se usan comúnmente para controlar interfaces RS-232 , que permiten que las señales viajen por varios cien pies Para esto, necesita un circuito de cambio de nivel, ya que RS-232 utiliza voltajes diferentes a los niveles lógicos en la PCB, es decir, la lógica alta se convierte en una tensión negativa (típicamente de -5v a -12v), y la lógica baja se convierte en una tensión positiva (normalmente + 5v a + 12v).

Conecte NOT para conectar los cables Tx y Rx de un UART directamente a un cable RS-232.

Los UART se incluyen generalmente dentro de un conjunto de microcontroladores de periféricos de E / S, y habrá una serie de registros asociados con el UART. El UART usualmente tendrá un conjunto dedicado de rutinas de biblioteca proporcionadas por el fabricante del microcontrolador para acceder a ellas. Estos incluirán una rutina (o rutinas) para iniciar el UART, como establecer su velocidad en baudios y otras características como el tamaño del carácter (7 u 8 bits), paridad y bits de parada (casi siempre se pueden ignorar estos últimos tres elementos). ).

Luego habrá rutinas para escribir un carácter y leer un carácter. A 115,200 baudios, puede haber un personaje entrando cada 100 µs. Por lo tanto, a menudo necesita usar una rutina de interrupción para reunirlos en un búfer para que el nivel base de su firmware pueda procesarlos más tarde. Los UART a menudo proporcionan FIFO (desde cuatro caracteres hasta 128 o más), por lo que es menos probable que se pierda un personaje.

Puede haber varios UART en el mismo microcontrolador, un PIC32 con el que he trabajado tenía seis de ellos. (Por lo general, los pines para los UART se comparten con otros periféricos como SPI e I2C, por lo que eso significa que puedes tener algunos UART, un par de SPI y un par de interfaces I2C, o muchos UART, pero ninguno de los otros). Si uno se queda sin UART en el microcontrolador, puede obtenerlos en circuitos integrados separados, generalmente conectados mediante interfaces I2C o SPI.

    
respondido por el tcrosley

Lea otras preguntas en las etiquetas