1 / 32

Urządzenia zewnętrzne

Urządzenia zewnętrzne. Urządzenia zewnętrzne 1/31. Adresowanie Metody obsługi Buforowanie informacji. Sposoby adresowania urządzeń we/wy.

gina
Télécharger la présentation

Urządzenia zewnętrzne

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Urządzenia zewnętrzne

  2. Urządzenia zewnętrzne 1/31 Adresowanie Metody obsługiBuforowanie informacji

  3. Sposoby adresowania urządzeń we/wy Urządzenia zewnętrzne - adresowanie 2/31 • 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. 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 4/31

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

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

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

  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. 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; Urządzenia zewnętrzne - metody obsługi 10/31 PROCEDURA OBSŁUGI PRZERW. ZEGAROWEGO: PROCEDURA OBSŁUGI PRZERW. ZEGAROWEGO: N flagaweK=0 ? N flagawyL=1 ? T N czy jest dana ? T T T urz. gotowe ? N dec(licznikK) dec(licznikL) N licznikK=0 ? 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. programowanie układu DMA program główny transmisja DMA przerwanie akceptacja końca transmisji w proc. obsł. przerwania c.d. programu głównego 3. Obsługa przy użyciu DMA Urządzenia zewnętrzne - metody obsługi 11/31

  13. 4. Obsługa z wykorzystaniem przerwań od urządzeń Urządzenia zewnętrzne - metody obsługi 12/31 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. 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 13/31

  15. 5. Obsługa bez sprawdzania stanu urządzenia Urządzenia zewnętrzne - metody obsługi 14/31 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. 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 15/31

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

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

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

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

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

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

  24. 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 zewnętrzne - buforowanie informacji 23/31 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. PW tablica bajtówo zalecanym rozmiarze B=2k ważne dane PZ Urządzenia zewnętrzne - buforowanie informacji 24/31 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. 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 25/31

  27. tablica bajtówo zalecanym rozmiarze B=2k ważne dane PZ ILE Urządzenia zewnętrzne - buforowanie informacji 26/31 2. 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. 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 27/31

  29. 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 28/31

  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. 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 30/31

  32. ;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: Urządzenia zewnętrzne - buforowanie informacji 31/31

More Related