Configuración de la velocidad de transmisión en serie y algoritmo de velocidad en baudios

Aug 07, 2018Dejar un mensaje

Configuración de la velocidad de transmisión en serie y algoritmo de velocidad en baudios


Cuando se utiliza la comunicación en serie del microordenador de un solo chip, se debe establecer la velocidad en baudios, y la velocidad en baudios debe establecerse en 9600, 19200 ...? ¿Es esto una tradición? ¿De qué? El oscilador de cristal correspondiente también es generalmente 11.0592MHZ.

¿Es el primero en configurar el oscilador de cristal y luego establecer la velocidad en baudios o establecer la velocidad en baudios primero y luego establecer el oscilador de cristal. ¿Por qué debería establecerse esto?


Hay dos declaraciones más confiables:


1: de acuerdo con las características físicas de la electricidad, medios de transmisión, etc. combinados con los requisitos del uso de dispositivos serie

Para garantizar una comunicación efectiva, de acuerdo con las características físicas de la electricidad, los medios de transmisión, etc. combinados con los requisitos del uso del dispositivo serie, se determina que la velocidad máxima de transmisión de RS232 solo puede ser 115200, y luego se obtiene mediante dos pasos para obtener 57600, 28800, 19200; para adaptarse a estas tasas, diseñe la frecuencia de cristal correspondiente.


2: Esto está determinado por las características de la línea de telecomunicación.

El paso de banda de la línea telefónica es 300-3KHz. En ese momento, hayes primero comprometido en el módem, por lo que la señal 2400HZ utilizada, la velocidad en baudios correspondiente es 2400. Como se determina la frecuencia básica, el pase mejorado adoptó el método de la tasa se multiplica en base a 2400 más tarde, por lo que la formación de 9600.19200. . . .


De cualquier manera, hay una velocidad en baudios y luego una frecuencia de cristal.


Cálculo de la velocidad en baudios de la comunicación serial del microordenador de un solo chip.


En el modo 0 y modo 2, la velocidad en baudios del puerto serie es fija, y el modo 0 es Fosc / 12. El modo 2 es Fosc / 32 o Fosc / 64, que está determinado por el bit SMOD del registro PCON.


En el Modo 1 y Modo 3, la velocidad en baudios es un valor variable. La velocidad en baudios puede ser generada por el Temporizador 1 (8052 puede ser generado por el Tiempo 2). ¿Cuál es la velocidad en baudios? Tasa de baudios por tasa de desbordamiento del temporizador 1 a determinar:

Tasa de baudios = (2SMOD / 32) * (Tasa de desbordamiento del temporizador 1)

Nota: 2SMOD aquí SMOD es el índice, SMOD es el bit de velocidad de transmisión en baudios doble, este bit está en el registro PCON.


Cuando se utiliza el temporizador 1 como generador de velocidad en baudios, generalmente es necesario configurar el temporizador 1 para que funcione en el modo de recarga automática de 8 bits, y también para desactivar la interrupción del temporizador 1, luego el desbordamiento del temporizador 1 ¿cómo se calcula? La tasa de desbordamiento es la frecuencia de desbordamiento. Suponiendo que la frecuencia del cristal es 12MHz y el valor TH1 es 0xFE, solo se requerirán desbordamientos para dos pulsos de reloj, y el período de desbordamiento será de 2us, luego la frecuencia del desbordamiento será de 500KHz. De acuerdo con la sección del temporizador, el tiempo de sincronización tiene la siguiente fórmula:

Tiempo de temporización = (valor de conteo máximo - valor inicial del contador) * ciclo de la máquina = (valor de conteo máximo - valor inicial del contador) * (12 / frecuencia de cristal (Hz)) (s) = (256-TH1) * (12 / OSC_FREQ ( Hz)) (s).


Entonces la frecuencia del desbordamiento es, naturalmente,

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


Entonces, la tasa final de push to baud es:

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


La fórmula de cálculo de la velocidad en baudios está disponible, y , naturalmente, el valor inicial de TH1 puede derivarse de acuerdo con la velocidad en baudios:

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)


Suponiendo que la frecuencia del cristal es 11.0592MHz, la velocidad en baudios es 9600, SMOD = 0, ¿cuál debería ser el valor inicial de TH1? De acuerdo con la fórmula anterior, se puede calcular TH1 = 256-11059200 / (9600 * 32 * 12) = 0xFD.



Envíeconsulta

whatsapp

Teléfono de contacto

Correo electrónico

Consulta