Urządzenia zewnętrzne

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.
Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Architektura jednostki centralnej RD MBR MAR IRPC +1 WR jednostka sterująca ALU A F Adres Dane Rejestry: MAR – (Memory Address Register) rejestr adresowy.
Wykonał : Marcin Sparniuk
Lista rozkazów Działanie mikroprocesora jest kontrolowane poprzez rozkazy (instrukcje). Dla każdego typu mikroprocesora istnieje specyficzny zbiór rozkazów,
Architektura szynowa systemu mikroprocesorowego szyna danych szyna sterująca szyna adresowa µP szyna danych szyna adresowa D7,..., D1, D0 A15,..., A1,
Podstawowe składniki funkcjonalne procesora i ich rola.
Alokacja pamięci struct Test {char c; int n; double x; } st1; st1 cnxcnx
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Systemy operacyjne.
Magistrala & mostki PN/PD
Schemat blokowy komputera
Komputer, procesor, rozkaz.
Temat nr 10: System przerwań
Projekt urządzenia z interfejsem GPIB
UKŁADY SZEREGOWO-RÓWNOLEGŁE
Mikroprocesory i mikrokontrolery
Zastosowanie do sterowania obiektami
Układy wejścia-wyjścia
ogólne pojęcia struktury
Programowalny układ we-wy szeregowego 8251
Automatyka Wykład 3 Modele matematyczne (opis matematyczny) liniowych jednowymiarowych (o jednym wejściu i jednym wyjściu) obiektów, elementów i układów.
Architektura komputerów
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Wyjścia obiektowe analogowe
Technika Mikroprocesorowa 1
Technika Mikroprocesorowa 1
Układy kombinacyjne cz.2
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
MCS51 - wykład 2.
Dekodery adresów.
Mikroprocesor Z80 przerwania.
ogólne pojęcia struktury
Architektura komputerów
MCS51 - wykład 6.
Architektura komputerów
Synteza układów sekwencyjnych z (wbudowanymi) pamięciami ROM
Opracowanie: Maria W ą sik. Pierwsze komputery budowano w celu rozwi ą zywania konkretnych problemów. Gdy pojawiało si ę nowe zadanie, nale ż ało przebudowa.
Podstawy programowania
Architektura komputerów
Struktura systemu mikroprocesorowego
ARCHTEKTURA KOMPUTERA
Płyta główna. Magistrale I/O
Sekwencyjne bloki funkcjonalne
Zasada działania komputera
Autor: Justyna Radomska
Podstawy działania wybranych usług sieciowych
Budowa i rodzaje procesorów.
Przerwanie ang. interrupt.
Buforowanie D e f i n i c j a.
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
Architektura PC.
Wykład 7 Synchronizacja procesów i wątków
ZAPIS BLOKOWY ALGORYTMÓW
Bramki logiczne i układy kombinatoryczne
Procesor, pamięć, przerwania, WE/WY, …
Kalendarz 2020.
Pamięć DRAM.
Struktura wewnętrzna mikrokontrolera zamkniętego
Architektury procesorów rdzeniowych mikrokontrolerów.
Pamięć SRAM.
Układy i systemy mikroprocesorowe
Tryby adresowania i formaty rozkazów mikroprocesora
Płyta główna. Magistrale I/O
Schemat blokowy komputera
Mikrokontrolery MSP430 DMA
Format rozkazu Tryby adresowania.
Zapis prezentacji:

Urządzenia zewnętrzne

Urządzenia zewnętrzne 1/31 Adresowanie Metody obsługi Buforowanie informacji

Urządzenia zewnętrzne - adresowanie 2/31 Sposoby adresowania urządzeń we/wy Adresowanie jednolite z pamięcią (ang. memory-mapped): stosowane w małych systemach lub tam gdzie przestrzeń adresowa pamięci nie jest w pełni wykorzystana, a więc: - brak możliwości późniejszej rozbudowy PAO; umożliwia dostęp do urz. we/wy tymi samymi rozkazami co do zwykłych komórek pamięci, a więc: - większa gama rozkazów; - rozkazy mogą być wykonywane szybciej (procesory uniwersalne); jako sygnały strobów stosuje się linie: /MREQ, /RD albo /WR (/MEMR albo /MEMW).

Urządzenia zewnętrzne - adresowanie 3/31 Przykład realizacji adresowania jednolitego:

