¿Qué tasas de UART estándar hay?

30

Sé 9600, 19200, 38400, 57600, 115200 y 1.8432 Mbaud, pero no otros. ¿Por qué se utilizan estos valores? ¿Se está duplicando cada vez o hay algo más complejo en marcha (por ejemplo, 38400 cuadruplicado no es 115200 baudios)?

La razón por la que hago esta pregunta es porque estoy diseñando algo que puede tener que interactuar con una variedad de diferentes velocidades de transmisión. Se inicializará en 9600 y luego cambiará a una velocidad de transmisión específica. Pero no puedo admitir tasas arbitrarias porque el dsPIC33F que estoy usando no admite tasas arbitrarias, ya que está limitado a un contador descendente BRG de 16 bits. Es similar en este sentido a muchos otros procesadores.

    
pregunta Thomas O

4 respuestas

32

Hace mucho tiempo que comenzó con teletipos, creo que 75 baudios. Luego se ha duplicado la mayoría de las veces, con algunas mutaciones fraccionarias (x1.5), por ejemplo 28800, donde había limitaciones en la tecnología de módem de línea telefónica que no permitían que se duplicara.

Los valores de cristal estándar provinieron de estas tasas de baudios iniciales, y su disponibilidad determina las tasas futuras. P.ej. 7.3728 MHz / 16 = 460800 baudios, 7.3728 MHz / 64 = 115200 baudios.

La mayoría de los UARTS usan un reloj de 2 ^ n x16 de la velocidad en baudios, las partes más modernas (por ejemplo, NXP LPC) tienen divisores fraccionarios para obtener un rango más amplio utilizando múltiplos no binarios.

Otros estándares comunes son 31250 (MIDI) y 250K (DMX), ambos probablemente elegidos como buenos múltiplos de relojes "redondos" como 1MHz, etc.

    
respondido por el mikeselectricstuff
30

RealTerm, un programa de terminal gratuito de Windows, enumera estas tasas de UART en su menú en baudios:

110, 150, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600

Sin embargo, estos son en realidad bits por segundo (bps), no baudios, consulte a continuación.

Se utilizaron 110 baudios en Teletipos de 8 niveles como el ASR-33. No sé dónde se usaron 150 baudios, pero se trata de una duplicación de 75 baudios, que se usa comúnmente (junto con 60 baudios) para TTY de 5 niveles.

300 bps fue el estándar para los primeros módems telefónicos ampliamente utilizados en la década de 1960. Aparecieron al mismo tiempo una cantidad de 30 caracteres por segundo terminales.

Por encima de 300 bps / 300 baudios, que utilizaban una simple modulación por desplazamiento de frecuencia (FSK), las cifras de bps y baudios (símbolos o tonos por segundo) no son iguales. Por ejemplo, un módem de 1200 bps en realidad funciona a 600 baudios, y un módem de 4800 bps funciona a 1600 baudios. Consulte la tabla bajo Ancho de banda en este artículo . La diferencia se debe a que, además de utilizar un cierto número de pulsos de tono por segundo, se utilizan la codificación por cambio de fase y otros métodos para extraer ancho de banda adicional de la misma velocidad en baudios para obtener bps cada vez más altos. (Por lo tanto, un módem de 56 K solo se ejecuta a 8000 baudios).

Como puede ver, la lista de tasas de UART comenzó esencialmente en 75 y se duplicó continuamente (saltándose 600), hasta llegar a 38400, donde se multiplicó por 1.5 para obtener 57600. 56K bps es el límite para una línea telefónica analógica . Las tasas más altas de 115200 hacia arriba (una vez más la duplicación comenzando en 57600) se utilizan para conexiones cableadas.

Como se mencionó en mikeselectricstuff, 14400 y 28800 bps se introdujeron como 1.5 x 9600 y 1.5 x 19200 cuando las velocidades de los módems no se podían duplicar en ese momento, pero rara vez se usan más.

    
respondido por el tcrosley
5

Durante mucho tiempo, ha sido común utilizar submúltiplos de 115,200 para la comunicación, ya sea dos submúltiplos de potencia de dos de 38,400 o bien 57,600 o 115,200. La mayoría del hardware de PC admite esas tasas. Algunos hardware de PC pueden soportar 230,400 o 460,800. Tenga en cuenta que a muchos controladores incorporados les gustan las velocidades de datos que son submúltiplos de sus propias velocidades de reloj, y algunos chips USB a serie pueden admitir cualquier submúltiplo entero de 3,000,000 bps, por lo que velocidades como 1,000,000 bps o 1,500,000 bps probablemente se vuelvan más comunes para Dispositivos para conectarse a PC a través de chips USB.

Por cierto, otra tasa que vale la pena mencionar: 31,250 bps es la tasa utilizada para MIDI estándar.

    
respondido por el supercat
1

La PC original de IBM tenía un UART 8250. Esto tomó un reloj de 1.8432 MHZ y lo dividió por algún número entero para generar su reloj interno, y ese reloj funciona a 16 ciclos por bit.

La configuración 1 en el registro de divisor te lleva a 115,200, 2 obtiene 57,600, 3 obtiene 38,400, 6 obtiene 19,200, etc.

Su mejor apuesta es usar un reloj que funcione a un múltiplo de 1.8432 MHz con el DSPIC.

    
respondido por el Jasen

Lea otras preguntas en las etiquetas