Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Urządzenia zewnętrzne
2
Urządzenia zewnętrzne 1/31
Adresowanie Metody obsługi Buforowanie informacji
3
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).
4
Urządzenia zewnętrzne - adresowanie 3/31
Przykład realizacji adresowania jednolitego:
5
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).
6
Urządzenia zewnętrzne - adresowanie 5/31
Przykład realizacji adresowania rozdzielonego:
7
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
8
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
9
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
10
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
11
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
12
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
13
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
14
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.
15
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).
16
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;
17
Urządzenia zewnętrzne - buforowanie informacji 16/31
Przykład braku buforowania informacji wejściowej: odczyt b port we X C I Ą G R O Z K A Z Ó W t1 t2 b NIE, ponieważ może prowadzić do: błędnych obliczeń; błędnego procesu decyzyjnego;
18
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 b kopia do bufora TAK, ponieważ: logicznie poprawniej; szybciej.
19
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
20
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
21
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
22
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
23
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
24
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.
25
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.
26
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.
27
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.
28
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.
29
Urządzenia zewnętrzne - buforowanie informacji 28/31
Przykłady oprogramowania buforów cyrkulacyjnych Ad. 1. bufor: EQU h pz: EQU h pw: EQU h ; 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, ; 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:
30
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, ; 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:
31
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:
32
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:
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.