Eu sei 9600, 19200, 38400, 57600, 115200 e 1,8432 Mbaud, mas nenhum outro. Por que esses valores são usados e simplesmente duplicam a cada vez ou há algo mais complexo acontecendo (por exemplo, 38400 quadruplicado não é 115200 baud?)
A razão pela qual faço essa pergunta é que estou projetando algo que pode ter que interagir com uma variedade de taxas de transmissão diferentes. Ele será inicializado em 9600 e depois mudará para uma taxa de transmissão específica. Mas não posso oferecer suporte a taxas arbitrárias porque o dsPIC33F que estou usando não suporta taxas arbitrárias, pois é limitado a um contador BRG de 16 bits. É semelhante a esse respeito a muitos outros processadores.
Respostas:
Tudo começou há muito tempo com teletipos - acho que 75 baud. Então, quase sempre dobrou desde então, com alguns múltiplos fracionários (x1,5), por exemplo 28.800, onde havia restrições na tecnologia de modem da linha telefônica que não permitiam dobrar.
Os valores padrão de cristal vieram dessas taxas de transmissão iniciais e sua disponibilidade determina taxas futuras. Por exemplo,
A maioria dos UARTS usa um relógio de2n×16 da taxa de transmissão; as partes mais modernas (por exemplo, NXP LPC) possuem divisores fracionários para obter uma faixa mais ampla usando múltiplos não binários.
Outros padrões comuns são 31.250 (MIDI) e 250K (DMX), ambos provavelmente escolhidos como bons múltiplos de relógios "redondos", como 1 MHz, etc.
fonte
O RealTerm, um programa de terminal gratuito para Windows, lista essas taxas de UART no menu Baud:
110, 150, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600
No entanto, esses bits são na verdade bits por segundo (bps), não baud - veja abaixo.
110 baud foram utilizados por Teletipos de 8 níveis, como o ASR-33. Não sei onde foi usado 150 Baud, mas é uma duplicação de 75 baud, comumente usada (junto com 60 baud) para TTYs de 5 níveis.
300 bps era o padrão para os primeiros modems telefônicos amplamente utilizados nos anos 60. Apareceram vários terminais de 30 caracteres por segundo ao mesmo tempo.
Acima de 300 bps / 300 baud, que usava FSK (chave de mudança de frequência simples), os valores de bps e baud (símbolos ou tons por segundo) não são os mesmos. Por exemplo, um modem de 1200 bps é executado a 600 baud e um modem de 4800 bps é executado a 1600 baud. Consulte a tabela em Largura de banda neste artigo . A diferença é que, além de usar um certo número de pulsos de tom por segundo, a troca de fase e outros métodos são usados para extrair largura de banda adicional da mesma taxa de transmissão para obter bps cada vez mais altos. (Portanto, um modem de 56K está rodando apenas a 8000 bauds.)
Como você pode ver, a lista de taxas de UART começou essencialmente em 75 e dobrou continuamente (pulando 600), até chegar a 38400, onde foi multiplicada por 1,5 para obter 57600. 56K bps é o limite para uma linha telefônica analógica. As taxas mais altas de 115200 para cima (mais uma vez dobrando a partir de 57600) são usadas para conexões com fio.
Como o mikeelectricstuff mencionou, 14400 e 28800 bps foram introduzidos como 1,5 x 9600 e 1,5 x 19200 quando as velocidades dos modems não podiam dobrar no momento, mas raramente são mais usadas.
fonte
zip(*serial.Serial('COM10').getSupportedBaudrates())
ele responde:(50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
Por um longo tempo, era comum usar submúltiplos de 115.200 para comunicação - potência de dois submúltiplos de 38.400 ou 57.600 ou 115.200. A maioria dos hardwares para PC suporta essas taxas. Algum hardware de PC pode suportar 230.400 ou 460.800. Observe que muitos controladores incorporados, como taxas de dados que são sub-múltiplos de suas próprias velocidades de clock, e alguns chips USB para serial podem suportar qualquer submúltiplo inteiro de 3.000.000bps, portanto, velocidades como 1.000.000bps ou 1.500.000bps provavelmente se tornarão mais comuns para dispositivos para conectar aos PCs via chips USB.
BTW, uma outra taxa que vale a pena mencionar: 31.250bps é a taxa usada para MIDI padrão.
fonte
O PC IBM original tinha um 8250 UART. Isso levou um relógio de 1,8432 MHZ e o dividiu por algum número inteiro para gerar seu relógio interno, e esse relógio é executado a 16 ciclos por bit.
A configuração 1 no registro do divisor fornece 115.200, 2 obtém 57.600, 3 obtém 38.400, 6 obtém 19.200, etc.
Sua melhor aposta é usar um relógio que seja executado em alguns múltiplos de 1,8432 MHz com o DSPIC.
fonte