Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Zanimljivo
  • Koje su prednosti i mane paralelnog porta. Paralelni portovi

Koje su prednosti i mane paralelnog porta. Paralelni portovi

Zajedno sa paralelnim portom, COM port, ili serijski port, je jedan od tradicionalnih I/O portova računara, koji se koristio u prvim računarima. Iako u savremenih kompjutera COM port je ograničene upotrebe, međutim, informacije o njemu mogu biti korisne mnogim korisnicima.

Serijski port, kao i paralelni, pojavio se mnogo pre pojave personalnih računara IBM PC arhitekture. U prvim računarima, COM port se koristio za povezivanje perifernih uređaja. Međutim, opseg njegove primjene bio je malo drugačiji od opsega paralelnog porta. Dok se paralelni port uglavnom koristio za povezivanje štampača, COM port (usput rečeno, COM prefiks je samo skraćenica za reč komunikacija) obično se koristio za rad sa telekomunikacionim uređajima kao što su modemi. Međutim, na port možete povezati, na primjer, miš, kao i druge periferne uređaje.

COM port, glavna područja primjene:

  1. Priključak terminala
  2. ~ eksterni modemi
  3. ~ štampači i ploteri
  4. ~ miševi
  5. Direktno povezivanje dva računara

Trenutno je opseg COM porta značajno smanjen zbog uvođenja bržeg i kompaktnijeg, a usput i serijskog, USB interfejsa. Skoro van upotrebe eksterni modemi, dizajniran za povezivanje na port, kao i "COM" miševe. Rijetko ko sada poveže dva računara null modemskim kablom.

Međutim, određeni broj specijaliziranih uređaja i dalje koristi serijski port. Možete ga pronaći i na mnogim matičnim pločama. Činjenica je da, u poređenju sa USB-om, COM port ga ima važna prednost- prema standardu serijskih podataka RS-232 može raditi sa uređajima na udaljenosti od nekoliko desetina metara, dok je domet USB kabla obično ograničen na 5 metara.

Kako radi serijski port i kako se razlikuje od paralelnog porta

Za razliku od paralelnog (LPT) porta, serijski port prenosi podatke bit po bit preko jedne linije, umjesto nekoliko u isto vrijeme. Sekvence bitova su grupisane u niz podataka, počevši sa početnim bitom i završavajući sa stop bitom, i paritetnim bitovima koji se koriste za kontrolu greške. Odavde dolazi drugi engleski naziv koji ima serijski port - Serial Port.

Serijski port ima dvije linije preko kojih se prenose stvarni podaci - to su linije za prijenos podataka sa terminala (PC) na komunikacijski uređaj i obrnuto. Osim toga, postoji još nekoliko kontrolnih linija. Serijski port se opslužuje posebnim UART mikrokolom, koji je sposoban podržati relativno visoku brzinu prijenosa podataka, dostižući 115.000 baudova (bajtova/s). Međutim, treba napomenuti da stvarna brzina razmjene informacija ovisi o oba komunikacijska uređaja. Dodatno, funkcija UART kontrolera je da konvertuje paralelni u serijski kod i obrnuto.

Port koristi električne signale relativno visokog napona - do +15 V i -15 V. Logički nulti nivo serijskog porta je +12 V, a logički -12 V. Tako veliki pad napona osigurava visok stepen otpornosti na buku prenesenih podataka. S druge strane, visoki naponi koji se koriste u serijskom portu zahtijevaju složena rješenja kola. Ova okolnost je također doprinijela padu popularnosti luke.

Serijski interfejs RS-232

Rad serijskog porta na PC-u je baziran na RS-232 standardu serijske komunikacije. Ovaj standard opisuje proces razmjene podataka između telekomunikacionog uređaja, kao što je modem i kompjuterski terminal. Standard RS-232 definiše električne karakteristike signala, njihovu svrhu, trajanje, kao i dimenzije konektora i pinout za njih. Istovremeno, RS-232 opisuje samo fizički sloj procesa prenosa podataka i ne odnosi se na transportne protokole koji se koriste u ovom slučaju, a koji mogu varirati u zavisnosti od korišćene komunikacione opreme i softvera.

Standard RS-232 nastao je 1969. godine, a njegov najnoviju verziju, TIA 232, objavljen je 1997. RS-232 je sada zastario, ali ga većina operativnih sistema još uvijek podržava.

U modernim računarima, konektor za serijski port je 9-pinski DB-9 muški konektor, iako RS-232 standard opisuje i 25-pinski DB-25 konektor, koji se često koristio na starijim računarima. DB-9 konektor se obično nalazi na matična ploča PC, iako se kod starijih računara mogao nalaziti na posebnoj multi-kartici umetnutoj u slot za proširenje.

9-pinski DB-9 ženski na matičnoj ploči

DB-9 konektor na priključenom kablu uređaja

Za razliku od paralelnog porta, konektori na obe strane dvostranog serijskog kabla su identični. Pored linija za prenos podataka, port sadrži nekoliko servisnih linija preko kojih se između terminala (računara) i telekomunikacionog uređaja (modema) može prenositi kontrolne informacije... Iako su teoretski dovoljna samo tri kanala za rad serijskog porta - prijem podataka, prijenos podataka i zemlja, praksa je pokazala da prisutnost servisnih linija komunikaciju čini efikasnijom, pouzdanijom i kao rezultat toga bržom.

Namjena linija konektora serijskog porta DB-9 prema RS-232 i njihova korespondencija sa kontaktima DB-25 konektora:

DB-9 pin engleski naziv Rusko ime Kontaktirajte DB-25
1 Data Carrier Detect Nosilac je otkriven 8
2 Prijenos podataka Preneseni podaci 2
3 Primanje podataka Primljeni podaci 3
4 Data Terminal Ready Spremnost terminala 20
5 Ground zemlja 7
6 Skup podataka spreman Spremnost predajnika 6
7 Zahtjev za slanje Zahtjev za slanje podataka 4
8 Jasno za slanje Dozvoljen prijenos podataka 5
9 Indikator zvona Indikator zvona 22

Konfiguracija i prekidi

Pošto računar može imati više serijskih portova (do 4), sistem za njih dodeljuje dva hardverska prekida - IRQ 3 (COM 2 i 4) i IRQ 4 (COM 1 i 3) i nekoliko BIOS prekida. Mnogi komunikacioni programi, kao i ugrađeni modemi, za svoj rad koriste prekide i adresni prostor COM portova. U ovom slučaju se obično ne koriste pravi portovi, već takozvani virtuelni portovi, koje emulira sam operativni sistem.

Kao iu slučaju mnogih drugih komponenti na matičnoj ploči, parametri COM portova, posebno vrijednosti BIOS prekida koje odgovaraju hardverskim prekidima, mogu se konfigurirati putem sučelja BIOS Setup. Da biste to učinili, koristite opcije BIOS-a kao što su COM Port, Onboard Serial Port, Serial Port Address, itd.

Zaključak

Serijski port računara trenutno nije široko korišćeno sredstvo za I/O informacije. Ipak, kako postoji veliki broj opreme, prvenstveno telekomunikacijske, dizajnirane za rad sa serijskim portom, a i zbog nekih prednosti RS-232 protokola serijskog prijenosa podataka, serijski interfejs još uvijek ne treba odbaciti kao apsolutno zastarjeli rudiment arhitekture personalnih računara.

Port se naziva "serijski" jer se informacije prenose kroz njega jedan po bit, bit po bit sekvencijalno (za razliku od paralelnog porta). Uprkos činjenici da neki računarski interfejsi (na primjer, Ethernet, FireWire i USB) također koriste serijsku metodu razmjene informacija, naziv "serijski port" je dodijeljen portu RS-232 standarda.

Imenovanje

Najčešći serijski port za personalne računare je RS-232C standard. Ranije se serijski port koristio za povezivanje terminala, kasnije za modem ili miš. Sada se koristi za povezivanje, za komunikaciju sa ugrađenim računarskim razvojnim hardverom, satelitski prijemnici, kase, programeri, sa uređajima za sisteme obezbeđenja objekata, kao i sa mnogim drugim uređajima.

Sa COM portom možete povezati dva računara pomoću takozvanog "null modem kabla" (pogledajte ispod). Koristi se još od vremena MS-DOS-a za prenos datoteka sa jednog računara na drugi, u UNIX-u za terminalski pristup drugoj mašini, au Windows-u (čak i modernom) za ispravljanje grešaka na nivou kernela.

Prednost tehnologije je ekstremna jednostavnost opreme. Nedostaci su mala brzina, velike veličine konektora, kao i često visoki zahtjevi za OS i vrijeme odziva drajvera i veliki broj prekida (jedan po polovini hardverskog reda, odnosno 8 bajtova).

Povezani video zapisi

Konektori

Na matičnim pločama vodećih proizvođača (na primjer, Intel) ili gotovim sistemima (na primjer, IBM, Hewlett-Packard, Fujitsu Siemens Computers), serijski port je simbol COM ili RS-232.

Opcije konektora DE-9 COM porta

Najčešće korišćeni su standardizovani konektori u obliku slova D iz 1969: 9- i 25-pinski (DB-9 i DB-25, respektivno). Ranije su se također koristili DA-31 i okrugli osmopinski DIN-8. Maksimalna brzina prijenosa za konvencionalni port je 115.200 baudova.

Relevantnost

Postoje standardi za emulaciju serijskog porta preko USB-a i preko Bluetooth-a (ova tehnologija je uglavnom dizajnirana kao "bežični serijski port").

I dalje softverska emulacija ove luke danas se široko koristi. Tako, na primjer, skoro sve mobilni telefoni oponašaju klasični COM port i modem za tethering - pristup računara internetu putem GPRS / EDGE / 3G / 4G telefonske opreme. Štaviše, za fizička veza računar koristi USB, Bluetooth ili Wi-Fi.

Takođe, softverska emulacija ovog porta je omogućena "gostima" virtuelnih mašina VMWare i Microsoft Hyper-V, čija je glavna svrha povezivanje nivoa debagera Windows kernel"gostu".

U obliku UART-a, koji se razlikuje po nivoima napona i odsustvu dodatnih signala, prisutan je u gotovo svim mikrokontrolerima, osim kod najmanjih, SoC-a, razvojnih ploča, a prisutan je i na pločama većine uređaja. , iako konektor nije izvučen u kućište. Ova popularnost je zbog jednostavnosti ovog interfejsa, kako sa fizičke tačke gledišta, tako i lakoće pristupa portu sa softverske strane u poređenju sa drugim interfejsima.

