Nastavenie prenosovej rýchlosti sériovej komunikácie a algoritmus prenosovej rýchlosti
Keď sa použije sériová komunikácia mikropočítača s jedným čipom, musí byť nastavená prenosová rýchlosť a prenosová rýchlosť by mala byť nastavená na 9600, 19200 ...? Je to tradícia? Z čoho? Zodpovedajúci kryštálový oscilátor je tiež všeobecne 11.0592MHz.
Je najprv nastaviť kryštál oscilátora a potom nastaviť prenosovú rýchlosť alebo najprv nastaviť prenosovú rýchlosť a potom nastaviť kryštálový oscilátor. Prečo by to malo byť stanovené?
Existujú dve spoľahlivé vyhlásenia:
1: Podľa fyzikálnych vlastností elektriny, prenosových médií atď. V kombinácii s požiadavkami na použitie sériového zariadenia
S cieľom zabezpečiť efektívnu komunikáciu podľa fyzikálnych charakteristík elektrickej energie, prenosových médií atď. V kombinácii s požiadavkami na použitie sériového zariadenia sa zistilo, že maximálna prenosová rýchlosť RS232 môže byť len 115200 a potom získaná dvoma krokmi dostať 57600, 28800, 19200; aby sa tieto rýchlosti prispôsobili, vytvorte zodpovedajúcu frekvenciu kryštálov.
2: To je určené charakteristikami telekomunikačnej linky.
Pásmo telefónnej linky je 300 - 3 KHz. V tom čase sa najprv zapojil do modemu, takže použitý signál 2400Hz, zodpovedajúca prenosová rýchlosť je 2400. Pretože základná frekvencia je určená, zlepšený prechod prijal metódu rýchlosti vynásobený na základe 2400 neskôr, takže tvorba 9600,19200. , , ,
Či tak alebo onak, je prenosová rýchlosť a potom frekvencia kryštálov.
Výpočet prenosovej rýchlosti sériovej komunikácie mikropočítača s jedným čipom.
V režime 0 a režime 2 je prenosová rýchlosť sériového portu pevná a režim 0 je Fosc / 12. Režim 2 je Fosc / 32 alebo Fosc / 64, ktorý je určený bitom SMOD v registri PCON.
V móde 1 a móde 3 je prenosová rýchlosť premenná hodnota. Prenosová rýchlosť môže byť generovaná časovačom 1 (8052 môže byť generovaný časovaním 2). Aká je prenosová rýchlosť? Prenosová rýchlosť podľa časového intervalu 1, ktorý sa má určiť:
Prenosová rýchlosť = (2SMOD / 32) * (časový prietok 1)
Poznámka: 2SMOD tu SMOD je index, SMOD je dvojnásobná prenosová rýchlosť prenosového bitu, tento bit je v registri PCON.
Pri použití časovača 1 ako generátora prenosovej rýchlosti je zvyčajne potrebné konfigurovať časovač 1 na prevádzku v režime 8-bitového režimu automatického opätovného načítania a tiež na vypnutie prerušenia časovača 1, potom pretekanie časovača 1, ako sa má vypočítať? Pretečená rýchlosť je frekvencia pretečenia. Za predpokladu, že krištáľová frekvencia je 12MHz a hodnota TH1 je 0xFE, na pretečenie budú potrebné iba dva časové impulzy a doba pretečenia je 2us , potom frekvencia pretečenia je 500KHz. Podľa časového oddielu čas čas má nasledujúci vzorec:
(12) / frekvencia kryštálov (Hz)) (s) = (256-TH1) * (12 / OSC_FREQ hz)), (y).
Potom je frekvencia pretečenia prirodzene:
OSC_FREQ (Hz) / ((256-TH1) * 12).
Takže konečná rýchlosť push-to-baud je:
(2SMOD / 32) * (OSC_FREQ (Hz) / ((256-TH1) * 12)).
Výpočtový vzorec prenosovej rýchlosti je k dispozícii a prirodzene môže byť pôvodná hodnota TH1 odvodená podľa prenosovej rýchlosti:
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)
Za predpokladu, že frekvencia kryštálov je 11.0592MHz, prenosová rýchlosť je 9600, SMOD = 0, aká by mala byť pôvodná hodnota TH1? Podľa vyššie uvedeného vzorca je možné vypočítať TH1 = 256-11059200 / (9600 x 32 * 12) = 0xFD.





