Cum se configurează smartphone-uri și PC-uri. Portal informativ

Circuite la portul lpt al computerului. Defecțiuni și testare ale porturilor paralele

Portul „LPT” se găsește rar pe computerele moderne. Acesta este un conector special pe un computer pentru conectarea unei imprimante. Unele computere erau echipate cu mai multe porturi „LPT”. Aceste porturi au fost numerotate: „LPT1”, „LPT2” și așa mai departe.

Porturi paralele

Din punct de vedere istoric, porturile pentru conectarea unui computer au fost împărțite în categorii: porturi seriale și porturi paralele. „LPT” se referă la porturile paralele. Aceasta înseamnă că informația călătorește de-a lungul a opt fire diferite, adică simultan și în paralel. Calculatoarele se ocupă de informații binare. Binar convertește informațiile în matrice de zerouri și unu. Un număr binar (zero sau unu) se numește bit. Un grup de opt biți se numește octet. Opt biți din fiecare octet care se mută de la computer la portul paralel se mută în același timp. Un alt tip de cablu conectat la portul serial mută câte opt biți din fiecare octet unul după altul.

Sens

Portul paralel are un nume. Numele implicit pentru singurul port paralel al computerului este „LPT1”. Acest tip de port este folosit în principal pentru conectarea unei imprimante. La aceste porturi pot fi conectate și alte dispozitive, dar utilizatorii folosesc imprimanta mult mai des decât alte dispozitive. Conectarea unei imprimante la un computer o face un „periferic”. „Periferic” poate fi orice dispozitiv suplimentar conectat cu un cablu special la computer. Acest echipament „periferic” poate fi utilizat doar de un computer la un moment dat. Singura modalitate de a conecta un dispozitiv „periferic” deja conectat la un alt computer este să utilizați imprimanta conectată la primul computer prin intermediul rețelei și software-ului. Acest proces este diferit de o imprimantă de rețea, care se conectează la o rețea mai degrabă decât la un singur computer. În acest caz, se utilizează un alt tip de cablu și un alt tip de port.

Conexiune

Portul paralel „LPT” și conectorul corespunzător au 25 de pini și se numesc „DB-25” sau „D-Type 25”. Pinii sunt expuși în conector. Se potrivesc în 25 de orificii paralele. Opt dintre cei 25 de pini sunt responsabili pentru transmiterea datelor, restul transportă fie date de control, fie instrucțiuni ale imprimantei, cum ar fi mesaje de la imprimantă despre lipsa hârtiei în imprimantă.

Viitor

Imprimantele de rețea nu sunt conectate la computer folosind portul „LPT”, ci folosind portul „Ethernet”. Nu numai o imprimantă, ci și alte dispozitive pot fi conectate la portul LPT. Astăzi, dispozitivele „periferice” nu folosesc porturi paralele. Atât porturile „LPT”, cât și porturile seriale sunt acum istoric și au fost înlocuite cu un port „USB” sau un port de rețea. Capacitatea de a conecta fără fir noi imprimante și periferice oferă o altă alternativă la portul „LPT” ca modalitate de a conecta o imprimantă la un computer.

Unul dintre cele mai vechi porturi de pe un computer este portul LPT sau portul paralel. Și, deși portul LPT nu poate fi văzut acum pe fiecare placă de bază, totuși, cititorii ar putea fi interesați să știe ce este.

În primul rând, să ne dăm seama de numele portului. Poate că nu toată lumea știe ce înseamnă abrevierea LPT. De fapt, LPT este o abreviere pentru Line Print Terminal. Astfel, devine clar că portul LPT a fost destinat în primul rând pentru conectarea imprimantelor. De aceea portul LPT are un alt nume - portul imprimantei. Deși teoretic se pot conecta și alte dispozitive la LPT.

Portul LPT are o istorie lungă. A fost dezvoltat de Centronics (de aceea acest port este adesea denumit portul Centronics), care a produs imprimante cu matrice de puncte chiar înainte de era PC-urilor, la începutul anilor 1970. Și la începutul anilor 1980, portul LPT a început să fie folosit de IBM în computerele lor și de ceva timp a devenit portul standard pentru conectarea dispozitivelor de mare viteză (la acea vreme).

Aspectul portului paralel de pe spatele computerului

Interfața LPT a existat în mai multe ediții. În versiunea originală, portul LPT era unidirecțional, adică putea transmite date doar într-o singură direcție - către un dispozitiv periferic. Desigur, această situație nu se potrivea utilizatorilor, deoarece existau imprimante care necesitau transfer de date în ambele direcții. Prin urmare, interfața LPT a fost ulterior îmbunătățită de mai multe ori până la dezvoltarea standardului său internațional IEEE 1284. În conformitate cu acest standard, interfața cu port paralel a suportat mai multe moduri de funcționare și a fost, de asemenea, compatibilă cu standardele vechi. În plus, versiunea finală a interfeței a acceptat rate de transfer de date relativ mari - până la 5 Mb / s.

Cum funcționează portul paralel

Portul LPT se numește paralel deoarece în cablul conectat la acesta datele sunt transmise în paralel, adică simultan pe mai mulți conductori. Această proprietate diferă portul paralel de un alt port de pe computer, portul COM serial.

Există 8 conductori care transmit datele într-un cablu Centronics. În plus, există mai multe linii în cablu care transportă semnale de control.

Deși portul paralel este folosit mai ales pentru conectarea imprimantelor, au existat și alte utilizări. În primul rând, folosind portul LPT, puteți conecta direct două computere - folosind un cablu special Interlink. Înainte de adoptarea pe scară largă a plăcilor de rețea Ethernet, o astfel de conexiune, deși nu oferea utilizatorului rate mari de transfer de date, era adesea, totuși, singura modalitate de a conecta două computere. Există, de asemenea, chei electronice concepute pentru a se conecta la portul LPT.

Cablu de date între computere - Interlink

Ca și în cazul multor alte dispozitive de pe placa de bază, modurile portului paralel pot fi adesea configurate prin BIOS Setup. În mod obișnuit, opțiunile BIOS, cum ar fi Parallel Port, Parallel Port IRQ, Parallel Port DMA, etc. sunt utilizate pentru aceasta.

Conector paralel pe placa de baza si cablu Centronics

Conectorul portului LPT este de obicei amplasat direct pe placa de bază, deși până la mijlocul anilor 1990. era prezent de obicei pe un așa-numit multi-card conectat într-un slot de expansiune, pe care se aflau și alte porturi de computer. Ieșirea portului este un conector mamă cu 25 de pini numit conector DB25.

Multicard ISA cu LPT (DB25 - „mama”) și port de joc la bord.

Pentru conectarea la imprimantă se folosește un cablu special - cablul Centronics. Un capăt (ștecher) al cablului Centronics se conectează la un port, celălalt (tot o mufă) la un conector special de pe imprimantă. Ultimul conector are 36 de pini. Prin urmare, particularitatea cablului Centronics este că are conectori diferiți pe ambele părți.

Exteriorul cablului Centronics.

În timp ce conectorul cablului plăcii de bază este adesea denumit conector Centronics, strict vorbind, un conector Centronics este doar un conector cu 36 de pini pentru conectarea la o imprimantă, nu la placa de bază. Conectorul de cablu pentru conectarea la port se numește conector Amphenolstacker, după numele companiei americane Amphenol care l-a dezvoltat, care produce conectori.

Caracteristicile portului paralel

Datorită faptului că portul LPT acceptă transferul paralel de date, la primele PC-uri acest port a fost considerat unul dintre cele mai rapide porturi de computer. Transmiterea datelor pe mai multe linii în multe moduri aduce interfața LPT mai aproape de magistralele computerizate în arhitectură. Cu toate acestea, această împrejurare impune și o limitare a lungimii cablului, care, din cauza interferenței apărute în cablu, nu poate depăși 5 m.

Tensiunea maximă utilizată în liniile de semnal ale portului este de +5 V. Pentru transmisia simplă de date, sunt necesare doar zece linii de semnal - acestea sunt 8 linii de date, o linie de semnal stroboscopic, adică un semnal pe care portul este gata să îl transmite date și o linie ocupată... Restul liniilor sunt folosite pentru compatibilitate cu standardul Centronics.

Port LPT mamă cu numerotare pin.

Pinouts conector DB25 paralel:

  • 1 - Strobe de date
  • 2-9 - Date, biții 0-7
  • 10 - Recunoașteți
  • 11 - Ocupat
  • 12 - Hârtia scoasă
  • 13 - Selectați
  • 14 - Alimentare automată
  • 15 - Eroare
  • 16 - Init
  • 17 - Selectați Intrare
  • 18-25 - Pământ

Concluzie

Portul LPT este o interfață de computer personal care este în prezent considerată învechită și nu are suport semnificativ din partea producătorilor de hardware și software. Cu toate acestea, portul paralel este încă folosit cu succes în multe computere și imprimante vechi.

Portul de interfață paralel a fost introdus în PC pentru a conecta imprimanta -LPT-port (Line Printer).

Adaptorul de interfață paralelă este un set de registre, situat în spațiul I/O. Registrele de porturi sunt adresate relativ la adresa de bază a portului, valorile implicite pentru care sunt 386h, 378h și 278h. Portul are extern 8 biți magistrala de date, 5 biți obosi semnale averiși 4 biți magistrala semnalelor de control.

BIOS-ul acceptă până la patru porturi LPT (LPT1-LPT4) cu serviciul său de întrerupere INT 17h, care asigură comunicarea cu imprimantele prin interfața Centronics prin intermediul acestora. Cu acest serviciu, BIOS-ul afișează un simbol, inițializează interfața și imprimanta și interogează. starea imprimantei.

Interfața Centronics

Centronics se referă atât la setul de semnal și la protocolul de comunicare, cât și la conectorul cu 36 de pini care se găsește în imprimante. Scopul semnalelor este prezentat în tabel. unu.

masa1.

Semnale de interfață Centronics

Programare

Strobe de date. Datele sunt fixate la un nivel scăzut al semnalului

Liniile de date. Date 0 (pin 2) - bitul cel mai puțin semnificativ

Acknowledge - impuls de confirmare a recepției octet (cerere de primire a următorului). Poate fi folosit pentru a genera o cerere de întrerupere

Ocupat. Recepția datelor este posibilă numai atunci când nivelul semnalului este scăzut

Un nivel înalt semnalează sfârșitul hârtiei.

Indică faptul că imprimanta este pornită

Alimentare automată a liniei.

Eroare: sfârşitul hârtiei, stare OFF-Line sau eroare internă a imprimantei

Inițializare

Selectarea imprimantei (scăzută). Când nivelul este ridicat, imprimanta nu acceptă alte semnale de interfață.

Sârmă de interfață comună

Direcţie

(intrare/ieșire) pentru imprimantă.

Interfața Centronics este acceptată de majoritatea imprimantelor cu interfață paralelă, omologul său intern este IRPR-M.

Port lpt tradițional

Portul tradițional SPP (Standard Parallel Port) este un port unidirecțional pe baza căruia este implementat în software protocolul de schimb Centronics.Portul oferă posibilitatea de a genera o solicitare de întrerupere hardware printr-un impuls la intrarea ACK #. Semnalele portului sunt transmise către conectorDB-25S(priză) instalată direct pe placa adaptorului (sau placa de sistem) sau conectată la aceasta cu un cablu plat. Numele și scopul semnalelor conectorului de port (Tabelul 2) corespund interfeței Centronics.

masa 2.

Conector port LPT standard

Contactați DB-25S

Sârmă buclă

Programare

18, 20, 22, 24, 26

* I / O setează direcția de transmisie (intrare / ieșire) a semnalului portului; 0 / I indică liniile de ieșire, a căror stare este citită atunci când este citită din porturile de ieșire corespunzătoare.

** Simbolul „\” marchează semnalele inversate (1 din registru corespunde nivelului scăzut al liniei).

*** Input Ack # este conectat printr-un rezistor (10kOhm) cu alimentare de + 5V.

Portul standard are trei registre de 8 biți, situate la adrese adiacente în spațiul I/O, începând cu adresa de bază a portului (BASE).

Registrul de date (DR) - registru de date, adresa = BAZĂ. Datele scrise pe acest port sunt retras la liniile de ieșire ale interfeței. Datele citite din acest registru, în funcție de circuitul adaptorului, corespund fie datelor înregistrate anterior, fie semnalelor pe aceleași linii.

Registrul de stare (SR) -registru de stare, reprezentând Port de intrare pe 5 biți semnale de stare a imprimantei (biți SR.4-SR.7), adresa = BAZĂ + 1. Bitul SR.7 este inversat - un nivel scăzut al semnalului corespunde unei singure valori de bit în registru și invers.

