Sé 9600, 19200, 38400, 57600, 115200 y 1.8432 Mbaud, pero no otros. ¿Por qué se usan estos valores, y simplemente se duplica cada vez o ocurre algo más complejo (por ejemplo, 38400 cuadruplicado no es 115200 baudios?)
La razón por la que hago esta pregunta es que estoy diseñando algo que puede tener que interactuar con una variedad de velocidades de transmisión diferentes. Se iniciará 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 aspecto a muchos otros procesadores.
Respuestas:
Comenzó hace mucho tiempo con teletipos, creo que 75 baudios. Luego, se ha duplicado en su mayoría desde entonces, con algunos múltiplos fraccionales (x1.5), por ejemplo 28,800, donde había restricciones en la tecnología de módem de línea telefónica que no permitieron que se duplicara.
Los valores estándar de los cristales provienen de estos primeros baudios, y su disponibilidad dicta las tasas futuras. P.ej,
La mayoría de los UARTS usan un reloj de de la velocidad en baudios, las partes más modernas (por ejemplo, NXP LPC) tienen divisores fraccionarios para obtener un rango más amplio mediante el uso de múltiplos no binarios.2n×16
Otros estándares comunes son 31,250 (MIDI) y 250K (DMX), ambos probablemente elegidos como buenos múltiplos de relojes 'redondos' como 1MHz, etc.
fuente
RealTerm, un programa gratuito de terminal de Windows, enumera estas tarifas UART en su menú Baud:
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, ver más abajo.
Los teletipos de 8 niveles utilizaron 110 baudios como el ASR-33. No sé dónde se usaron 150 baudios, pero es una duplicación de 75 baudios, de uso común (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. Un número de terminales de 30 caracteres por segundo aparecieron al mismo tiempo.
Por encima de 300 bps / 300 baudios, que utilizaba la codificación por desplazamiento de frecuencia simple (FSK), las cifras de bps y baudios (símbolos o tonos por segundo) no son las mismas. Por ejemplo, un módem de 1200 bps realmente funciona a 600 baudios y un módem de 4800 bps a 1600 baudios. Consulte la tabla en Ancho de banda en este artículo . La diferencia se debe a que, además de usar un cierto número de pulsos de tono por segundo, se utilizan claves de cambio de fase y otros métodos para extraer ancho de banda adicional de la misma velocidad de transmisión para obtener bps cada vez más altos. (Entonces, un módem de 56K en realidad solo funciona a 8000 baudios).
Como puede ver, la lista de tarifas de UART comenzó esencialmente en 75 y se duplicó continuamente (saltando 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 dobladas a partir de 57600) se utilizan para conexiones cableadas.
Como se mencionó en mikeselectricstuff, se introdujeron 14400 y 28800 bps 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.
fuente
zip(*serial.Serial('COM10').getSupportedBaudrates())
responde:(50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
Durante mucho tiempo, ha sido común usar submúltiplos de 115.200 para la comunicación, ya sea submúltiplos de potencia de dos de 38.400 o de 57.600 o 115.200. La mayoría del hardware de PC admite esas tasas. Parte del hardware de la PC puede admitir 230,400 o 460,800. Tenga en cuenta que a muchos controladores integrados 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,000bps, por lo que velocidades como 1,000,000bps o 1,500,000bps probablemente serán más comunes para dispositivos para conectarse a PC a través de chips USB.
Por cierto, otra velocidad que vale la pena mencionar: 31,250bps es la velocidad utilizada para MIDI estándar.
fuente
La PC original de IBM tenía un 8250 UART. 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.
Establecer 1 en el registro del divisor le da 115.200, 2 obtiene 57.600, 3 obtiene 38.400, 6 obtiene 19.200, etc.
Su mejor opción es usar un reloj que funcione a un múltiplo de 1.8432 MHz con el DSPIC.
fuente