urządzenia zewnętrzne

32
Urządzenia zewnętrzne

Upload: gina

Post on 10-Jan-2016

57 views

Category:

Documents


5 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Urządzenia zewnętrzne

Urządzenia zewnętrzne

Page 2: Urządzenia zewnętrzne

Urządzenia zewnętrzne 1/31

Adresowanie

Metody obsługi

Buforowanie informacji

Page 3: Urządzenia zewnętrzne

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).

Page 4: Urządzenia zewnętrzne

Urządzenia zewnętrzne - adresowanie 3/31

Przykład realizacji adresowania jednolitego:

VCC

A15

A14A13A12

A[0..15]

/MREQ

/CSROM/CSRAM

/CSIO1/CSIO2/CSIO3

I/O1

I/O2

I/O3

RAM

EPROM0000h

8000h

FFFFh

7xxxh

6xxxh

5xxxh4FFFh

2000h

1000h

A1

B2

C3

E14

E25

E36

Y015

Y114

Y213

Y312

Y411

Y510

Y69

Y77

74LS138

Page 5: Urządzenia zewnętrzne

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).

Page 6: Urządzenia zewnętrzne

Urządzenia zewnętrzne - adresowanie 5/31

Przykład realizacji adresowania rozdzielonego:

VCC

A15

A14A13A12

A[0..15]

/MREQ

/CSROM

/CSRAM

/IORQ

/CSIO0/CSIO1

/CSIO7/CSIO6

/CSIO2

A7A6

A5A4

RAM

EPROM0000h

8000h

FFFFh

7000h

1000h

A3

00h

80h

FFh

40h48h50h58h60h68h70h78h

3FhIO0IO1IO2

IO6IO7

01000xxxB01001xxxB01010xxxB

01110xxxB01111xxxB

A1

B2

C3

E14

E25

E36

Y0 15

Y1 14

Y213

Y312

Y411

Y510

Y69

Y7 7

74LS138

A1

B2

C3

E14

E25

E36

Y0 15

Y114

Y213

Y312

Y411

Y5 10

Y69

Y7 7

74LS138

Page 7: Urządzenia zewnętrzne

Urządzenia zewnętrzne - metody obsługi 6/31

1. Obsługa programowa „na bieżąco”

odczytdanej

czyjest dana?

T

badanie stanu urządzenia

N

wprowadzanie informacji wyprowadzanie informacji

czygotowe?

T

badanie stanu urządzenia

zapisdanej

N

I/O nPORT

DANYCHREJESTRSTANU

I/O m

PORTDANYCH

READY

Page 8: Urządzenia zewnętrzne

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

Page 9: Urządzenia zewnętrzne

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

Tczy jest dana ?

flagawe=0 ?

odczyt danej flagawe:=1

wyprowadzanie informacjiPROGRAM TŁA:

zapis do bufora; flagawy:=1

PROGRAM TŁA (opcjonalnie):

zapis do bufora; flagawy:=1

PROCEDURA OBSŁUGI PRZERW. ZEGAROWEGO:

N

Tflagawy=1 ?

N

Turz. gotowe ?

zapis danejflagawy:=0T

badanie stanu urządzenia

czy jest dana?

N

Page 10: Urządzenia zewnętrzne

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

Page 11: Urządzenia zewnętrzne

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

TbłądweK:=1

T

PROGRAM TŁA: zapis do bufora;

flagawyL:=1; błądwyL:=0;licznikL:=MAKSILOŚĆPRÓ

B;PROCEDURA OBSŁUGI

PRZERW. ZEGAROWEGO:

zapis danejflagawyL:=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 ?

Page 12: Urządzenia zewnętrzne

Urządzenia zewnętrzne - metody obsługi 11/31

3. Obsługa przy użyciu DMA

akceptacja końca transmisjiw proc. obsł. przerwania

c.d. programu głównego

programowanie układu DMA

program główny transmisja DMA

przerwanie

Page 13: Urządzenia zewnętrzne

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 informacji wyprowadzanie informacji

N

Tflagawy=1 ?

N

Turz. gotowe ?

zapis danejflagawy:=0

N

N

T

Tczy jest dana ?

flagawe=0 ?

odczyt danej flagawe:=1

Page 14: Urządzenia zewnętrzne

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.

Page 15: Urządzenia zewnętrzne

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).

Page 16: Urządzenia zewnętrzne

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;

Page 17: Urządzenia zewnętrzne

Urządzenia zewnętrzne - buforowanie informacji 16/31

Przykład braku buforowania informacji wejściowej:

odczyt01110101b

port we X

port we X

port we X

C I Ą G

R O Z K A Z Ó W

t1

t2

odczyt01110101b

odczyt11110101b