Oprema

Konektor ima kontakte:

DTR (Data Terminal Ready - spremnost za primanje podataka) - izlaz na računar, ulaz na modem. Označava da je računar spreman za rad sa modemom. Resetovanje ove linije uzrokuje skoro hard reboot modem u prvobitno stanje, uključujući ispuštanje cijevi (neki kontrolni registri prežive nakon takvog resetovanja). Na UNIX-u, ovo se dešava kada sve aplikacije imaju zatvorene datoteke na serijskom drajveru. Miš koristi ovu žicu za primanje struje.

DSR (Data Set Ready) - ulaz u računar, izlaz na modem. Označava da je modem spreman. Ako je ova linija na nuli, tada u nekom OS-u postaje nemoguće otvoriti port kao datoteku.

RxD (Receive Data) - ulaz na računar, izlaz na modem. Tok podataka ulazi u računar.

TxD (Transmit Data) - izlaz na računar, ulaz na modem. Odlazni tok podataka sa računara.

CTS (Clear to Send) - ulaz na računar, izlaz na modem. Računar je obavezan da obustavi prenos podataka dok se ova žica ne postavi na jedan. Koristi se u protokolu za kontrolu protoka hardvera kako bi se spriječilo prelijevanje u modemu.

RTS (Request to Send) - izlaz na računar, ulaz na modem. Modem je dužan da obustavi prenos podataka dok se ova žica ne postavi na jedan. Koristi se u protokolu za kontrolu protoka hardvera kako bi se spriječilo prelijevanje hardvera i drajvera.

DCD (Carrier Detect) - ulaz na računar, izlaz na modem. Modem podiže na jedan nakon uspostavljanja veze sa modemom na drugoj strani, resetuje na nulu kada je veza prekinuta. Računarski hardver može emitovati prekid kada dođe do takvog događaja.

RI (Ring Indicator) - ulaz na računar, izlaz na modem. Modem podiže na jedan nakon detekcije signala zvona telefonski poziv... Računarski hardver može emitovati prekid kada dođe do takvog događaja.

SG (Signal Ground) - zajednička signalna žica porta, nije zajednički jezik, po pravilu, izolovan od kućišta računara ili modema.

Null modem kabl koristi dva ukrštena para: TXD / RXD i RTS / CTS.

U početku, u IBM PC-u i IBM PC/XT-u, hardver porta je izgrađen na UART 8250 mikrokolo od National Semiconductor-a, zatim je mikrokolo zamijenjeno 16450, softverom kompatibilnim s prethodnim, ali je dozvoljavao brzine do 115200 bita po drugo, tada se pojavio mikrokolo 16550, koje sadrži dvosmjerni FIFO bafer podataka kako bi se smanjilo opterećenje na kontroleru prekida. Trenutno uključen u SuperIO čip na matičnoj ploči zajedno sa nizom drugih uređaja.

Programski pristup COM portu

UNIX

COM portovi u Unix operativnom sistemu (Linux) su datoteke sa znakovnim uređajima. Obično se ove datoteke nalaze u direktoriju / dev i zovu se

  • ttyS0, ttyS1, ttyS2 itd. na Linuxu
  • ttyd0, ttyd1, ttyd2 itd. (ili ttyu0, ttyu1, ttyu2 i tako dalje od 8.0) na FreeBSD-u
  • ttya, ttyb, ttyc itd. na Solarisu
  • ttyf1, ttyf2, ttyf3 i tako dalje u IRIX-u
  • tty1p0, tty2p0, tty3p0 itd. u HP-UX-u
  • tty01, tty02, tty03 itd. na Digital Unixu
  • ser1, ser2, ser3 itd. u QNX-u

Za programski pristup COM portu morate otvoriti odgovarajuću datoteku za čitanje/pisanje i pozvati posebne funkcije tcgetattr (kako biste saznali trenutna podešavanja) i tcsetattr (da biste postavili nove postavke). Možda ćete također morati uputiti ioctl pozive sa određenim parametrima. Nakon toga, prilikom pisanja u datoteku, podaci će se slati kroz port, a prilikom čitanja program će primiti već primljene podatke iz bafera COM porta.

Kao serverski uređaji koriste se uređaji pod nazivom "ttyxx", odnosno aplikacija koja je otvorila ovaj uređaj obično čeka dolazni poziv od modema. Klasična takva aplikacija koja se standardno koristi je getty, koji čeka dolazni poziv, zatim konfiguriše COM port u skladu sa konfiguracionim fajlovima, tamo ispisuje "login:", uzima korisničko ime i pokreće naredbu "loginUserName" kao potomka, sa standardnim ulazom i izlazom preusmjerenim na COM port. Ova komanda, zauzvrat, traži i provjerava lozinku, i ako je uspješna, pokreće (ne kao dijete, već umjesto sebe pozivanjem execve u istom procesu) zadanu korisničku ljusku navedenu u / etc / passwd datoteci.

Ova tehnologija je istorijski nastala 1970-ih, kada su se računari poput PDP-11 (u SSSR-u se serija zvala SM kompjuteri) ili VAX koristila pod UNIX OS-om, omogućavajući povezivanje mnogih terminala za rad mnogih korisnika. Terminali - a time i cijelo korisničko sučelje - bili su povezani putem serijski portovi, sa mogućnošću povezivanja modema umjesto terminala i daljeg pozivanja na računar telefonom. Do sada je postojao terminalski stog u OS-u sličnom UNIX-u, a obično postoje 3 implementacije terminala - serijski port, konzola tekstualni mod ekran + tastatura, i "petlja" na jedan od otvorite fajlove kontrolna aplikacija (ovako se implementiraju telnetd, sshd i xterm).

Klijentski uređaji sa serijskim portom za upućivanje poziva prema van nazivaju se cuaxx na mnogim (ali ne svim) UNIX uređajima.

Budući da je serijski port u UNIX-u dostupan samo preko terminalskog steka, on može biti kontrolni terminal za procese i grupe (pošalji SIGHUP kada je veza s modema prekinuta i SIGINT kada se pritisne Ctrl-C), na nivou kernela, podrška editovanje poslednjeg reda unetog pomoću tastera sa strelicama, itd. Da biste onemogućili ovu funkciju i pretvorili uređaj u "cev" za tok bajtova, potrebni su ioctl pozivi.

Windows

Serijski portovi se tretiraju kao datoteke u Win32. Funkcija CreateFile se koristi za otvaranje porta. Portova može biti mnogo, tako da su oni označeni kao COM1, COM2, itd. redoslijedom kojim se nalaze odgovarajući upravljački programi uređaja. Prvih 9 portova je također dostupno kao imenovane cijevi za prijenos podataka (dostupne pod nazivima "COM1", "COM2", ...), ovaj način pristupa se smatra zastarjelim. Preporučuje se da se svi portovi tretiraju kao fajlovi (pod imenom "\\. \ COM1", "\\. \ COM2", ... "\\. \ COMx").

Serijski port

Port ili interfejs koji se može koristiti za serijsku komunikaciju, koja prenosi samo 1 bit odjednom.

Većina serijskih portova za personalne računare su kompatibilni sa RS-232C ili RS-422. Serijski port je interfejs opće namjene, može se koristiti za mnoge vrste uređaja, uključujući modeme, miševe i štampače (iako je većina štampača povezana na paralelni port).

Tipičan PC ima ttyS0 i ttyS2 na IRQ 4, a ttyS1 i ttyS3 na IRQ 3. Možete vidjeti koji se IRQ-ovi koriste upisivanjem: setserial / dev / ttyS2, itd. Gledanje /proc/interrupts će pokazati neke od njih. Da biste koristili više od dva serijska uređaja, morat ćete ponovo mapirati prekide. Dobar pristup je ponovno mapiranje prekida za paralelni port. Računari obično imaju postavljene IRQ 5 i IRQ 7 na vašim paralelnim portovima, ali malo ljudi koristi dva paralelna porta. Možete ponovo dodijeliti jedan od prekida serijskom uređaju i koristiti preostali paralelni port sasvim u redu. da biste to uradili, potreban vam je setserial program. Takođe, trebalo bi da se poigrate sa kratkospojnicima na matičnoj ploči, proverite dokumentaciju za vašu ploču. Postavite kratkospojnike na IRQ koji želite dodijeliti svakom portu.

Morate sve postaviti tako da postoji jedan i samo jedan prekid za svaki serijski uređaj. Ovako to Greg postavlja u /etc/rc.d/rc. lokalno - ovo morate učiniti u datoteci koja se izvršava nakon pokretanja:

/ sbin / setserial / dev / ttyS0 irq 3 # moj serijski miš

/ sbin / setserial / dev / ttyS1 irq 4 # moj Wyse glupi terminal

/ sbin / setserial / dev / ttyS2 irq 5 # moj Zoom modem

/ sbin / setserial / dev / ttyS3 irq 9 # moj USR modem

Standardni IRQ zadaci:

IRQ 0 Tajmer kanal 0

IRQ 1 tastatura

IRQ 2 Kaskada za kontroler 2

IRQ 3 Serijski port 2

IRQ 4 serijski 1

IRQ 5 Paralelni port 2

IRQ 6 Floppy Drive

IRQ 7 Paralelni port 1

IRQ 8 Sat realnog vremena

IRQ 9 Proslijeđen na IRQ2

IRQ 10 nije dodijeljen

IRQ 11 nije dodijeljen

IRQ 12 nije dodijeljen

IRQ 13 Matematički koprocesor

IRQ 14 tvrdi disk 1

IRQ 15 tvrdi disk 2

Zaista ne postoji "pravi način" da se dodijeli prekid. Samo se uvjerite da nije u upotrebi. matična ploča ili bilo koje druge ploče.

Brojevi prekida 2, 3, 4, 5 ili 7 su dobar izbor. "Nedodijeljeno" znači da trenutno ništa ne koristi standardno ove IRQS. Takođe imajte na umu da je IRQ 2 isti kao IRQ 9. Možete ga nazvati ili 2 ili 9, serijski drajver je veoma pametan. Ako imate serijsku ploču sa 16-bitnim konektorom magistrale, onda možete koristiti i IRQ 10, 11, 12 ili 15.

