¿Para qué se utiliza CLK en UART / USART?

4

Estoy estudiando arquitectura informática en mi universidad y recientemente me hicieron una pregunta: ¿para qué se usa CLK en UART / USART? La primera cosa obvia es que se usa para dividir la frecuencia cuando se pasa a través del generador BAUD. Pero me han dicho que hay algunos casos más donde CLK es necesario. La otra cosa obvia es que se usa para la sincronización, pero ¿qué sincronización exacta? Supongo que se usa para cierta sincronización con los aspectos externos (y internos) de SuperIO.

No me estoy uniendo a un chip específico y hablo sobre UART y SuperIO IC en general.

Entonces, la pregunta es: ¿dónde se usa clk, conectado a UART / USART dentro de SuperIO, sin tener en cuenta su uso en el generador BAUD?

    
pregunta roman

1 respuesta

4

El término UART es un acrónimo de receptor / transmisor asíncrono universal. El término asíncrono significa algo así como "no a la misma velocidad" o no sincronizado. En las comunicaciones digitales, asíncrono generalmente se refiere a dos sistemas que no comparten un reloj común. El tipo de comunicación que hace un UART se conoce genéricamente como "comunicación serial asíncrona". UART es el dispositivo, la comunicación asíncrona en serie es lo que hace.

La lógica digital requiere un reloj para funcionar. Más correctamente, la mayoría de las lógicas digitales de cualquier complejidad interesante requieren un reloj para funcionar. Y un UART no es diferente, y requiere un reloj para controlar la lógica interna. Los UART también tienen que conectarse a un dispositivo de control, generalmente una CPU de algún tipo, y esa conexión generalmente requiere un reloj (el reloj del bus). A veces, el reloj interno y el reloj del bus son el mismo reloj, pero por lo general no.

Ahora hablemos de cómo funciona la comunicación asíncrona. Digamos que usted y un amigo están en el muelle y sincronizan sus relojes. Usted acepta que una vez por minuto usará una linterna para enviar un binario 1 o 0 a su amigo. Luego subes a un bote y sales al agua. La cosa de una vez por minuto funciona bien por un tiempo, pero tu reloj es un poco rápido en comparación con el de tus amigos, y pronto los dos no se están comunicando correctamente. A medida que pasa el tiempo, los dos relojes se desincronizan más.

La próxima vez que intentes eso con tu amigo modificas tu "protocolo de comunicación". En lugar de sincronizar sus relojes en el muelle, usted dice que el próximo pulso de linterna ocurrirá un minuto después del pulso anterior, más o menos 10 segundos. Entonces, mientras sus relojes no estén desincronizados por más de 10 segundos por minuto, sus comunicaciones se realizarán sin error. Cada pulso de linterna proporciona la sincronización para el siguiente pulso. Los errores de tiempo entre los dos relojes no pueden acumularse, pero se "ponen a cero" cada vez que hay un pulso de linterna.

Un UART hace lo mismo. Pero en este caso, los "relojes" se sincronizan al comienzo de cada byte (en el "bit de inicio"), y no se vuelven a sincronizar para el resto del byte.

El reloj que se usa para la lógica interna de UART se usa para controlar la lógica, pero también para mantener el tiempo durante el byte. El UART detecta el inicio del byte y restablece un temporizador digital para ayudarlo a mantener un registro del tiempo hasta el final del byte.

Un UART también tiene algo llamado "generador de velocidad de transmisión", que es esencialmente como un cronómetro que se utiliza para realizar un seguimiento del tiempo transcurrido para cada bit. Es este cronómetro, o temporizador digital, el que se reinicia al comienzo de cada byte. La mayoría de los UART tienen una configuración de registro que configura la velocidad de comunicación y, por lo tanto, la velocidad de este cronómetro.

La diferencia entre un UART y un USART es que la S es sincrónica. Estos dispositivos también admiten un método de comunicaciones síncronas. En otras palabras, se pueden configurar para comunicarse de forma asíncrona o síncrona. Cuando está en modo de sincronización, el cable de comunicaciones tiene una señal de reloj que es compartida por el receptor y el transmisor. El uso del modo de sincronización de un USART es en gran parte obsoleto en estos días.

Los UART / USART también tienen que comunicarse con la CPU (o algo similar). Esto normalmente se hace utilizando un autobús. No todos los autobuses son síncronos, pero la mayoría de los modernos lo son. Para que esto funcione, tanto la CPU como el UART usan el mismo reloj para las comunicaciones, por lo que no hay necesidad de sentir el inicio de un byte (o palabra o lo que sea) y el tiempo que se hace para las comunicaciones asíncronas. p>     

respondido por el user3624

Lea otras preguntas en las etiquetas