Circuitul Intel 8255 pentru comunicatia paralela
Interfata paralela programabila I8255 este destinata pentru microsisteme cu microprocesoare din familia Intel. Contine trei porturi paralele independente (A,B,C) de câte 8 biti. Cele 24 linii de intrare/iesire pot fi programate în doua grupuri de câte 12 linii si utilizate în trei moduri de lucru:
- Modul 0 : fiecare port al fiecarui grup poate fi programat în regim de intrare sau iesire.
- Modul 1 : fiecare grup poate avea câte 8 linii de intrare sau iesire (A respectiv B), însotit de câte 3 semnale din portul C pentru transferul prin confirmare . 15115m1212p
- Modul 2 : transfer bidirectional pe octet (portul A ), comandat cu 5 semnale ale portului C (unul împrumutat din al doilea grup).
Fig. 1
A0 |
A1 |
Selectie |
|
|
Port A |
|
|
Port B |
|
|
Port C |
|
|
Registru de comanda |
PA0 - PA7 - Intrari/iesiri paralele ale portului A.
(Interfatare cu perifericele).
PB0 - PB7 - Intrari/iesiri paralele ale portului B.
(Interfatare cu perifericele).
PC0 - PC7 - Intrari/iesiri paralele ale portului C.
(Interfatare cu perifericele).
Programarea circuitului
Se face prin selectarea registrului de comanda si încarcarea lui cu un cuvânt de comanda . Pentru definirea modului , cuvântul de comanda are bitul 7 egal cu 1 logic .
Modurile de functionare ale circuitului I8255
Modul 0 - definit ca mod de baza de I/E .
asigura : - doua porturi de 8 biti (PA0 - PA7 si PB0 - PB7 )
- doua porturi de 4 biti ( PC0 - PC3 si PC4 - PC7 cu pozitionare
individuala).
Porturile pot fi de intrare sau de iesire. Cele folosite pentru iesire sunt prevazute cu bistabile de memorare , cele folosite pentru intrari nu dispun de astfel de bistabile.
Încarcarea cuvântului de comanda cu bitul 7 egal cu 0 logic, permite comanda individuala a bitilor portului C, prin pozitionarea lor în 1 sau 0. Bitii 6 - 4 nu sunt folositi si se pozitioneaza pe 0.
Fig. 3
Modul 1 asigura posibilitati de strobare pentru intrare sau iesire. Unul sau doua porturi organizate pe 11 biti, contin 8 biti de date(port A si/sau B), 3 biti de comanda (port C) si logica suport pentru întrerupere.
Oricare port poate fi folosit pentru intrare sau iesire. Daca în modul 1 se foloseste un singur port, ceilalti 13 biti pot fi configurati în modul 0. Daca se folosesc doua porturi, ramân doi biti ce pot fi intrare sau iesire cu posibilitatea de pozitionare pe '1' sau '0'.
Pentru intrare semnalele de comanda au semnificatia :
- STBA , STBB - strob de intrare, încarca data în registrul de intrare (' 0 ' de la periferic ) .
- IBFA, IBFB - indicator tampon de intrare încarcat. Este activat de STB si dezactivat de frontul crescator a lui RD .
- INTRA, INTRB - cerere de întrerupere spre microprocesor, când datele au fost preluate de la periferic. Este dezactivat de frontul crescator al lui RD.
- INTEA, INTEB - bistabile interne asociate cu întreruperile.
Pentru iesire semnalele de comanda au semnificatia :
- OBFA , OBFB - indicator tampon de iesire încarcat. Este activat pe frontul descrescator al lui WR si dezactivat de frontul descrescator al lui ACK.
- ACKA , ACKB - acceptare la periferic. Datele au fost preluate de periferic.
- INTRA, INTRB - cerere de întrerupere spre microprocesor. Indica faptul ca datele au fost preluate de periferic. Este dezactivat de frontul crescator al lui WR .
INTEA , INTEB - bistabile interne de întrerupere .
Diagrama de timp la intrare :
1 - Data a sosit la intrarea portului - perifericul activeaza STB.
2 - Data se afla în port - 8255 activeaza IBF spre periferic.
3 - Microprocesorul începe citirea datei.
4 - Microprocesorul a citit data.
Diagrama de timp la iesire :
1 - Microprocesorul a trimis data.
2 - Perifericul începe citirea datei.
3 - Perifericul a citit data, microprocesorul poate trimite o noua data.
Modul 2 - este folosit numai cu grupul A care se refera la portul A ( PA0 - PA7 ) si la bitii PC3 - PC7 din portul C.
Este definit ca magistrala de intrare/iesire bidirectionala, strobata. Asigura posibilitati de comunicare cu un periferic pe o magistrala de 8 biti.
Diagramele de timp la intrare/iesire si semnificatiile semnalelor de comanda sunt aceleasi ca la modul 1. Deosebirea consta în faptul ca intrarea si iesirea se realizeaza pe aceeasi magistrala si anume PA0 - PA7 si toate semnalele de comanda se refera la acest port.
Citirea portului C permite obtinerea urmatorului cuvânt de stare :
OBFA INTE1 IBFA INTE2 INTRA INTEB OBFB INTRB
Conform cuvântului de stare, apar 2 biti pentru activarea întreruperilor :
INTE1 - PC6 - activeaza întreruperile de iesire.
INTE2 - PC4 - activeaza întreruperile de intrare.
Acesti biti pot fi activati/dezactivati cu ajutorul urmatoarelor cuvinte de comanda :
0Dh - activeaza INTE1,
0Ch - dezactiveaza INTE1,
09h - activeaza INTE2,
08h - dezactiveaza INTE2.
Programati circuitul în modul 0, PA iesire, PB intrare, PC iesire.
Scrieti un program de test pentru portul A, care sa permita vizualizarea iesirilor la osciloscop, sub forma unor impulsuri dreptunghiulare.
Scrieti un program de test pentru pozitionarea independenta a bitilor portului C.
Faceti schema pentru conectarea unui periferic de iesire la Portul A si a unui periferic de intrare la portul B. Programati circuitul în modul 1 si explicati functionarea schemei.
|