Modul EPP de lucru (
a fost dezvoltat de Intel, Xircom, Zenith Data Systems pentru a fi compatibil in jos cu Centronics si implementat prima data de Intel in chipset-ul de 386 SL (cip-ul 82360). Lucrul este bazat pe patru tipuri de cicli de transfer:L citire/scriere de date (intre calculator si periferic) si adrese (de fapt comenzi, stari, adrese de periferic etc.). Ceea ce 24424i87y trebuie subliniat si retinut este ca tot ciclul de transfer, toate semnalele de handshake ( generate automat de hardware) se intampla pe durata unui singlu ciclu de I/O (o operatie de 'in' sau 'out').
De exemplu un ciclu de scriere de date este desfasurat astfel: soft-ul scrie un octet la portul EPP de date, se activeaza semnalul nWrite si data este scoasa pe portul
paralel. Datele se valideaza cu semnalul de strobare corespunzator( Dstrobe). Perifericul tine nWait activ cat ii vine bine sa preia octetul. Cand il dezactiveaza, Dstrobe este dezactivat, portul este eliberat si ciclul de I/O pe magistrala (ISA de exemplu) se termina. Pentru oricare din celelalte cicluri se lucreaza asemanator. Se observa ca limitarea vitezei de transfer este doar cea introdusa de periferic, prin eventualele stari de Wait ce le introduce. Astfel se poate ajunge la viteze de transfer pe portul paralel de 2Mo/s, viteza comparabila cu a magistralei ISA de transfer.
Perifericul poate semnala calculatorului ca doreste sa transfere date prin linia de intrerupere nIntr. In plus cele trei linii definibile de catre utilizator pot fi implementate de fiecare in functie de cerintele protocolului specific de transfer pe port.
Registrii EPP sunt in continuarea setului de registri standard pentru portul respectiv:
SPP+0 adresa portului Centronics de date, cu care se lucreaza normal,
SPP+1 citeste starea liniilor in acelasi mod Centronics,
SPP+2 seteaza liniile de control,
SPP+3 primul port dedicat folosit de modul EPP: registrul de adrese cu rol de generare a unui ciclu de transfer adrese pe port in mod EPP,
SPP+4 registrul de date EPP -generarea unui ciclu de transfer date pe EPP,
SPP+5,6,7 registri folositi in general ( depinde de implementari! ) ca registri de date pentru transfer O (iesire) pe 32 de biti. O instructiune de 'out' pe 32 de biti generata de procesor pe portul de date SPP (de la adresa SPP+4) va umple si acesti registri cu octetii respectivi dupa care controllerul de I/O va genera cei 4 cicli de iesire pentru fiecare octet, deci mult mai rapid si 'fara stirea' procesorului si respectiv a soft-ului.
Observam ca soft-ul stie tot timpul starea perifericului si a transferului ce se executa pe port deci cuplajul pe acest tip de port este foarte strans. Astfel modul de lucru EPP este foarte potrivit pentru implementarea de periferice rapide si critice: hard-discuri, adaptoare retea sau sisteme portabile de achizitie de date.
|