118 12. Port szeregowy
118 12. Port szeregowy
bit
TXP (I>3.lAstarU/DT)^^ bit stopu
t wpis do SBUF
TI
bit
Ryn (P-, n)VtarHyH5iT)(T^ bit stopu
testy bitów Ml Ml Ml Ml Ml Ml Ml Ml Ml (U | zerowanie RI
r
Rl"_
Rys. 12-4. Transmisja danych w trybie pracy 1.
Wpis do SBUF, RB8 i ustawienie znacznika w stan 1 odbywa się wtedy i
tylko wtedy, gdy są spełnione warunki:
RI = 0 SM2 = 0 lub bit stopu = 1
c) Tryby pracy 2 i 3.
W trybie pracy 2 i 3 proces wysyłania i przyjmowania danych jest taki sam jak w trybie 1, z tym że oprócz bitów startu i stopu jest przesyłanych 9 bitów danych. Przy nadawaniu, osiem bitów jest pobieranych z rejestru SBUF, a o-statni - 9 bit ze znacznika TB8. Dlatego przed wpisaniem danej do rejestru SBUF, co rozpoczyna proces wysyłania danych, należy najpierw odpowiednio ustawić znacznik TB8. Po odebraniu danych przez odbiornik portu szeregowego, oprócz odczytania zawartości rejestru SBUF należy również odczytać znacznik RB8.
Różnica między trybem pracy 2 i 3 polega na tym, że w trybie 2 prędkość transmisji, w zależności od ustawienia znacznika SMOD, może wynosić tylko 1/32 (SMOD = 1) lub 1/64 (SMOD = 0) częstotliwości oscylatora mikrokontrolera. Znacznik SMOD jest najbardziej znaczącym bitem w rejestrze PCON, który znajduje się pod adresem 87h w obszarze SFR. Dlatego ustawienie tego znacznika wymaga operacji bajtowych.
W trybie pracy 3 taktowanie portu szeregowego odbywa się tak jak w trybie 1. Tryb ten jest najczęściej stosowany przy połączeniach mikrokontrolerów ze sobą lub z komputerem, gdyż daje możliwość uzyskania jednej ze standardowych prędkości transmisji, a dziewiąty bit może być bitem parzystości ułatwiając w ten sposób kontrolę poprawności przesyłania danych.
Wybór trybu pracy 1 lub 3 powoduje, że nadajnik i odbiornik portu szeregowego jest taktowany z wyjścia licznika Tl, chyba że konkretny mikrokontroler posiada możliwości taktowania z innego źródła.
W mikrokontrolerach 8xC52 takim dodatkowym źródłem taktującym jest licznik T2. W rejestrze T2CON tych mikrokontrolerów, który znajduje się pod adresem 0C8h w obszarze SFR, znajdują się znaczniki RCLK i TCLK odpowiadające za dołączenie wyjścia licznika T2 do nadajnika (TCLK = 1) i odbiornika (RCLK = 1) portu szeregowego. Są to jedyne mikrokontrolery rodziny '51, w których prędkości nadawania i odbierania danych mogą się różnić. Na przykład, przy ustawieniu znaczników RCLK - 1 i TCLK = 0 odbiornik będzie taktowany z licznika T2, a nadajnik z licznika Tl.
W mikrokontrolerach 80C515/535 dodatkowym źródłem taktowania jest dzielnik :39. Jest on włączany znacznikiem BD, który jest najbardziej znaczącym bitem rejestru ADCON znajdującego się w obszarze SFR pod adresem 0D8h.
Jeżeli prędkość transmisji ma odpowiadać jednej z prędkości standardowych, to stopień podziału licznika i częstotliwość oscylatora powinny być tak dobrane, by rzeczywista prędkość transmisji nie różniła się od nominalnej więcej
iż o ± 1,8%.
W trybie pracy 0 prędkość transmisji jest określona zależnością:
f _ fpsc ,r 12
W trybie pracy 2 prędkość transmisji zależy od ustawienia znacznika
SMOD:
,SMOD
64
W trybach pracy 1 i 3, przy taktowaniu portu szeregowego z licznika Tl pracującego w trybie 2 (8-bitowy licznik z autoładowaniem) prędkość transmisji jest określona zależnością:
9smod r
f = z___rosc .
,r 384 [256-(TI 11)1
gdzie: (TH1) - liczba wpisana do rejestru TH1
Licznik Tl może również taktować port szeregowy pracując w pozostałych trybach, z sygnałem zewnętrznym lub wewnętrznym. W takim przypadku do ponownego załadowania licznika należy wykorzystać przerwanie wywołane przepełnieniem licznika, a czas obsługi przerwania musi być uwzględniony przy obliczaniu częstotliwości przepełnień licznika.