cambia la configuración del número de bit de parada de UART (lado del receptor) afecta la corrección del mensaje

4

Estoy usando USART a bordo para mostrar los mensajes en el terminal de PC de escritorio usando Realterm

Noté que, cuando cambio el número de bit de parada en Realterm, no afecta la corrección del mensaje, a diferencia de la velocidad en baudios o el número de bit.

¿Por qué detener el número de bit no afecta la corrección?

    
pregunta Makhlouf GHARBI

2 respuestas

7

El bit de parada tiene un nivel alto lógico, es el último bit que se transfiere si transmite un byte a través de RS232. En caso de que no realice ninguna transferencia, la línea está inactiva, y esto también se señala como un nivel alto lógico.

Si aumenta el número de bits de parada en el lado del remitente de una conexión RS232, el lado del receptor interpretará el primer bit de parada como un bit de parada y todos los bits de parada siguientes como tiempo de inactividad en la línea.

Efectivamente para cada bit de detención adicional, solo agrega un pequeño retraso entre los bytes transferidos a través del enlace.

    
respondido por el Nils Pipenbrinck
0

Un segundo bit de parada en el transmisor hace que la comunicación sea más resistente a las interrupciones, lo que permite al receptor detectar un inicio de byte verdadero más rápido que con un bit de parada.

Cuando tiene un flujo continuo de bytes y enciende el receptor en la mitad del flujo, es probable que obtenga un byte desde su medio, tomando los datos reales como bit de inicio y confundiendo los bits de inicio / parada como parte de los datos. . Por supuesto, esto significa que obtendrás basura por un tiempo. Los errores se acumularán hasta que el receptor finalmente obtenga el bit de inicio real para comenzar una palabra y la secuencia se estabilice. Cuando eso sucede depende de los propios datos; es más probable que ocurra después de los bytes que terminan en unos, como 0x01, 0x03, 0x07, 0x0f, 0x1f o similares, porque tienen menos ceros para tomar como bits de inicio.

Cuando tenga dos bits de parada, estadísticamente, llegará a ese punto más rápido que con un bit de parada (siempre que todos los bytes se transmitan sin ninguna pausa o retraso entre ellos, lo que actuaría como bits de parada adicionales efectivos). Esto fue especialmente útil en hardware antiguo como teletipos con velocidades de transmisión muy bajas y líneas muy ruidosas, especialmente si no tiene un protocolo subyacente (con sumas de comprobación, retransmisiones y demás).

Todavía es una buena medida usar dos bits de parada (en el transmisor) si tiene alguna de las condiciones mencionadas anteriormente.

Por supuesto que has preguntado sobre el lado del receptor. No creo que sea muy útil usar bits de dos paradas, pero también podría ayudar a detectar errores de trama dependiendo de la implementación (si la palabra se rechaza o se acepta cuando se encuentra un error).

    
respondido por el Guillermo Prandi

Lea otras preguntas en las etiquetas