Ustawianie prędkości transmisji szeregowej i algorytm prędkości transmisji

Aug 07, 2018 Zostaw wiadomość

Ustawienie szybkości transmisji połączenia szeregowego i algorytmu szybkości transmisji


Kiedy używana jest komunikacja szeregowa mikrokomputera jednoukładowego, szybkość transmisji musi być ustawiona, a szybkość transmisji powinna być ustawiona na 9600, 19200 ...? Czy to jest tradycja? Od czego? Odpowiedni oscylator kwarcowy ma również ogólnie 11,0592 MHZ.

Czy najpierw ustawić oscylator kryształu, a następnie ustawić prędkość transmisji lub najpierw ustawić szybkość transmisji, a następnie ustawić oscylator kryształu. Dlaczego warto to ustawić?


Istnieją dwa bardziej wiarygodne stwierdzenia:


1: zgodnie z fizycznymi właściwościami elektryczności, mediów transmisyjnych itp. W połączeniu z wymaganiami użytkowania urządzeń szeregowych

Aby zapewnić efektywną komunikację, zgodnie z fizycznymi właściwościami elektryczności, mediów transmisyjnych itp. W połączeniu z wymaganiami użytkowania urządzeń szeregowych, określono, że maksymalna szybkość transmisji RS232 może wynosić tylko 115200, a następnie uzyskiwana dwoma krokami uzyskać 57600, 28800, 19200; aby dostosować się do tych wartości, zaprojektuj odpowiednią częstotliwość kryształów.


2: Jest to określone przez charakterystykę linii telekomunikacyjnej.

Bandpass linii telefonicznej wynosi 300-3KHz. W tym czasie, Hayes po raz pierwszy zaangażował się w modem, więc wykorzystany sygnał 2400 Hz, odpowiednia prędkość transmisji wynosi 2400. Ponieważ częstotliwość podstawowa jest określona, poprawiona przepustowość przyjęta metoda szybkości jest mnożona na podstawie 2400 później, więc utworzenie 9600.19200. . . .


Tak czy inaczej, istnieje szybkość transmisji, a następnie częstotliwość kryształów.


Obliczanie prędkości transmisji komunikacji szeregowej mikrokomputera jednoukładowego.


W trybie 0 i trybie 2 prędkość transmisji portu szeregowego jest stała, a tryb 0 to Fosc / 12. Tryb 2 to Fosc / 32 lub Fosc / 64, który określa bit SMOD rejestru PCON.


W trybie 1 i trybie 3 szybkość transmisji jest wartością zmienną. Szybkość transmisji może być generowana przez Timer 1 (8052 może być generowany przez Timing 2). Jaka jest szybkość transmisji? Prędkość przesyłu danych przez timer 1 do ustalenia:

Szybkość transmisji = (2SMOD / 32) * (Czas przepełnienia licznika 1)

Uwaga: 2SMOD tutaj SMOD jest indeksem, SMOD jest bitem dwustanowej szybkości transmisji bitów, ten bit znajduje się w rejestrze PCON.


W przypadku korzystania z timera 1 jako generatora prędkości transmisji, zwykle konieczne jest skonfigurowanie timera 1, aby działał w trybie automatycznego przeładowania 8-bitowego, a także wyłączenie przerwania z zegarem 1, a następnie przepełnienie zegara 1 w jaki sposób obliczyć? Częstotliwość przepełnienia to częstotliwość przelewu. Zakładając, że częstotliwość kryształów wynosi 12 MHz, a wartość TH1 to 0xFE, do przepełnienia wymagane będą tylko dwa impulsy zegarowe, a okres przelewu to 2us, a częstotliwość przepełnienia wynosi 500 kHz . Zgodnie z sekcją timera czas taktowania ma następującą formułę:

Czas synchronizacji = (maksymalna wartość zliczenia - wartość początkowa licznika) * cykl maszyny = (maksymalna wartość zliczenia - wartość początkowa licznika) * (12 / częstotliwość kryształów (Hz)) (s) = (256-TH1) * (12 / OSC_FREQ ( Hz)) (s).


Wtedy częstotliwość przepełnienia jest naturalnie:

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


Tak więc ostateczna prędkość przesyłu danych do magistrali wynosi:

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


Formuła obliczeniowa prędkości transmisji jest dostępna i naturalnie wartość początkową TH1 można uzyskać zgodnie z prędkością transmisji:

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)


Zakładając, że częstotliwość kryształów wynosi 11,0592 MHz, szybkość transmisji wynosi 9600, SMOD = 0, jaka powinna być wartość początkowa TH1? Zgodnie z powyższym wzorem można go obliczyć TH1 = 256-11059200 / (9600 * 32 * 12) = 0xFD.



Wyślij zapytanie

whatsapp

Telefon

Adres e-mail

Zapytanie