Estoy tratando de entender la sincronización UART. En un UART, el estado predeterminado es alto e inicia el proceso de recepción cuando recibe un bit de inicio (transición de alto a bajo)
En algunos escenarios, cualquier pico, ruido o interrupción puede cambiar el estado de alto a bajo, lo cual es suficiente para que el UART lo detecte como un bit de inicio. Sé que un UART maneja internamente estos escenarios y evita el proceso de recibir un byyr completo.
¿Alguien puede explicarme cómo un UART maneja estos picos?
El receptor UART muestrea la línea Rx 16 veces (la mayoría de los uC) antes de confirmar el valor de cada bit. Por ejemplo, si los baudios son 9600, cada bit de tiempo será 104uS. Ahora, para detectar correctamente el valor de cada bit (es decir, si es alto o bajo), el receptor UART muestrea el bus cada 104 uS/16 segundos. La votación mayoritaria de estas muestras se utiliza luego para decidir el valor de un bit. El bit de inicio se utiliza para indicar al receptor que los bits de datos están a punto de recibirse. Es obligatorio que el bit de inicio sea bajo. Al emplear un esquema de muestreo de este tipo, el receptor garantiza que se eliminen los efectos del ruido.
El UART no comenzará a recibir un carácter simplemente porque la línea bajó. Debe ser bajo durante un cierto período de tiempo (del 30 al 50 por ciento del tiempo de un bit, y en algunos dispositivos esto puede incluso ser seleccionable). Una falla no será lo suficientemente larga para desencadenar la recepción de un personaje.
Si el ruido activa esta operación, eso significa que su línea de comunicación es demasiado ruidosa para ser utilizada para la comunicación en serie, al menos no sin alguna detección y corrección de errores adicionales.
Rogelio Rowland
AlfaGoku
C incrustado
verdraman
JS.