Sunteți pe pagina 1din 5

Curs 5 - MC

Exemple porturi (I8255, I8253, I8237) (cont.)

8255, 8253, 8259


8237 (doar principiul)

Portul IO - paralel I8255

- http://discipline.elcom.pub.ro/amp2/curs/8255_2.html

- structura 8255
- semnalele la pini
- mod de lucru
- modul de programare

Structura 8255 (pag 20 - http://discipline.elcom.pub.ro/amp2/curs/8255_2.html)

- interfata cu CPU (A0 si A1- selectia reg. (porturi interne) interne)


- 2 blocuri de control -> grupul A, grupul B
- interfata cu DP -> 3 porturi -> PortA, PortB, PortC -> organizate in 2 grupuri->
grupul A (PortA, 1/2 PortC - PortC Upper) si grupul B (PortA, 1/2 PortC - PortC
Upper)
- comunicatie digitala paralela pe 8 biti
- comunicatie 8-24 biti

Semnalele la pinii 8255 -> pag 1


(http://discipline.elcom.pub.ro/amp2/curs/8255_2.html)

intrerfata cu CPU -> RD/, WR/, CS/ - Chip Select, A1, A0 -> selectie port intern,
RESET
interfata cu DP -> PA0-PA7, PB0-PB7, PC0-PC7
semnalale PC0-PC7 -> pot sa aiba semnificatie de data sau de semnal de control
(pentru protocoale electrice (HW) cu confirmare)

Moduri de lucru ale I8255

Modul 0 - modul de baza IO


- nu exista un protocol de comunicatie, pinii PA, PB, PC -> pot fi configurati ca
in sau out (portul C -individual)

Modul 1 - "Strobed" la intrare sau iesire -> se vor implementa in HW protocoale de


comunicatie (ca cel discutate anterior) -> pentru Port A si port B (port C -
semnale de comanda)

Semnale implicate in realizarea protocoalelor de comunicatie (vezi fig C32.png)

Mod 1 intrare

STB - in -> de la DP -> semnifica ca datele de la DP sint pregatite (activ in 0)


(echivalent cu READY de la protocolul cu confirmare descris anterior -> comunicatie
initiata de transmitator)
IBF - out -> de la 8255 -> confirmare a preluarii datelor (echivalent cu ACK in
prootocilul discutat)
INTR - out- semnal de intrerupere de receptie (care poate fi folosit pentru a
prelua datele)
INTE - validarea intreruperilor
STB, IBF, INTR si INTE -> sint separate pentru fiecare port A sau B -> si sint de
fapt pini ai portului C
restul pinilor portului C -> date (mod 0)

Mod 1 iesire

OBF - out -> de la 8255 -> semnifica faptul ca 8255 are date pregatite
ACK - in -> de la DP -> confirmarea primirii datelor de catre DP (activ in 0)
INTR - intrerupere (de tranmisie)

combinatii de programare - mod 1 (ex - PA in, PB out sau PA out , PB in , etc)

Modul 2 - bidirectional (portul A ) -> combinarea modului 1 in si modului 1 iesire

Programarea I8255

detalii -> http://discipline.elcom.pub.ro/amp2/PPI-8255.pdf

cuvint de mod -> scris in reg de control (A1A0 = 11)

8 biti - grupul A si grupul B (moduri 0, 1 , 2) (D7=1) si control individual al


bitilor din PortC (Bit Set Reset BSR) (D7=0)
ce se programeaza ->
grupul A:PA0-7 si PC4-7 - mod 0, 1, 2
grupul B:PB0-7 si PC0-3 - mod 0, 1

modul BSR: setare/resetare individuala a PC0-7

Cuvintul de stare

difera in functie de modul de lucru


copii ale semnalelor de dialog (STB, IBF, INTR, OBF si ACK)
se pot citi daca nu se doreste utilizarea semnalelor fizice (acolo unde se poate)

Intrebare-> daca D7=0 (BSR) , se mai programa PA si/sau PB pe mod 1 sau 2 ?


de verificat in foaia de calalog 8255 -> se pot programa PA si PB in mod 1 sau 2
dar in BSR ramin doar bitii PC nealocati semnalelor de dialog

Timer - I8253

http://discipline.elcom.pub.ro/amp2/curs/8253.htm

Functie ->
- generarea forme de unda digitale (periodice, pulsuri)
- masurarea timpului

principiul -> la laborator (numaratoare cu pre-incarcare)

Structura 8253

interfata cu CPU : RD, WR, CS, A1, A0 (4 registre-> 3 countere (canale de numarare)
si un reg de control pentru stabilirea modului de lucru)
interfata cu DP - 3 canale de numarare (counter)
COUNTER0, COUNTER1, COUNTER2

semnale -> CLK (tactul care va fi divizat), OUT (iesire), GATE (validarea iesirii
in functie de modul de lucru) -> functionare normala GATE=1, declansarea numararii
de catre GATE -> GATE 0->1
GATE =0 - canal inactiv

Moduri de programare

pag 13- http://discipline.elcom.pub.ro/amp2/82c53.pdf

mod 0 -> declansare front dupa expirarea unei perioade de timp


mod 1 -> puls negativ cu durata programata
mod 2 -> pulsuri periodice cu perioada programata
mod 3 -> semnal periodic de perioda programata
mod 4 -> puls declansat SW (la expirarea unei durate de tomp)
mod 5 -> puls declansat HW (GATE) - retriggerabil

Controler de intreruperi I8259A -> pentru I80x86

http://discipline.elcom.pub.ro/amp2/curs/8259_1.html

protocolul de raspuns la intreruperi - I8086 (AMP)

Controlerul de intreruperi (CINT)


-> arbitrarea intr. multiple
-> genereze info necesara calculului SCI

Semnale (de baza):


IR7- IR0 -> cereri de intrerupere de la DP
INT - cererea de intrerupere catre CPU
INTA/ - confirmarea intr. primita de la CPU

pentru mai mult de 8 intreruperi -> mod cascada (2 I8259A -> 64 intreruperi)

structura 8259
-> IRR - cererile de intrerupere sosite
-> ISR - cererile de intreupere in servire
Bloc de prioritizare ( prioritati fixe IR0 prio maxima , IR7 - prioritate minima
sau prioritati rotitoare -> intreruperea servita -> va avea prioritatea ce mai
mica)

Modul de programare

cuvinte de initializare (in cascada -> la aceeasi adresa, secvential) -ICW


tip procesor (8086 sau 8080), alte info generale - ICW1
programare tip de intreruprere ICW2

cuvinte de operare (OCW)


modul de stabilire a prioritatii
"mascarea" intreruperilor

Next:
organigrama programarii I8259A (fig 6 -
http://discipline.elcom.pub.ro/amp2/8259A_PIC_Datasheet.pdf)
Controlerul DMA (principiul)

Discutii despre L1 (cerinte, exemple)

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