Urządzenia zewnętrzne - adresowanie 4/31 Adresowanie rozdzielone z pamięcią (ang. isolated i/o): stosowane w dużych systemach, systemach modułowych lub tam gdzie przestrzeń adresowa pamięci jest w pełni wykorzystana, a więc: - możliwość późniejszej rozbudowy PAO; dostęp do urz. we/wy wymaga użycia odrębnych rozkazów z grupy we-wy, a więc zwykle: - mała gama rozkazów do transmisji; - rozkazy są wykonywane wolniej (dodatkowe takty zegara w cyklach maszynowych procesory uniwersalne); jako sygnały strobów stosuje się linie: /IORQ, /RD albo /WR (/IOR albo /IOW).

Urządzenia zewnętrzne - adresowanie 5/31 Przykład realizacji adresowania rozdzielonego:

Urządzenia zewnętrzne - metody obsługi 6/31 1. Obsługa programowa „na bieżąco” wprowadzanie informacji wyprowadzanie informacji odczyt danej czy jest dana? T badanie stanu urządzenia N czy gotowe? T badanie stanu urządzenia zapis danej N

Urządzenia zewnętrzne - metody obsługi 7/31 Cechy metody: prosta w oprogramowaniu, ale: metoda dopuszczalna gdy: - urządzenie jest szybkie; - mikroprocesor nie ma nic innego do roboty; Uwaga: niebezpieczeństwo zapętlenia się programu przy trwale niedziałającym urządzeniu zewnętrznym

Urządzenia zewnętrzne - metody obsługi 8/31 2. Obsługa programowa w przerwaniach zegarowych wprowadzanie informacji PROGRAM TŁA: flagawe:=0 PROGRAM TŁA: odczyt z bufora; flagawe:=0 (opcjonalnie) PROCEDURA OBSŁUGI PRZERW. ZEGAROWEGO: N T czy jest dana ? flagawe=0 ? odczyt danej flagawe:=1 wyprowadzanie informacji PROGRAM TŁA: zapis do bufora; flagawy:=1 PROGRAM TŁA (opcjonalnie): zapis do bufora; flagawy:=1 PROCEDURA OBSŁUGI PRZERW. ZEGAROWEGO: N T flagawy=1 ? urz. gotowe ? zapis danej flagawy:=0 T badanie stanu urządzenia czy jest dana? N

Urządzenia zewnętrzne - metody obsługi 9/31 Cechy metody: urządzenie jest obsługiwane w dyskretnych chwilach czasu; stała częstotliwość obsługi urządzenia; pomiędzy przerwaniami możliwe jest wykonywanie innych zadań; metoda dopuszczalna, gdy urządzenie nie dostarcza / nie wymaga bloków informacji

Urządzenia zewnętrzne - metody obsługi 10/31 PROGRAM TŁA: flagaweK:=0; błądweK:=0; licznikK:=MAKSILOŚĆPRÓB; PROGRAM TŁA: zapis do bufora; flagawyL:=1; błądwyL:=0; licznikL:=MAKSILOŚĆPRÓB; PROCEDURA OBSŁUGI PRZERW. ZEGAROWEGO: PROCEDURA OBSŁUGI PRZERW. ZEGAROWEGO: N flagaweK=0 ? N T flagawyL=1 ? czy jest dana ? N T T T urz. gotowe ? N dec(licznikK) dec(licznikL) licznikK=0 ? N N T licznikL=0 ? błądweK:=1 T błądwyL:=1 odczyt danej flagaweK:=1 zapis danej flagawyL:=0 PROGRAM TŁA: odczyt z bufora; flagaweK:=0 (opcjonalnie) PROGRAM TŁA (opcjonalnie): zapis do bufora; flagawyL:=1

Urządzenia zewnętrzne - metody obsługi 11/31 3. Obsługa przy użyciu DMA akceptacja końca transmisji w proc. obsł. przerwania c.d. programu głównego programowanie układu DMA program główny transmisja DMA przerwanie

Urządzenia zewnętrzne - metody obsługi 12/31 4. Obsługa z wykorzystaniem przerwań od urządzeń wprowadzanie informacji wyprowadzanie informacji PROGRAM TŁA: flagawe:=0 PROGRAM TŁA: zapis do bufora; flagawy:=1 PROCEDURA OBSŁUGI URZ. ZEWNĘTRZNEGO: PROCEDURA OBSŁUGI URZ. ZEWNĘTRZNEGO: N N flagawe=0 ? flagawy=1 ? T T N N czy jest dana ? urz. gotowe ? T T odczyt danej flagawe:=1 zapis danej flagawy:=0 PROGRAM TŁA: odczyt z bufora; flagawe:=0 (opcjonalnie) PROGRAM TŁA (opcjonalnie): zapis do bufora; flagawy:=1

