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.





