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