Alocarea biților registrului de stare(numerele pinului conectorului sunt date între paranteze):

SR.7-Busy - afișarea inversă a stării liniei de ocupat (11);

SR.6 -АСК (Confirmare) -afișarea stării liniei Ack # (10).

SR.5 -PE (Sfârşit hârtie) - afişează starea liniei de sfârşit hârtie (12).

SR.4-Select - afișează starea liniei Selectare (13) O singură valoare corespunde unui semnal de pornire a imprimantei.

SR.3-Eroare - afișează starea liniei Eroare (15).

SR.2 - PIRQ - Ack # steag de întrerupere (numai pentru portul PS / 2). Bitul este șters dacă semnalul Ack # a declanșat o întrerupere hardware. O singură valoare este setată printr-o resetare hardware și după citirea registrului de stare.

SR -rezervat.

Registrul de control (CR) - registru de control, adresa = BA5E + 2. Ca și registrul de date, acesta Port de ieșire pe 4 biți este scris și citibil (biții 0-3), dar tamponul său de ieșire este de obicei de tip colector deschis. Acest lucru vă permite să utilizați mai corect liniile acestui registru ca intrare atunci când le programați la un nivel înalt. Biții O, 1, 3 sunt inversați - o singură valoare din registru corespunde unui nivel scăzut al semnalului și invers.

Scopul biților registrului de control:

CR -rezervat.

CR.5 - Direcție - bit de control al direcției de transmisie (numai pentru porturile PS / 2) Scrierea unuia setează portul de date în modul de intrare.

CR.4 -ACKINTEN (Ack Interrupt Enable) - o singură valoare permite o întrerupere pe frontul descendent al semnalului pe linia Ackff - un semnal pentru solicitarea următorului octet.

CR.3 - Select In - o valoare de un singur bit corespunde unui nivel scăzut la semnalul Selecting output (17), care permite imprimantei să funcționeze prin interfața Centronics.

CR.2 - Init - valoarea zero a bitului corespunde unui nivel scăzut la ieșirea Imt # (16) - semnal de resetare hardware a imprimantei.

CR.1 - Auto LF - o valoare unică de bit corespunde unui nivel scăzut la ieșirea Auto LF # (14) - un semnal pentru avans automat de linie (LF - Line Feed) la primirea unui octet de returnare a carului (CR - Carriage Return ).

CR.O -Strobe - o valoare de un bit corespunde unui nivel scăzut la ieșire Strobeff (1) - semnalul stroboscopic al datelor de ieșire.