Samo pazite da ne koristite IRQ 0, 1, 6, 8, 13 ili 14! Koristi ih vaša matična ploča. Zloupotrebom ovih IRQ-a možete upasti u velike probleme. Kada završite, pogledajte /proc/interrupts i uvjerite se da nema sukoba.

Postavljanje adresa serijskih uređaja

Zatim morate postaviti adresu porta. Provjerite u priručniku za vašu ploču postavke kratkospojnika. Kao i prekidi, jedan serijski uređaj može imati samo jednu adresu. Vaši portovi obično dolaze sa ovim postavkama:

ttyS0 adresa 0x3f8

ttyS1 adresa 0x2f8

ttyS2 adresa 0x3e8

ttyS3 adresa 0x2e8

Odaberite adrese koje želite koristiti za svaki serijski uređaj i u skladu s tim postavite kratkospojnike. Moj modem je ttyS3, moj miš je ttyS0, a moj terminal je ttyS2.

Kada ponovo pokrenete, Linux bi trebao vidjeti vaše serijske portove na adresama na koje ste ih postavili. IRQ koji Linux vidi možda neće odgovarati IRQ-u koji ste postavili pomoću skakača. Ne brini o tome. Linux ne pokušava odrediti IRQ prilikom pokretanja, jer je određivanje IRQ-a rizično i možda neće biti ispravno. Koristite setserial da kažete Linuxu koji IRQ port koristi. Možete provjeriti / proc / ioports da vidite koje su adrese I/O portova u upotrebi nakon pokretanja Linuxa.

Adapter paralelni interfejs je skup registara koji se nalazi u adresnom prostoru ulazno/izlaznih uređaja. Broj registara zavisi od tipa porta, ali tri su standardna i uvek su prisutna - registar podataka, registar statusa i kontrolni registar. Registarske adrese se računaju od osnovne, čije su standardne vrijednosti 3BCh, 378h, 278h. Možete saznati broj instaliranih portova u računaru i njihove osnovne adrese skeniranjem područja podataka BIOS-a na adresama 0: 408h za LPT1, 0:40Ah za LPT2, 0:40Ch za LPT3 i 0:40Eh za LPT4. Ako ove adrese sadrže riječ (2 bajta) sa vrijednošću različitom od nule, onda je to osnovna adresa porta. Ako riječ sadrži nula vrijednost- port nije instaliran. BIOS ne podržava više od 4 LPT porta. Port se može koristiti hardverski prekid(IRQ7 ili IRQ9). Mnogi savremeni sistemi omogućavaju vam da promijenite način rada porta, njegovu adresu i IRQ od BIOS postavke Postaviti. Na primjer, AWARD BIOS ima odjeljak Integrisane periferije koji vam omogućava da konfigurišete režim porta, adresu i IRQ.

LPT port ima eksternu 8-bitnu sabirnicu podataka, 5-bitnu sabirnicu statusnih signala i 4-bitnu sabirnicu upravljačkih signala. At bootstrap BIOS pokušava da detektuje paralelni port, i to radi na primitivan i ne uvek ispravan način - test bajt koji se sastoji od naizmeničnog skupa nula i jedinica (55h ili AAh) se prenosi na moguće osnovne adrese portova, a zatim se čita na istoj adresi, a ako se pročitani bajt poklopio sa upisanim, onda se smatra da datu adresu LPT port pronađen. BIOS ne može odrediti adresu LPT4 porta. Za rad sa kontrolnom pločom, BIOS obezbeđuje INT 17h prekid, koji omogućava prenos podataka (bajt po bajt), inicijalizaciju kontrolne table i primanje informacija o njegovom stanju.


Tokom duge istorije razvoja personalnih računara paralelni port(paralelni port) koji se često naziva port za štampač(port za štampač) ostaje najbrži i najpouzdaniji način za povezivanje štampača i drugih uređaja sa računarom. Paralelni prijenos osam bitova podataka i automatska kontrola toka podataka korištenjem signala priznanje(rukovanje) čine vanjska kola nepotrebnim za dekodiranje podataka i kontrolnih signala. Široka upotreba paralelnih portova je zbog njihove jednostavnosti i Visoke performanse... Štaviše, paralelni port omogućava ulaz do devet bita i izlaz do 12 bita istovremeno, što zahtijeva minimalno eksterno kolo za mnoge jednostavne zadatke.

Standardni paralelni port (SPP)

Standardni paralelni port(Standardni paralelni port - SPP) je predstavljen na zadnjoj strani računara sa 25-pinskim ženskim konektorom tipa D sa rupama. Tipično, kabl za ovaj konektor ima 34-pinski konektor na drugom kraju za povezivanje sa štampačem. Često se naziva paralelni port računara port za štampač(priključak za štampač). Ilustracija prikazuje konektore i kabl za povezivanje štampača. Na lijevoj strani je iglani konektor za PC paralelni port, a na desnoj je konektor za štampač.

Računar ima četiri kontrolne linije (CONTROL), pet statusnih linija (STATUS) i osam linija podataka (DATA) na konektoru. Date grupe signala dostupne su preko odgovarajućih registara, koji se često nazivaju luke... Preostalih osam pinova je uzemljeno.

Noviji paralelni portovi definisani su standardom IEEE 1284, koji je objavljen 1994. godine. Ovaj standard definiše pet načina rada:

    1. Režim kompatibilnosti.
    2. Način rada prijenosnih računala (Nibble Mode).
    3. Byte Mode.
    4. Poboljšani režim paralelnog porta EPP).
    5. Port mod s proširenim mogućnostima (Extended Capabilities Port - ECP).

Cilj standarda je bio razviti nove drajvere i uređaje koji su međusobno kompatibilni i kompatibilni sa standardnim paralelnim portom ( SPP). Kompatibilni, Notebook i Byte načini koriste standardna kola koja se nalaze na originalnim paralelnim portovima, dok EPP i ECP načini zahtijevaju dodatna kola koja su brža, ali i dalje kompatibilna sa standardnim paralelnim portom.

U načinu kompatibilnosti, ili Centronics način rada, kako se to obično naziva, moguće je prenijeti podatke samo u smjeru naprijed, tj. povući podataka, sa tipičnom brzinom od oko 50KB/s, ali su moguće veće brzine do 150KB/s. Da biste unijeli podatke, morate se prebaciti na način rada bilježnica ili bajtova. Režim prijenosnog računala dozvoljava enter tetrade (4 bita) od uređaja do računara. Byte mod koristi dvosmjernu mogućnost (nalazi se samo na nekim karticama) za unos bajtova (8 bitova).

EPP i ECP portovi koriste dodatna kola za kontrolu i generiranje rukovanja. Za izlaz bajta na pisač u načinu kompatibilnosti program treba uraditi sljedeće:

  1. Upišite bajt u podatkovni port.
  2. Proverite da li je štampač zauzet. Ako je štampač zauzet, ne prihvata nikakve podatke, tako da se gube svi podaci upisani na njega.
  3. Dajte stroboskopski signal (pin 1) nizak. Pokazuje štampaču da postoje validni podaci na linijama podataka (pinovi 2-9).
  4. Instaliraj visoki nivo strobe, čekajući oko 5 μs nakon formiranja niskog nivoa (u fazi 3).

Softverska kontrola izlaza ograničava brzinu standardnog paralelnog porta. Napredniji EPP i ECP portovi rješavaju ovaj problem tako što omogućavaju strujnim kolima da provjere da li je pisač zauzet i generira strobe i/ili odgovarajuće signale rukovanja. Zbog toga je potrebno izvršiti samo jednu izlaznu naredbu, što povećava brzinu rada. Novi portovi mogu da izlaze podatke brzinom od 1-2 MB/s. Osim toga, ECP port koristi direktan pristup memoriji ( DMA) i bafere FIFO(First In - First Out), tako da se podaci mogu prenijeti bez korištenja izlaznih naredbi.

Hardver

Sledeća tabela prikazuje pinoute za 25-pinski D-tip računarskog konektora i 34-pinski Centronics konektor koji se obično nalazi na štampačima. Međutim, IEEE 1284 standard definira tri različita konektora za korištenje s paralelnim portom. Prvi 1284 konektor tipa A je običan 25-pinski D-tip konektor. Drugi 36-pinski 1284 tip B konektor je Centronics konektor. Treći IEEE 1284 Type C konektor je 36-pinski konektor sličan Centronics konektoru, ali manji. Ima bolje učvršćenje, bolje električne parametre i lakše je spojiti kabel na njega. Dva dodatna signala mogu se koristiti za provjeru da li je uređaj uključen. Ovaj konektor je prepoznat kao obećavajući za upotrebu u novim dizajnima.

#contact
(D-25)
# kontakt (Centronics) SPP signal Smjer Registrirajte se Hardver
obrnuto
1 1 nStrobe Unesite izlaz Menadžment Da
2 2 Podaci 0 Izlaz Podaci
3 3 Podaci 1 Izlaz Podaci
4 4 Podaci 2 Izlaz Podaci
5 5 Podaci 3 Izlaz Podaci
6 6 Podaci 4 Izlaz Podaci
7 7 Podaci 5 Izlaz Podaci
8 8 Podaci 6 Izlaz Podaci
9 9 Podaci 7 Izlaz Podaci
10 10 nAck ulaz države
11 11 Zauzeto ulaz države Da
12 12 Paper-Out / Paper-End ulaz države
13 13 Odaberite ulaz države
14 14 nAuto-Linefeed Unesite izlaz Menadžment Da
15 32 nError / nFault ulaz države
16 31 nInicijalizirati Unesite izlaz Menadžment
17 36 nSelect-Printer / nSelect-In Unesite izlaz Menadžment Da
18 - 25 19-30 zemlja zemlja

Pismo n ispred naziva signala označava signal sa niskim nivoom aktivnosti, na primjer nError... Ako postoji greška u štampaču, ovaj red će biti nizak. Obično je na visokom nivou da ukaže na ispravno funkcionisanje štampača. Hardverski invertiran znači da je signal invertiran pomoću kola paralelnog porta. Primjer ovdje je linija Zauzeto... Ako je napon od +5 V (logika 1) primijenjen na ovoj liniji i čita se statusni registar, tada se ovaj nivo vraća kao 0 u bitu 7 statusnog registra.