Urządzenia zewnętrzne - metody obsługi 13/31 Cechy metody: bardzo efektywna technika obsługi; największe korzyści występują przy przerwaniach wektorowych; obsługa jest realizowana tylko wtedy, gdy urządzenie sygnalizuje przerwaniem gotowość do transmisji.

Urządzenia zewnętrzne - metody obsługi 14/31 5. Obsługa bez sprawdzania stanu urządzenia niektóre urządzenia nie wymagają bądź też nie umożliwiają kontroli swego stanu przed transmisją, pozwalając na bezpośredni odczyt lub zapis (np. we/wy binarne, wyświetlacze, przetworniki C/A).

Urządzenia zewnętrzne - buforowanie informacji 15/31 Zalecane zasady obsługi urządzeń zewnętrznych: unikanie „rozproszenia” operacji we/wy po całym programie; korzystanie z procedur we/wy, modułów (bibliotek) obsługi urz. zewnętrznych; stosowanie zmiennych buforujących odczytana informację lub informację przygotowywaną do wysłania;

Urządzenia zewnętrzne - buforowanie informacji 16/31 Przykład braku buforowania informacji wejściowej: odczyt 01110101b port we X C I Ą G R O Z K A Z Ó W t1 t2 11110101b NIE, ponieważ może prowadzić do: błędnych obliczeń; błędnego procesu decyzyjnego;

Urządzenia zewnętrzne - buforowanie informacji 17/31 Rozwiązanie poprawne: port we X bufor X C I Ą G R O Z K A Z Ó W t1 t2 odczyt 01110101b kopia do bufora TAK, ponieważ: logicznie poprawniej; szybciej.

Urządzenia zewnętrzne - buforowanie informacji 18/31 Wariant z wieloma portami wejściowymi: port we X1 C I Ą G R O Z K A Z Ó W . . . rozwiązanie stosowane np. w układach sterowników. port we Xk odczyt kompletu danych i kopia do buforów bufor we X1 . . . bufor we Xk odczyty w celu przetworzenia

Urządzenia zewnętrzne - buforowanie informacji 19/31 Wariant z wieloma portami wyjściowymi, rozwiązanie niewłaściwe: zapis port wy Y1 port wy Y2 port wy Y3 C I Ą G R O Z K A Z Ó W t1 t2 Wady: rozproszenie operacji wyjściowych w kodzie programu; różnice czasowe t1, t2 w wysterowaniu kolejnych portów mogą negatywnie wpływać na sterowany obiekt

Urządzenia zewnętrzne - buforowanie informacji 20/31 Wariant z wieloma portami wyjściowymi, rozwiązanie zalecane: zapis bufor wy Y1 bufor wy Y2 bufor wy Y3 C I Ą G R O Z K A Z Ó W t1 t2 port wy Y1 port wy Y2 port wy Y3 zapis do portów Zalety: zgrupowanie operacji wyjściowych w kodzie programu; różnice czasowe t1, t2 w wysterowaniu kolejnych portów wy. są sprowadzone do minimum

Urządzenia zewnętrzne - buforowanie informacji 21/31 Wariant ze słowem wyjściowym aktualizowanym fragmentarycznie, rozwiązanie błędne: zapis bitów 3..0 port wy Y C I Ą G R O Z K A Z Ó W t1 zapis bitów 7..4 Wada: błędy wyjść binarnych

Urządzenia zewnętrzne - buforowanie informacji 22/31 Wariant ze słowem wyjściowym aktualizowanym fragmentarycznie, rozwiązanie poprawne: zmiana bitów 7..4 zmiana bitów 3..0 bufor wy Y C I Ą G R O Z K A Z Ó W t1 port wy Y1 zapis do portu odczyt bufora Zaleta: logicznie poprawne

Urządzenia zewnętrzne - buforowanie informacji 23/31 Proste (jw.) mechanizmy buforowania stosuje się gdy odczyt i zapis odbywają się regularnie, np. w przerwaniach zegarowych lub w pętli programu głównego. Proste bufory są obrazem w RAM odpowiadających im portów. Dotyczy to praktycznie wszystkich rodzajów urządzeń łączących system mikroprocesorowy z obiektem sterowanym. Urządzenia dostarczające lub odbierające informację nieregularnie, w przypadkowych chwilach czasu lub ze zmienną częstotliwością wymagają złożonych struktur buforujących. Stosuje się tzw. bufor cyrkulacyjny. Urządzenia tego wymagające to np. porty szeregowe, klawiatury autonomiczne, drukarki.

