INTERFATA ASINCRONA PROGRAMABILA Z80-SIO
Descriere
Z80 este complect static,prin urmare utilizatorul poate stopa
pe fiecare ciclu,procesorul pentru depanari sau verificari.
Introducerea regimului pas cu pas se face foarte simplu prin oprirea semnalului de tact .
Microprocesorul Z80 necesita o singura linie de tact,o singura tensiune,
iar cele 3 magistrale apar distinct in exterior.
Magistrala de control este subdivizata in linii de control ale sistemului
si linii de control ale procesorului.
Liniile de control ale sistemului sint:
M1(NON MACHINE CYCLE1)
-generat de procesor prin care se indicaa faptul ca ciclul masina in desfasurare
este un ciclu de aducere a unei instructiuni.
MREQ(MEMORY REQUEST)
-semnal generat de procesor prin care see valideaza adresa de pe magistrala
de adrese pentru o operatie de citire/scriere a memoriei
IOREQ(INPUT/OUPUT REQUEST)
-semnal prin care se valideaza adresa coorespunzatoare unui dispozitiv de I/E
pentru o operatie de intrare/iesire.Tot acest semnal este folosit pe durata
primului ciclu masina M1 pentru a confirma recunoasterea unei intreruperi
/RD(NON READ) si /WR(NON WRITE)
-indica faptul ca procesorul este in staarea de a citi respectiv de a depune o
data din si in memorie sau dispozitive I/E.
RFSH(REFRESH)
-semnal prin care se confirma faptul ca pe primele 7 linii ale magistralei de
adrese se afla adresa de refresare a memoriei dinamice
/WAIT(WAIT REQUEST)
-semnal extern emis de o memorie cu timppul de acces mare sau de un dispozitiv
de I/E lent pentru sincronizarea acestora cu functionarea procesorului.
Procesorul va trece in starea de asteptare atit timp cit linia /WAIT este
validata
INT(INTERUPT REQUEST)
-este o cerere a unui dispozitiv de I/E pentru o tratare prioritara.
Aceasta cerere este onorata numai la sfirsitul ciclului in curs,in conditiile
in care bistabilul de acceptare al intreruperilor(ENABLE FLIP FLOP),
controlat de soft este activ.
NMI(NON MASCABLE INTERUPT REQUEST)
-este o cerere de intrerupere de priorittate mai ridicata si care nu poate fi mascata
de bistabilul de acceptare al intreruperilor controlat soft.
Aceasta cerere forteaza in PC(Program Counter) adresa 0066 hexa de unde va
incepe subrutina de tratare a acestei intreruperi.
/RESET
-este un semnal extern folosit pentru innitializarea procesorului si sistemului.
DESCRIEREA CONEXIUNILOR EXTERNE
Datorita constringerilor impuse de necesitatea de a impacheta circuitul intr-o
capsula cu 40 de conexiuni externe SIO-Z80 se fabrica in trei versiuni de incapsulare.Conexiunile externe ale variantei preferate in majoritatea aplicatiilor SIO-Z80/2
Vom da in continuare semnificatia semnalelor specifice circuitului ,diferite de acelea care permit conectarea lui la sisteme realizate cu microprocesorul Z80.
Aceste din urma semnale D0..D7,/CE,/M1,/IORQ,/RD,FI,/INT,IEI si IEO,sint identice cu cele descrise la celelalte circuite.
B//A
,selectie canal A sau B.Intrare cu ajutorul careia se precizeaza canalul cu care UC face transferul pe timpul unei operatii de I/E.De obicei la aceasta conexiune se leaga bitul A0 al magistralei de adrese.'1' selecteaza canalul B,iar '0' canalul A.
C//D
,selectie date sau comenzi/stari.Intrare prin intermediul careia se determina timpul informatiei transferate intre UC si SIO pe timpul unei operatii de I/E.C//D=1 pe durata unei scrieri I/E va conduce la interpretarea de
catre SIO a informatiei de pe magistrala de date D0..D7 ca o comanda,iar
C//D=0 va face ca informatia sa fie considerata date.O citire cu C//D=1 inseamna
o citire de stare.De obicei, la aceasta conexiune se leaga bitul A1 al magistralei de adrese.
/RESET
,initializare.Intrare activa pe '0'.La activarea acestei linii se invalideaza
circuitele de receptie si de transmisie,se forteaza iesirile de emisie date
TxDA si TxDB in starea MARK,se trec pe '1' toate comenzile catre modem si se invalideaza intreruperile.Dupa o astfel de initializare,inainte de a receptiona
sau transmite date,este necesara reprogramarea tuturor registrelor de comenzi.
RxDA,RxDB,Receive Data
receptie date.Intrari serie active pe '1' ce admit semnale niveluri TTL.
/RxCA,/RxCB,Receiver Clock
baze de timp pentru receptie.Datele receptionate se esantioneaza cu frontul
pozitiv al semnalelor primite la aceste intrari.Ceasurile /RxC pot avea ,in modurile asincrone ,o frecventa egala de 16,32 sau 64 ori mai mare decit viteza
de transmisie a datelor.SIO-Z80 nu are nevoie de semnale de ceas cu factor de
umplere egal,ceea ce permite generarea lor cu ajutorul unui circuit CTC-Z80.
Cele doua intrari sint de tip
trigger Schmitt
fara o margine garantata a nivelului de zgomot,admitind fronturi pozitive si
negative lente.
TxDA,TxDB,Transmit Data
emisie date.Iesiri serie ,niveluri TTL,active pe '1'.Datele generate la aceste
iesiri sint schimbate pe fronturile negative ale ceasurilor /TxC.
/TxCA,/TxCB,Transmitter Clocks
,baze de timp pentru emisie.Intrari de ceas de tip
trigger Schmitt
care , ca si ceasurile de receptie,pot avea in modurile asincrone frecventa egala ,de 16,32 sau 64 orri mai mare decit rata de transfer.Este obligatoriu ca
factorul de multiplicare pentru emitator si receptor sa fie acelasi.De asemenea
,/TxC se poate obtine cu ajutorul unui CTC.
/SYNCA,SYNCB,Synchronization
sincronizare.Intrari/iesiri active pe '0'.In timpul receptiei asincrone aceste conexiuni externe sint folosite ca intrari similare cu /CTS si /DCD.In acest mod
,afecteaza bitii de stare RR0,fiind utilizabile pentru orice functie de intrare
In plus ,SIO sesizeaza tranzitiile de nivel si intrerupe UC.
Precizam ca ,daca se utilizeaza modul asincron si intreruperile(externe/de stare) sint validate,intrarea SYNC nu trebuie lasata in gol pentru a nu se genera intreruperi parazite.
In modul de sincronizare externa,/SYNCA,/SYNCB,sint tot intrari comandate pe '0'
cu al doilea front pozitiv al semnalului /RxC cu care s-a esantionat ultimul bit al caracterului de sincronizare.Cu alte cuvinte ,dupa detectia configuratiei
de sincronizare ,logica externa trebuie sa astepte doua perioade complecte ale ceasului de receptie si apoi sa activeze intrarile SYNC.Dupa trecerea pe '0'
intrarea SYNC trebuie mentinuta in aceasta stare pina cind UC informeaza logica
externa de detectie a sincronizarii ca s-a pierdut sincronizarea sau ca poate sa inceapa un nou mesaj.In modul de sincronizare externa,asamblarea caracterului incepe cu primul front pozitiv al /RxC dupa activarea intrarii SYNC
.In modul de sincronizare interna,MONOSYNC sau BYSYNC,cele doua conexiuni externe sint utilizate ca iesiri activate pe durata unei parti din periada ceasului ,/RxC,in care sint recunoscute caracterele de sincronizare.Recunoastera caracterelor de sincronizare nu se memoreaza astfel incit iesirile SYNC vor fi activate de fiecare data cind se recunoaste o configuratie de sincronizare
/W/RDYA,/W/RDYB,Wait Ready A, Wait Ready B
asteptare/gataA,B.
Iesir de tip drena in gol ,atunci cind sint programate pentru a realiza functia /WAIT,sau comandate pe '1' si '0',cind sint programate pentru functia
/READY.Se programeaza ca iesiri de tip /READY ,pentru a comanda circuite DMA
de exemplu 8257,si ca iesiri de tip /WAIT ,pentru a sincroniza unitatea centrala
la rata de transmisie a SIO.La initializare iesirile se trec in starea drena-in gol,/WAIT.
/RTSA,RTSB,Request To Send
cerere pentru emisie .Iesiri active pe '0'.Iesirea trece pe pe '0',atunci cind
bitul RTS din registrul de comanda WR5 este programat pe '1'.Daca se utilizeaza
modul de transmisie asincron si bitul RTS din WR5 este programat pe '0',iesirea va trece pe '1' la golirea
buffer
-ului de transmisie .In modurile sincrone,conexiunea /RTS urmareste starea bitului RTS registrul WR5.Cele doua iesiri se pot intrebuinta si ca iesiri de comanda de uz general
/CTSA,/CTSB,Clear To Send
gata de emisie.Intrari active pe '0'.Daca bitul D5,auto-validare ,din registrul WR3,se programeaza pe '1',trecerile acestor linii pe '0' valideaza circuitele
de transmisie respective.Programarea pe '0' a bitului D5 permite folosirea lor
ca intrari de uz general,ce pot fi citite in RR0.Ambele conexiuni sint de tip
trigger Schmitt
,permitind comandarea lor cu semnale avind fronturi lente.SIO poate detecta
tranzitiile pozitive sau negative ale semnalelor aplicate la intrarile CTS si apoi ,daca a fost programat corespunzator,sa genereze intreruperi catre UC.
/DTRA,/DTRB,Data Terminal Ready
terminal de date gata.Iesiri active pe '0' care urmarescstarea programata a bitului DTR din registrul WR5.De asemenea ,ele pot fi folosite ca iesiri de comanda de uz general.
/DCDA,/DCDB,Data Carrier Detect
detector de purtatoare.Intrari active pe '0' de tip
trigger Schmitt
,care ,daca se lucreaza in modul de auto-validare,bitul D5 din WR3 programat pe
'1' servesc la validarea receptiei.Pot fi utilizate si ca intrari de uz general
tinind seama si de faptul ca SIO detecteaza tranzitiile de nivel,generind,daca
a fost programat ,intreruperi catre UC.
WARNING!
Tot cea fost scris pe pagina de mai sus functioneaza chiar daca este in faza de idee.Probabil trebuiesc aduse citeva corecturi
Paginile care vor fi adaugate in lunile urmatoare vor apare destul de greu
deoarece textele care au fost scrise in anul 1985 trebuiesc corectate
si actualizate la anul 2003