Signali paralelnog porta su predstavljeni konvencionalnim TTL nivoima. Većina paralelnih portova je bazirana na ASIC-u koji potapa i izvor oko 12 mA. Međutim, druge vrijednosti se mogu pojaviti u referentnim podacima, na primjer Sink / Source 6 mA, Source 12 mA / Sink 20 mA, Sink 16 mA / Source 4 mA.

Linije podataka su pravi provodnici koji prenose informacije od računara do uređaja (i od uređaja do računara na novim portovima). Da bi se smanjili efekti smetnji, svaka linija podataka ima odgovarajuću liniju uzemljenja. Ove uzemljene linije takođe pružaju zajedničku električnu referencu između računara i uređaja. Preostale linije paralelne sa portom su dodijeljene za kontrolu i rukovanje.

Da bi se osiguralo da je štampač u poznatom početnom stanju, kompjuterski signal nInitialize stavlja štampač u stanje u kojem se nalazi nakon uključivanja. Stoga je inicijalizacija pisača signalom nInitialize ekvivalentna isključivanju i ponovnom uključivanju pisača.

Signal u liniji Select govori računaru da je periferija unutra online(online) i spreman za primanje podataka. Računar ne šalje podatke ako je nizak signal na liniji Select. Obično status ovog signala odgovara "on-line" indikatoru na štampaču.

Kada računar generiše validne signale podataka na linijama podataka, uređaj treba da prijavi da su podaci spremni. To je ono čemu je namijenjeno pulsni signal strobe nStrobe, koji bi trebao prisiliti uređaj da prihvati bajt podataka i pohrani ga u bafer za kasniju obradu.

Za postignuće velika brzina za prijenos podataka, pisaču je potrebna posebna metoda koordinacije prijenosa. Računar mora čekati između bajtova dok pisač ne bude spreman za nastavak primanja novih bajtova. Štampači koriste signal zauzeća da odlože računar dok štampač ne bude spreman da primi sledeći bajt. Štampač generiše visok nivo zauzetog signala kao odgovor na prijem nStrobe signala, i taj nivo ostaje sve dok se ne pripremi za prijem sledećeg bajta. Imajte na umu da signal zauzeća može odgoditi rad računara na bilo koji vremenski period ako dođe do ozbiljne greške, kao što je zaglavljivanje papira. Kada štampač obradi bajt, mora da zatraži od računara koji čeka sledeći bajt. Štampač uklanja signal zauzeća i izdaje kratki impuls za potvrdu nAck. Dakle, signali nStrobe, Busy i nAck kontrolišu (potvrđuju) prenos podataka u paralelnom portu.

U nekim štampačima, kontrolni znak za povratak (CR) automatski transportuje papir sljedeći red dok u drugima samo vraća kočiju na početak tekuće linije bez transporta papira. U mnogim štampačima, bilo koja od ovih opcija može se podesiti prekidačem, ali to takođe možete kontrolisati pomoću nAuto-LineFeed signala. Nizak nivo ovog signala uzrokuje da štampač automatski transportuje papir red po red kada se primi kontrolni znak CR.

Linija nSelect-Printer omogućava računaru da daljinski prebaci periferni uređaj na mrežu ili van mreže. Većina paralelnih portova drži ovu liniju na niskom nivou tako da će uređaj automatski osjetiti podatke. Visok signal na ovoj liniji inhibira rad uređaja. Signal nError sa perifernog uređaja obavještava računar da postoji problem koji sprečava štampanje, ali ga ne objašnjava. Greška može biti uzrokovana mnogim razlozima, čiji detalji ovise o perifernom uređaju. Obično signal nError "prikuplja" situacije kao što su odsustvo papira (ovaj razlog je određen signalom Paper Out), prisustvo štampača u offline(offline mod) ili interni kvarovi kola štampača.

Centronics interfejs

Centronics je stari standard (često se naziva interfejs i protokol) za prenos podataka sa računara (host) na štampač. Potvrda ovog standarda se koristi u većini štampača i obično se implementira u softver. Na slici je prikazan pojednostavljeni dijagram Centronics protokola.

Prvo se podaci šalju na pinove 2-9 paralelnog porta. Domaćin tada provjerava da li je štampač zauzet, tj. Zauzetost bi trebala biti niska. Nakon toga, program izdaje strobe, čeka najmanje 1 μs i uklanja strobe. Podatke obično čita uređaj na uzlaznoj ivici stroboskopa. Štampač pokazuje da je zauzet obradom podataka na liniji Zauzeto. Kada štampač primi podatke, on potvrđuje bajt negativnim impulsom od oko 5 μs na nAck liniji.

Često, kako bi uštedio vrijeme, domaćin ignoriše signal na nAck liniji. Kada se razmatra port sa proširenim ECP mogućnostima, biće prikazana implementacija Fast Centronics Mode (Fast Centronics Mode), u kojem se rukovanje izvodi shematski. Programer treba samo da upiše bajt podataka na I/O port. Kola provjeravaju da li je pisač zauzet i generiraju stroboskop. Imajte na umu da se u ovom režimu nAck linija ne nadgleda.

Adrese portova

Paralelni port ima tri zajedničke osnovne adrese, koje su prikazane u sljedećoj tabeli. Osnovna adresa 3BCh je prvobitno uvedena za paralelne portove na ranim grafičkim karticama. Nakon što su paralelni portovi uklonjeni sa video kartica, ova adresa je nestala. Kasnije se pojavio kao opcija za paralelne portove integrisane u matične ploče, gde se konfiguracija može promeniti pomoću BIOS-a. LPT1 imenu se obično dodeljuje bazna adresa 378h, a LPT2 se obično dodeljuje bazna adresa 278h. Međutim, dalje se pokazuje da to nije uvijek slučaj. Adrese 378h i 278h se skoro uvek koriste za paralelne portove, ali se mogu razlikovati od računara do računara.

Kada je računar uključen, BIOS detektuje broj dostupnih portova i imenuje ih LPT1, LPT2 i LPT3. BIOS prvo gleda na 3BCh. Ako se tamo pronađe paralelni port, on se zove LPT1 i tada se provjerava adresa 378h. Ako se tamo pronađe paralelni port, dodjeljuje mu se sljedeće slobodno ime... Biće LPT1 ako nije pronađena kartica na adresi 3BCh, ili LPT2 ako je kartica pronađena. Port u 278h se provjerava na isti način. Kao rezultat, moguće je imati LPT2 na 378h umjesto očekivanih 278h.

Situacija je komplicirana činjenicom da neki proizvođači kartica za paralelne portove postavljaju kratkospojnike koji vam omogućavaju da konfigurirate port na LPT1, LPT2, LPT3. Koja je sada adresa LPT1? Većina kartica ima LPT1 na 378h i LPT2 na 278h, ali neke koriste 3BCh kao LPT1, 378h kao LPT1 i 278h kao LPT2.

Za interfejs sa portom, osnovna adresa se često koristi umesto imena, umesto LPT1 i drugih imena.Tabela adresa porta se nalazi u oblasti podataka BIOS-a. Kada BIOS dodijeli adrese uređajima pisača, pohranjuje adrese na određene memorijske lokacije kako bi se tamo mogle pronaći. Bilješka * : U novijim BIOS-ima, adresa 0000: 040E iz područja podataka BIOS-a može se koristiti kao prošireno područje podataka BIOS-a.

Standardni softverski registri paralelnog porta (portovi)

Port za podatke

Bias Ime Čitaj / piši Bits Imenovanje
Baza + 0 Data port Pisati ( * ) Bit 7 - 0Podaci 7 - 0

Bilješka * : Ako je port dvosmjeran, tada su dozvoljene operacije čitanja (unosa) i pisanja (izlaza).

Osnovna adresa, koja se obično naziva data port ili registar podataka, se jednostavno koristi za izlaz podataka na linijama podataka (pinovi 2-9) paralelnog porta. Obično je ovaj registar samo za pisanje. Prilikom čitanja sa porta, ubacuje se posljednji preneseni bajt. U slučaju dvosmjernog porta (vidi dolje), primljeni podaci se nalaze na ovoj adresi.

Status port

Statusni port je samo za čitanje, tako da se svi podaci upisani u njega zanemaruju. Port ima pet ulaznih linija (pinovi 10, 11, 12, 13 i 15), bit zahtjeva za IRQ prekidom i dva rezervirana bita. Bit 7 (zauzeto) je ulaz niske aktivnosti, tj. ako bit 7 sadrži 0, onda pin 11 ima napon od +5 V. Isto vrijedi i za bit 2 (nIRQ) - ako bit sadrži 1, onda se prekid nije dogodio.

Upravljačka luka

Port za upravljanje (bazna adresa + 2) je bio samo za pisanje. Kada je povezan na paralelni port štampača, koriste se četiri kontrolna signala: Strobe (bit 0), Auto Linefeed (bit 1), Reset inicijalizacija (bit 2) i Select Printer (bit 3). Svi ovi signali osim Resetovanja su invertirani.

Štampač ne daje signal za inicijalizaciju računara i ne govori računaru da koristi automatsko pomeranje linije. Međutim, gornja četiri izlaza se mogu koristiti za ulaz. Ako računar gurne pin visoko (+5 V), a uređaj želi da ga spusti na nisko, port se kratko spaja, što uzrokuje konflikt. Stoga su ovi izlazi dizajnirani kao "otvoreni kolektor". Imaju dva stanja: nisku (0 V) i visoku impedanciju (otvoren krug).

Kartica štampača obično ima unutrašnje otpornike za povlačenje, ali ih nemaju sve kartice. Neke kartice su samo otvoreni kolektorski izlazi, dok su druge konvencionalni push-pull (totem) izlazi. Eksterni otpornik se može koristiti kako bi se omogućilo da uređaj ispravno funkcionira sa što više portova za pisač. Ako već postoji unutrašnji otpornik, onda vanjski otpornik djeluje paralelno s njim, au slučaju push-pull izlaza, kao opterećenje.

Vrijednost eksternog otpornika je obično 4,7 kΩ. Nije preporučljivo koristiti manji otpornik jer na kartici može biti interni otpornik. U stanju visoke impedancije, pin paralelnog porta je visok na +5 V. U ovom stanju, vanjski uređaj može postaviti pin na nisku vrijednost i uzrokovati da kontrolni port očita drugačiju vrijednost. Ovo omogućava da se četiri pina kontrolnog porta koriste za dvosmjerni prijenos podataka. Međutim, da biste čitali podatke kroz kontrolni port, morate ga postaviti na xxxx0100 tako da svi pinovi imaju +5 V i da uređaj može postaviti niski nivo (uzemljenje - logička 0).

