Configuração de Taxa de Bauds de Comunicação Serial e Algoritmo de Taxa de Baud

Aug 07, 2018Deixe um recado

Configuração de taxa de transmissão de comunicação serial e algoritmo de taxa de transmissão


Quando a comunicação serial do microcomputador de chip único é usada, a taxa de baud deve ser definida e a taxa de baud deve ser definida para 9600, 19200 ...? Isso é uma tradição? De que? O oscilador de cristal correspondente também é geralmente 11.0592MHZ.

É o primeiro a definir o oscilador de cristal e, em seguida, defina a taxa de transmissão ou defina a taxa de transmissão primeiro e, em seguida, defina o oscilador de cristal. Por que isso deveria ser definido?


Existem mais duas declarações confiáveis:


1: De acordo com as características físicas de eletricidade, meios de transmissão, etc. combinados com os requisitos do uso do dispositivo serial

A fim de assegurar uma comunicação eficaz, de acordo com as características físicas de eletricidade, meios de transmissão, etc. combinados com os requisitos do uso de dispositivos seriais, é determinado que a taxa de transmissão máxima de RS232 pode ser apenas 115200 e, em seguida, obtida por duas etapas para obter 57600, 28800, 19200; para se adaptar a essas taxas, projete a freqüência de cristal correspondente.


2: Isso é determinado pelas características da linha de telecomunicação.

O passa-banda da linha telefônica é 300--3KHz. Naquele tempo, hayes primeiro engajados no modem, então o sinal 2400HZ usado, a taxa de transmissão correspondente é 2400. Uma vez que a freqüência básica é determinada, o passe melhorado adotou o método da taxa é multiplicado na base de 2400 depois, então a formação de 9600.19200. . . .


De qualquer forma, há uma taxa de transmissão e, em seguida, uma frequência de cristal.


Cálculo da taxa de transmissão da comunicação serial do microcomputador de chip único.


No modo 0 e modo 2, a taxa de transmissão da porta serial é fixa e o modo 0 é Fosc / 12. O modo 2 é Fosc / 32 ou Fosc / 64, que é determinado pelo bit SMOD do registro PCON.


No Modo 1 e Modo 3, a taxa de transmissão é um valor variável. A taxa de transmissão pode ser gerada pelo Timer 1 (8052 pode ser gerado pelo Timing 2). Qual é a taxa de transmissão? Taxa de bauds por taxa de overflow do temporizador 1 a ser determinada:

Taxa de transmissão = (2SMOD / 32) * (Taxa de estouro do temporizador 1)

Nota: 2SMOD aqui SMOD é o índice, SMOD é o bit baud rate double baud rate, este bit está no registro PCON.


Ao usar o temporizador 1 como gerador de taxa de transmissão, geralmente é necessário configurar o temporizador 1 para operar no modo de recarregamento automático de 8 bits e também para desativar a interrupção do temporizador 1 e, em seguida, sobrecarregar o temporizador 1 como calculado? A taxa de estouro é a frequência de estouro. Assumindo que a freqüência do cristal é de 12MHz e o valor de TH1 é 0xFE, apenas dois pulsos de clock serão necessários para transbordar, e o período de overflow é de 2us, então a freqüência de estouro é de 500KHz. De acordo com a seção do temporizador, o tempo de sincronização tem a seguinte fórmula:

Tempo de temporização = (valor da contagem máxima - valor inicial do contador) * ciclo da máquina = (valor da contagem máxima - valor inicial do contador) * (12 / freqüência de cristal (Hz)) (s) = (256-TH1) * (12 / OSC_FREQ Hz)) (s).


Então a frequência de estouro é naturalmente:

OSC_FREQ (Hz) / ((256-TH1) * 12).


Portanto, a taxa final de push-to-baud é:

(2SMOD / 32) * (OSC_FREQ (Hz) / ((256-TH1) * 12)).


A fórmula de cálculo da taxa de transmissão está disponível e , naturalmente, o valor inicial de TH1 pode ser derivado de acordo com a taxa de transmissão:

BAUD_RATE = (2SMOD / 32) * (OSC_FREQ (Hz) / ((256-TH1) * 12))


32 * 12 * (256-TH1) = (2SMOD * OSC_FREQ (Hz)) / BAUD_RATE


256-TH1 = (2SMOD * OSC_FREQ (Hz)) / (BAUD_RATE * 32 * 12)


TH1 = 256- (2SMOD * OSC_FREQ (Hz)) / (BAUD_RATE * 32 * 12)


Assumindo que a frequência do cristal é 11.0592MHz, a taxa de transmissão é 9600, SMOD = 0, qual deve ser o valor inicial de TH1? De acordo com a fórmula acima, pode ser calculado TH1 = 256-11059200 / (9600 * 32 * 12) = 0xFD.



Enviar inquérito

whatsapp

Telefone

Email

Inquérito