Serijinio ryšio spartos nustatymo ir bodo greičio algoritmas

Aug 07, 2018Palik žinutę

Serijinio ryšio bodu greičio nustatymas ir bodų greičio algoritmas


Kai naudojamas vienos mikroschemos nuoseklusis ryšys, turi būti nustatytas bidų dažnis ir buvimo dažnis turėtų būti 9600, 19200 ...? Ar tai yra tradicija? Nuo ko? Atitinkamas kristalų generatorius taip pat paprastai yra 11.0592MHZ.

Ar jis pirmiausia nustato kristalų generatorius, tada nustato bodo greitį arba nustato bodų spartą, tada nustato kristalų generatorius. Kodėl tai turėtų būti nustatyta?


Yra du patikimesni teiginiai:


1: pagal fizines elektros charakteristikas, perdavimo terpę ir tt kartu su serijinio įrenginio naudojimo reikalavimais

Siekiant užtikrinti veiksmingą ryšį, atsižvelgiant į fizines elektrinės charakteristikas, perdavimo terpę ir tt kartu su serijinio įrenginio naudojimo reikalavimais, nustatyta, kad didžiausia RS232 perdavimo sparta gali būti tik 115200, o tada gaunama dviem etapais gauti 57600, 28800, 19200; prisitaikyti prie šių normų, suprojektuokite atitinkamą kristalų dažnį.


2: tai lemia telekomunikacijų linijos charakteristikos.

Telefono linijos juostos plotis yra 300-3 kHz. Tuo metu hayes pirmą kartą įsitraukė į modemą, taigi naudojamas 2400HZ signalas, atitinkamas bodo greitis yra 2400. Kadangi nustatomas pagrindinis dažnis, patobulintas perdavimas, kuriuo buvo pritaikytas tarifo metodas, padaugintas iš 2400 vėliau, taigi formavimas 9600.19200. . . .


Bet kuriuo atveju yra bodo greitis ir tada kristalų dažnis.


Vieno lusto mikrokompiuterio nuosekliosios komunikacijos greičio apskaičiavimas.


0 režimu ir 2 režimu, nuoseklaus prievado bnjdo greitis yra fiksuotas, o 0 režimas - Fosc / 12. 2 režimas yra Fosc / 32 arba Fosc / 64, kurį nustato PCO registro SMOD bitas.


1 režime ir 3 režime baudos norma yra kintama vertė. Baudos greitį gali generuoti 1 laikmatis (8052 gali būti generuojamas pagal 2 laiką). Koks yra bodo greitis? Baudos greitis nustatomas 1 laikmačio perpildymo greičiu:

Baud Rate = (2SMOD / 32) * (1 laikmačio perpildymo sparta)

Pastaba: 2SMOD čia SMOD yra indeksas, SMOD yra bidų greičio dvigubo bodo greičio bitas, šis bitas yra PCON registre.


Naudojant 1-ąjį laikrodį kaip bodų greičio generatorių, dažniausiai reikia sukonfigūruoti 1 laikmačio veikimą 8-bitų automatinio perkraunimo režimu, taip pat išjungti laikmatį 1 pertraukti, o tada 1 skaičiavimą perpildyti kaip apskaičiuotą? Perpildymo sparta yra perpildymo dažnis. Darant prielaidą, kad kristalų dažnis yra 12MHz, o TH1 reikšmė yra 0xFE, perpildymui reikės tik dviejų pulso impulsų, o perpildymo laikotarpis yra 2u, tada perpildymo dažnis yra 500kHz. Pagal laikmačio skiltį, laikas turi tokią formulę:

(12 / kristalų dažnis (Hz)) (s) = (256-TH1) * (12 / OSC_FREQ ( Hz)) (s).


Tada perpildymo dažnis yra natūralus:

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


Taigi galutinis "push-to-baud" greitis yra:

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


Būdų skaičiavimo formulė yra prieinama, ir natūralu, kad pradinė TH1 vertė gali būti apskaičiuojama pagal bodo greitį:

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)


Darant prielaidą, kad kristalų dažnis yra 11.0592MHz, baudų norma yra 9600, SMOD = 0, kokia turėtų būti pradinė TH1 reikšmė? Pagal pirmiau pateiktą formulę, ją galima apskaičiuoti TH1 = 256-11059200 / (9600 * 32 * 12) = 0xFD.



Siųsti užklausą

whatsapp

Telefono

El. paštas

Tyrimo