15 votos

Cómo hacer dos UARTS saber que la tasa de baudios a utilizar?

Estoy leyendo sobre el protocolo estándar para la UART y creo que si la recepción UART no tiene ninguna idea sobre qué tasa de baudios de los datos se transmiten, hay que ser un montón de problemas. Si se supone que la tasa de baudios es menor que la velocidad en baudios en el que la transmisión de datos, habrá partes que no iba a ser "visto" por la recepción UART. Por otro lado, si la velocidad de transmisión utilizada por el receptor es superior a la de la velocidad en baudios en el que la transmisión de datos, habrá bits que serán contados dos veces y el resultado sería que los datos se "leen" de forma incorrecta.

Mis conocimientos en torno a la UART es que cuando la línea está inactiva, se mantiene a un '1' el bit de Inicio es un '0' y el bit de Parada es un '1'. También, el bit de Parada de ser '1' no tiene ninguna diferencia con el '1' cuando la línea está inactiva o hay una manera de diferenciarse?

Hacer dos la comunicación UART del primero de acuerdo en que la tasa de baudios que se va a usar? Si sí, ¿cómo lo hacen?

26voto

Andrew Walker Puntos 9038

Ordinario UARTs tiene que ser pre-configurado con la velocidad en baudios deseado (así como la longitud de la palabra, bits de parada, paridad, etc) tradicionalmente por un ser humano.

Durante varias décadas, ahora bien no se han realizado implementaciones de "auto baud" la detección se encuentra en algunos parámetros, que normalmente trabaja por la temporización de las características clave de la forma de onda para deducir la velocidad en baudios. Las primeras versiones se necesita un carácter para ser transmitida, pero versiones más sofisticadas podría ser capaz de encontrar la tasa de más datos arbitrarios.

De recepción UART normalmente tiene un reloj local que se ejecuta a un ritmo más rápido, generalmente de 8 o 16 veces la velocidad en baudios. Esto se utiliza para tomar muestras de la señal de entrada y detectar los bits dentro de una palabra en una forma que puede tolerar un pequeño tanto por ciento de error. Incluso dos osciladores de cristal no coinciden con las tasas perfectamente, pero el error de tolerancia puede permitir el uso de algunos menos precisa de las fuentes, a veces incluso recortados en el chip osciladores, etc. También puede ayudar a acomodar el hecho de que la división de abajo popular frecuencias de oscilador sólo puede producir un error en la aproximación a ciertas velocidades - en los viejos tiempos, UART relojes maestros a veces es necesario realizar determinadas frecuencias para el acceso popular a las tasas de baudios, por ejemplo 11.0592 MHz en la familia 8051.

8voto

Liza Puntos 548

Dos UARTS "de acuerdo" en la tasa de baudios por medio de la documentación y por el operador/usuario configuración de la velocidad en baudios a través de las manos, incluyendo el protocolo de enlace, bit de parada tamaño, etc.

2voto

Adam Naber Puntos 11

Sí, todo está configurado de forma manual, lo que a menudo es un poco de un dolor, especialmente cuando los sistemas no están bien documentados (te estoy mirando a ti, cada sistema embebido de la historia).

Sé USB, SATA, y otros más modernos protocolos de datos a empezar después de algunos restablecer o evento de inicialización a la velocidad más baja con algunos estandarizados de configuración por defecto y negociar con todos los demás (o solo el maestro, según el protocolo) a altas velocidades. Algunos también usan pull-up o pull-down de resistencias en sus datos/alimentación de líneas para indicar admite velocidades.

Ver este sitio web en el USB de la negociación si estás interesado en profundizar un poco más en otros protocolos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X