Seriel kommunikation Baud Rate Indstilling og Baud Rate Algoritme

Aug 07, 2018 Læg en besked

Seriel kommunikation baud rate indstilling og baud rate algoritme


Når den serielle kommunikation af single chip mikrocomputeren anvendes, skal baudraten indstilles, og baudhastigheden skal indstilles til 9600, 19200 ...? Er dette en tradition? Fra hvad? Den tilsvarende krystaloscillator er også generelt 11.0592MHZ.

Er det først at indstille krystaloscillatoren og derefter indstille baudhastigheden eller indstille baudfrekvensen først og derefter indstille krystaloscillatoren. Hvorfor skal dette indstilles?


Der er to pålidelige udtalelser:


1: Ifølge de fysiske egenskaber ved elektricitet, transmissionsmedier mv kombineret med kravene til seriel brug

For at sikre effektiv kommunikation er det ifølge de fysiske egenskaber ved elektricitet, transmissionsmedier mv kombineret med kravene til seriel brug, fastslået, at den maksimale transmissionshastighed for RS232 kun kan være 115200 og derefter opnås ved to trin at få 57600, 28800, 19200; For at tilpasse sig disse hastigheder skal du designe den tilsvarende krystalfrekvens.


2: Dette bestemmes af telekommunikationslinjens karakteristika.

Telefonlinjens båndpas er 300 - 3KHz. På det tidspunkt har hayes først engageret i modemmet, så det anvendte 2400 Hz-signal er den tilsvarende baudrate 2400. Da den basale frekvens bestemmes, bliver det forbedrede pass vedtaget, metoden for hastigheden multipliceret på basis af 2400 senere, så dannelsen af 9600.19200. . . .


Uanset hvad der er en baudrate og derefter en krystalfrekvens.


Beregning af baudrate for seriel kommunikation af single chip microcomputer.


I tilstand 0 og tilstand 2 er den serielle port baud rate fast, og tilstand 0 er Fosc / 12. Modus 2 er Fosc / 32 eller Fosc / 64, som bestemmes af SMOD-bit af PCON-registeret.


I tilstand 1 og tilstand 3 er baudfrekvensen en variabel værdi. Baudraten kan genereres af Timer 1 (8052 kan genereres af Timing 2). Hvad er baudfrekvensen? Baudrate ved timer 1 overløbshastighed, der skal bestemmes:

Baud Rate = (2SMOD / 32) * (Timer 1 Overflow Rate)

Bemærk: 2SMOD her SMOD er indekset, SMOD er baud rate dobbelt baud rate bit, denne bit er i PCON registeret.


Når du bruger timer 1 som baudrate generator, er det normalt nødvendigt at konfigurere timer 1 til at fungere i 8-bit auto-reload mode, og også at deaktivere timer 1 afbrydelse, så overløb af timer 1, hvordan beregnes? Overløbshastigheden er hyppigheden af overløb. Forudsat at krystalfrekvensen er 12MHz, og TH1-værdien er 0xFE, kræves kun to clockpulser at overløb, og overløbsperioden er 2us, så er overløbsfrekvensen 500kHz. Ifølge timersektionen har timetid følgende formel:

Timing time = (maksimal tællerværdi - tæller startværdi) * maskin cyklus = (maksimal tællerværdi - tæller startværdi) * (12 / krystalfrekvens (Hz)) (s) = (256-TH1) * (12 / OSC_FREQ Hz)) (s).


Så hyppigheden af overløb er naturligt:

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


Så den endelige push-to-baud rate er:

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


Beregningsformlen for baudfrekvensen er tilgængelig, og den oprindelige værdi af TH1 kan naturligvis udledes i henhold til baudfrekvensen:

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)


Forudsat at krystalfrekvensen er 11,0592 MHz, er baudfrekvensen 9600, SMOD = 0, hvad skal TH1's oprindelige værdi være? Ifølge ovenstående formel kan den beregnes TH1 = 256-11059200 / (9600 * 32 * 12) = 0xFD.



Send forespørgsel

whatsapp

Telefon

E-mail

Undersøgelse