Urządzenia zewnętrzne - buforowanie informacji 24/31 Przykłady konstrukcji bufora cyrkulacyjnego 1. tablica bajtów o zalecanym rozmiarze B=2k ważne dane PZ PW PZ - indeks (zmienna) pierwszego zajętego przez jeszcze ważną informację bajtu w buforze, PZ=0..B-1; PW - indeks (zmienna) pierwszego wolnego bajtu w buforze, do którego może być wpisana najnowsza informacja, PW=0..B-1.

Urządzenia zewnętrzne - buforowanie informacji 25/31 Zasady obsługi takiego bufora Bufor z dwoma indeksami PZ i PW o długości B uważa się: - za pusty jeżeli PZ = PW; - za zapełniony (zawiera wtedy B-1 bajtów) jeżeli (PZ+B-1) mod B = PW.

Urządzenia zewnętrzne - buforowanie informacji 26/31 2. tablica bajtów o zalecanym rozmiarze B=2k ważne dane PZ ILE PZ - indeks (zmienna) pierwszego zajętego przez jeszcze ważną informację bajtu w buforze, PZ=0..B-1; ILE - zmienna określająca ilość (liczoną w bajtach) ważnych danych w buforze, ILE=0..B.

Urządzenia zewnętrzne - buforowanie informacji 27/31 Zasady obsługi takiego bufora Bufor z indeksem PZ i zmienną ILE, o długości B uważa się: - za pusty jeżeli ILE = 0; - za zapełniony (zawiera wtedy B bajtów) jeżeli ILE = B.

Urządzenia zewnętrzne - buforowanie informacji 28/31 Przykłady oprogramowania buforów cyrkulacyjnych Ad. 1. bufor: EQU 8000h pz: EQU 8100h pw: EQU 8101h ; zapis do bufora z portwe w przerwaniu LD HL,(pz) ; L:=pz, H:=pw LD A,L ; A:=pz DEC A ; A:=(A+255)mod256 XOR H ; Z=1 gdy bufor pelny JR Z,bufpelny IN A,(portwe) ; odczyt portu LD E,H LD D,0 ; DE=pw LD HL,bufor ADD HL,DE ; HL->M(pw) LD (HL),A ; M(pw):=A INC E ; pw:=(pw+1)mod 256 LD A,E LD (pw),A bufpelny:

Urządzenia zewnętrzne - buforowanie informacji 29/31 ; przepisanie z bufora do portwy w przerwaniu LD HL,(pz) ; L:=pz, H:=pw LD A,L ; A:=pz XOR H ; Z=1 gdy bufor pusty JR Z,bufpusty LD E,L LD D,0 ; DE=pz LD HL,bufor ADD HL,DE ; HL->M(pz) LD A,(HL) ; A:=M(pz) OUT (portwy),A ; zapis portu INC E ; pz:=(pz+1)mod 256 LD A,E LD (pz),A bufpusty:

Urządzenia zewnętrzne - buforowanie informacji 30/31 Ad.2. dlgbuf: equ 20 bufor: equ 100h pz: equ bufor+dlgbuf ile: equ pz+1 ;zapis do bufora z portwe w przerwaniu: wpisz: ld hl,(pz) ;L:=pz, H:=ile ld a,h ;A=ile cp dlgbuf ;czy ile=dlgbuf? jr z,bufpelny ;slkok jesli tak add a,l ;A:=ile+pz cp dlgbuf ;czy ponad dlgbuf-1? jr c,ltdlg ;skok jesli nie sub dlgbuf ;modulo dlgbuf ltdlg: ld hl,bufor ld e,a ld d,0 add hl,de ;HL->wolna komorka in a,(portwe) ;odczyt danej z portu ld (hl),a ;zapis danej dop bufora ld hl,ile inc (hl) ;ile:=ile+1 bufpelny:

Urządzenia zewnętrzne - buforowanie informacji 31/31 ;przepisanie z bufora do portwy w przerwaniu: ld hl,(pz) ;L:=pz, H:=ile ld a,h ;A=ile and a ;czy ile=0? jr z,bufpusty ;skok jesli tak ld e,l ;E=pz ld d,0 ld hl,bufor add hl,de ;HL->najstarsza dana ld a,(hl) ;odczyt danej z bufora out (portwy),a ;zapis do portu ld hl,ile dec (hl) dec hl ld a,(hl) ;modyfikacja pz inc a ld (hl),a xor dlgbuf ;czy pz=dlgbuf jr nz,bufpusty ;skok jesli nie ld (hl),a ;pz mod dlgbuf=0 bufpusty: