Sunteți pe pagina 1din 7

LUCRARE DE LABORATOR NR.

2
CONECTAREA UNUI PPI 8255 PE PLACA DE BAZA A UNUI PC
Pentru interfatarea calculatoarelor cu procese (industriale) externe se folosesc placi dedicate care
contin in principal circuite numerice cu capabilitati de schimburi de date in mod bidirectional. Un calculator
personal este un echipament deosebit de versatil cu teoretic- infinite posibilitati pentru aplicatii in exterior
pentru controlul sau monitorizarea proceselor, daca PC-ului i se adauga o placa proiectata pentru una din
magistralele de extensie si aceasta parte hardware este insotita de programul dedicat pentru realizarea
aplicatiei. Una dintre magistralele de extensie ale unui sistem este magistrala ISA pe 8 biti. ISA (Industry
Standard Architecture) funcioneaz la 8 MHz si a permis productorilor s construiasc sisteme ale cror
componente (exceptnd cteva uniti specializate) s fie interschimbabile.
2.1. Magistrala ISA pe 8 biti
Conectorul de extensie al magistralei ISA pe 8 bii const dintr-un conector cu 62 de contacte montat
pe placa de baz i care din punct de vedere electronic furnizeaz 8 linii de date, 20 de linii de adres i
permite lucrul cu 1Moctet de memorie.
n figura 2.1 se prezint tabelul ce conine semnificaia pinilor unei magistrale ISA pe 8 bii.
Pin
B1
B2
B3
B4
B5
B6
B7
B8
B9
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31

Nume semnal
Pin
Nume semnal
Mas
A1
Verificare canal I/O
Reset driver
A2
Linie date 7
+ 5V
A3
Linie date 6
IRQ 2
A4
Linie date 5
-5V
A5
Linie date 4
DMA Request 2
A6
Linie date 3
- 12 V
A7
Linie date 2
Selecie plac (XT)
A8
Linie date 1
+ 12 V
A9
Linie date 0
Mas
A10
Canal I/O Ready
Scriere memorie
A11
Activare adrese
Citire memorie
A12
Linie adrese 19
Scriere I/O
A13
Linie adrese 18
Citire I/O
A14
Linie adrese 17
DMA Acknowledge 3
A15
Linie adrese 16
DMA Request 3
A16
Linie adrese 15
DMA Acknowledge 1
A17
Linie adrese 14
DMA Request 1
A18
Linie adrese 13
DMA Acknowledge 0
A19
Linie adrese 12
Ceas
A20
Linie adrese 11
IRQ 7
A21
Linie adrese 10
IRQ 6
A22
Linie adrese 9
IRQ 5
A23
Linie adrese 8
IRQ 4
A24
Linie adrese 7
IRQ 3
A25
Linie adrese 6
DMA Acknowledge 2
A26
Linie adrese 5
Terminal Count
A27
Linie adrese 4
Activare adrese
A28
Linie adrese 3
+ 5 VDC
A29
Linie adrese 2
Oscilator
A30
Linie adrese 1
Mas
A31
Linie adrese 0
Figura 2.1. Lista pinilor pentru magistrala ISA pe 8 bii.

n figura 2.2 se prezint orientarea pinilor n conectorul magistralei ISA de 8 bii.


B31

B1

A31

A1

Spatele
calculatorului

Figura 2.2. Conectorul magistralei ISA de 8 bii.

Partea hardware de pe placa utilizator (placa suplimentara dedicata unei aplicatii) este privita ca un
periferic de catre microprocesor. Pentru schimbul de informatie acest periferic va trebui adresat. Adresarea
perifericelor se realizeaza cu ajutorul decodificatoarelor de adrese (un exemplu studiat la prima lucrare de
laborator).
Circuitul care este efectiv cel implicat in aplicatia din aceasta lucrare de laborator este un circuit
programabil 8255.
2.2 Circuitul PPI 8255. Prezentare i programare
8255 este un circuit de tip PPI (Programmable Peripherical Interface), adic un periferic de tip LSI
destinat implementrii operaiilor de intrare-ieire ntr-un sistem cu microprocesor. Acest circuit are n
componen porturi ale cror linii pot fi configurate fie ca intrri, fie ca ieiri, prin intermediul regitrilor
interni. Structura intern permite, n plus configurarea unor grupuri de linii care s lucreze mpreun, crend
astfel porturi de intrare sau ieire pe un bit, pe 4 bii, pe 8 sau 12 bii. Intrrile sunt active pe nivel iar ieirile
sunt prevzute cu circuite de memorare (latch). Att intrrile ct i ieirile sunt validate prin comenzi specifice
i exist posibilitatea s se utilizeze i linii bidirecionale validate din exterior. Oricare din aceste posibiliti de
realizare se pot obine prin programarea corespunztoare a circuitului.
Schema bloc a circuitului 8255 este prezentat n figura 2.3. iar semnificaia terminalelor este
prezentat n figura 2.4.

Figura 2.3. Schema bloc a circuitului 8255.

Partea din stnga a schemei bloc reprezint interfaa cu magistralele microprocesorului. Avem astfel
magistrala bidirecional de date pe 8 bii care este utilizat pentru a trimite cuvinte de comand pentru
programarea perifericului, cuvinte de stare, citiri sau nscrieri de date. Sensul acestor transferuri de date este
controlat de semnalele nRD i nWR.
Circuitul conine patru porturi dintre care dou sunt pe cte 8 bii (Portul A i Portul B) i dou pe cte
4 bii (reuniunea lor formnd Portul C). Registrul surs, sau destinaie, corespunztor fiecruia din aceste
porturi este selectat de un cod de 2 bii care se aplic la intrrile de selecie A0 i A1 ale circuitului 8255.
Regitrii porturilor pot fi selectai cu codurile: A1A0 = 00 (Port A), A1A0 = 01 (Port B), A1A0 = 10 (Port C).

Figura 2.4. Semnificaia terminalelor pentru PPI 8255A


Mai sunt legate dou linii: pentru iniializarea circuitului (Reset) i pentru selecia circuitului (nCS).
Comutarea liniei Reset pe nivel 1 logic la conectarea sursei de alimentare determin tergerea regitrilor
interni ai lui 8255. Aceast iniializare cofigureaz toate porturile pentru operarea ca porturi de intrare.
Semnalul nCS trebuie s fie pe nivel 0 logic pe durata operaiilor de citire, sau scriere din, sau n 8255. Acesta
permite interfaarea microprocesorului cu restul circuitelor pentru o operaie de intrare sau de ieire.
Registrul de control poate fi numai nscris i coninutul su poate fi modificat prin program prin iniierea unui
ciclu de nscriere n 8255, folosind codul de selecie registru A1A0 = 11. Semnificaia biilor din registrul de
control este dat n figura 2.5.

Figura 2.5. Funciile biilor cuvntului de control.

MOD 0 selecteaz aa-zisele operaii IO simple. Prin aceasta nelegem c liniile porturilor pot fi
configurate ca intrri active pe nivel sau ieiri prevzute cu latch-uri. O prim setare a porturilor pentru acest
mod de operare nseamn bitul D7 pe 1 logic, biii D5 - D6 pe 00 iar D2 pe 0. Acum porturile A i B pot fi
configurate ca porturi de intrare sau de ieire, iar portul C poate fi configurat pentru a opera ca dou porturi
independente de intrare sau ieire de cte patru bii. Aceasta se obine prin punerea pe 1 logic sau 0 logic a
biilor D0, D1, D3 i D4.
Intrebare: Scriei cuvntul de control care s configureze lucrul n modul 0, iar liniile porturilor A, B i C
s fie configurate ca n figura 8255.4.

Figura 2.6. Configuraia I/O pentru MOD 0 i configurare impus.

MOD 1 selecteaz operaiile I/O strobate (validate). Porturile lui 8255 sunt trecute n acest mod de
operare prin activarea indicatorului (fanionului) de schimbare mod (D7=1) i setarea biilor D6D5=01 i
D2=1. In acest mod porturile A i B sunt configurate ca dou porturi I/O de 8 bii independente, fiecare avnd
asociat un port de control/date de 4 bii. Porturile de control/date sunt formate din jumtatea inferioar i
respectiv superioar a portului C. Cand 8255 este configurat n acest mod datele aplicate la un port de intrare
trebuie s fie strobate cu un semnal produs de hardware-ul extern. Mai mult, un port de ieire este prevzut cu
semnale de protocol pentru a semnala cnd sunt disponibile noile date la ieire i cnd dispozitivele externe
trebuie s citeasc aceste date.
Ca un exemplu s presupunem c registrul de control a fost ncrcat cu octetul 10111XXX. Acesta configureaz portul A ca port de intrare n MOD 1.
Figura 8255.5 ilustreaz funciile liniilor de semnal pentru acest exemplu. Liniile PA0 - PA7 formeaz un port de intrare de 8 bii.

Figura 8255.5. Configuraia de intrare MOD 1 pentru PORT A.


Pe de alt parte funciile jumtii superioare a portului C sunt schimbate pentru a realiza portul de control date al portului A. Linia PC4 devine nSTBA (strob
intrare), utilizat pentru a sincroniza memorarea datelor de pe PA7 - PA0 n bistabilele (latch - urile) de intrare. PC5 devine IBFA (buffer intrare plin), 1 logic la
aceast ieire indicnd circuitelor externe c n buffer exist deja un cuvnt de date ncrcat n latch-urile de intrare.
Al treilea semnal de control este furnizat pe linia PC3, denumit INTRA (cerere de ntrerupere). El comut n 1 logic att timp ct nSTBA = 1, IBFA = 1 i semnalul
intern INTEA (autorizare ntrerupere) este 1. INTEA este setat pe 0 au 1 logic conform programului, utiliznd posibilitatea de setare resetare pe bit a lui 8255. Din
figura 8255.5 se observ c un 1 logic la INTEA autorizeaz propagarea nivelului logic al lui IBFA la ieirea INTRA. Acest semnal poate fi aplicat unei intrri de
ntrerupere la microprocesor pentru a-i semnala c n port este disponibil o nou dat. Rutina corespunztoare de deservire a ntreruperii va citi data i va terge
cererea de ntrerupere.
Un alt exemplu : s presupunem c n registrul de control se ncarc valoarea 10101XXX. Configuraia IO corespunztoare este dat n figura 8255.6.

Figura 2.7. Configuraia de ieire MOD 1 pentru PORT A.


Se observ acum c portul A este configurat acum pentru operaii de ieire n loc de operaii de intrare. Liniile PA7 - PA0 formeaz un port de ieire de 8 bii. Linia
de control PC7 devine nOBFA (buffer de ieire plin). Cnd o dat a fost nscris n portul de ieire nOBFA comut n 0 logic. n acest mod se semnaleaz circuitelor
externe c n portul de ieire este disponibil o nou dat.
Linia PC4 devine intrarea nACKA (confirmare). Un dispozitiv extern i poate semnala lui 8255 c a preluat data aflat n portul de ieire comutnd aceast linie n 1
logic. Ultimul semnal al portului de control este ieirea INTRA (cerere de ntrerupere), pe linia PC3. Aceast ieire este trecut n 1 logic atunci cnd intrarea
nACKA este activ. Semnalul este utilizat pentru a ntiina microprocesorul, printr-o ntrerupere, c un dispozitiv extern a preluat data din portul de ieire. INTRA
comut n 1 logic atunci cnd nOBFA = 1, nACKA = 0 i INTEA = 1. Si de aceast dat bitul de autorizare ntrerupere (INTEA) trebuie s fie adus la 1 prin
program.
Figura 2.8 i 2.9 prezint cum poate fi configurat portul B pentru operare n mod 1. S presupunem c intrarea nSTBB este comutat n 0 logic i INTEB a fost setat
la 1 logic.
Cnd nSTBB comut, octetul de date de pe PB0 - PB7 este memorat n registrul B. n consecin ieirea IBFB comut n 1 logic. Deoarece INTEB este 1, INTRB va
comuta i el n 1 logic.

Figura 2.8. Configuraia de intrare MOD 1 pentru PORT B.

Figura 2.9. Configuraia de ieire MOD 1 pentru PORT B.

MODUL 2 de operare reprezint ceea ce se cunoate sub denumirea de operaii IO bidirecionale


strobate. Principala diferen este c acum liniile portului lucreaz fie ca intrri, fie ca ieiri iar semnalele de
control sunt prevzute pentru ambele funcii. Numai portul A poate fi configurat s lucreze n acest mod. n
acest timp portul B poate funciona n mod 0.

Pentru a configura portul A n acest mod, registrul de control va fi ncrcat cu 11XXXXXX. Configuraia I O care rezult este dat n figura 2.10. Se
observ c PA0 - PA7 opereaz ca un port de 8 bii bidirecional. Semnalele lui de control sunt : nOBFA pe PC7, nACKA pe PC6, nSTBA pe PC4, IBFA pe PC5 i
INTRA pe PC3. Funciile lor sunt similare cu cele deja discutate la modul 1. O diferen este faptul c INTRA este un SI logic ntre nOBFA i INTE1 sau IBFA i
INTE2.

Figura 2.10. Configuraie intrare/ieire MOD 2.


Mai exist posibilitatea de setare/resetare bit, care poate fi folosit pentru a poziiona bitul INTE n 0 sau 1 logic. Aceeai posibilitate poate fi folosit
pentru setarea sau resetarea individual a biilor din PORT-ul C. Pentru a realiza aceasta, nscriem 0 logic n bitul 7 al registrului de control. Aceat operaie va avea
drept rezultat tergerea fanionului de setare/resetare bit. Nivelul logic care trebuie memorat ntr-un bit al portului C este inclus ca bit D0 n cuvntul de control.
Valoarea este memorat pe linia I/O a portului C care corespunde codului de trei bii D3D2D1.

Figura 8255.10. Format bit set/reset.


Legtura ntre cuvntul de control set/reset i liniile de intrare/ieire este ilustrat n figura 8255.10. De exemplu, scriind 00001111 n binar n registrul de control al
lui 8255, selectm bitul 7 i-l setm pe 1 logic. n consecin, ieirea PC7 a portului C comut n 1 logic.
Fanionul de control al ntreruperilor INTEA este controlat prin setarea/resetarea lui PC7. Pentru a aduce fanionul respectiv la 1 logic va trebui s realizm urmtoarele
:

pentru a utiliza posibilitatea de setare/resetare bit, D7 trebuie s fie 0 logic;


INTEA trebuie trecut pe 1 logic deci D0 trebuie s fie 1 logic;
pentru a selecta PC6, codul D3D2D1 trebuie s fie 110;

valorile celorlali bii sunt fr importan.


Se obine urmtorul cuvnt de control : D7D6D5D4D3D2D1D0 = 0XXX1101 n binar.
nlocuind valorile indiferente cu 0 obinem : D7D6D5D4D3D2D1D0 = 00001101 = 0D n hexazecimal.
S-au prezentat astfel toate modurile de operare pentru porturile lui 8255. n practic porturile A i B sunt des configurate n moduri diferite De exemplu, figura
8255.11 red cuvntul de control i configurarea porturilor pentru un 8255 avnd portul A bidirecional, opernd n modul 2 iar portul B port de intrare n modul 0 de
operare.

Figura 8255.11. Configuraie I/O i cuvnt de control


combinaie pentru MOD 2 i MOD 0.

2.3. Partea practica


Acest circuit 8255 este perifericul de programat in aceasta lucrare de laborator.
1. Considerandu-se schema de principiu studiata la selectia perifericelor la prima lucrare de laborator,
identificati pe placa utilizator liniile utilizate de pe magistrala de adrese, de date si de control care apartin
magistralei de extensie ISA. Fiecare echipa va marca pe Anexa 1 aceste legaturi.
2. Care din urmtoarele circuite asigur un Reset local pentru 8255?

3. Se consider c acest circuit (8255) este selectat de ctre un microprocesor. Pentru validarea liniei CS avem nevoie
de adresa: 0011.0000.00xx. Care este adresa de selecie a registrului de control?
4. Cu ajutorul tabelului alturat, scriei o comand pentru configurarea registrului de control astfel nct s avem
urmtoarele situaii:
A - intrare; B - ieire; Csup - intrare; Cinf - ieire
Limbajul
Basic
Turbo C
Turbo Pascal
Limbaj de asamblare

Citire
Date := INP(Adresa)
Date := inportb(Adresa)
Date := Port [Adresa]
mov dx, Adresa
in al, dx

Scriere
OUT Adresa, Date
outportb(Adresa, Date)
Port [Adresa] := Date
mov dx, Adresa
mov al, Date
out dx, al

5. La ce adres se afl portul A?


6. Scriei un set de instruciuni (sau una singur) pentru a citi informaia de la portul A.
7. Generai un semnal dreptunghiular pe fiecare din cele 8 linii ale portului B.
8. Generai un semnal dreptunghiular doar pe linia 6 a portului B.
9. Studiati programul dedicat pentru comanda unor LED-uri si propuneti o optimizare (mai putine instructiuni) a functiilor
implementate.

S-ar putea să vă placă și