Seriell kommunikasjon Baud Rate Setting og Baud Rate Algoritme

Aug 07, 2018 Legg igjen en beskjed

Seriell kommunikasjon baud rate innstilling og baud rate algoritme


Når den serielle kommunikasjonen av mikroprodusenten med enkeltbrikke brukes, må baudfrekvensen settes, og baudfrekvensen skal settes til 9600, 19200 ...? Er dette en tradisjon? Fra hva? Den tilsvarende krystalloscillator er også generelt 11,0592MHZ.

Er det først å sette krystalloscillatoren og deretter sette baudhastigheten eller sett baudfrekvensen først og sett deretter krystalloscillatoren. Hvorfor skal dette settes?


Det er to pålidelige påstander:


1: I henhold til de fysiske egenskapene til elektrisitet, overføringsmedier, etc. kombinert med kravene til seriell bruk

For å sikre effektiv kommunikasjon, i henhold til de fysiske egenskapene til elektrisitet, overføringsmedier, etc. kombinert med kravene til seriell bruk, er det bestemt at den maksimale overføringshastigheten til RS232 kun kan være 115200, og deretter oppnås ved to trinn å få 57600, 28800, 19200; å tilpasse seg disse hastighetene, designe den tilsvarende krystallfrekvensen.


2: Dette bestemmes av egenskapene til telekommunikasjonslinjen.

Bandlinjen på telefonlinjen er 300 - 3KHz. På den tiden hayes først engasjert i modemet, slik at 2400HZ-signalet brukes, er den tilsvarende baudhastigheten 2400. Siden grunnfrekvensen bestemmes, blir det forbedrede passet vedtatt at metoden for frekvensen multipliseres på basis av 2400 senere, så dannelsen av 9600.19200. . . .


Uansett er det en baudrate og deretter en krystallfrekvens.


Beregning av baudhastighet for seriekommunikasjon av mikrofon med enkeltbrikke.


I modus 0 og modus 2 er seriell port baud rate fast, og modus 0 er Fosc / 12. Modus 2 er Fosc / 32 eller Fosc / 64, som bestemmes av SMOD-biten i PCON-registeret.


I modus 1 og modus 3 er baudraten en variabel verdi. Baudraten kan genereres av Timer 1 (8052 kan genereres av Timing 2). Hva er baudfrekvensen? Baudrate ved timer 1 overstrømningshastighet som skal bestemmes:

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

Merk: 2SMOD her SMOD er indeksen, SMOD er baud rate dobbel baud rate bit, denne bit er i PCON registeret.


Når du bruker timeren 1 som baudrate generator, er det vanligvis nødvendig å konfigurere timeren 1 til å fungere i 8-biters auto-reload-modus, og også å deaktivere timeren 1 avbryter, deretter overløp av timer 1 hvordan beregnes? Overløpshastigheten er frekvensen av overløp. Forutsatt at krystallfrekvensen er 12MHz og TH1-verdien er 0xFE, kreves bare to klokkeimpulser for å overlate, og overløpsperioden er 2us, så er frekvensen av overløp 500kHz. I henhold til tidsseksjonen har timetiden følgende formel:

Timing time = (maksimal telleverdi - teller startverdi) * maskin syklus = (maksimum teller verdi - teller startverdi) * (12 / krystall frekvens (Hz)) (s) = (256-TH1) * (12 / OSC_FREQ Hz)) (s).


Deretter er frekvensen av overløp naturlig:

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


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

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


Beregningsformelen for baudfrekvensen er tilgjengelig, og den opprinnelige verdien av TH1 kan naturligvis utledes 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)


Forutsatt at krystallfrekvensen er 11,0592MHz, er baudraten 9600, SMOD = 0, hva skal initialverdien til TH1 være? I henhold til formelen ovenfor kan den beregnes TH1 = 256-11059200 / (9600 * 32 * 12) = 0xFD.



Sende bookingforespørsel

whatsapp

Telefon

E-post

Forespørsel