NIE, ponieważ może prowadzić do:• błędnych obliczeń;• błędnego procesu decyzyjnego;

Page 18: Urządzenia zewnętrzne

Urządzenia zewnętrzne - buforowanie informacji 17/31

Rozwiązanie poprawne:

TAK, ponieważ:• logicznie poprawniej;• szybciej.

port we X

bufor X

C I Ą G

R O Z K A Z Ó W

t1

t2

odczyt01110101b

kopia do buforaodczyt

01110101b

odczyt01110101b

odczyt01110101b

Page 19: Urządzenia zewnętrzne

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

C I Ą G

R O Z K A Z Ó W

. . .

port we Xk

. . .

bufor we Xk

rozwiązanie stosowane np.

w układach sterowników.

Page 20: Urządzenia zewnętrzne

Urządzenia zewnętrzne - buforowanie informacji 19/31

Wariant z wieloma portami wyjściowymi, rozwiązanie niewłaściwe:

zapisport wy Y1

port wy Y2

port wy Y3

C I Ą G

R O Z K A Z Ó W

t1

t2

zapis

zapis

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

Page 21: Urządzenia zewnętrzne

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

zapis

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 t1, t2

w wysterowaniu kolejnych portów wy.

są sprowadzone do minimum

Page 22: Urządzenia zewnętrzne

Urządzenia zewnętrzne - buforowanie informacji 21/31

Wariant ze słowem wyjściowym aktualizowanym fragmentarycznie,rozwiązanie błędne:

zapis bitów 3..0port wy Y

port wy Y

C I Ą G

R O Z K A Z Ó W

t1

zapis bitów 7..4

Wada:

błędy wyjść binarnych

Page 23: Urządzenia zewnętrzne

Urządzenia zewnętrzne - buforowanie informacji 22/31

Wariant ze słowem wyjściowym aktualizowanym fragmentarycznie,rozwiązanie poprawne:

Zaleta:

logicznie poprawnezmiana 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

Page 24: Urządzenia zewnętrzne

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.

Page 25: Urządzenia zewnętrzne

Urządzenia zewnętrzne - buforowanie informacji 24/31

tablica bajtówo zalecanym rozmiarze

B=2k

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.

Page 26: Urządzenia zewnętrzne

Urządzenia zewnętrzne - buforowanie informacji 25/31

zapis do bufora odczyt z buforainformacjawejściowa

przez proc. obsł. przerwania:jeżeli (PZ+B-1) mod B PW to:

A:=IN[port we]M[BUF+PW]:=A

PW:=(PW+1) mod B

np. przez program główny:jeżeli PZ PW to:A:=M[BUF+PZ]

PZ:=(PZ+1) mod B

informacjawyjściowa

np. przez program główny:jeżeli (PZ+B-1) mod B PW to:

M[BUF+PW]:=APW:=(PW+1) mod B

przez proc. obsł. przerwania:jeżeli PZ PW to:A:= M[BUF+PZ]OUT[port wy]:=APZ:=(PZ+1) mod B

gdzie BUF oznacza adres początkowy bufora cyrkulacyjnego

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.

Page 27: Urządzenia zewnętrzne

Urządzenia zewnętrzne - buforowanie informacji 26/31

2.

tablica bajtówo 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.

Page 28: Urządzenia zewnętrzne

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.

zapis do bufora odczyt z buforainformacjawejściowa

przez proc. obsł. przerwania:jeżeli ILE < B to:A:=IN[port we]

M[BUF+(PZ+ILE) mod B]:=AILE:=ILE+1

np. przez program główny:jeżeli ILE > 0 to:A:=M[BUF+PZ]

PZ:=(PZ+1) mod BILE:=ILE-1

informacjawyjściowa

np. przez program główny:jeżeli ILE < B to:

M[BUF+(PZ+ILE) mod B]:=AILE:=ILE+1

przez proc. obsł. przerwania:jeżeli ILE > 0 to:A:= M[BUF+PZ]OUT[port wy]:=APZ:=(PZ+1) mod B

ILE:=ILE-1gdzie BUF oznacza adres początkowy bufora cyrkulacyjnego

Page 29: Urządzenia zewnętrzne

Urządzenia zewnętrzne - buforowanie informacji 28/31

Przykłady oprogramowania buforów cyrkulacyjnych

Ad. 1.bufor: EQU 8000hpz: EQU 8100hpw: 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),Abufpelny:

Page 30: Urządzenia zewnętrzne

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

Page 31: Urządzenia zewnętrzne

Urządzenia zewnętrzne - buforowanie informacji 30/31

Ad.2.dlgbuf: equ 20bufor: equ 100hpz: equ bufor+dlgbufile: 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 dlgbufltdlg: 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+1bufpelny:

Page 32: Urządzenia zewnętrzne

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=0bufpusty: