Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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

Podobne prezentacje


Prezentacja na temat: "Urządzenia zewnętrzne. Urządzenia zewnętrzne 1/31 Adresowanie Metody obsługi Buforowanie informacji."— Zapis prezentacji:

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 odczyt danej czy jest dana? T badanie stanu urządzenia N wprowadzanie informacjiwyprowadzanie informacji 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 N T 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 ? N T 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; PROCEDURA OBSŁUGI PRZERW. ZEGAROWEGO: odczyt danej flagaweK:=1 N N T PROGRAM TŁA: odczyt z bufora; flagaweK:=0 (opcjonalnie) dec(licznikK) N T błądweK:=1 T PROGRAM TŁA: zapis do bufora; flagawyL:=1; błądwyL:=0; licznikL:=MAKSILOŚĆPRÓB; PROCEDURA OBSŁUGI PRZERW. ZEGAROWEGO: zapis danej flagawyL:=0 N N T PROGRAM TŁA (opcjonalnie): zapis do bufora; flagawyL:=1 dec(licznikL) T błądwyL:=1 N T licznikK=0 ? licznikL=0 ? czy jest dana ? flagaweK=0 ? urz. gotowe ? 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łównytransmisja DMA przerwanie

13 Urządzenia zewnętrzne - metody obsługi 12/31 4. Obsługa z wykorzystaniem przerwań od urządzeń PROGRAM TŁA: flagawe:=0 PROCEDURA OBSŁUGI URZ. ZEWNĘTRZNEGO: PROGRAM TŁA: odczyt z bufora; flagawe:=0 (opcjonalnie) PROGRAM TŁA: zapis do bufora; flagawy:=1 PROCEDURA OBSŁUGI URZ. ZEWNĘTRZNEGO: PROGRAM TŁA (opcjonalnie): zapis do bufora; flagawy:=1 wprowadzanie informacjiwyprowadzanie informacji N T flagawy=1 ? N T urz. gotowe ? zapis danej flagawy:=0 N N T T czy jest dana ? flagawe=0 ? odczyt danej flagawe:=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 CIĄ GRO ZK AZÓ WCIĄ GRO ZK AZÓ W t 1 t 2 odczyt b odczyt 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: TAK, ponieważ: logicznie poprawniej; szybciej. port we X bufor X CIĄGROZKAZÓWCIĄGROZKAZÓW t 1 t 2 odczyt b kopia do bufora odczyt b odczyt b odczyt b

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

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 CIĄGROZKAZÓWCIĄGROZKAZÓW t 1 t 2 zapis Wady: rozproszenie operacji wyjściowych w kodzie programu; różnice czasowe t 1, t 2 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 CIĄGROZKAZÓWCIĄGROZKAZÓW t 1 t 2 zapis port wy Y1 port wy Y2 port wy Y3 zapis do portów Zalety: zgrupowanie operacji wyjściowych w kodzie programu; różnice czasowe t 1, t 2 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 CIĄGROZKAZÓWCIĄGROZKAZÓW t 1 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: Zaleta: logicznie poprawne zmiana bitów 7..4 zmiana bitów 3..0 bufor wy Y CIĄGROZKAZÓWCIĄGROZKAZÓW t 1 port wy Y1 zapis do portu odczyt bufora

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 tablica bajtów o zalecanym rozmiarze B=2 k ważne dane PZ PW Przykłady konstrukcji bufora cyrkulacyjnego 1. 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=2 k ważne dane PZILE 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 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:

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,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:

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:


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

Podobne prezentacje


Reklamy Google