Cerere de întrerupere hardware(de obicei IRQ7 sau IRQ5) este generată de o margine negativă a semnalului la pinul 10 al conectorului de interfață (ACK #) când CR.4 este setat la 1. O întrerupere este generată atunci când imprimanta confirmă primirea octetului anterior.

Procedura de ieșire pe octeți prin interfața Centronics printr-un port standard include următorii pași (numărul necesar de operațiuni cu magistrala procesorului este dat între paranteze):

Ieșire octet către registrul de date (1 ciclu IOWR #).

Introduceți din registrul de stare și verificați dacă dispozitivul este gata (bit SR.7 - semnal BUSY).

La primirea pregătirii, stroboscopul de date este setat de ieșirea din registrul de control, iar stroboscopul este eliminat de următoarea ieșire (2 cicluri lOWRff).

Portul standard este foarte asimetric - dacă există 12 linii (și biți) care funcționează normal la ieșire, doar 5 linii de stare funcționează la intrare. Dacă este necesară o comunicare simetrică bidirecțională, toate porturile standard funcționează. modul de schimb de nibble - Modul Nibble În acest mod, numit și de Hewlett Packard Bitronics, 4 biți de date sunt transmise simultan, a cincea linie este folosită pentru strângere de mână.

Portul de interfață paralel a fost introdus în PC pentru a conecta o imprimantă - de unde și numele LPT-port (Line Printer - line printer). Portul tradițional, alias standard, LPT (așa-numitul port SPP) se concentrează pe ieșirea datelor, deși cu unele restricții permite și introducerea datelor. Există diverse modificări ale portului LPT - bidirecțional, EPP, ECP și altele, care îi extind funcționalitatea, măresc performanța și reduc sarcina procesorului. La început au fost soluții proprietare ale producătorilor individuali, ulterior a fost adoptat standardul IEEE 1284.

Din exterior, portul are o magistrală de date pe 8 biți, o magistrală de semnal de stare de 5 biți și o magistrală de semnal de control pe 4 biți direcționată către un conector mamă DB-25S. Portul LPT folosește niveluri logice TTL, care limitează lungimea permisă a cablului datorită imunității scăzute la zgomot a interfeței TTL. Nu există izolație galvanică - masa circuitului dispozitivului conectat este conectată la masa circuitului computerului. Din această cauză, portul este o vulnerabilitate a computerului, care suferă de încălcarea regulilor de conectare și împământare a dispozitivelor. Deoarece un port este de obicei situat pe placa de bază, dacă este „ars”, împrejurimile sale imediate eșuează adesea, până la punctul în care întreaga placă de bază se arde.

Pe partea de software, portul LPT este un set de registre situate în spațiul I/O. Registrele de porturi sunt adresate relativ la adresa de bază a portului, valorile implicite pentru care sunt 3BCh, 378h și 278h. Portul poate folosi linia de cerere de întrerupere hardware, de obicei IRQ7 sau IRQ5. În modurile extinse, poate fi utilizat și canalul DMA.

Portul are suport la nivel de BIOS - căutarea porturilor instalate în timpul testului POST și serviciile de imprimare Int 17h (vezi secțiunea 8.3.3) oferă o ieșire simbol (prin pregătirea pentru sondaj, fără a utiliza întreruperi hardware), inițialând interfața și imprimanta, și de interogare a stării imprimantei. Aproape toate plăcile de bază moderne (începând cu plăcile PCI pentru procesoare 486) au un adaptor de port LPT încorporat. Există plăci ISA cu un port LPT, unde este cel mai adesea adiacent unei perechi de porturi COM, precum și controlere de interfață de disc (FDC + IDE). Portul LPT este prezent de obicei pe placa adaptorului de afișare MDA (text monocrom) și HGC (grafic monocrom „Hercules”). Există și plăci PCI cu porturi LPT suplimentare.

La porturile LPT sunt conectate imprimante, plotere, scanere, dispozitive de comunicare și stocare, precum și chei electronice, programatoare și alte dispozitive. Uneori, o interfață paralelă este utilizată pentru a comunica între două computere, rezultând o rețea LapLink.

1.1. Port LPT tradițional

Portul LPT tradițional, sau standard, se numește Port Paralel Standard (SPP) sau port SPP și este un port unidirecțional prin care protocolul de schimb Centronics este implementat software (vezi secțiunea 8.3.1). Numele și scopul semnalelor conectorului de port (Tabelul 1.1) corespund interfeței Centronics.

Tabelul 1.1. Conector port LPT standard

Contactați DB-25S Nr. de sârmă în cablu Atribuire I/O¹ Bit² Semnal
1 1 O/I CR.0 \ Strobe #
2 3 O (I) DR.0 Date 0
3 5 O (I) DR.1 Date 1
4 7 O (I) DR.2 Date 2
5 9 O (I) DR.3 Date 3
6 11 O (I) DR.4 Date 4
7 13 O (I) DR.5 Date 5
8 15 O (I) DR.6 Date 6
9 17 O (I) DR.7 Date 7
10 19 SR.6 Ack #
11 21 eu SR.7 \ Ocupat
12 23 eu SR.5 PaperEnd (PE)
13 25 eu SR.4 Selectați
14 2 O/I CR.1 \ Auto LF # (AutoFeed #)
15 4 eu SR.3 Eroare #
16 6 O/I CR.2 Init #
17 8 O/I CR.3 \ Selectați în #
18-25 10, 12, 14, 16, 18, 20, 22, 24, 26 - - -

¹ I / O setează direcția de transmisie (intrare-ieșire) a semnalului portului. O / I denotă linii de ieșire, a căror stare este citită în timpul citirii din porturile de ieșire; O (I) - linii de ieșire, a căror stare poate fi citită numai în condiții speciale (vezi mai jos).

² Simbolul „\” marchează semnalele inversate (1 din registru corespunde nivelului scăzut al liniei).

³ Input Ack # este conectat printr-un rezistor (10 kOhm) cu o sursă de +5 V.

Adaptorul de port SPP conține trei registre de 8 biți situate la adrese adiacente din spațiul I/O, începând cu adresa de bază a portului BASE (3BCh, 378h sau 278h).

Registrul de date (DR) - registrul de date, adresa = BAZĂ. Datele scrise în acest registru sunt transmise în liniile de ieșire Date. Datele citite din acest registru, în funcție de circuitul adaptorului, corespund fie datelor înregistrate anterior, fie semnalelor pe aceleași linii, care nu sunt întotdeauna aceleași.

Registrul de stare (SR) - registrul de stare (numai citire), adresa = BAZĂ + 1. Registrul afișează portul de intrare pentru starea imprimantei pe 5 biți (biții SR.4-SR.7) și indicatorul de întrerupere. Bitul SR.7 este inversat - o valoare de un singur bit din registru corespunde unui nivel scăzut al semnalului și invers.

Scopul biților de registru de stare este descris mai jos (numerele pinului conectorului de port sunt date în paranteze).

♦ SR.7 - Ocupat - afișare inversă a stării liniei de ocupat (11): când nivelul este scăzut, pe linie este setată o valoare de un singur bit - permisiunea de a scoate următorul octet.

♦ SR.6 - Ack (Acknowledge) - afișarea stării liniei Ack # (10).

♦ SR.5 - PE (Sfârşit hârtie) - afişează starea liniei de sfârşit hârtie (12). O singură valoare corespunde unui nivel ridicat de linie - un semnal despre sfârșitul hârtiei în imprimantă.

♦ SR.4 - Selectare - afișează starea liniei Selectare (13). O singură valoare corespunde unui nivel ridicat de linie - un semnal pentru a porni imprimanta.

♦ SR.3 - Eroare - afișează starea liniei Error # (15). O valoare zero corespunde unui nivel de linie scăzut, semnalând orice eroare a imprimantei.

♦ SR.2 - PIRQ - Ack # steag de întrerupere (numai pentru portul PS / 2). Bitul este șters dacă semnalul Ack # a declanșat o întrerupere hardware. O singură valoare este setată printr-o resetare hardware și după citirea registrului de stare.

♦ SR - Rezervat.

Registrul de control (CR) - registrul de control, adresa = BAZĂ + 2, poate fi scris și citit. Registrul este asociat cu un port de ieșire pe 4 biți al semnalelor de control (biții 0–3) pentru care este posibilă și citirea; tamponul de ieșire este de obicei de tip „open collector”. Acest lucru vă permite să utilizați corect liniile acestui registru ca intrare atunci când le programați la un nivel înalt. Biții 0, 1, 3 sunt inversați.

Scopul biților registrului de control este descris mai jos.

♦ CR - rezervat.

♦ CR.5 - Direcție - bit de control al direcției de transmisie (numai pentru porturile PS / 2, vezi mai jos). Scrierea unuia pune portul de date în modul de intrare. La citire, starea bitului este nedefinită.

♦ CR.4 - AckINTEN (Ack Interrupt Enable) - o singură valoare permite o întrerupere la scăderea semnalului pe linia Ack # - un semnal pentru solicitarea următorului octet.

♦ CR.3 - Select In - o valoare de un singur bit corespunde unui nivel scăzut la ieșirea Select In # (17) - un semnal care permite imprimantei să funcționeze prin interfața Centronics.

♦ CR.2 - Init - valoarea bitului zero corespunde unui nivel scăzut la ieşirea Init # (16) - semnalul de resetare hardware al imprimantei.

♦ CR.1 - Auto LF - o valoare de un singur bit corespunde unui nivel scăzut la ieșirea Auto LF # (14) - un semnal pentru avans automat de linie (LF - Line Feed) la primirea unui octet de returnare a carului (CR). Semnalul și bitul sunt uneori denumite AutoFD sau AutoFDXT.

♦ CR.0 - Strobe - o valoare de un singur bit corespunde unui nivel scăzut la ieșire Strobe # (1) - un semnal stroboscop al datelor de ieșire.

O solicitare de întrerupere hardware (de obicei IRQ7 sau IRQ5) este generată de o margine negativă a semnalului la pinul 10 al conectorului de interfață (Ack #) când CR.4 este setat la 1. Pentru a evita întreruperile false, pinul 10 este o rezistență conectată la șina de +5 V. O întrerupere este generată atunci când imprimanta confirmă primirea octetului anterior. După cum sa menționat deja, BIOS-ul nu utilizează această întrerupere și nu o deservește.

Să enumerăm pașii procedurii de ieșire a octetilor prin interfața Centronics, indicând numărul necesar de operații pe magistrala procesorului.

1. Ieșirea unui octet în registrul de date (1 ciclu IOWR #).

2. Introduceți din registrul de stare și verificați dacă dispozitivul este gata (bit SR.7 - Semnal ocupat). Acest pas este în buclă până când este gata sau până când este declanșat timeout-ul software (minim 1 ciclu IORD #).

3. La primirea pregătirii, stroboscopul de date este setat de ieșirea din registrul de control, iar stroboscopul este eliminat de următoarea ieșire. De obicei, pentru a comuta doar un bit (stroboscop), registrul de control este pre-citit, ceea ce adaugă un alt ciclu IORD # celor două cicluri IOWR #.

Se poate observa că sunt necesare 4-5 operațiuni I/O cu registrele portului pentru a scoate un octet (în cel mai bun caz, când disponibilitatea este detectată de prima citire a registrului de stare). Prin urmare, urmează principalul dezavantaj al ieșirii prin portul standard - un curs de schimb scăzut cu o sarcină semnificativă a procesorului. Portul poate fi overclockat la viteze de 100–150 KB/s cu o încărcare completă a procesorului, ceea ce nu este suficient pentru imprimarea pe o imprimantă laser. Un alt dezavantaj funcțional este dificultatea de a-l folosi ca port de intrare.

Portul standard este asimetric - dacă există 12 linii (și biți) care funcționează normal la ieșire, doar 5 linii de stare funcționează la intrare. Dacă este necesară o comunicare bidirecțională simetrică, modul Nibble este operabil pe toate porturile standard. În acest mod, numit și de Hewlett Packard Bi-tronics, 4 biți de date sunt recepționați simultan, a cincea linie este folosită pentru strângere de mână. Astfel, fiecare octet este transferat în două cicluri, iar fiecare ciclu necesită cel puțin 5 operațiuni I/O.

Circuitul bufferelor de ieșire ale porturilor LPT este foarte divers. Pe multe adaptoare mai vechi, portul de date SPP poate fi folosit și pentru intrare. Dacă scrieți un octet cu cele din toate cifrele în portul de date și trimiteți orice cod la liniile de ieșire ale interfeței prin microcircuite cu o ieșire de tip „colector deschis” (sau conectați unele linii cu chei la masa circuitului), atunci acest cod poate fi citit din același registru de date. Cu toate acestea, circuitele de ieșire ale transmițătorului de informații vor trebui să „lupte” cu curentul de ieșire al unității logice a bufferelor de ieșire a adaptorului. Circuitul TTL nu interzice astfel de soluții, dar dacă dispozitivul extern este realizat pe microcircuite CMOS, puterea lor poate să nu fie suficientă pentru a „câștiga” acest conflict de magistrală. Cu toate acestea, adaptoarele moderne au adesea un rezistor de terminare cu o rezistență de până la 50 Ohm în circuitul de ieșire. Curentul de scurtcircuit de ieșire al ieșirii la masă este de obicei mai mic de 30 mA. Un calcul simplu arată că, chiar și în cazul unui scurtcircuit al contactului conectorului la masă, atunci când „unul” este ieșit, tensiunea de 1,5 V scade peste acest rezistor, care va fi perceput ca „unu” de către intrare. circuitul receptorului. Prin urmare, nu se poate presupune că această metodă de introducere va funcționa pe toate computerele. La unele adaptoare de porturi mai vechi, tamponul de ieșire este dezactivat cu un jumper pe placă. Apoi portul se transformă într-un port de intrare obișnuit.

1.2. Extensii de porturi paralele

Neajunsurile portului standard au fost parțial rezolvate de noile tipuri de porturi introduse în calculatoarele PS/2.

Portul bidirecțional 1 (portul paralel de tip 1) este o interfață introdusă în PS/2. Un astfel de port, pe lângă modul standard, poate funcționa în modul de intrare sau în modul bidirecțional. Protocolul de schimb este format din software, iar pentru a indica direcția de transfer, în registrul de control al portului este introdus un bit special CR.5: 0 - tamponul de date funcționează pentru ieșire, 1 - pentru intrare. Nu confundați acest port, numit și bidirecțional îmbunătățit, cu EPP. Acest tip de port a prins rădăcini și în computerele obișnuite, în CMOS Setup poate fi numit PS / 2 sau Bi-Di.

Portul cu acces direct la memorie (port paralel DMA de tip 3) a fost folosit la modelele PS / 2 57, 90, 95. A fost introdus pentru a crește debitul și a descărca procesorul la ieșirea către imprimantă. Programul care lucra cu portul trebuia doar să seteze blocul de date pentru a fi scos în memorie, iar apoi ieșirea folosind protocolul Centronics a fost efectuată fără participarea procesorului.

Ulterior, au apărut și alte adaptoare de porturi LPT care implementează protocolul de schimb Centronics în hardware - Fast Centronics. Unii dintre ei au folosit un buffer de date FIFO - Parallel Port FIFO Mode. Nefiind standardizate, aceste porturi de la diferiți producători necesitau propriile drivere speciale. Programele care folosesc controlul direct al registrelor porturilor standard nu ar putea folosi capacitățile lor suplimentare. Aceste porturi făceau adesea parte din multicard-urile VLB. Există variante ale acestora cu magistrala ISA, precum și încorporate în placa de sistem.

1.3. Standardul IEEE 1284

Standardul de interfață paralelă IEEE 1284, adoptat în 1994, descrie porturile SPP, EPP și ECP. Standardul definește 5 moduri de comunicare, metoda de potrivire a modurilor, interfețe fizice și electrice. Conform IEEE 1284, sunt posibile următoarele moduri de comunicare prin portul paralel:

♦ Modul de compatibilitate - unidirecțional (ieșire) prin protocolul Centronics. Acest mod corespunde unui port SPP.

♦ Nibble Mode - Introduceți un octet în două cicluri (4 biți fiecare), folosind linia de stare pentru a primi. Acest mod de schimb este potrivit pentru orice adaptoare, deoarece utilizează numai capacitățile portului standard.

♦ Byte Mode - Introduceți un octet întreg folosind liniile de date pentru a primi. Acest mod funcționează numai pe porturile care pot citi datele de ieșire (Bi-Directional sau PS / 2 Tip 1, vezi mai sus).

♦ EPP Mode (EPP Mode) - schimb de date bidirecțional (EPP înseamnă Enhanced Parallel Port). Semnalele de control al interfeței sunt generate în hardware în timpul ciclului de acces la port. Eficient atunci când lucrați cu dispozitive de memorie externe și adaptoare LAN.

♦ ECP Mode (ECP Mode) - schimb de date bidirecțional cu posibilitatea comprimării datelor hardware folosind metoda RLE (Run Length Encoding) și utilizarea de buffer-uri FIFO și DMA (ECP înseamnă Extended Capability Port). Semnalele de control ale interfeței sunt generate de hardware. Eficient pentru imprimante și scanere (comprimarea poate fi utilizată aici) și diferite dispozitive de schimb de blocuri.

Standardul definește modul în care software-ul poate determina modul disponibil atât gazdei (PC), cât și dispozitivului periferic (sau unui al doilea computer atașat). Modurile porturilor non-standard care implementează protocolul de schimb Centronics în hardware (Fast Centronics, Parallel Port FIFO Mode) pot să nu fie moduri IEEE 1284, în ciuda prezenței caracteristicilor EPP și ECP.

În computerele cu un port LPT pe placa de bază, modul - SPP, EPP, ECP sau combinația lor - este setat în BIOS Setup. Modul de compatibilitate corespunde pe deplin portului SPP. Restul modurilor sunt discutate în detaliu mai jos.

Când descriem modurile de schimb, apar următoarele concepte:

♦ gazdă - un computer cu port paralel;

♦ PU - un dispozitiv periferic conectat la acest port;

♦ Ptr - în denumirile de semnale desemnează CP-ul emitent;

♦ canal direct - un canal pentru ieșirea datelor de la gazdă către CP;

♦ canal de retur - un canal pentru intrarea datelor către gazdă de la CP.

1.3.1. Modul Nibble

Modul nibble este pentru comunicare bidirecțională și poate funcționa pe toate porturile standard. Porturile au 5 linii de intrare de stare, cu ajutorul cărora PU poate trimite un octet către gazdă în tetrade (nibble - nibble, 4 biți) în doi pași. Semnalul Ack #, care provoacă o întrerupere, care poate fi folosită în acest mod, corespunde bitului 6 al registrului de stare, ceea ce complică manipularea software-ului a biților la asamblarea unui octet. Semnalele portului sunt prezentate în tabel. 1.2, diagrame de timp - în Fig. 1.1.

Tabelul 1.2. Semnalele portului LPT în modul de intrare nibble

a lua legatura semnal SPP I/O Pic Descriere
14 AutoFeed # O CR.1 \ HostBusy - semnal de strângere de mână. Un nivel scăzut înseamnă disponibilitatea de a primi o tetradă, un nivel ridicat confirmă recepția unei tetrade
17 SelectIn # O CR.3 \
10 Ack # eu SR.6 PtrClk. Un nivel scăzut înseamnă că notebook-ul este pregătit, un nivel ridicat înseamnă un răspuns la un semnal HostBusy
11 Ocupat eu SR.7 Primește bitul de date 3, apoi bitul 7
12 PE eu SR.5 Primește bitul de date 2, apoi bitul 6
13 Selectați eu SR.4 Primește bitul de date 1, apoi bitul 5
15 Eroare # eu SR.3 Primește bitul de date 0, apoi bitul 4

Orez. 1.1. Primiți date în modul nibble

Recepția unui octet de date în modul nibble constă din următoarele faze:

2. PU răspunde plasând o tetradă pe liniile de intrare de stare.

3. PU semnalează disponibilitatea tetradei prin setarea unui nivel scăzut pe linia PtrClk.

4. Gazda setează linia HostBusy la un nivel ridicat, indicând că este ocupată să primească și să proceseze o tetradă.

6. Pașii 1-5 se repetă pentru a doua tetradă.

Modul nibble încarcă puternic procesorul și nu este posibilă creșterea cursului de schimb peste 50 KB / s. Avantajul său neîndoielnic este că funcționează pe toate porturile. Este utilizat în cazurile în care fluxul de date este mic (de exemplu, pentru comunicarea cu imprimante). Cu toate acestea, atunci când comunicați cu adaptoare LAN, unități de disc externe și CD-ROM-uri, acceptarea unor cantități mari de date necesită o cantitate destul de mare de răbdare din partea utilizatorului.

1.3.2. Bidirectional Byte Mode - Modul byte

În acest mod, datele sunt primite folosind un port bidirecțional, pentru care tamponul de date de ieșire poate fi dezactivat prin setarea bitului CR.5 = 1. La fel ca și precedentele, modul este controlat de software - toate semnalele de confirmare sunt analizate și setate de șofer. Semnalele portului sunt descrise în tabel. 1.3, diagrame de timp - în Fig. 1.2.

Tabelul 1.3. Semnalele portului LPT în modul byte I/O

a lua legatura semnal SPP Nume în modul octet I/O Pic Descriere
1 Strobe # HostClk O CR.0 \ Un impuls (nivel scăzut) confirmă primirea unui octet la sfârșitul fiecărui ciclu
14 AutoFeed # HostBusy O CR.1 \ Semnal de confirmare. Un nivel scăzut înseamnă că gazda este pregătită să primească un octet; un nivel înalt este stabilit la primirea unui octet
17 SelectIn # 1284Activ O CR.3 \ Un nivel ridicat indică schimb în modul IEEE 1284 (în modul SPP, nivelul este scăzut)
16 Init # Init # O CR.2 Nefolosit; pus sus
10 Ack # PtrClk eu SR.6 Este setat la un nivel scăzut pentru a indica validitatea datelor pe liniile de date. Setat la scăzut ca răspuns la semnalul HostBusy
11 Ocupat PtrBusy eu SR.7 \ Redirecționează starea ocupată a canalului
12 PE AckDataReq¹ eu SR.5
13 Selectați Xflag¹ eu SR.4 Steagul de extensibilitate
15 Eroare # Date disponibile # ¹ eu SR.3 PU este instalat pentru a indica prezența unui canal de transmisie inversă
2-9 Date Date I/O DR Canal de date bidirecțional (înainte și invers).

Orez. 1.2. Primește date în modul byte

Fazele pentru primirea unui octet de date sunt enumerate mai jos.

1. Gazda semnalează disponibilitatea de a primi date prin setarea unui nivel scăzut pe linia HostBusy.

2. PU răspunde plasând un octet de date pe linia de date.

3. PU semnalează validitatea octetului prin setarea unui nivel scăzut pe linia PtrClk.

4. Gazda setează linia HostBusy la un nivel ridicat pentru a indica faptul că este ocupată cu primirea și procesarea unui octet.

5. PU răspunde setând un nivel înalt pe linia PtrClk.

6. Gazda confirmă primirea octetului cu un impuls HostClk.

Pașii 1-6 se repetă pentru fiecare octet suplimentar. Confirmarea este efectuată de o pereche de semnale HostBusy și PtrClk; Este posibil ca CP să nu utilizeze semnalul HostClk (aceasta este o invitație de a emite următorul octet, similar semnalului Ack # din interfața Centronics). Modul byte vă permite să creșteți viteza legăturii de întoarcere la viteza legăturii înainte în modul standard. Cu toate acestea, este capabil să funcționeze numai pe porturi bidirecționale, care anterior erau utilizate în principal pe mașini rare PS / 2, dar aproape toate porturile moderne pot fi configurate pentru modul bidirecțional (în BIOS Setup - Bi-Di sau PS / 2).

1.3.3. modul EPP

Protocolul EPP (Enhanced Parallel Port) a fost dezvoltat de Intel, Xircom și Zenith Data Systems cu mult înainte de adoptarea standardului IEEE 1284. Acest protocol este conceput pentru a îmbunătăți performanța comunicațiilor cu port paralel, a fost implementat pentru prima dată în chipset-ul Intel 386SL (82360). chip) și ulterior adoptat de multe companii ca protocol suplimentar de port paralel. Versiunile protocolului implementate înainte de adoptarea IEEE 1284 diferă de standardul actual (vezi mai jos).

EPP oferă patru tipuri de cicluri de schimb:

♦ înregistrarea datelor;

♦ citirea datelor;

♦ introducerea adresei;

♦ citirea adresei.

Scopul ciclurilor de scriere și citire a datelor este evident. Ciclurile de adresă sunt utilizate pentru a transfera informații despre adresă, canal și control. Ciclurile de comunicare diferă de ciclurile de adrese în semnalele stroboscopice aplicate. Scopul semnalelor portului EPP și relația lor cu semnalele SPP sunt explicate în tabel. 1.4.

Tabelul 1.4. Semnale port LPT în modul EPP I/O

a lua legatura semnal SPP Numele în EPP I/O Descriere
1 Strobe # Scrie # O Nivel scăzut - ciclu de scriere, înalt - ciclu de citire
14 AutoLF # DataStb # O Strobe de date. Nivelul scăzut este setat în ciclurile de transmisie a datelor
17 SelectIn # AdrStb # O Adresă stroboscopică. Nivelul scăzut este setat în ciclurile de adrese
16 Init # Resetează # O Resetați PU (scăzut)
10 Ack # INTR # eu Întreruperea de la PU
11 Ocupat Aștepta # eu Semnal de confirmare. Nivelul scăzut permite începutul ciclului (setarea stroboscopului la nivel scăzut), tranziția la nivel ridicat - permite sfârșitul ciclului (eliminarea stroboscopului)
2-9 Date ANUNȚ I/O Adresă bidirecțională / magistrală de date
12 Sfârșit hârtie AckDataReq¹ eu
13 Selectați Xflag¹ eu Folosit la discreția dezvoltatorului periferic
15 Eroare # Date disponibile # ¹ eu Folosit la discreția dezvoltatorului periferic

¹ Semnalele operează într-o secvență de potrivire (vezi mai jos).

Portul EPP are un set extins de registre (Tabelul 1.5), care ocupă 5-8 octeți adiacenți în spațiul I/O.

Tabelul 1.5. Registre de porturi EPP

Înregistrați numele Părtinire Modul R/V Descriere
Port de date SPP +0 SPP / EPP W Registrul de date SPP
Port de stare SPP +1 SPP / EPP R Registrul de stare SPP
Port de control SPP +2 SPP / EPP W Registrul de control SPP
Port Adresă EPP +3 EPP R/V Registrul adresei EPP. Citirea sau scrierea pe acesta generează un ciclu de citire sau scriere asociat al adresei EPP
Port de date EPP +4 EPP R/V Registrul de date al PPE. Citire (scriere) generează un ciclu de citire (scriere) asociat de date EPP
Nedefinit +5…+7 EPP n / A Unele controlere pot fi utilizate pentru operațiuni I/O pe 16-32 de biți

Spre deosebire de modurile controlate prin software descrise mai sus, semnalele externe ale portului EPP pentru fiecare ciclu de schimb sunt generate în hardware printr-o operație de scriere sau citire în registrul de porturi. În fig. 1.3 este o diagramă a unui ciclu de scriere a datelor, ilustrând un ciclu de schimb extern imbricat într-un ciclu de scriere a magistralei sistemului procesorului (uneori aceste cicluri sunt numite legate). Ciclul de scriere a adresei diferă de ciclul de date doar prin stroboscopul interfeței externe.

Orez. 1.3. Ciclul de înregistrare a datelor EPP

Ciclul de înregistrare a datelor constă din următoarele faze.

1. Programul efectuează un ciclu de ieșire (IOWR #) către portul 4 (Port de date EPP).

2. Adaptorul afirmă semnalul Write # (scăzut) și datele sunt scrise pe magistrala de ieșire a portului LPT.

3. Când Wait # este scăzut, stroboscopul de date este setat.

4. Portul așteaptă confirmarea de la PU (transferul Wait # la un nivel înalt).

5. Strobe de date este eliminat - ciclul EPP extern se termină.

6. Ciclul de ieșire al procesorului se încheie.

7. PU setează Wait # la un nivel scăzut, indicând posibilitatea de a începe următorul ciclu.

Un exemplu de ciclu de citire a adresei este prezentat în Fig. 1.4. Ciclul de citire a datelor diferă doar prin utilizarea unui semnal stroboscopic diferit.

Orez. 1.4. Ciclu de citire EPP adresabil

Principala caracteristică distinctivă a EPP este că efectuează un transfer extern în timpul unui ciclu de procesor I/O. Acest lucru permite realizarea unor rate de schimb ridicate (0,5–2 MB/s). CP-ul conectat la portul paralel EPP poate funcționa la viteza dispozitivului conectat prin slotul ISA.

Desigur, CP nu ar trebui să „suspendă” procesorul pe ciclul de schimb al magistralei. Acest lucru este garantat de un mecanism de timeout al computerului care încheie forțat orice ciclu de comunicare mai lung de 15 μs. Într-un număr de implementări EPP, adaptorul însuși monitorizează timpul de expirare a interfeței - dacă CP-ul nu răspunde într-un anumit timp (5 μs), ciclul se oprește și o eroare este înregistrată în registrul suplimentar de stare a adaptorului (nestandardizat).

Dispozitivele EPP dezvoltate înainte de adoptarea IEEE 1284 diferă la începutul ciclului: stroboscopul DataStb # sau AddrStb # este setat indiferent de starea WAIT #. Aceasta înseamnă că PU nu poate întârzia începerea următorului ciclu (deși îl poate întinde pentru timpul necesar). Această specificație se numește EPP 1.7 (propus de Xircom). Acesta este ceea ce a fost folosit în controlerul 82360. Perifericele compatibile IEEE 1284 EPP vor funcționa bine cu controlerul EPP 1.7, dar EPP 1.7 CP poate refuza să lucreze cu controlerul EPP 1284.

Din punct de vedere software, controlerul de port EPP pare simplu (vezi Tabelul 1.5). Două registre (EPP Address Port și EPP Data Port) sunt adăugate celor trei registre ale portului standard, care au offset-uri 0, 1 și 2 în raport cu adresa de bază a portului, de citire și scriere la care determină generarea de extern asociat. bucle.

Scopul registrelor portului standard este păstrat pentru compatibilitatea portului EPP cu panoul de control și software-ul conceput pentru utilizarea schimbului controlat de software. Deoarece semnalele de handshake ale adaptorului sunt generate în hardware, atunci când scrieți în registrul de control CR, biții 0, 1 și 3 corespunzători semnalelor Strobe #, AutoFeed # și SelectIn # trebuie să fie zero. Intervenția software-ului ar putea perturba secvența de confirmare. Unele adaptoare au mijloace speciale de protecție (EPP Protect), atunci când sunt activate, modificarea software a acestor biți este blocată.

Utilizarea registrului de date EPP permite transferul unui bloc de date cu o singură instrucțiune REP INSB sau REP OUTSB. Unele adaptoare permit accesul pe 16/32 de biți la registrul de date EPP. În acest caz, adaptorul pur și simplu decriptează adresa cu un offset în intervalul 4-7 ca adresă a registrului de date EPP, dar procesorul informează procesorul despre lățimea de 8 biți. Un acces pe 16 sau 32 de biți la adresa registrului de date EPP va genera apoi automat două sau patru cicluri de magistrală la adrese în creștere, începând cu offset-ul 4. Aceste cicluri se vor executa mai rapid decât același număr de cicluri individuale. Mai multe adaptoare „avansate” pentru adresa registrului de date EPP raportează o lățime de 32 de biți și pentru ele pot fi transferați până la 4 octeți pe ciclu de procesor. Aceasta oferă performanță de până la 2 MB/s, suficientă pentru adaptoare LAN, unități externe, streamere și CD-ROM-uri. Ciclurile de adrese EPP sunt întotdeauna efectuate numai în modul pe un singur octet.

O caracteristică importantă a EPP este că procesorul accesează CP-ul în timp real - nu există tamponare. Șoferul este capabil să monitorizeze starea și să emită comenzi la momente cunoscute cu precizie. Ciclurile de citire și scriere pot fi intercalate în orice ordine sau merg în blocuri. Acest tip de schimb este convenabil pentru PU sau PU orientate spre registru care funcționează în timp real, de exemplu, dispozitivele de colectare și control de informații. Acest mod este potrivit și pentru dispozitive de stocare, adaptoare de rețea, imprimante, scanere etc.

Din păcate, modul EPP nu este acceptat de toate porturile - este absent, de exemplu, în unele notebook-uri. Deci, atunci când vă dezvoltați propriile dispozitive, de dragul unei mai mari compatibilități cu computerele, trebuie să vă concentrați pe modul ECP.

1.3.4. modul ECP

Protocolul Extended Capability Port (ECP) a fost propus de Hewlett Packard și Microsoft pentru comunicarea cu CP, cum ar fi imprimante sau scanere. La fel ca EPP, acest protocol oferă o comunicare gazdă-CP bidirecțională de înaltă performanță.

ECP în ambele direcții oferă două tipuri de bucle:

♦ cicluri de scriere și citire a datelor;

♦ cicluri de comandă de scriere și citire.

Ciclurile de instrucțiuni sunt clasificate în două tipuri: transmisia adreselor de canal și transmiterea unui contor RLC (Run-Length Count).

Spre deosebire de EPP, împreună cu protocolul ECP, a apărut imediat un standard pentru modelul software (registru) al adaptorului său, care este descris în documentul „The IEEE 1284 Extended Capabilities Port Protocol and ISA Interface Standard” de la Microsoft. Acest document definește proprietățile protocolului nespecificate de standardul IEEE 1284:

♦ compresia datelor de către adaptorul gazdă folosind metoda RLE;

♦ buffering FIFO pentru canalele înainte și înapoi;

♦ utilizarea DMA și I/O software.

Compresia în timp real RLE (Run-Length Encoding) atinge un raport de compresie de 64: 1 la transferul de hărți de biți care au linii lungi de octeți repeți. Comprimarea poate fi utilizată numai dacă atât gazda, cât și PU o acceptă.

Adresarea canalului ECP este utilizată pentru a adresa mai multe dispozitive logice care fac parte dintr-un dispozitiv fizic. De exemplu, un dispozitiv combinat fax / imprimantă / modem care se conectează la un singur port paralel poate primi simultan un fax și imprima la imprimantă. În modul SPP, dacă imprimanta afirmă un semnal de ocupat, canalul va fi ocupat cu date până când imprimanta le primește. În modul ECP, software-ul driverului se adresează pur și simplu unui alt canal logic pe același port.

ECP suprascrie semnalele SPP (Tabelul 1.6).

Tabelul 1.6. Semnale port LPT în modul ECP I/O

a lua legatura semnal SPP Numele în ECP I/O Descriere
1 Strobe # HostClk O Stroboscopul de date, utilizat împreună cu PeriphAck pentru transmiterea înainte (ieșire)
14 AutoLF # HostAck O Indică tipul de ciclu (comandă / date) pentru transmiterea înainte. Folosit ca semnal de confirmare asociat cu PeriphClk pentru transmisia înapoi
17 SelectIn # 1284Activ O Un nivel ridicat indică schimb în modul IEEE 1284 (în modul SPP, nivelul este scăzut)
16 Init # ReverseRequest # O Cerere inversă. Un nivel scăzut semnalează comutarea canalului la transmisie în direcția opusă.
10 Ack # PeriphClk eu Strobe de date, utilizat împreună cu HostAck pentru transmiterea înapoi
11 Ocupat PeriphAck eu Folosit ca semnal de confirmare atunci când este asociat cu HostClk pentru transmisie înainte. Indică tipul de comandă/date la transmiterea în sens figurat
12 Sfârșit hârtie AckReverse # eu Confirmare inversă. Tradus scăzut ca răspuns la ReverseRequest #
13 Selectați Xflag¹ eu Steagul de extensibilitate
15 Eroare # PeriphRequest # ¹ eu PU este setat să indice disponibilitatea (prezența) unui canal de transmisie inversă¹
2-9 Date Date I/O Legătură de date bidirecțională

¹ Semnalele funcționează într-o secvență de potrivire (vezi mai jos)

ECP generează, de asemenea, strângeri de mână de protocol extern în hardware, dar funcționarea sa diferă semnificativ de modul EPP.

În fig. 1.5, a este o diagramă a două cicluri de transmisie înainte: ciclul de date este urmat de un ciclu de comandă. Tipul de ciclu este setat de nivelul de pe linia HostAck: în ciclul de date - ridicat, în ciclul de comandă - scăzut. În ciclul de comandă, octetul poate conține adresa canalului sau contorul RLE. O caracteristică distinctivă este bitul 7 (cel mai semnificativ): dacă este zero, atunci biții 0-6 conțin contorul RLE (0-127), dacă este unul, atunci adresa canalului. În fig. 1.5, b prezintă o pereche de cicluri de transmisie inversă.

Orez. 1.5. Transmisie în modul ECP: a - înainte, b - înapoi

Spre deosebire de diagramele de schimb EPP, Fig. 1.5 nu arată semnalele ciclurilor magistralei sistemului procesorului. În acest mod, schimbul de program cu unitatea de control este împărțit în două procese relativ independente, care sunt legate printr-un buffer FIFO. Driverul poate fi schimbat cu bufferul FIFO folosind atât DMA, cât și I/O software. Schimbarea PU cu bufferul se realizează în hardware de adaptorul ECP. Un driver în modul ECP nu are informații despre starea exactă a procesului de schimb, dar de obicei este important doar dacă este finalizat sau nu.

Transferul direct de date pe interfața externă constă în următorii pași:

1. Gazda pune date pe magistrala canalului și setează un ciclu de date (mare) sau o comandă (scăzută) pe linia HostAck.

2. Gazda setează linia HostClk la un nivel scăzut pentru a indica date valide.

3. PU răspunde setând un nivel ridicat pe linia PeriphAck.

4. Gazda setează linia HostClk la mare, iar această margine poate fi folosită pentru a bloca datele la CP.

5. PU setează un nivel scăzut pe linia PeriphAck pentru a indica faptul că este gata să primească următorul octet.

Deoarece transmiterea către ECP are loc prin intermediul bufferelor FIFO care pot fi prezente pe ambele părți ale interfeței, este important să înțelegem în ce stadiu datele pot fi considerate transmise. Datele sunt considerate transmise la pasul 4 când HostClk devine ridicat. În acest moment se modifică contoarele octeților transmisi și recepționați. În protocolul ECP există condiții care determină încetarea schimbului între pașii 3 și 4. Atunci aceste date nu trebuie considerate ca fiind transmise.

Din fig. 1.5 arată o altă diferență între ECP și EPP. EPP permite șoferului să alterne între ciclurile înainte și înapoi fără a cere o confirmare pentru schimbarea direcției. În ECP, inversarea direcției trebuie convenită: gazda solicită o inversare setând ReverseRequest #, după care trebuie să aștepte confirmarea cu semnalul AckReverse #. Întrucât ciclul anterior putea fi efectuat pe un acces direct, șoferul trebuie să aștepte finalizarea accesului direct sau să îl întrerupă, să descarce buffer-ul FIFO, determinând valoarea exactă a contorului de octeți transmiși și numai după acea solicitare invers.

Postback-ul de date constă în următorii pași:

1. Gazda solicită o inversare a canalului prin reducerea liniei ReverseRequest #.

2. Panoul de control permite schimbarea direcției prin setarea unui nivel scăzut pe linia AckReverse #.

3. PU plasează date pe magistrala canalului și setează semnul unui ciclu de date (nivel înalt) sau comenzi (nivel scăzut) pe linia PeriphAck.

4. CP setează linia PeriphClk la un nivel scăzut pentru a indica date valide.

5. Gazda răspunde setând linia HostAck la mare.

6. PU stabilește nivelul înalt al liniei PeriphClk; această margine poate fi folosită pentru a trimite date de către gazdă.

7. Gazda setează linia HostAck la un nivel scăzut pentru a indica că este gata să primească următorul octet.

1.3.5. Moduri și registre ale portului ECP

Interfața de programare și registrele ECP pentru adaptoarele IEEE 1284 sunt definite de specificația Microsoft. Portul ECP poate funcționa în diferite moduri prezentate în tabel. 1.7, unde codul corespunde câmpului Mode al ECR (biți).

Tabelul 1.7. Moduri de port ECP

Codul Modul
000 Modul SPP, modul standard (tradițional).
001 Mod bidirecțional, port bidirecțional (tip 1 pentru PS / 2)
010 Centronics rapid, unidirecțional folosind FIFO și DMA
011 Modul ECP Parallel Port, modul ECP real
100 Modul Port paralel EPP, modul EPP¹
101 Rezervat
110 Modul de testare, testarea FIFO și întreruperi
111 Mod configurare, acces la registrele de configurare

¹ Acest mod nu este inclus în specificația Microsoft, dar este tratat ca EPP de multe adaptoare de port dacă modul ECP + EPP este setat în CMOS Setup.

Modelul de registru al adaptorului ECP (Tabelul 1.8) folosește proprietățile arhitecturii magistralei standard și adaptoarelor ISA, unde doar 10 linii de ordin scăzut ale magistralei de adrese sunt utilizate pentru a decoda adresele porturilor I/O. Prin urmare, de exemplu, apelurile către adresele Port, Port + 400h, Port + 800h ... vor fi percepute ca apeluri către adresa Port, situate în intervalul 0-3FFh. PC-urile și adaptoarele moderne decodifică mai mulți biți de adresă, astfel încât adresele 0378h și 0778H vor fi adresate la două registre diferite. Plasarea registrelor ECP suplimentare „în spatele” registrelor portului standard (offset 400-402H) servește două scopuri. În primul rând, aceste adrese nu au fost niciodată folosite de adaptoarele tradiționale și driverele acestora, iar utilizarea lor în ECP nu va restrânge spațiul de adrese I/O disponibil. În al doilea rând, aceasta asigură compatibilitatea cu adaptoarele vechi la nivelul modului 000–001 și capacitatea de a determina prezența unui adaptor ECP prin referire la registrele sale extinse.

Tabelul 1.8. registre ECP

Părtinire Nume R/V Moduri ECP¹ Nume
000 DR R/V 000-001 Registrul de date
000 ECPAFIFO R/V 011 ECP Adresa FIFO
001 SR R/V Tot Registrul de stare
002 CR R/V Tot Registrul de control
400 SDFIFO R/V 010 Date porturi paralele FIFO
400 ECPDFIFO R/V 011 ECP Data FIFO
400 TFIFO R/V 110 Testează FIFO
400 ECPCFGA R 111 Registrul de configurare A
401 ECPCFGB R/V 111 Registrul de configurare B
402 ECR R/V Tot Registrul de control extins

¹ Registrele sunt disponibile numai în aceste moduri (sunt indicate valorile biților 7-5 ai registrului ECR)

Fiecare mod al ECP corespunde (și este disponibil) propriilor registre funcționale. Modurile sunt comutate prin scrierea în registrul ECR. Modurile implicite „standby” sunt 000 sau 001. În oricare dintre modurile, modul de introducere a ciugulilor funcționează. Puteți comuta oricând de la aceste moduri la oricare alta, dar de la modurile superioare (010-111) comutarea este posibilă doar la 000 sau 001. Pentru ca interfața să funcționeze corect, înainte de a ieși din modurile superioare, trebuie să așteptați până la accesul direct. este finalizat și tamponul FIFO este șters.

În modul 000 (SPP), portul acționează ca un port SPP unidirecțional controlat de software.

În modul 001 (Bi-Di PS / 2), portul funcționează ca un port PS / 2 bidirecțional de tip 1. Diferă de modul 000 prin capacitatea de a inversa canalul de date folosind bitul CR.5.

Modul 010 (Fast Centronics) este numai pentru ieșire FIFO de înaltă performanță folosind DMA. Semnalele de handshaking Centronics sunt generate hardware. Semnalul de cerere de întrerupere este generat de starea buffer-ului FIFO, dar nu de semnalul Ack # (cererea pentru un singur octet „nu este de interes” pentru driverul de ieșire bloc rapid).

Modul 011 este modul ECP real descris mai sus. Fluxul de date și comenzi transmise către CP este plasat în bufferul FIFO prin registrele ECPDFIFO și, respectiv, ECPAFIFO. Acestea sunt scoase din FIFO cu indicarea ciclului corespunzătoare (starea liniei HostAck). Fluxul de date primit de la PU este preluat din bufferul FIFO prin registrul ECPDFIFO. Nu este furnizată primirea adresei în ciclul de comandă de la CP. Schimbul cu registrul ECPDFIFO poate fi efectuat și prin canalul DMA.

Compresia RLE în timpul transmisiei se realizează în software. Pentru a transmite mai mult de doi octeți de date identici la rând, se scrie un octet în registrul ECPAFIFO, în care cei 7 biți inferiori conțin contorul RLC (valoarea RLC = 127 corespunde la 128 de repetări), iar bitul cel mai semnificativ este zero. După aceea, octetul în sine este scris în ECPDFIFO. Primind această pereche de octeți (octet de comandă și octet de date), CP efectuează decompresia. Când primește un flux de la panoul de control, adaptorul ECP efectuează decompresie hardware și plasează datele de decompresie în bufferul FIFO. Prin urmare, este evident că ieșirea de date cu utilizarea simultană a compresiei și DMA este imposibilă.

Modul 100 (EPP) este una dintre modalitățile de a activa modul EPP (dacă este acceptat de adaptor și este activat în CMOS Setup).

Modul 110 (modul de testare) este pentru testarea FIFO și întreruperea comunicării. Datele pot fi transferate către și dinspre registrul TFIFO folosind DMA sau programatic. Schimbul nu afectează interfața externă. Adaptorul este în ralanti la viteza maximă a interfeței (ca și cum semnalele de strângere de mână ar fi sosit fără întârziere). Adaptorul monitorizează starea tamponului și generează semnale de solicitare de întrerupere după cum este necesar. Astfel, programul poate determina lățimea de bandă maximă a canalului.

Modul 111 (modul de configurare) este utilizat pentru a accesa registrele de configurare. Evidențierea modului protejează adaptorul și protocolul de modificările incorecte ale configurației în timpul schimbului.

După cum sa menționat deja, fiecare mod ECP are propriile registre funcționale (Tabelul 1.8).

Registrul de date DR este utilizat pentru transmiterea datelor numai în moduri controlate de software (000 și 001).

Registrul de stare SR poartă valoarea semnalelor pe liniile corespunzătoare (ca în SPP).

Registrul de control CR are aceeași atribuire de biți ca SPP. În modurile 010, 011, scrierea la biții 0, 1 (semnalele AutoLF # și Strobe #) este ignorată.

Registrul ECPAFIFO este utilizat pentru a plasa informațiile ciclurilor de comandă (adresa canalului sau contorul RLE, în funcție de bitul 7) în bufferul FIFO. Informațiile din buffer vor fi emise în ciclul de ieșire a comenzii.

Registrul SDFIFO este folosit pentru a transfera date în modul 010. Datele scrise în registru (sau trimise prin canalul DMA) sunt transferate prin bufferul FIFO utilizând protocolul hardware Centronics. În acest caz, sensul de transmisie înainte trebuie setat (bit CR.5 = 0).

Registrul DFIFO este utilizat pentru schimbul de date în modul 011 (ECP). Datele scrise sau citite din registru (sau transferate prin canalul DMA) sunt transferate prin FIFO folosind protocolul ECP.

Registrul TFIFO oferă un mecanism pentru testarea unui FIFO în modul 110.

Registrul ECPCFGA vă permite să citiți informațiile adaptorului (cod de identificare în biți).

Registrul ECPCFGB vă va permite să stocați orice informații de care are nevoie șoferul. Scrierea în registru nu afectează funcționarea portului.

Registrul ECR este principalul registru de gestiune al ECP. Biții săi au următoarea semnificație:

♦ ECR - ECP MODE - setează modul ECP;

♦ ECR.4 - ERRINTREN # - (Error Interrupt Disable) dezactivează întreruperile pe semnalul Error # (dacă valoarea bitului este zero pe o margine negativă, pe această linie este generată o cerere de întrerupere);

♦ ECR.3 - DMAEN - (DMA Enable) permite schimbul prin canalul DMA;

♦ ECR.2 - SERVICEINTR - (Service Interrupt) interzice întreruperile de serviciu care sunt generate la sfârșitul ciclului DMA (dacă este activată), prin pragul de umplere/golire a buffer-ului FIFO (dacă nu este utilizat DMA) și prin eroarea de debordare tampon de sus sau de jos;

♦ ECR.1 - FIFOFS - (FIFO Full Status) semnalează bufferul plin; dacă FIFOFS = 1, nu există un singur octet liber în buffer;

♦ ECR.0 - FIFOES - (FIFO Empty Status) indică o depășire completă a tamponului; combinația FIFOFS = FIFOES = 1 înseamnă o eroare în lucrul cu FIFO (depășire în sus sau în jos).

Când un port este în modul standard sau bidirecțional (000 sau 001), primele trei registre sunt exact aceleași cu cele ale portului standard. Acest lucru asigură că driverul este compatibil cu adaptoarele vechi și driverele vechi cu adaptoare noi.

În ceea ce privește interfața cu programul, portul ECP seamănă cu EPP: după setarea modului (scrierea codului în registrul ECR), schimbul de date cu dispozitivul se reduce la citirea sau scrierea în registrele corespunzătoare. Starea FIFO este monitorizată fie de registrul ECR, fie de întreruperi de service din port. Întregul protocol de strângere de mână este generat de adaptor în hardware. Schimbul de date cu portul ECP (cu excepția celui programatic explicit) este posibil și prin acces direct la memorie (canal DMA), care este eficient la transferul de blocuri mari de date.

1.3.6. IEEE 1284 Mode de negociere

CP-urile din standardul IEEE 1284 nu necesită de obicei controlerului să implementeze toate modurile furnizate de acest standard. Standardul prevede o secvență de negociere pentru a defini modurile și metodele de control pentru un anumit dispozitiv. Secvența este concepută astfel încât dispozitivele mai vechi care nu acceptă IEEE 1284 să nu răspundă, iar controlerul să rămână în modul standard. Perifericul IEEE 1284 își poate comunica capacitățile, iar controlerul va seta un mod care satisface atât gazda, cât și CP.

În timpul fazei de negociere, controlerul setează octetul de extensibilitate pe linia de date, solicitând confirmarea transferului interfeței în modul dorit sau a primirii identificatorului CP (Tabelul 1.9). Identificatorul este transmis controlerului în modul solicitat (orice mod de canal de retur, cu excepția EPP). UE folosește semnalul Xflag (Selectare în termeni SPP) pentru a confirma modul backlink solicitat, cu excepția nibble, care este acceptat de toate dispozitivele IEEE 1284. Bitul de solicitare Extensibility Link va servi pentru a defini moduri suplimentare în extensiile viitoare ale standardului .

Tabelul 1.9. Biți pe octet de extensibilitate

Pic Descriere Combinații de biți acceptabile
7 Solicitare link de extensibilitate - rezervat 1000 0000
6 Solicitare mod EPP 0100 0000
5 Solicitare pentru modul ECP cu RLE 0011 0000
4 Solicitare pentru modul ECP fără RLE 0001 0000
3 Rezervat 0000 1000
2 Solicitare pentru un identificator de dispozitiv cu un răspuns în modul:
ciuguli 0000 0100
octet 0000 0101
ECP fără RLE 0001 0100
ECP cu RLE 0011 0100
1 Rezervat 0000 0010
0 Solicitarea modului Rontul 0000 0001
nici unul Solicitare mod octet 0000 0000

Secvența de aprobare (Fig. 1.6) constă din următorii pași.

1. Gazda emite octetul de extensibilitate pe linia de date.

2. Gazda setează semnalul SelectIn # ridicat și AutoFeed # scăzut, ceea ce înseamnă începutul secvenței de negociere.

3. PU răspunde setând un nivel scăzut de semnal Ack # și ridicat - Error #, PaperEnd și Select. Un dispozitiv care „nu înțelege” standardul 1284 nu va da un răspuns, iar pașii suplimentari nu vor fi efectuati.

4. Gazda setează semnalul Strobe # la un nivel scăzut pentru a scrie octetul de extensibilitate pe CP.

5. Gazda setează semnalele Strobe # și AutoLF # la nivel ridicat.

6. CP răspunde setând semnalele PaperEnd și Error # la un nivel scăzut, dacă CP are un canal de transmisie inversă a datelor. Dacă modul solicitat este acceptat de dispozitiv, linia Selectare este setată la mare, dacă nu este acceptată - la scăzut.

7. CP setează un nivel înalt pe linia Ack # pentru a indica finalizarea secvenței de negociere, după care controlerul setează modul de operare necesar.

Orez. 1.6. Secvența de negociere a modului IEEE 1284

1.3.7. Interfețe fizice și electrice

Standardul IEEE 1284 definește caracteristicile fizice ale receptoarelor și emițătorilor de semnal care sunt compatibile la nivel cu TTL. Specificațiile standard ale portului nu au specificat tipurile de circuite de ieșire, limitele pentru valorile rezistențelor de sarcină și capacitatea introdusă de circuite și conductori. La cursuri de schimb relativ scăzute, răspândirea acestor parametri nu a cauzat probleme de compatibilitate. Cu toate acestea, modurile avansate (funcțional și baud rate) necesită specificații clare. IEEE 1284 definește două niveluri de compatibilitate a interfeței. Primul nivel (Nivelul I) este definit pentru dispozitivele care sunt lente, dar folosesc o schimbare în direcția transferului de date. Al doilea nivel (Nivelul II) este definit pentru dispozitivele care funcționează în moduri extinse cu viteze mari și cabluri lungi. Următoarele cerințe sunt impuse emițătorilor.

♦ Nivelurile de semnal fără sarcină nu trebuie să depășească -0,5 ... + 5,5 V.

♦ Nivelurile semnalului la sarcina de 14 mA trebuie să fie de cel puțin +2,4 V pentru mare (VOH) și nu mai mari de +0,4 V pentru scăzut (VOL) pe cc.

♦ Impedanța de ieșire RO măsurată la conector trebuie să fie de 50 ± 5 ohmi la nivelul VOH-VOL. Pentru a asigura impedanța specificată, în circuitele de ieșire ale transmițătorului sunt utilizate rezistențe în serie. Potrivirea impedanței emițătorului și a cablului reduce nivelul de zgomot de impuls.

♦ Rata de creștere (scădere) a pulsului trebuie să fie între 0,05-0,4 V/ns.

Cerințele pentru receptori sunt enumerate mai jos.

♦ Valorile maxime admise ale semnalului -2,0 ... + 7,0 V.

♦ Pragurile nu trebuie să fie mai mari de 2,0 V (VIH) pentru nivel înalt și nu mai mici de 0,8 V (VIL) pentru nivel scăzut.

♦ Receptorul trebuie să aibă o histerezis în intervalul 0,2-1,2 V (histerezis este posedat de microcircuite speciale - trigger Schmitt).

♦ Curentul de intrare al microcircuitului (la intrare și la ieșire) nu trebuie să depășească 20 µA, liniile de intrare sunt conectate la magistrala de alimentare +5 V cu o rezistență de 1,2 kΩ.

♦ Capacitatea de intrare nu trebuie să depășească 50 pF.

Când a apărut specificația ECP, Microsoft a recomandat utilizarea de terminatoare dinamice pentru fiecare linie a interfeței. Cu toate acestea, în prezent este respectată specificația IEEE 1284, care nu utilizează terminatori dinamici. Circuitele recomandate pentru circuitele de intrare, ieșire și bidirecționale sunt prezentate în Fig. 1.7.

Orez. 1.7. Circuite terminale ale liniilor de interfață IEEE 1284: a - linii unidirecționale, b - bidirecționale

Standardul IEEE 1284 definește trei tipuri de conectori utilizați. Tipurile A (DB-25) și B (Centronics-36) sunt tipice pentru cablurile tradiționale de imprimantă, tipul C este un conector nou cu 36 de pini de dimensiune mică.

Cablurile de interfață tradiționale au 18 până la 25 de fire, în funcție de numărul de fire din rețeaua GND. Acești conductori pot fi împletite sau nu. Nu existau cerințe stricte pentru ecranarea cablurilor. Este puțin probabil ca aceste cabluri să funcționeze fiabil la rate de transfer de 2 MB/s sau cu o lungime de peste 2 m.

Standardul IEEE 1284 reglementează proprietățile cablurilor.

♦ Toate liniile de semnal trebuie să fie răsucite cu fire separate de retur (comune).

♦ Fiecare pereche trebuie să aibă o impedanță de 62 ± 6 ohmi în intervalul de frecvență 4-16 MHz.

♦ Nivelul de diafonie între perechi nu trebuie să depășească 10%.

♦ Cablul trebuie să aibă un ecran (folie) care să acopere cel puțin 85% din suprafața exterioară. La capetele cablului, scutul trebuie să fie inel și conectat la pinul conectorului.

Cablurile care îndeplinesc aceste cerințe sunt etichetate „Conform IEEE Std 1284–1994”. Ele pot avea o lungime de până la 10 metri, denumirile tipului sunt date în tabel. 1.10.

Tabelul 1.10. Tipuri de cabluri IEEE 1284

Un fel Decriptare Conector 1 Conector 2
AMAM Tip A Mascul - Tip A Mascul Un conector) Un conector)
AMAF Tip A Mascul - Tip A Femeie Un conector) A (priză)
AB Tip A Mascul - Mufă Tip B - cablu standard la imprimantă Un conector) V
LA FEL DE Tip A Mascul - Mufa Ture C - cablu nou la imprimantă Un conector) CU
î.Hr Fișă de tip B - mușcă de tip C V CU
CC Fișă Tour C - Mușcă de tip C CU CU

1.3.8. Evoluția standardului IEEE 1284

Unele dintre completările la standardul de bază IEEE 1284 sunt enumerate mai jos.

♦ IEEE P1284.1 „Standard pentru tehnologia informației pentru interfața de imprimantă / scaner independentă de transport (TIP/SI)”. Acest standard este dezvoltat pentru gestionarea și întreținerea scanerelor și imprimantelor bazate pe Network Printing Alliance Protocol (NPAP).

♦ IEEE P1284.2 „Standard pentru testare, măsurare și conformitate cu IEEE Std. 1284 „este un standard pentru testarea porturilor, cablurilor și dispozitivelor pentru compatibilitatea cu IEEE 1284.

♦ IEEE P1284.3 „Standard pentru extensii de interfață și protocol la IEEE Std. 1284 Compliant Peripheral and Host Adapter Ports ”este un standard pentru drivere și utilizarea dispozitivelor prin software-ul aplicației. Specificații BIOS acceptate pentru utilizare de către EPP de către driverele DOS. Se dezvoltă un standard pentru utilizarea în comun a unui port de către un lanț de dispozitive sau un grup de dispozitive conectate printr-un multiplexor.

♦ IEEE P1284.4 „Standard pentru livrarea datelor și canale logice pentru IEEE Std. 1284 Interfaces ” are ca scop implementarea unui protocol bazat pe pachete pentru transmiterea fiabilă a datelor printr-un port paralel. Se bazează pe protocolul MLC (Multiple Logical Channels) de la Hewlett-Packard, dar compatibilitatea nu este garantată în versiunea finală a standardului.

1.4. Suport de sistem pentru portul LPT

Suportul de sistem pentru portul LPT include căutarea de porturi instalate și servicii de imprimare (Int 17h, vezi secțiunea 8.3.3). În timpul testării inițiale POST, BIOS-ul verifică prezența porturilor paralele la adresele 3BCh, 378h și 278h și plasează adresele de bază ale porturilor detectate în BIOS Data Area 0: 0408h, 040Ah, 040Ch, 040Eh celule. Aceste celule stochează adresele porturilor LPT1-LPT4, o valoare zero a adresei indică faptul că nu există niciun port cu acest număr. În celulele 0: 0478, 0479, 047A, 047B sunt introduse constante care stabilesc timpul de expirare pentru aceste porturi.

Căutarea de porturi este de obicei efectuată destul de primitiv - un octet de testare (AAh sau 55h) este scos la adresa de bază (în registrul de date al portului vizat), apoi introducerea se face la aceeași adresă. Dacă octetul citit coincide cu cel scris, se presupune că este găsit portul LPT; adresa sa este plasată în celula BIOS Data Area. Adresele portului de bază pot fi modificate ulterior prin software. BIOS-ul nu poate seta singur adresa portului LPT4, deoarece există doar trei dintre cele de mai sus în lista adreselor de căutare standard.

Porturile detectate sunt inițializate - prin scrierea în registrul de control se generează și se elimină semnalul Init #, după care se scrie valoarea 0Ch, care corespunde stării inițiale a semnalelor de interfață. În unele cazuri, semnalul Init # este activ din momentul resetarii hardware până la inițializarea portului când sistemul de operare pornește. Acest lucru poate fi văzut din comportamentul imprimantei pornite atunci când computerul este repornit - indicatorul On-Line al imprimantei se stinge pentru o lungă perioadă de timp. Consecința acestui fenomen este imposibilitatea tipăririi ecranelor (de exemplu, parametrii BIOS Setup) prin apăsarea tastei Print Screen înainte de a încărca sistemul de operare.

1.5. Port paralel și PnP

Cele mai multe dispozitive periferice moderne conectate la portul LPT acceptă standardul 1284 și funcțiile PnP. Pentru a susține aceste funcții, un computer din punct de vedere hardware, este suficient să aibă un controler de interfață care respectă standardul 1284. Dacă dispozitivul conectat acceptă PnP, acesta este capabil să „negoce” cu portul reprezentând „interesele”. " a computerului despre posibilele moduri de schimb folosind protocolul de negociere al modului 1284. În plus, pentru ca PnP să funcționeze, dispozitivul conectat trebuie să spună sistemului de operare toate informațiile necesare despre sine. Cel puțin, acestea sunt identificatori de producător, modele și un set de comenzi acceptate. Informații mai detaliate despre un dispozitiv pot include un ID de clasă, o descriere detaliată și un ID de dispozitiv cu care este asigurată compatibilitatea. Pe baza informațiilor primite pentru a sprijini acest dispozitiv, sistemul de operare poate lua măsuri pentru a instala software-ul necesar.

Dispozitivele cu suport PnP sunt recunoscute de sistemul de operare în faza de pornire, dacă, bineînțeles, sunt conectate la port cu un cablu de interfață și sunt pornite. Dacă Windows detectează un dispozitiv PnP conectat diferit de ceea ce este scris în registrul său pentru acest port (sau doar un dispozitiv nou), încearcă să instaleze driverele necesare dispozitivului din kit-ul de distribuție a sistemului de operare sau din pachetul unui nou dispozitiv. dispozitiv. Dacă Windows nu dorește să observe dispozitivul PnP nou conectat, ar putea indica o problemă cu portul sau cablul. Sistemul PnP nu funcționează dacă dispozitivul este conectat cu un cablu ieftin „non-bidirecțional” care nu are comunicație SelectIn # line (pinul 17 al portului LPT și pinul 36 al conectorului Centronics).

1.6. Aplicație de port LPT

De obicei, portul LPT este folosit pentru a conecta o imprimantă (vezi p. 8.3.1), dar acest lucru nu se limitează la utilizarea acesteia.

Pentru a conecta două computere printr-o interfață paralelă, se folosesc cabluri diferite în funcție de modurile porturilor utilizate. Cel mai simplu și mai lent este modul nibble, care funcționează pe toate porturile. Pentru acest mod, este suficient să aveți 10 fire de semnal și un fir comun în cablu. Pinout-ul conectorilor cablului este prezentat în tabel. 1.11. Comunicarea a două PC-uri cu acest cablu este suportată de software standard, cum ar fi Interlnk de la MS-DOS sau Norton Commander. Rețineți că aici este folosit propriul protocol, care este diferit de cel descris în p. 1.3.1.

Tabelul 1.11. Cablu de comunicație PC-PC (4 biți)

X1, conector PC # 1 Conector PC X2 # 2
Pic a lua legatura a lua legatura Pic
DR.0 2 15 SR.3
DR.1 3 13 SR.4
DR.2 4 12 SR.5
DR.3 5 10 SR.6
DR.4 6 11 SR.7
SR.6 10 5 DR.3
SR.7 11 6 DR.4
SR.5 12 4 DR.2
SR.4 13 3 DR.1
SR.3 15 2 DR.0
GND 18-25 18-25 GND

Conectorii X1 și X2 sunt DB25-P (tată).

Comunicarea de mare viteză între două computere poate fi efectuată și în modul ECP (modul EPP este incomod, deoarece necesită sincronizarea ciclurilor de I/O magistrală ale celor două computere).

Masa 1.12 arată cablarea cablului, într-un tabel similar din cărțile anterioare ale autorului (vezi și) a apărut o eroare (pinii 13 și 15 au fost amestecați). Dintre toate semnalele de pe cablu, doar PeriphRequest # (pin 15) nu este utilizat. Se recomandă ca în circuitul liniei de date să fie introduse rezistențe în serie (0,5–1 kΩ) pentru a preveni curgerea curenților excesivi atunci când porturile de date ale ambelor computere sunt în modul de ieșire. Această situație apare atunci când software-ul de comunicare al computerelor nu a pornit încă. Comunicarea în modul ECP este acceptată de Windows 9x, setul de livrare al acestor sisteme de operare include driverul PARALINK.VxD, dar din cauza unei erori interne este inoperabil. Un patch pentru acest driver, precum și un utilitar de testare și descrierile necesare pot fi găsite pe net (www.lpt.com, www.lvr.com/parport.htm).

Tabelul 1.12. Cablu de comunicație PC-PC în modul ECP și modul octet

Conector X1 Conector X2
a lua legatura Numele în ECP Numele în ECP a lua legatura
1 HostClk PeriphClk 10
14 HostAck PeriphAck 11
17 1284Activ Xflag 13
16 ReverseRequest # AskReverse # 12
10 PeriphClk HostClk 1
11 PeriphAck HostAck 14
12 AckReverse # ReverseRequest # 16
13 Xflag 1284Activ 17
2, 3…9 Date Date 2, 3…9

Conectarea scanerului la portul LPT este eficientă numai dacă portul oferă cel puțin modul bidirecțional (Bi-Di), deoarece fluxul principal este de intrare. Este mai bine să utilizați portul ECP dacă acest mod este acceptat de scaner (sau EPP, ceea ce este puțin probabil).

Conectarea unităților externe (Iomega Zip Drive, CD-ROM etc.), adaptoarelor LAN și a altor dispozitive I/O echilibrate are propriile sale specificități. În modul SPP, împreună cu încetinirea dispozitivului, se remarcă o asimetrie fundamentală a acestui mod: citirea datelor este de două ori mai lentă decât scrierea (destul de lentă). Utilizarea unui mod bidirecțional (Bi-Di sau PS / 2 Tip 1) va elimina această asimetrie - vitezele vor fi egale. Numai prin trecerea la EPP sau ECP, puteți obține viteza normală de lucru. În modul EPP sau ECP, conexiunea la portul LPT este aproape la fel de rapidă ca conexiunea prin controlerul ISA. Acest lucru este valabil și atunci când conectați dispozitive cu o interfață magistrală standard la porturile LPT prin convertoare de interfață (de exemplu, LPT-IDE, LPT-SCSI, LPT-PCMCIA). Rețineți că un hard disk IDE conectat printr-un adaptor la portul LPT poate fi reprezentat ca un dispozitiv SCSI pentru sistem (acest lucru este mai logic din punct de vedere software).

Masa 1.13 descrie scopul pinilor conectorului portului LPT în diferite moduri și corespondența acestora cu biții de registru ai portului standard.

Tabelul 1.13. Scopul pinilor conectorului portului LPT și al biților de înregistrare în modurile SPP, ECP și EPP

a lua legatura I/O Bit¹ SPP ECP EPP
1 O/I CR.0 \ Strobe # HostClk Scrie #
2 O/I DR.0 Date 0 Date 0 Date 0
3 O/I DR.1 Date 1 Date 1 Date 1
4 O/I DR.2 Date 2 Date 2 Date 2
5 O/I DR.3 Date 3 Date 3 Date 3
6 O/I DR.4 Date 4 Date 4 Date 4
7 O/I DR.5 Date 5 Date 5 Date 5
8 O/I DR.6 Date 6 Date 6 Date 6
9 O/I DR.7 Date 7 Date 7 Date 7
10 eu SR.6 Ack # PeriphClk INTR #
11 eu SR.7 \ Ocupat PeriphAck Aștepta #
12 eu SR.5 Sfârșit hârtie AckReverse #
13 eu SR.4 Selectați Xflag
14 O/I CR.1 \ Auto LF # HostAck DataStb #
15 eu SR.3 Eroare # PeriphRequest #
16 O/I CR.2 Init # ReverseRequest # Resetează #
17 O/I CR.3 \ Selectați în # 1284Activ AdrStb #

¹ Simbolul „\” marchează semnalele inversate (1 din registru corespunde nivelului scăzut al liniei).

² Definibil de utilizator.

1.7. Configurarea porturilor LPT

Controlul portului paralel este împărțit în două etape - configurarea preliminară (Configurare) a hardware-ului portului și comutarea curentă (operațională) a modurilor de operare prin aplicație sau software de sistem. Comutarea online este posibilă numai în modurile permise în timpul configurării. Acest lucru face posibilă coordonarea hardware-ului cu software-ul și blocarea comutatoarelor false cauzate de acțiunile incorecte ale programului.

Configurarea portului LPT depinde de versiunea acestuia. Portul situat pe placa de expansiune (multi-card) instalat în slotul ISA sau ISA + VLB este configurat cu jumperi pe placa în sine. Portul de pe placa de bază este configurat prin BIOS Setup.

Parametrii care trebuie configurați sunt enumerați mai jos.

♦ Adresa de bază este 3BCh, 378h sau 278h. În timpul inițializării, BIOS-ul verifică prezența porturilor după adrese în această ordine și, în consecință, atribuie nume logice LPT1, LPT2, LPT3 porturilor detectate. Adresa 3BCh are un adaptor de port situat pe placa MDA sau HGC. Cele mai multe porturi sunt configurate să abordeze 378h în mod implicit și pot fi comutate la 278h.

♦ Linie de cerere de întrerupere utilizată: pentru LPT - IRQ7, pentru LPT2 - IRQ5. În mod tradițional, întreruperile imprimantei nu sunt implicate, iar această resursă limitată poate fi salvată. Cu toate acestea, atunci când se utilizează modurile de mare viteză ECP (sau Fast Centronics), întreruperea operațiunii poate îmbunătăți semnificativ performanța și poate reduce sarcina procesorului.

♦ Utilizarea canalului DMA pentru modurile ECP și Fast Centronics - rezoluția și numărul canalului DMA.

♦ Moduri de operare port:

SPP - portul funcționează numai în modul standard unidirecțional controlat de software;

PS / 2, aka Bi-Directional - diferă de SPP prin posibilitatea inversării canalului (setarea CR.5 = 1);

Fast Centronics - modelarea hardware a protocolului Centronics folosind un buffer FIFO și eventual DMA;

EPP - in functie de utilizarea registrelor, portul functioneaza in modul SPP sau EPP;

ECP - implicit este pornit în modul SPP sau PS / 2, prin scriere în ECR poate fi transferat în orice mod ECP, dar traducerea în EPP prin scrierea la codul ECR 100 nu este garantată;

ECP + EPP - La fel ca ECP, dar modul de scriere 100 în ECR traduce portul în EPP.

Alegerea modului EPP, ECP sau Fast Centronics nu duce în sine la o creștere a vitezei de schimb cu controlerele conectate, ci permite doar șoferului și controlerelor să stabilească modul optim în „înțelegerea” lor. Majoritatea driverelor și aplicațiilor moderne încearcă să folosească moduri eficiente, așa că nu ar trebui să-și „tuie aripile” instalând moduri simple fără un motiv întemeiat.

Imprimantele și scanerele pot dori modul ECP. Windows (3.x, 9x și NT) are drivere de sistem pentru acest mod. În mediul DOS, imprimarea ECP este acceptată numai de un driver special descărcabil.

Adaptoarele de rețea, unitățile externe și CD-ROM-urile conectate la portul paralel pot folosi modul EPP. Pentru acest mod, un driver special nu a fost încă aplicat; Suportul EPP este inclus în driverul dispozitivului plug-in în sine.

1.8. Defecțiuni și testare ale porturilor paralele

Este o idee bună să începeți să testați porturile paralele verificând dacă acestea sunt în sistem. Lista adreselor porturilor instalate apare în tabelul afișat de BIOS pe ecran înainte de încărcarea sistemului de operare. Lista poate fi vizualizată folosind programe de testare sau direct în zona de date BIOS folosind un depanator.

Dacă BIOS-ul detectează mai puține porturi decât este instalat fizic, este probabil ca două porturi să aibă aceeași adresă. În același timp, operabilitatea oricăruia dintre porturile aflate în conflict nu este garantată: acestea vor scoate simultan semnale, dar la citirea registrului de stare, un conflict pe magistrală va duce cel mai probabil la coruperea datelor. Testarea software-ului unui port fără mufă de diagnosticare (Loop Back) nu va arăta erori, deoarece datele registrelor de ieșire sunt citite și vor coincide pentru toate porturile aflate în conflict (porturi care pot fi reparate individual). Este exact ceea ce face BIOS-ul când verifică porturile. Ar trebui să faceți față acestei situații setând secvențial porturile și observând adresele care apar în listă.

Dacă este instalat fizic un singur port, iar BIOS-ul nu îl detectează, atunci fie portul este dezactivat în timpul configurării, fie este dezactivat (cel mai probabil din cauza încălcării regulilor de conectare). Dacă aveți noroc, defecțiunea este eliminată prin „jonglarea” cu placa în slot - uneori apar probleme cu contactele.

Se observă și astfel de „miracole” - în timpul unei reporniri „caldă” a DOS după Windows 95, portul nu este vizibil (și aplicațiile nu pot imprima de pe MS-DOS). Cu toate acestea, după repornirea DOS, portul este pe loc. Este mai ușor să te împaci cu acest fenomen decât să lupți.

Testarea porturilor folosind programe de diagnosticare vă permite să verificați registrele de ieșire și, folosind mufe speciale, liniile de intrare. Deoarece numărul de linii de ieșire ale portului (12) și al intrării (5) este diferit, o verificare completă a portului folosind o mufă pasivă este fundamental imposibilă. Programele de testare diferite necesită stub-uri diferite (Figura 1.8).

Orez. 1.8. Circuit stub pentru testarea portului LPT: a - pentru CheckIt, b - pentru Norton Diagnostics

Majoritatea problemelor când lucrați cu porturile LPT sunt cauzate de conectori și cabluri. Pentru a verifica portul, cablul și imprimanta, puteți utiliza teste speciale din programele de diagnosticare populare (CheckIt, PCCheck etc.). Puteți încerca să tipăriți pur și simplu un fișier de caractere pe imprimantă.

♦ Dacă ieșirea fișierului din punct de vedere DOS trece (copiarea unui fișier pe un dispozitiv numit LPTn sau PRN se face rapid și cu succes), iar imprimanta (funcționează) nu a tipărit un singur caracter - cel mai probabil, acesta este un circuit deschis (nu un contact în conector) al circuitului Strobe # ...

♦ Dacă imprimanta este On Line și apare un mesaj care spune că nu este gata, căutați cauza în linia Ocupat.

♦ Dacă imprimanta conectată la portul se imprimă în mod normal în modul standard (SPP), dar nu reușește la intrarea în modul ECP, verificați cablul pentru a vedea dacă îndeplinește cerințele IEEE 1284 (vezi mai sus). Cablurile ieftine cu fire nerăsucite funcționează în mod normal la viteze de 50-100 Kb/s, dar la 1-2 Mb/s, furnizate de ECP, au tot dreptul să nu funcționeze, mai ales cu o lungime mai mare de 2 m.

♦ Dacă apare un mesaj „cablu bidirecțional” la instalarea driverului de imprimantă PnP, verificați existența unei conexiuni de la calea 17 a conectorului DB-25 la calea 36 a conectorului Centronics. Deși această conexiune a fost prevăzută inițial, nu este disponibilă pe un număr de cabluri.

♦ Dacă imprimanta distorsionează informaţiile în timpul imprimării, liniile de date pot fi întrerupte (sau scurtcircuitate). În acest caz, este convenabil să folosiți un fișier care conține o secvență de coduri pentru toate caracterele imprimabile. Dacă fișierul este tipărit cu repetarea unor caractere sau a grupurilor acestora, firul de date întrerupt al interfeței poate fi calculat cu ușurință prin rata de repetiție. Același fișier este convenabil de utilizat pentru verificarea rusificării hardware a imprimantei.

Întreruperile hardware de la portul LPT nu sunt întotdeauna utilizate. Chiar și programul de imprimare în fundal DOS PRINT funcționează cu portul pentru a interoga starea, iar backend-ul său este pornit de o întrerupere a temporizatorului. Prin urmare, defecțiunile circuitelor de întrerupere a portului sunt rare. Cu toate acestea, sistemele de operare cu adevărat multitasking (ex. NetWare) încearcă să întrerupă portul. Este posibil să testați linia de întrerupere numai prin conectarea unui CP sau a unei mufe la port. Dacă un adaptor LAN este conectat la un port cu un canal de întrerupere defect, atunci acesta poate funcționa, dar la o viteză foarte mică: orice solicitare va primi un răspuns cu o întârziere de zeci de secunde - un pachet primit de la adaptor nu va fi primit prin întrerupere (imediat după sosire) și printr-un timeout extern.

Portul LPT, numit adesea portul paralel, este unul dintre cele mai vechi porturi de pe un computer. Deși, în zilele noastre, un astfel de port nu este disponibil pe toate plăcile de bază, are totuși o anumită distribuție și, prin urmare, mulți utilizatori de computere și echipamente de birou, în special imprimante, sunt foarte interesați să știe ce este.

Mai întâi trebuie să înțelegeți ce înseamnă abrevierea lpt port. Deci, LPT înseamnă o abreviere pentru o combinație de mai multe cuvinte englezești, și anume: Line Print Terminal. În rusă, LPT înseamnă terminal de imprimantă linie cu linie. Pe baza numelui, devine clar că este destinat în primul rând unei imprimante. Dar din punct de vedere teoretic, la LPT pot fi conectate și alte dispozitive. În acest scop, se folosește un adaptor special - adaptorul lpt. De adăugat că are un alt nume, acceptat în cercurile utilizatorilor - portul de imprimantă.

În general, portul lpt are o istorie destul de lungă de dezvoltare. A fost dezvoltat de angajații companiei Centronics, care la începutul anilor 70 ai secolului trecut s-a specializat în producția de imprimante matriciale. La începutul anilor 1980, acest port de imprimantă a devenit utilizat pe scară largă de IBM, care l-a folosit pe computerele lor. În acel deceniu, portul lpt a reușit chiar să devină opțiunea standard necesară pentru conectarea dispozitivelor la viteze mari disponibile în acei ani.

Inițial, interfața LPT a fost prezentată în mai multe ediții diferite. Mai mult, în versiunea originală, era unidirecțională, adică. cu ajutorul acestuia, a fost posibil să transferați informații exclusiv către un dispozitiv periferic. Bineînțeles, acest gen de situație nu s-a potrivit pentru mulți utilizatori, tk. deja în acei ani au fost produse dispozitive de imprimare care necesitau implementarea transferului de date în două direcții. De aceea, ceva timp mai târziu, dezvoltatorii au fost nevoiți să îmbunătățească de mai multe ori interfața LPTl. Acest proces a continuat până la prezentarea standardului său, care a fost denumit IEEE 1284. Astfel, dezvoltatorii au prezentat diagrama finală a portului. Noul standard avea suport pentru mai multe moduri diferite de operare. În plus, era compatibil cu standardele mai vechi. În versiunea sa finală, interfața imprimantei putea suporta o rată de transfer de date destul de ridicată la acel moment, care ajungea la 5 Mb/s!

Cum funcționează portul paralel?

Denumirea paralelă LPT se datorează faptului că transmisia de date în cablul conectat la acesta se realizează în mod paralel, pentru care se folosesc simultan mai multe conductoare. Din această cauză diferă semnificativ de somnul, care este consistent. Numărul de conductori dintr-un cablu care se conectează la LPT este de obicei opt. În plus, poate conține mai multe linii pentru transmiterea semnalelor de control. Astfel, utilizarea portului com în comparație cu LPT are o serie de limitări și dezavantaje puternice.

În ciuda faptului că portul Centronics a fost folosit într-o măsură mai mare pentru organizarea conexiunii dintre imprimantă și PC, a fost totuși folosit în alte scopuri. De exemplu, folosind LPT, puteți conecta direct două computere personale unul la altul - de obicei se folosește un cablu Interlink pentru aceasta. Până la răspândirea plăcilor de rețea Ethernet, acest tip de conexiune a fost foarte popular. Desigur, nu putea oferi utilizatorilor rate de transfer de date cu adevărat mari, dar, în ciuda acestui fapt, acest mod de a conecta două computere unul la altul în acei ani era aproape singurul posibil. Trebuie adăugat că există chiar și chei electronice speciale care sunt concepute special pentru conectarea la un port paralel.

Despre caracteristicile lucrului LPT

După cum am menționat mai sus, spre deosebire de com, LPT are suport pentru transferul de date în paralel. În primele modele de computere personale, a fost unul dintre cele mai rapide. Interfața sa, datorită posibilității de a transmite informații pe mai multe linii, este în multe privințe similară ca arhitectură cu magistralele utilizate într-un PC. Dar tocmai acest tip de circumstanță limitează lungimea cablului, care nu poate depăși 5 metri. În caz contrar, vor exista interferențe constante în conexiunea dintre computer și imprimantă.

De obicei, sunt necesare 10 linii de semnal pentru a organiza transmisia normală de date. În ceea ce privește restul liniilor, acestea sunt folosite pentru compatibilitate cu standardul de cablu Centronics. Setarea maximă a tensiunii care se aplică liniilor de semnal LTP este de obicei +5 V.

Conector de port și cablu Centronics

Dacă vorbim despre conectorul portului paralel, atunci acesta se află pe placa de bază însăși, deși până la mijlocul anilor 90 ai secolului trecut acest element era de obicei situat pe așa-numitul. multicard, care a fost introdus în slotul de expansiune. Ieșirea LPT este un conector DB25 cu 25 de pini.

Pentru a stabili o conexiune între un computer personal și echipamente de birou de imprimare folosind un port personal, trebuie să utilizați un cablu Centronics. În acest caz, conectorul echipamentului de birou este de 36 de pini. Astfel, principala caracteristică a acestui cablu este că are doi conectori diferiți pe ambele părți.
De asemenea, rețineți că, destul de des, conectorul Centronics se referă la conectorul de cablu care este destinat plăcii de bază a unui computer personal, dar de fapt este conectorul pentru imprimantă - adică. unul care include 36 de contacte. În ceea ce privește conectorul destinat direct pentru LPT, acesta se numește Amphenolstacker. Trebuie să fii conștient de astfel de diferențe de nume pentru a numi toate lucrurile prin numele lor propriu.

Rezultat

În concluzie, putem spune că portul paralel al Line Print Terminal este o interfață pentru PC, care a devenit deocamdată destul de învechită. În ciuda distribuției sale largi în ultimele decenii ale secolului trecut, astăzi acest port nu are prea mult sprijin din partea multor companii producătoare de echipamente informatice, echipamente de birou și software. În ciuda acestui fapt, LPT este încă folosit cu succes pe multe modele de PC-uri și dispozitive de imprimare care sunt depășite de vremea noastră. Dar destul de des, un adaptor com-lpt este necesar pentru a organiza o conexiune între un computer și o imprimantă veche. Astăzi, în principiu, se găsesc la vânzare, dar dacă aveți cunoștințele și abilitățile necesare, puteți dormi un astfel de adaptor absolut independent.

Top articole similare