Bitovi 4 i 5 su za internu kontrolu. Bit 4 omogućava zahtjev za IRQ prekidom (vidi dolje), a bit 5 omogućava dvosmjerni port, tj. 8 bitova se može uneti na DATA linije 0-7. Ovaj način rada je moguć samo ako ga kartica podržava. Bitovi 6 i 7 su rezervisani, svako upisivanje u ove bitove se zanemaruje.

Dvosmjerni portovi

Sljedeći dijagram prikazuje pojednostavljeni prikaz registra podataka paralelnog porta. Originalne paralelne port kartice su zasnovane na logici porodice 74LS. Sada se primjenjuje specijalizovana mikro kola, ali principi rada ostaju isti.

Portovi koji nisu dvosmjerni se izdaju sa signalom za omogućavanje izlaza nOE 74LS374 je trajno spojen na masu, tako da port za podatke ima samo pin. Kada se čitaju iz registra podataka, podaci se preuzimaju iz kola 74LS374, koje je također povezano na pinove podataka. Ako onemogućite šemu 74LS374, možete dobiti dvosmjerni port.

U dvosmjernim portovima, bit 5 kontrolnog registra je povezan na ulaz kako bi se omogućio izlaz. nOE 74LS374 kola tako da izlazni drajveri mogu biti onemogućeni (onemogućeni). U ovom slučaju možete čitati podatke sa pinova podataka paralelnog porta bez sukoba.

Bit 5 kontrolnog registra omogućava ili onemogućuje dvosmjerni rad paralelnog porta. Radi samo za prave dvosmjerne portove. Kada je ovaj bit postavljen na 1, pinovi 2-9 se dovode u stanje visoke impedanse. U ovom stanju možete unijeti podatke na ovim linijama i pročitati njihov port podataka (baznu adresu). Podaci upisani u port se čuvaju, ali nisu dostupni na kontaktima za podatke. Da biste onemogućili dvosmjerni način rada, bit 5 kontrolnog porta mora biti obrisan na 0.

Međutim, ne djeluju svi portovi na isti način. Neki portovi mogu zahtijevati da se bit 6 kontrolnog porta postavi da omogući dvosmjerni način rada i bit 5 da ga onemogući. Razni proizvođači drugačije implementiraju svoje dvosmjerne portove. Ako trebate koristiti dvosmjerni port za unos podataka, prvo provjerite da li je port dvosmjeran pomoću logičke sonde ili multimetra.

Korištenje paralelnog porta za unos osam bitova

Ako paralelni port ne podržava dvosmjerni način rada, još uvijek možete unijeti do devet bitova. Da biste to učinili, možete koristiti pet ulaznih linija statusnog porta i četiri ulazne linije (otvoreni kolektor) kontrolnog porta prema sljedećem dijagramu.

Ulazi paralelnog porta su odabrani kako bi se pojednostavile veze. Signal zauzeća je najznačajniji bit od 7 statusnog porta, a slijede ga Ack, Paper Out i Select signali statusnog porta, formirajući gornji grickanje. Crtice označavaju koji su ulazi hardverski invertirani, tj. +5 V se čita kao logički 0, a 0 V kao logički 1. Statusni port ima samo jedan invertirani ulaz.

Najmlađi grickanje se čita sa kontrolnog porta (Select Printer, Init, Auto Linefeed, Strobe). Ovdje se koriste pretvarači s otvorenim kolektorom. Ovo može zahtijevati 4.7k pull-up otpornike.

Način rada za prijenosno računalo

Način grickanja je preferirani način za unos osam bitova podataka bez stavljanja porta u inverzni način rada i korištenja podatkovnih linija. Ovaj način rada je najlakši za implementaciju. Multiplekser (četvorostruki 2:1) koristi se za sekvencijalno čitanje bilježnica. Spajanje bilježnica u bajtove se vrši programski. Naravno, ova metoda je nešto sporija od prethodnih. Ovdje čitanje jednog bajta zahtijeva više I/O komandi i zahtijeva eksterno mikrokolo.

Multiplekser 74LS157 radi jednostavno kao četiri prekidača. Kada je ulaz A / B = 0 (niski), biraju se ulazi A, tj. ulaz 1A se prenosi na izlaz 1Y, ulaz 2A na izlaz 2Y, itd. Kada je ulaz A / B = 1 (visok), biraju se ulazi B. Y izlazi su povezani na statusni port paralelnog porta tako da su registar visokog reda statusnog registra. Iako je takva veza opciona, ona donekle pojednostavljuje program.

Korištenje IRQ prekida paralelnog porta

Zahtjev za prekidom paralelnog porta se ne koristi za DOS štampanje. Prekidi su dobri za uređaje čiji je trenutak aktiviranja nepoznat, na primjer, senzor visoke temperature... U ovom slučaju, efikasnije je raditi na prekidu nego periodično prozivati ​​senzor softverom. Osim toga, prekidi su posebno važni za operativni sistem koji obavlja više zadataka.

Obično je linija IRQ 5 ili IRQ 7 zahtjev za prekidom paralelnog porta, ali može biti različit. Moguće je da su prekidi na kartici potpuno onemogućeni ako se koristi samo za štampanje. Prekidi paralelnog porta se mogu omogućiti i onemogućiti korišćenjem bita 4 kontrolnog registra - omogućite IRQ preko Ack linije (Enable IRQ Via Ack Line). Omogućeni prekid se javlja kada nAck signal pređe sa niske na visoku (uzlaznu ivicu). Međutim, neke kartice pokreću prekid od visoke do niske.

Modovi paralelnog porta u BIOS-u

Većina paralelnih portova su sada portovi za više načina. Obično su softver konfigurisan za jedan od nekoliko režima korišćenjem BIOS procedura. Tipični načini rada:

    Režim štampača, koji se ponekad naziva i podrazumevani ili normalni režim
    Standardni i dvosmjerni (SPP)
    EPP1.7 i SPP način rada
    EPP1.9 i SPP način rada
    ECP mod
    ECP i EPP1.7 način rada
    ECP i EPP1.9 način rada

Printer Mode je najjednostavniji način rada - odgovara samo pinu standardnog paralelnog porta. Nedostaje mu dvosmjerna funkcionalnost, pa je bit 5 kontrolnog porta onemogućen. Standardni i dvosmjerni (SPP) je dvosmjerni način rada. U ovom načinu rada, bit 5 kontrolnog porta obrće smjer porta, tako da možete pročitati ulaznu vrijednost preko linija podataka.

EPP1.7 i SPP način rada je kombinacija EPP 1.7 (Enhanced Parallel Port) i SPP režima. Ovaj način rada omogućava pristup SPP registrima (registrima podataka, statusa i upravljanja) kao i pristup registrima EPP. U istom modu, možete promijeniti smjer porta pomoću bita 5 kontrolnog registra. Prva verzija EPP 1.7 možda nema Timeout bit.

EPP1.9 i SPP način rada slično prethodnom, ali se sada koristi EPP verzija 1.9. Pristup SPP registrima je i dalje omogućen ovdje, uključujući bit 5 kontrolnog porta. Ali ovaj način rada se razlikuje od EPP1.7 i SPP modovi tako da možete pristupiti bitu Timeout EPP porta.

ECP mod pruža port proširenih mogućnosti. Način rada ovog porta se tada može postaviti pomoću proširenog registra kontrole (ECR) ECP porta. Međutim, u ovom načinu rada, iz BIOS-a EPP mod(100) će biti nedostupno.

ECP i EPP1.7 način rada i ECP i EPP1.9 način rada pruža port s poboljšanim ECP mogućnostima kao u prethodnom načinu rada. ali EPP mod u ECR-u ECP porta je sada dostupan. V ECP i EPP1.7 način rada imate na raspolaganju EPP1.7 port i in ECP i EPP1.9 način rada- EPP1.9 port.

Razmatrani načini se konfigurišu preko BIOS-a. Korisnik se može ponovo konfigurirati sa svojim programom, ali učini ovo Nije preporuceno... Softverski registri na adresama 2FAh, 3F0h, 3F1h su namenjeni za pristup samo iz BIOS-a. Ne postoji standard za ove konfiguracijske registre, tako da aplikacija koja ih koristi postaje prenosiva.

Mnogo je bolje izabrati iz BIOS-a ECP i EPP1.7 način rada ili ECP i EPP1.9 način rada a zatim koristite ECP prošireni kontrolni registar da postavite režim paralelnog porta. U režimu EPP1.7 bilo je nekoliko problema vezanih za formiranje strobova podataka i adrese za pokretanje ciklusa bez obzira na stanja čekanja, tako da se ovaj režim sada ne primenjuje. Najbolje je postaviti paralelni port na ECP i EPP način rada 1.9.

Režimi paralelnog porta i ECP kontrolni registar proširenog porta

Prethodno je pokazano da je preporučljivo postaviti paralelni port na ECP i EPP1.9 način rada a zatim koristite prošireni kontrolni registar ECP porta za odabir različiti načini rada rad. ECP registre portova standardizuje Microsoft.

Bits Funkcija
7:5
000 Standardni način rada
001 Byte mod
010
011 ECP FIFO način rada
100 EPP mod
101 Rezervirano
110 FIFO režim testiranja
111 Configuration Mode
4 ECP bit prekida
3 DMA bit za omogućavanje
2 ECP servisni bit
1 FIFO je pun (pun)
0 FIFO prazan

Prilikom instaliranja ECP mod novi set registara je dostupan na bazi + 400h. Detaljno razmatranje ovoga je dato u materijalu o ECP portu, ali ovdje nam je potreban samo prošireni kontrolni registar na bazi + 402h. Format ovog registra prikazan je u tabeli sa leve strane. Imajte na umu da ECP registri nisu dostupni za port sa baznom adresom 3BCh.

Za sada nas zanimaju samo tri najznačajnija bita proširenog upravljačkog registra, koji određuju način rada. Postoji sedam mogućih načina rada, ali ne podržavaju svi portovi sve načine rada. Na primjer, neki portovi nisu podržani EPP mod... Sljedeća tabela daje detaljnije informacije o načinima rada.

