Struktura portów (CISC)

Transkrypt

Struktura portów (CISC)
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
Struktura portów (CISC)
Port to grupa (zwykle 8) linii wejścia/wyjścia mikrokontrolera o podobnych
cechach i funkcjach Większość linii we/wy może pełnić dwie lub trzy rozmaite
funkcje.
Struktura portu zależy od funkcji jakie pełnią linie we/wy.
●
●
●
●
●
●
wejścia/wyjścia wyłącznie cyfrowe
we/wy sygnałów strobujących
we/wy sygnałów impulsowych
we/wy sygnałów analogowych
linie adresowe
linie danych
Rozmaite typy portów narzucają różne warunki programowania.
Np.:
WPISANIE JEDYNKI DO PRZERZUTNIKA JEST WARUNKIEM KONIECZNYM BY LINIA
MOGŁA PRACOWAĆ JAKO WEJŚCIE CYFROWE
1/10
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
2/10
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
Struktura portów (CISC)
ODCZYTU PORTU MOŻNA DOKONAĆ NA DWA SPOSOBY:
●
●
Odczyt stanu rejestru portu
Odczyt stanu linii portu
Instrukcje, które odczytuja STAN REJESTRU portu to:
● ANL
np.:
ANL
P2,A
● ORL
● XRL
● JBC
np.:
JBC
P1.3,dotego
● CPL
● INC
● DEC
● DJNZ
● MOV
Px.y,C
● CLR
● SETB
Px.y
3/10
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
Struktura portów (CISC)
Przykład:
niech P1.0 będzie linią wejścia, (bit rejestru w stanie wysokim)
P1.1 steruje bazą tranzystora (1-przewodzenie, 0- zatkanie)
P1.2 – P1.7 są wejściami cyfrowymi
układ zewnętrzny wymusza stan niski na P1.0
Instrukcja
ANL
P1,#0FFH
nie spowoduje żadnej zmiany portu P1
Fragment programu
MOV
A,P1
ANL
A,#0FFH
MOV
P1,A
spowoduje zmianę dwu najmłodszych bitów rejestru portu P1
(bo MOV
A,P1 wczyta stan linii, a nie stan rejestru !)
4/10
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
Struktura portów (CISC)
OBCIĄŻALNOŚĆ PORTÓW
Naogół wszystkie linie wejścia/wyjścia mogą być obciążone pojedynczym,
standardowym układem TTL.
Wyjątek stanowi port P0, który ma DWA RAZY WIĘKSZĄ obciążalność.
WEWNĘTRZNE UKŁADY PERYFERYJNE
UKŁADY LICZNIKOWE (T0, T1, ... T2 ...)
Używane jako czasomierze lub liczniki impulsów zewnętrznych.
Wyborem trybu pracy i sterowaniem zarządzają SFR: TCON i TMOD.
Stan liczników zawarty jest w rejestrach THn i TLn.
T0 i T1 – cztery tryby pracy.
Tryb 0 – (identyczny dla T0 i T1) 13-bitowy czasomierz/licznik
Tryb 1 – pełny, 16-bitowy czasomierz/licznik
Tryb 2 – 8-bitowe liczniki z automatycznym przeładowaniem
(TLn ładowane zawartością THn, bez zmiany Thn)
Tryb 3 – złożony, różny dla T0 i dla T1.
5/10
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
WEWNĘTRZNE UKŁADY PERYFERYJNE (CISC)
UKŁADY LICZNIKOWE (T0, T1, ... T2 ...)
Rejestr TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TF1, TF0 – WSKAŹNIKI PRZERWANIA, USTAWIANY SPRZĘTOWO, ZEROWANY SPRZĘTOWO
TR1, TR0 – BIT WŁĄCZAJĄCY (1) I WYŁĄCZAJĄCY UKŁAD LICZNIKOWY
IE1, IE0 – WSKAŹNIKI PRZERWAŃ ZEWNĘTRZNYCH,
IT1, IT0 – STEROWANIE PRZERWANIAMI ZEWN.: 0 – PRZERWANIA OD NISKIEGO POZIOMU,
1 – PRZERWANIE OD OPADAJĄCEGO ZBOCZA
Rejestr TMOD
GATE
C/T
M1
M0
GATE
C/T
M1
M0
GATE – (TMOD.7) – BIT STERUJĄCY. 0 – STEROWANIE WYŁĄCZNIE PRZEZ TR1, 1- ZLICZANIE, GDY /INT1 I
TR1=1
C/T - 0 – ZLICZANIE CYKLI MASZYNOWYCH, 1- ZLICZANIE IMPULSÓW ZEWNĘTRZNYCH
M1 M0
0
0
TRYB 0
0
1
TRYB1
1
0
TRYB2
1
1
TRYB3
6/10
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
WEWNĘTRZNE UKŁADY PERYFERYJNE (CISC)
UART (universal asynchronous receiver – tranmitter)
Standardowy port szeregowy. Pracuje w jednym z czterech trybów.
Szeroki wybór częstotliwości transmisji, możliwość 8 lub 9 –cio bitowej
transmisji.
Inne urządzenia transmisji szeregowej:
Watchdog – układy czuwające
Przetworniki analogowo-cyfrowe
Przetworniki cyfrowo-analogowe
Komparatory analogowe
Generatory z pętlą PLL
Zegary czasu rzeczywistego
....
7/10
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
WEWNĘTRZNE UKŁADY PERYFERYJNE (CISC)
UART - Standardowy port szeregowy
Praca portu szeregowego zarządzana i obsługiwana jest rejestrami (SFR): SBUF, SCON,
PCON.
UART może pracować w jednym z czterech trybów, z wyborem częstotliwości transmisji (w
szerokim zakresie), z możliwością 8 lub 9 –cio bitowej transmisji. Transmisja ta wymaga
dwóch linii: RxD i TxD.
Przychodzący bajt umieszczany jest w rejestrze SBUF, a jego nadejście sygnalizowane jest
wskaźnikiem RI. Wysyłanie bajtu inicjowane jest umieszczeniem go w SBUF, a koniec
wysyłania sygnalizowany wskaźnikiem TI. Jeśli przerwania od łącza szeregowego są
dozwolone (przez ustawienie bitu ES w rejestrze IE (IE.4) to procedura obsługi przerwania
rozpoczyna się od adresu 23H.
Tryb pracy wybierany jest przez bity SM0 I SM1 w SCON.
Tryb 0 oznacza transmisję synchroniczną, 8-mio bitową w której nadawanie i odbiór
odbywa się po torze RxD, a torem TxD nadawany jest synchronizujący sygnał taktujący.
Prędkość transmisji jest stała i odpowiada 1/12 częstości oscylatora.
W pozostałych trzech trybach transmisja jest asynchroniczna. Nadawanie odbywa się
torem RxD, a odbiór torem TxD.
8/10
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
WEWNĘTRZNE UKŁADY PERYFERYJNE (CISC)
UART - Standardowy port szeregowy - dc.
Praca asynchroniczna portów szeregowych oznacza, że odbywa się bez sygnału
taktującego sprzęgającego odbiornik z nadajnikiem. Nadajnik i odbiornik synchronizowane
są oddzielnymi licznikami, pracującymi oczywiście na zbliżonych częstotliwościach.
Nadawanie rozpoczyna bit startu (zero) i kończy bit stopu (jedynka). Osiem (lub
dziewięć) bitów danych nadaje się od najmłodszego bitu.
Przy odbiorze stan linii RxD testowany jest znacznie częściej niż mogło by to wynikać z
przyjętej szybkości transmisji. Chodzi o wykrycie opadającego zbocza na linii RxD, a także o
trzykrotne sprawdzenie stanu linii w trakcie odbioru pojedynczego bitu. Za wczytany stan,
przyjmuje się taki, który wystąpił przynajmniej dwukrotnie w czasie trzech prób. Pozwala
to na częściową eliminację krótkotrwałych zakłóceń.
W trybie 1 i 3 praca portu stowarzyszona jest z układem licznika T1, który powinien
być ustawiony na pracę w trybie 2, tzn. jako licznik 8-mio bitowy pracujący z
przeładowaniem rejestru TL1 zawartością rejestru TH1, w przypadku przepełnienia. Licznik
T1 w tej roli powinien pracować bez uaktywnionych przerwań.
Prędkość transmisji może być dobrana w szerokim zakresie:
BR1,3= 2SMOD * (częstość przepełniania T1) /32
gdzie
częstość przepełniania T1 = fosc /(12 * (256 - TH1))
9/10
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
WEWNĘTRZNE UKŁADY PERYFERYJNE (CISC)
UART - Standardowy port szeregowy - dc.
Prędkość transmisji w trybie 2 wynosi:
BR2= 2SMOD *
fosc
/64
Symbol SMOD, występujący w powyższych wzorach oznacza wartość bitu 7 rejestru PCON.
W trybie 2 oraz 3 praca transmisja szeregowa jest 9-cio bitowa. Praca nadajnika i
odbiornika jest prawie identyczna z pracą w trybie 1, z tą róznicą, że:
●
●
przy nadawaniu poza zawartością SBUF, jako dziewiąty nadawany jest bit TB8, z
rejestru SCON. Możemy mu nadawać odpowiednią wartość, by realizować transmisję
z kontrolą parzystości
przy odbiorze poza wypełnieniem SBUF, dziewiąty bit wczytywany jest na pozycję
RB8 rejestru SCON
10/10