Serielle Kommunikation Einstellung der Baudrate und Baudraten-Algorithmus

Aug 07, 2018Eine Nachricht hinterlassen

Baudrateneinstellung und Baudratenalgorithmus für die serielle Kommunikation


Wenn die serielle Kommunikation des Ein-Chip-Mikrocomputers verwendet wird, muss die Baudrate eingestellt sein, und die Baudrate sollte auf 9600, 19200 ... eingestellt sein. Ist das eine Tradition? Von was? Der entsprechende Kristalloszillator ist ebenfalls allgemein 11,0592 MHz.

Stellen Sie zunächst den Quarzoszillator ein und stellen Sie dann die Baudrate oder die Baudrate ein und stellen Sie dann den Quarzoszillator ein. Warum sollte das festgelegt werden?


Es gibt zwei zuverlässigere Aussagen:


1: Je nach den physikalischen Eigenschaften von Strom, Übertragungsmedien usw. in Verbindung mit den Anforderungen der seriellen Geräteverwendung

Um eine effektive Kommunikation gemäß den physikalischen Eigenschaften von Elektrizität, Übertragungsmedien usw. in Kombination mit den Anforderungen der Verwendung von seriellen Geräten zu gewährleisten, wird bestimmt, dass die maximale Übertragungsrate von RS232 nur 115200 betragen kann und dann in zwei Schritten erhalten wird 57600, 28800, 19200 zu bekommen ; Um sich an diese Raten anzupassen, entwerfen Sie die entsprechende Kristallfrequenz.


2: Dies wird durch die Eigenschaften der Telekommunikationsleitung bestimmt.

Der Bandpass der Telefonleitung beträgt 300-3KHz. Zu dieser Zeit, hayes ersten Eingriff in das Modem, so dass das 2400HZ Signal verwendet wird, ist die entsprechende Baudrate 2400. Da die Grundfrequenz bestimmt ist, wird der verbesserte Pass die Methode der Rate angenommen wird auf der Grundlage von 2400 später multipliziert, so die Bildung von 9600.19200. . . .


In jedem Fall gibt es eine Baudrate und dann eine Kristallfrequenz.


Berechnung der Baudrate der seriellen Kommunikation eines Einchip-Mikrocomputers.


In Modus 0 und Modus 2 ist die Baudrate für den seriellen Port fest eingestellt und der Modus 0 ist Fosc / 12. Modus 2 ist Fosc / 32 oder Fosc / 64, was durch das SMOD-Bit des PCON-Registers bestimmt wird.


In Mode 1 und Mode 3 ist die Baudrate ein variabler Wert. Die Baudrate kann mit Timer 1 generiert werden (8052 kann mit Timing 2 generiert werden). Wie hoch ist die Baudrate? Baudrate nach Timer 1 Überlaufrate zu ermitteln:

Baudrate = (2SMOD / 32) * (Timer 1 Überlaufrate)

Hinweis: 2SMOD hier SMOD ist der Index, SMOD ist das Baudrate-Bit mit doppelter Baudrate, dieses Bit befindet sich im PCON-Register.


Wenn der Timer 1 als Baudratengenerator verwendet wird, ist es normalerweise notwendig, den Timer 1 so zu konfigurieren, dass er im 8-Bit-Auto-Reload-Modus arbeitet und Timer1-Interrupt deaktiviert, und dann Timer 1 überläuft . Die Überlaufrate ist die Häufigkeit des Überlaufs. Unter der Annahme, dass die Kristallfrequenz 12 MHz ist und der TH1-Wert 0xFE ist, werden nur zwei Taktimpulse benötigt, um überzulaufen, und die Überlaufperiode beträgt 2 us, dann ist die Frequenz des Überlaufs 500 kHz. Entsprechend dem Zeitabschnitt hat die Zeitsteuerung die folgende Formel:

Timing-Zeit = (maximaler Zählwert - Zähler-Initialwert) * Maschinenzyklus = (maximaler Zählwert - Zähler-Initialwert) * (12 / Quarzfrequenz (Hz)) (s) = (256-TH1) * (12 / OSC_FREQ ( Hz)) (s).


Dann ist die Häufigkeit des Überlaufs natürlich:

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


Die endgültige Push-zu-Baud-Rate ist also:

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


Die Berechnungsformel der Baudrate ist verfügbar, und natürlich kann der Anfangswert von TH1 gemäß der Baudrate abgeleitet werden:

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


32 * 12 * (256-TH1) = (2 SMOD * 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)


Unter der Annahme, dass die Kristallfrequenz 11,0592 MHz ist, ist die Baudrate 9600, SMOD = 0, was sollte der Anfangswert von TH1 sein? Gemäß der obigen Formel kann berechnet werden TH1 = 256-11059200 / (9600 * 32 * 12) = 0xFD.



Anfrage senden

whatsapp

Telefon

E-Mail

Anfrage