Setarea ratei de transmisie a comunicației prin sir și algoritmul ratei baud
Când se utilizează comunicarea serială a microcomputerelor cu un singur chip, trebuie setată rata baud și rata baud trebuie setată la 9600, 19200 ...? Este o tradiție? De la ce? Oscilatorul de cristal corespunzător este, de asemenea, în general 11.0592MHZ.
Este mai întâi să setați oscilatorul de cristal și apoi să setați rata baud sau să setați mai întâi rata baud și apoi să setați oscilatorul de cristal. De ce ar trebui să fie stabilit acest lucru?
Există două declarații mai fiabile:
1: În funcție de caracteristicile fizice ale energiei electrice, mijloacelor de transmisie etc., combinate cu cerințele utilizării dispozitivului serial
Pentru a asigura o comunicare eficientă, în funcție de caracteristicile fizice ale electricității, a mijloacelor de transmisie etc., combinate cu cerințele utilizării dispozitivelor seriale, se stabilește că rata maximă de transmisie a RS232 poate fi numai 115200 și apoi obținută prin două etape pentru a obține 57600, 28800, 19200; pentru a vă adapta la aceste rate, proiectați frecvența cristalului corespunzătoare.
2: Acest lucru este determinat de caracteristicile liniei de telecomunicații.
Bandpass-ul liniei telefonice este de 300--3KHz. În acel moment, Fayes mai întâi angajat în modem, astfel încât semnalul 2400HZ folosit, rata de baud corespunzătoare este 2400. Deoarece frecvența de bază este determinată, trecerea îmbunătățită a adoptat metoda ratei este înmulțită pe baza a 2400 mai târziu, deci formarea lui 9600.19200. . . .
În orice caz, există o rată de transfer și apoi o frecvență de cristal.
Calculul ratei de transfer de comunicație serială a microcomputerelor cu un singur chip.
În modurile 0 și 2, rata de transfer a portului serial este fixă, iar modul 0 este Fosc / 12. Modul 2 este Fosc / 32 sau Fosc / 64, care este determinat de bitul SMOD al registrului PCON.
În modurile 1 și 3, rata baud este o valoare variabilă. Rata baud poate fi generată de Timer 1 (8052 poate fi generat de Timing 2). Care este rata baud? Rata baudului de către cronometrul 1 rata de depășire care urmează a fi determinată:
Rata baud = (2SMOD / 32) * (Timp 1)
Notă: 2SMOD aici SMOD este indicele, SMOD este rata baud dublă rată baud rate, acest bit este în registrul PCON.
Atunci când se utilizează temporizatorul 1 ca generator de viteză baud, este de obicei necesar să se configureze temporizatorul 1 pentru a funcționa în modul de auto-reîncărcare pe 8 biți și, de asemenea, pentru a dezactiva întreruperea temporizatorului 1, apoi supraîncărcarea timerului 1 cum se calculează? Rata de depășire este frecvența de depășire. Presupunând că frecvența cristalului este de 12MHz și valoarea TH1 este 0xFE, numai două impulsuri de ceas vor fi necesare pentru a depăși, iar perioada de depășire este de 2us, atunci frecvența depășirii este de 500KHz. Conform secțiunii timer, timpul de sincronizare are următoarea formulă:
Timpul de timp = (valoarea maxima a numarului - valoarea initiala a contorului) * ciclul masinii = (valoarea maxima a numarului - valoarea initiala) * (12 / OSC_FREQ Hz)) (e).
Apoi, frecvența de depășire este în mod natural:
OSC_FREQ (Hz) / ((256-TH1) * 12).
Deci, rata de împingere finală este:
(2SMOD / 32) * (OSC_FREQ (Hz) / ((256-TH1) * 12)).
Formula de calcul a ratei baud este disponibilă și , firește, valoarea inițială a TH1 poate fi obținută în funcție de rata de transfer:
BAUD_RATE = (2SMOD / 32) * (OSC_FREQ (Hz) / ((256-TH1) * 12))
* 12 * 32 (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)
Presupunând că frecvența cristalului este de 11.0592MHz, rata baud este 9600, SMOD = 0, ce ar trebui să fie valoarea inițială a TH1? Conform formulei de mai sus, se poate calcula TH1 = 256-11059200 / (9600 * 32 * 12) = 0xFD.