Načini rada

Standardni način rada
Byte mod
Paralelni port FIFO mod
ECP FIFO način rada
EPP mod / Rezervirano Prema Proširene mogućnosti Port protokol i ISA Interface Standard
RezerviranoRezervisano za sada. - Prema
FIFO režim testiranja
Configuration Mode

Ako je ECP režim postavljen u BIOS-u ili je kartica konfigurisana na ECP, preporučuje se inicijalizacija ECP porta u unapred definisano stanje pre upotrebe. Kada koristite SPP, prvi korak je postavljanje porta na standardni način rada. Ne može se pretpostaviti da je port već u standardnom (SPP) načinu rada.

U nekim režimima, SPP registri mogu nestati ili neće raditi ispravno. Kada koristite SPP, morate postaviti ECR registar na standardni način rada.

Poboljšani paralelni port (EPP)

Poboljšan paralelni port(Poboljšani paralelni port - EPP) koje su razvili Intel, Xircom i Zenith Data Systems... EPP portovi su prvo definisani u EPP 1.7, a zatim ugrađeni u IEEE 1284 (1994). EPP port ima dva standarda EPP 1.7 i EPP 1.9. Među njima postoje razlike koje mogu uticati na rad uređaja (pogledajte ispod). Brzine prijenosa podataka kreću se od 500 KB/s do 2 MB/s. To se postiže činjenicom da se rukovanje, strobiranje i druge operacije formiraju od strane portnih kola, a ne programski, kao u Centronics interfejsu.

Hobisti imaju tendenciju da češće koriste EPP port od porta proširenih mogućnosti (ECP). EPP port se razlikuje od ECP porta po tome što EPP port generiše i kontroliše sve prenose ka/sa perifernog uređaja. S druge strane, ECP port zahtijeva od periferije da potvrdi obrnutu vezu i kontroliše rukovanje. To je teško postići sa običnim ljudima. jednostavne šeme i potreban je namjenski kontroler ili ECP periferni čip.

Hardver

U EPP režimu, svakoj liniji su dodeljene različite funkcije i oznake kao što je prikazano u sledećoj tabeli.

Kontakt SPP signal EPP signal Unesite izlaz Funkcija
1 StrobePisati IzlazNizak nivo u ovoj liniji označava pisanje, a visoki nivo čitanje.
2-9 Podaci 0-7 Podaci 0-7Unesite izlaz Dvosmjerna sabirnica podataka.
10 Ack Prekiniulaz Prekidna linija. Do prekida dolazi na pozitivnoj (uzlaznoj) ivici.
11 Zauzeto Čekajulaz Koristi se za potvrdu. EPP ciklus može započeti na niskom nivou i završiti na visokom nivou.
12 Papir nestao/kraj Rezervniulaz
13 Odaberite Rezervniulaz Rezervirano - ne koristi se u EPP rukovanju.
14 Auto Linefeed Data strobeIzlaz Označava prijenos podataka na niskom nivou.
15 Greška / Greška Rezervniulaz Rezervirano - ne koristi se u EPP rukovanju.
16 Inicijaliziraj ResetovatiIzlaz Resetiranje niske aktivnosti.
17 Odaberite Printer Adresa StrobeIzlaz Kada je nizak, prikazuje prijenos adrese.
18-25 zemlja zemljaGNDzemlja

Paper Out, Select i Error signali nisu definirani u EPP rukovanju i korisnik može koristiti odgovarajuće linije po vlastitom nahođenju. Stanja ovih linija mogu se u svakom trenutku odrediti čitanjem statusnog registra. Nažalost, nema redundantnih izlaza, što može uzrokovati određene poteškoće.

Rukovanje EPP portom

Da biste izvršili ispravnu komunikaciju koristeći EPP port, mora se poštovati EPP rukovanje. Pošto se sve operacije izvode u kolu, samo hardver bi trebao koristiti rukovanje, a ne softver, kao što je slučaj sa SPP portom. Da bi pokrenuo EPP ciklus, program mora izvesti samo jednu I/O operaciju u odgovarajućem EPP registru (pogledajte dolje za više detalja).

EPP ciklus pisanja podataka

1. Program upisuje u EPP registar podataka (Baza + 4).
2. Generira se nizak nivo nWrite, što ukazuje na operaciju pisanja.
3. Podaci se postavljaju na podatkovne linije 0-7.
4. nData Strobe se izdaje ako je čekanje nizak (možete započeti petlju).

6. nData Strobe je uklonjen.
7. Ciklus pisanja EPP podataka završava.

Adresa za pisanje u EPP petlji

1. Program upisuje adresu u EPP adresni registar (Baza + 3).
2. Formira se nizak nivo Write signala, što ukazuje na operaciju pisanja.
3. Adresa se stavlja u liniju podataka 0-7.
4. Address Strobe se izdaje ako je Wait nizak (možete započeti petlju).
5. Računar čeka potvrdu - visok nivo na nWait (možete prekinuti ciklus).
6. nAddress Strobe je uklonjen.
7. Ciklus snimanja EPP adrese završava.

Ciklus čitanja EPP podataka

1. Program čita EPP registar podataka (Baza + 4).
2. nData Strobe se izdaje ako je Wait nizak (možete započeti petlju).


5. nData Strobe je uklonjen.
6. EPP ciklus čitanja završava.

Ciklus čitanja EPP adrese

1. Program čita registar EPP adresa (Baza + 3).
2. nAddr Strobe se izdaje ako je čekanje nizak (možete započeti petlju).
3. Računar čeka potvrdu - visok nivo na nWait.
4. Podaci se čitaju sa pinova paralelnog porta.
5. nAddr Strobe je uklonjen.
6. Ciklus čitanja EPP adrese se završava.

Bilješka Uz rukovanje EPP 1.7 (do IEEE 1284), potezi podataka i adrese mogu se izdati za početak ciklusa bez obzira na stanje čekanja. U standardu EPP 1.9, ciklus počinje samo kada je nivo čekanja nizak. I EPP 1.7 i EPP 1.9 zahtijevaju visok nivo čekanja da bi se ciklus prekinuo.

Registri softvera EPP porta

EPP port također ima novi skup registara, od kojih su tri naslijeđena od standardnog SPP paralelnog porta. Sljedeća tabela prikazuje nove i postojeće registre.

Kao što vidite, prve tri adrese su potpuno iste kao one u registrima portova SPP i funkcionišu na isti način. Stoga, kada koristite EPP port, možete poslati podatke na adresu Base + 0 na isti način kao u SPP. Kada povezujete štampač i koristite režim kompatibilnosti, morate da proverite da li je port zauzet, a zatim da treperite i otvorite strobe pomoću kontrolnih i statusnih portova, a zatim sačekate potvrdu.

Ako trebate komunicirati s uređajem kompatibilnim s EPP-om, samo trebate učitati prenesene podatke u EPP registar podataka na Base + 4 i kartica će generirati sve potrebne signale potvrde. Slično tome, ako je potrebno izdati adresu uređaju, koristite registar adresa EPP na Base + 3.

EPP adresa i registri podataka su čitljivi i upisivi, tako da se isti registri mogu koristiti za čitanje podataka sa uređaja. Međutim, EPP kartica pisača mora pokrenuti ciklus čitanja jer su i nData Strobe i nAddress Strobe izlazi. Uređaj može signalizirati zahtjev za čitanje s prekidom i uzrokovati Interrupt Service Routine (ISR) da izvrši operaciju čitanja.

Port statusa ima jednu manju modifikaciju. Bit 0, koji je rezerviran u registru SPP porta, sada je bit EPP timeout-a. Ovaj bit se postavlja kada dođe do isteka EPP porta. Ovo se dešava kada se signal na liniji nWait ne ukloni približno 10 µs (ovisno o portu) nakon izdavanja IOW ili IOR. IOW i IOR signalne linije za pisanje i čitanje I/O dostupne su na ISA magistrali.

EPP režim u velikoj meri zavisi od vremena ISA magistrale. Kada je ciklus čitanja u toku, port mora izvršiti odgovarajuće rukovanje Read/Write i vratiti podatke o tom ciklusu ISA magistrale. Naravno, to se ne dešava u jednom ISA ciklusu, tako da port koristi IOCHRDY (I/O Channel Ready) signal na ISA magistrali da uvede stanja čekanja prije nego što se ciklus završi. Šta se sada dešava ako se pokrene EPP port Read ili Write, a periferni uređaj nije povezan?. Port nikada neće primiti potvrdu (nWait) i nastavit će čekati zahtjeve stanja dok je računar blokiran. Stoga se čuvarski tajmer održava u EPP portu, koji je postavljen na oko 10 µs.

Tri registra sa adresama Base + 5, Base + 6 i Base + 7 mogu se koristiti za 16- i 32-bitne operacije čitanja i pisanja, ako ih port podržava. Ovo može smanjiti broj I/O operacija. Paralelni port može prenositi samo osam bitova odjednom, tako da se 32- ili 16-bitna riječ zapisana u paralelu dijeli na bajtove i prenosi preko osam linija podataka porta.

Funkcije programiranja EPP porta

EPP port ima samo dva glavna registra i zastavicu timeouta. Šta morate da konfigurišete? Prije nego što se bilo koji ciklus EPP porta može pokrenuti čitanjem i pisanjem na portove podataka i EPP adrese, port mora biti pravilno konfiguriran. Kada je u stanju mirovanja, EPP će imati pasivne (visoke) linije nAddress Strobe, nData Strobe, nWrite i nReset. Neki portovi zahtijevaju ovo podešavanje prije pokretanja bilo kojeg EPP ciklusa. Stoga je prvi zadatak ručno inicijalizirati ove linije koristeći SPP registre portova. Da biste to učinili, upišite XXXX0100 kod na port za upravljanje.

Na nekim karticama, ako je paralelni port postavljen na inverzni način rada, EPP ciklus pisanja se ne može izvesti. Stoga je preporučljivo staviti EPP port u direktan način rada prije korištenja. Brisanje bita 5 u kontrolnom registru trebalo bi da rezultira ispravnim radom.

Već smo razgovarali o bitu isteka EPP porta. Kada je ovaj bit postavljen, port možda neće raditi ispravno. Stoga se preporučuje da uvijek čitate FFh u ciklusu adrese ili podataka. Ovaj bit mora biti očišćen radi pouzdanog rada i mora se kontinuirano nadzirati.

