Quais taxas UART padrão existem?


33

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.


Na prática, um contador de 16 bits mais redimensionadores pré / pós é mais que suficiente para se aproximar o suficiente das taxas de transmissão arbitrárias. A série UART pode tolerar pequenas diferenças na taxa de transmissão.
Peter Green

O uart inicia no meio do bit START e deve permanecer próximo ao meio do bit STOP após serializar 7-10 bits. O que produz uma precisão mínima do relógio em torno de 2-3%, de preferência melhor para lidar com ruídos, instabilidade, desvios na frequência da fonte ...
TEMLIB

Respostas:


36

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,

7.3728MHz16=460,800baud7.3728MHz64=115,200baud.

A maioria dos UARTS usa um relógio de 2n×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.


4
Eu não acho que os divisores fracionários sejam para obter taxas de bits fora do padrão, mas taxas de bits padrão de frequências de relógio fora do padrão da MCU.
usar o seguinte código

3
Eu recondicionei os teletipos de dois anos de 1926, na faculdade (1976) e sim, eles rodavam a cerca de 75 bauds. Eles foram rotulados como teletipos Baudot. Conectado a 110vac e um motor forneceu o tempo, com conexão elétrica entre eles. Mergulhei-os em gasolina para limpá-los. (Dá um tempo - eu tinha 18 anos. Mas funcionou!) Ctrl-G tocou um sino honesto de bondade no outro. Infelizmente, eu nem me lembro de quem eu os entreguei. :-( Então, sim, você digitar no teclado mecânico, seria mecanicamente serializar suas teclas, e make-and-quebrar um contato que o outro lado ler.
Doug Null

Yay, os anos 20 rujir! Que tecnologia de qualidade durou 50 anos e acabou no galpão de John Silva em Hayward, Califórnia.
Doug Null

32

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.


7
Não é pedante, mas o programa pode suportar apenas as velocidades que o hardware permite. Pode nem incomodar perguntar e apenas listar as velocidades padrão. Perguntando ao meu hardware, zip(*serial.Serial('COM10').getSupportedBaudrates())ele responde:(50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
Nick T

2
Eu usei um acoplador acústico half duplex de 600 bits / s nos anos 80. 75 bits / s foram usados ​​no sistema alemão BTX na direção do upload por um longo tempo, o download foi de 1200 bits / s.
starblue

2
Eu também vi 62,5 kbaud. Na verdade, também depende do relógio principal, você pode calcular quais taxas de transmissão levarão a um erro suficientemente baixo.
vsz 16/07/12

5

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.


4

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.