Port proširenih mogućnosti (ECP)

Napredni režim su razvili Hewlett-Packard i Microsoft za implementaciju kao Proširene mogućnosti Port protokol i ISA Interface Standard... Ovaj protokol koristi dodatna kola za generiranje signala rukovanja na isti način kao u EPP načinu rada, i radi brže od EPP porta. Međutim, ovaj način rada bolje funkcionira pod Windowsom, jer može koristiti kanale direktnog pristupa memoriji (DMA) za prijenos podataka. Takođe koristi FIFO bafer za primljene i prenete podatke.

Još jedna karakteristika ECP-a je kompresija podataka u realnom vremenu. Algoritam Run Length Encoding (RLE) pruža omjere kompresije do 64:1. Ovo je korisno za skenere i štampače gde je veliki deo podataka u nizovima koji se ponavljaju.

ECP port podržava metod adresiranja kanala. Nije predviđeno da se koristi u lančanom lancu uređaja, ali omogućava adresiranje više uređaja unutar jednog uređaja. Primjer su mnoge moderne faks mašine koje uključuju paralelni port za interfejs sa računarom. Faks mašina se može podijeliti na zasebne uređaje kao što su skener, modem/faks i pisač, a svakoj komponenti se može posebno adresirati, čak i ako drugi uređaji ne mogu čitati podatke zbog punog bafera.

Hardver

Iako portovi ECP štampača koriste isti D25 konektor kao standardni paralelni port (SPP), ECP port dodeljuje različite funkcije pinovima (kao i EPP port). Stoga, sučelje ECP porta koristi drugačiju metodu rukovanja.

ECP port je unatrag kompatibilan sa SPP i EPP portovima. Kada rade u SPP režimu, pojedinačne linije funkcionišu isto kao u SPP portu i nazivaju se Strobe, Auto Linefeed, Init, Busy, itd. Kada rade u EPP modu, linije obavljaju funkcije u skladu s metodom opisanom u protokolu EPP porta, a koristi se drugačija metoda rukovanja. Kada je port u ECP modu, linije su definirane na sljedeći način.

Kontakt SPP signal ECP signal Unesite izlaz Funkcija
1 Strobe HostCLKIzlaz Nizak nivo na ovoj liniji ukazuje da host ima važeće podatke. Kada se ovaj signal ukloni, pozitivnu ivicu sinhronizacije treba koristiti za zamrzavanje podataka u uređaju.
2-9 Podaci 0-7 Podaci 0-7Unesite izlaz Dvosmjerna sabirnica podataka.
10 Ack PeriphCLKulaz Nizak nivo na ovoj liniji označava da uređaj ima validne podatke. Kada se ovaj signal ukloni, pozitivnu ivicu sata treba koristiti za zamrzavanje podataka na hostu.
11 Zauzeto PeriphAckulaz U obrnutom smjeru, visoki nivo označava ciklus podataka, a nizak nivo označava ciklus komandi. U smjeru naprijed djeluje kao PeriphAck.
12 Papir nestao/kraj nAckReverseulaz Uređaj potvrđuje Obrnuti zahtjev sa niskim nivoom.
13 Odaberite X-Flagulaz Zastava proširenja.
14 Auto Linefeed Host ackIzlaz U smjeru naprijed, visoki nivo označava ciklus podataka, a nizak nivo označava ciklus komandi. U suprotnom smjeru, djeluje kao HostAck.
15 Greška / Greška PeriphRequestulaz Instalirano po uređaju nizak nivo ukazuje na dostupnost inverznih podataka.
16 Inicijaliziraj nReverseRequestIzlaz Nizak nivo označava prenos podataka u obrnutom smeru.
17 Odaberite Printer 1284 AktivanIzlaz Visok nivo ukazuje da host radi u 1284 Transfer Modu. Nizak nivo prekida ovaj način rada.
18-25 zemlja zemljaGNDzemlja

Signali na linijama HostAck i PeriphAck pokazuju da li su podaci ili komanda na sabirnici podataka 0-7. Ako su ove linije visoke, postoje podaci na sabirnici podataka (pinovi 2-9). Ako se implementira komandni ciklus, tada će odgovarajuća linija biti niska; ako, na primjer, host izda naredbu, tada će linija HostAck biti niska, a ako uređaj izda naredbu, tada će linija PeriphAck biti niska.

Komandni ciklus može biti jedan od dva - RLE brojač ili adresa, koja je određena bitom 7 linija podataka (pin 9). Ako bit 7 sadrži 0, tada je ostatak podataka (bitovi 0-6) RLE brojač dužine koji se koristi u algoritmu kompresije. Ali ako bit 7 sadrži 1, tada su podaci u bitovima 0-6 adresa kanala. Ako nedostaje jedan bit, broj može biti samo vrijednost od 0 do 127.

Rukovanje ECP portom

Rukovanje ECP portom se razlikuje od rukovanja SPP porta. Najočiglednija razlika je u tome što ECP port može prenositi podatke u bilo kojem smjeru u bilo koje vrijeme, a to zahtijeva dodatnu signalizaciju. Zatim se razmatra potvrda ECP porta za smjer naprijed i nazad.

ECP direktna petlja podataka


2. Host tada prikazuje ciklus podataka dajući nizak HostAck signal.

4. Periferni uređaj izdaje svoju potvrdu valjanosti izdavanjem PeriphAck signala.
5. Host daje visok HostClk signal. Pozitivna ivica se koristi za zamrzavanje podataka na periferiji.
6. Periferni uređaj izdaje bajt potvrde, uklanjajući PeriphAck signal.

ECP komandna petlja naprijed

1. Host stavlja podatke na liniju podataka.
2. Host tada prikazuje komandnu petlju, uklanjajući HostAck.
3. Host pokazuje valjanost podataka generiranjem niskog HostClk signala.
4. Periferni uređaj izdaje validnu potvrdu podataka generiranjem PeriphAck signala.
5. Domaćin povlači HostClk signal visoko. Pozitivna ivica se koristi za zamrzavanje podataka na periferiji.
6. Uređaj izdaje bajt potvrde, uklanjajući PeriphAck signal.

ECP podaci inverzni




4. Uređaj zatim bira ciklus podataka generisanjem visokog PeriphAck signala.




Inverzni ciklus ECP naredbe

1. Domaćin postavlja nizak signal nReverseRequest kako bi zatražio inverzni kanal.
2. Periferni uređaj potvrđuje zahtjev inverznog kanala izdavanjem niskog nAckReverse signala.
3. Uređaj stavlja podatke na podatkovnu liniju.
4. Uređaj zatim bira ciklus komande generisanjem niskog PeriphAck signala.
5. Uređaj prikazuje važeće podatke sa niskim PeriphClk signalom.
6. Host izdaje svoju potvrdu valjanosti sa visokom snagom HostAck signala.
7. Uređaj postavlja PeriphClk signal visoko. Pozitivna ivica se koristi za predaju podataka hostu.
8. Host izdaje svoj bajt potvrde, generirajući nizak HostAck signal.

Poređenje ECP i SPP rukovanja

SPP rukovanje portom sastoji se od samo pet koraka:

  1. Upišite bajt u podatkovni port.
  2. Proverite da li je štampač zauzet. Ako je štampač zauzet, neće prihvatiti nikakve podatke, tako da se gube svi podaci koji se upisuju.
  3. Generirajte nizak nivo Strob signala (pin 1). Kaže štampaču da postoje ispravni podaci na linijama podataka (iglice 2-9).
  4. Nakon otprilike 5 μs, formirajte visok nivo Strobe signala.
  5. Provjerite Ack potvrdu sa uređaja.

S druge strane, potvrda ECP porta zahtijeva više koraka. Stoga se čini da će ECP port biti sporiji od SPP porta. Međutim, to nije slučaj, jer je kontrola svih faza rukovanja implementirana u šematskom obliku. Da je rukovanje implementirano u softveru, bilo bi znatno sporije od rukovanja SPP porta.

RLE kodiranje

Ranije je ukratko rečeno da protokol ECP porta uključuje jednostavan algoritam kompresije za Run Length Encoding ( RLE). Pruža maksimalni omjer kompresije do 64:1 i radi tako što šalje duple bajtove kao segmentne brojače i jednu kopiju bajta. Brojač segmenta određuje koliko puta sljedeći bajt treba ponoviti.

Ako se, na primjer, prenosi niz od 25 slova "A", tada se prvi mora prenijeti bajt brojača segmenta jednak 24, a zatim bajt "A". Prijemni uređaj, nakon što primi Run Length Count, će produžiti (ponoviti) sljedeći bajt koliko puta odredi brojač.

Bajt brojača preseka mora se razlikovati od ostalih bajtova u putanji podataka. Šalje se kao naredba na Address FIFO Port. Bajtovi koji se šalju u ovaj registar mogu biti brojač dužine segmenta ili adresa. Razlikuju se po najznačajnijem bitu 7. Ako bit 7 sadrži 1, tada je preostalih sedam bitova (0-6) adresa kanala. Ako je bit 7 postavljen na 0, tada je najmanje značajnih sedam bitova brojač dužine segmenta. U ovom slučaju, adrese kanala i brojači dužine segmenta ograničeni su na sedam bitova (vrijednosti od 0 do 127).

Registri softvera ECP porta

Sljedeća tabela navodi registre ECP portova. Prva tri registra su ista kao i SPP port registri. Imajte na umu, međutim, da se pojavljuje bit za omogućavanje dvosmjernog porta (bit kontrolnog porta 5). Ovaj bit pokazuje trenutni smjer ECP porta i utječe na FIFOpFull FIFOpEmpty bitove u ECR registru (vidi dolje).

Adresa Ime porta Čitaj / piši
Baza + 0 Port za podatke (SPP)Pisati
ECP FIFO adresa (ECP način rada)Čitaj / piši
Baza + 1Statusni port (svi načini) Čitaj / piši
Baza + 2Port za upravljanje (svi načini) Čitaj / piši
Baza + 400h FIFO podaci (paralelni port FIFO način rada) Čitaj / piši
FIFO podaci (ECP način rada) Čitaj / piši
FIFO provjera (test mod)Čitaj / piši
Registar konfiguracije A (režim konfiguracije) Čitaj / piši
Baza + 401hRegistar konfiguracije B (režim konfiguracije) Čitaj / piši
Baza + 402h Prošireni kontrolni registar (koristi ga svi načini rada) Čitaj / piši

Prošireni kontrolni registar (ECR)

Bit Funkcija
7:5 Odaberite trenutni način rada
000 Standardni način rada
001 Byte mod
010 Paralelni port FIFO mod
011 ECP FIFO način rada
100 EPP mod
101 Rezervirano
110 FIFO način provjere
111 Configuration Mode
4 ECP bit prekida
3 DMA bit za omogućavanje
2 ECP servisni bit
1 FIFO Full
0 FIFO Empty

Najvažniji registar ECP porta je prošireni kontrolni registar ( ECR), pa prvo razmotrimo kako to funkcionira. Ovaj registar određuje u kom načinu će ECP port raditi, a također postavlja stanje FIFO bafera. Funkcije ovog registra prikazane su u sljedećoj tabeli.

Tri najznačajnija bita proširenog kontrolnog registra određuju način rada. Postoji sedam mogućih načina rada, ali ne podržavaju svi portovi sve načine rada. Na primjer, neki portovi nisu podržani EPP mod... Sljedeća tabela daje detaljnije informacije o načinima rada.

Standardni način rada Postavljanje ovog načina uzrokuje da ECP port djeluje kao standardni paralelni port bez dvosmjerne mogućnosti.
Byte mod Djeluje kao SPP u dvosmjernom načinu rada. Bit 5 stavlja port u inverzni mod.
Paralelni port FIFO mod U ovom načinu rada, svi podaci upisani u FIFO podataka bit će poslani na periferiju korištenjem SPP rukovanja. Neophodna potvrda se implementira u kolu. Ovaj način rada je koristan za ne-ECP uređaje kao što su štampači. Obezbeđene su neke ECP mogućnosti, kao što su FIFO baferi i generisanje kola za rukovanje, ali sa SPP rukovanjem, a ne ECP rukovanjem.
ECP FIFO način radaStandardni način rada za ECP port. ECP rukovanje se koristi u ovom načinu rada. - Kada je ECP mod postavljen preko BIOS-a i ECR registar je postavljen na ECP FIFO Mode (011), SPP registri mogu nestati.
EPP mod / Rezervirano EPP način rada je omogućen ako je dostupan. U BIOS-u, ako je ECP režim postavljen, više je nego verovatno da ovaj režim nije opcija. Ali ako je BIOS postavljen na ECP i EPP1.x način rada, tada će EPP 1.x biti omogućen. - Prema Proširene mogućnosti Port protokol i ISA Interface Standard ovaj način je specifičan za dobavljača.
RezerviranoRezervisano za sada. - Prema Proširene mogućnosti Port protokol i ISA Interface Standard ovaj način je specifičan za dobavljača.
FIFO režim testiranjaU ovom režimu, svi podaci upisani u testni FIFO registar biće smešteni u FIFO, a svi podaci pročitani iz testnog FIFO registra biće pročitani iz FIFO bafera. Bitovi statusa FIFO Full/Empty će ih odražavati. pravo značenje, dakle, u ovom modu, možete definirati neke karakteristike FIFO-a, kao što je njegova dubina.
Configuration ModeU ovom modu, dva konfiguracijska registra cnfgA i cnfgB postaju dostupna na svojim adresama.

Kao što je ranije prikazano, kada je port podešen da radi standardni način rada, djeluje kao SPP port bez dvosmjernog prijenosa podataka. Ako je potreban dvosmjerni prijenos, mora se postaviti bajt mod. Paralelni portovi FIFO i ECP FIFO načini koriste kola za generiranje potrebnih signala rukovanja. Jedina razlika između njih je ta što paralelni port FIFO koristi SPP rukovanje i može se koristiti sa SPP štampačem. ECP FIFO način rada koristi rukovanje ECP portom.

Način provjere FIFO se može koristiti za testiranje kapaciteta FIFO bafera i za provjeru da oni ispravno funkcionišu. U ovom režimu, svaki bajt koji je upisan u TEST FIFO registar (Baza + 400h) stavlja se u FIFO bafer, a svaki bajt pročitan iz ovog registra uzima se iz FIFO bafera. Ovo se može koristiti zajedno sa bitovima FIFO Full i FIFO Empty proširenog kontrolnog registra ECR da bi se odredio kapacitet FIFO bafera. Dubina FIFO je obično oko 16 bajtova.

Ostali bitovi ECR registra takođe igraju važnu ulogu u radu ECP porta. Bit prekida (bit 4) omogućava korištenje prekida, a bit za omogućavanje DMA (bit 3) omogućava korištenje direktnog pristupa memoriji. ECP servisni bit (bit 2) pokazuje da li je pokrenut zahtjev za prekid. Ako postoji, ovaj bit će biti postavljen. Ovaj bit se različito briše u različitim mikro krugovima. Neki zahtijevaju da obrišete bit, tj. upisati 0 u njega, dok se drugi resetuju kada se čitaju iz registra.

FIFO pun bit (bit 1) i FIFO prazan (bit 0) ukazuju na stanje FIFO bafera. Ovi bitovi zavise od smjera, tako da se mora uzeti u obzir bit 5 kontrolnog registra. Ako je postavljen bit 0 (FIFO Empty), onda je FIFO prazan, a ako je postavljen bit 1, onda je FIFO pun. Ako nijedan od ovih bitova nije postavljen, tada postoje podaci u FIFO, ali bafer još nije pun. Ovi bitovi se mogu koristiti u FIFO modu provjere za određivanje kapaciteta FIFO bafera.

Konfiguracijski registar A (cnfgA)

Registar konfiguracije A (cnfgA) je jedan od dva registra konfiguracije ECP porta. Konfiguracijski registri su dostupni samo u konfiguracijskom modu. Adresa registra cnfgA je Base + 400h. Format registra cnfgA prikazan je u sljedećoj tabeli.

Bit Funkcija
7 1 Prekidi se aktiviraju nivoom
0 Prekidi se okidaju na ivici
6:4 00h Prihvata riječi širine od max. 16 bita
01hPrihvata riječi širine od max. 8 bita
02hPrihvata riječi širine od max. 32 bit
03h: 07hRezervisano za proširenje
3 Rezervirano
2 Oporavak hosta: bajt cjevovoda/predajnika uključen u FIFO?
0 U smjeru naprijed, jedan bajt u cjevovodu odašiljača ne utiče na FIFO Full.
1 U smjeru naprijed, jedan bajt u cjevovodu predajnika se računa kao dio FIFO punog.
1:0 Oporavak hosta: Neposlani bajtovi su ostali u FIFO
00 Puna riječ
01 1 važeći bajt
10 2 dva važeća bajta
11 3 važeća bajta

Konfiguracijski registar A može se pročitati za dodatne informacije o ECP-u. Bit 7 pokazuje da li kartica generiše prekide nivoa ili ivice. Zavisi od vrste sabirnice koju koristi kartica. Bitovi 6: 4 pokazuju širinu magistrala unutar kartice. Neke kartice koriste samo 8-bitnu putanju podataka, dok druge koriste 16- ili 32-bitnu. Primiti maksimalna efikasnost sa kartice, program mora pročitati stanje ovih bitova da bi utvrdio maksimalna veličina riječ koja se izlazi na port.

Tri najmanje značajna bita se koriste za oporavak hosta. Da bi se oporavio od greške, program treba da zna koliko je bajtova prebačeno, određujući da li je ostalo bajtova u FIFO. Neke implementacije mogu uzeti u obzir bajtove na čekanju u registru predajnika kao dio FIFO punog stanja, dok druge ne. Bit 2 određuje određenu situaciju.

Drugi problem je što je izlaz paralelnih portova širok samo osam bita, a program može koristiti 16- ili 32-bitne I/O komande. U ovom slučaju, dio riječi porta može biti poslan. Stoga, bitovi 0 i 1 označavaju broj važećih bajtova preostalih u FIFO i mogu se ponovo prenijeti.

Registar konfiguracije B (cnfgB)

Konfiguracijski registar B, kao i registar konfiguracije A, dostupan je samo u konfiguracijskom modu. Njegova adresa u ovom režimu je Base + 401h. Format registra cnfgB prikazan je u sljedećoj tabeli.

Bit Funkcija
7 1 Komprimirajte izlazne podatke koristeći RLE algoritam
0 Nemojte komprimirati podatke
6 Status prekida - prikazuje se Trenutna drzava IRQ kontakt
5:3 Odabire ili prikazuje stanje linije zahtjeva za IRQ prekidom.
000 Prekid odabran sa kratkospojnikom
001 IRQ 7
010 IRQ 9
011 IRQ 10
100 IRQ 11
101 IRQ 14
110 IRQ 15
111 IRQ 5
2:0 Bira ili prikazuje stanje DMA kanala koji koristi kartica štampača
000 Koristi 8-bitni DMA kanal odabran skakačem
001 DMA kanala 1
010 Kanal 2 DMA
011 Kanal 3 DMA
100 Koristi 16-bitni DMA kanal odabran skakačem
101 Kanal 5 DMA
110 Kanal 6 DMA
111 Kanal 7 DMA

Konfiguracijski registar B (cnfgB) može biti kombinacija pristupa čitanju i pisanju. Neki portovi su softverski konfigurisani sa IRQ i DMA resursima koji su postavljeni iz registra. Drugi se mogu konfigurisati preko BIOS-a ili preko džampera na kartici, tako da se registar može samo čitati.

Bit 7 određuje da li će ili ne komprimirati izlazne podatke koristeći RLE algoritam: 1 - host komprimira podatke prije prijenosa, 0 - podaci se prenose uređaju sirovo (nekomprimirano). Bit 6 vraća stanje IRQ pina. Može se koristiti za dijagnosticiranje sukoba, jer će pokazati ne samo IRQ status paralelnog porta, već i drugog uređaja koji koristi ovu IRQ liniju.

Bitovi 5: 3 označavaju status dodjele IRQ linije portu, a bitovi 2: 0 označavaju status dodjele DMA kanala portu. Kao što je ranije rečeno, ova polja se mogu čitati i pisati. Za skakačke ploče koje nestaju, ovi bitovi jednostavno označavaju resurse kao "Jumpered" ili ispravne brojeve linija. Naravno, u ovom slučaju se mogu samo čitati.

Top srodni članci