Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Zanimljiv
  • Koje su prednosti i nedostaci paralelnog porta. Paralelni portovi

Koje su prednosti i nedostaci paralelnog porta. Paralelni portovi

Uz paralelni port, COM port, ili serijski port, jedan je od tradicionalnih I/O portova računala, koji se koristio u prvim računalima. Iako u moderna računala COM port je ograničene upotrebe, međutim, informacije o njemu mogu biti korisne mnogim korisnicima.

Serijski port, kao i paralelni, pojavio se mnogo prije pojave osobnih računala IBM PC arhitekture. U prvim računalima COM port se koristio za povezivanje perifernih uređaja. Međutim, opseg njegove primjene bio je malo drugačiji od opsega paralelne luke. Ako se paralelni port koristio uglavnom za povezivanje pisača, tada se COM port (usput rečeno, COM prefiks je samo skraćenica za riječ komunikacija) obično koristio za rad s telekomunikacijskim uređajima kao što su modemi. Međutim, na priključak možete spojiti, na primjer, miš, kao i druge periferne uređaje.

COM port, glavna područja primjene:

  1. Priključak terminala
  2. ~ vanjski modemi
  3. ~ pisači i crtači
  4. ~ miševi
  5. Izravna veza dva računala

Trenutno je opseg COM porta značajno smanjen zbog uvođenja bržeg i kompaktnijeg, a usput i serijskog USB sučelja. Gotovo van upotrebe vanjski modemi, dizajniran za spajanje na port, kao i "COM" miševe. Rijetko tko sada spoji dva računala null modemskim kabelom.

Međutim, brojni specijalizirani uređaji još uvijek koriste serijski port. Možete ga pronaći i na mnogim matičnim pločama. Činjenica je da, u usporedbi s USB-om, COM port ga ima važna prednost- prema standardu serijskih podataka RS-232 može raditi s uređajima na udaljenosti od nekoliko desetaka metara, dok je domet USB kabela 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, a ne nekoliko istovremeno. Slijedovi bitova su grupirani u niz podataka, počevši s početnim bitom i završavajući sa stop bitom, te paritetnim bitovima koji se koriste za kontrolu pogrešaka. Odavde dolazi još jedan englesko ime koji ima serijski port - Serial Port.

Serijski port ima dvije linije kroz koje se prenose stvarni podaci - to su linije za prijenos podataka s terminala (PC) na komunikacijski uređaj i obrnuto. Osim toga, postoji još nekoliko kontrolnih linija. Serijski port opslužuje poseban UART mikro krug, 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. Osim toga, funkcija UART kontrolera je pretvaranje paralelnog u serijski kod i obrnuto.

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

Serijsko sučelje RS-232

Rad serijskog porta na računalu temelji se na RS-232 standardu serijske komunikacije. Ovaj standard opisuje proces razmjene podataka između telekomunikacijskog uređaja, kao što je modem i računalni terminal. Standard RS-232 definira električne karakteristike signala, njihovu namjenu, trajanje, kao i dimenzije konektora i pinout za njih. Istovremeno, RS-232 opisuje samo fizički sloj procesa prijenosa podataka i ne odnosi se na transportne protokole koji se koriste u ovom slučaju, a koji mogu varirati ovisno o korištenoj komunikacijskoj opremi i softveru.

Standard RS-232 stvoren je 1969. godine, a njegov Najnovija verzija, TIA 232, objavljen je 1997. RS-232 je sada zastario, ali ga većina operativnih sustava još uvijek podržava.

U modernim računalima, konektor serijskog porta 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čunalima. DB-9 konektor se obično nalazi na matična ploča PC, iako se u starijim računalima mogao nalaziti na posebnoj multi-kartici umetnutoj u utor za proširenje.

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

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

Za razliku od paralelnog priključka, konektori na obje strane dvostranog serijskog kabela su identični. Osim linija za prijenos podataka, port sadrži nekoliko servisnih linija kroz koje se između terminala (računala) i telekomunikacijskog uređaja (modema) može prenositi kontrolne informacije... Iako su teoretski za rad serijskog porta dovoljna samo tri kanala - prijem podataka, prijenos podataka i uzemljenje, praksa je pokazala da prisutnost servisnih linija komunikaciju čini učinkovitijom, pouzdanijom i posljedično bržom.

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

DB-9 pin englesko ime Rusko ime Kontaktirajte DB-25
1 Otkrivanje nositelja podataka Prijevoznik je otkriven 8
2 Prijenos podataka Preneseni podaci 2
3 Primanje podataka Primljeni podaci 3
4 Podatkovni terminal spreman Spremnost terminala 20
5 Prizemlje Zemlja 7
6 Skup podataka spreman Spremnost odašiljača 6
7 Zahtjev za slanje Zahtjev za slanje podataka 4
8 Jasno za slanje Prijenos podataka dopušten 5
9 Indikator zvona Indikator zvona 22

Konfiguracija i prekidi

Budući da računalo može imati nekoliko serijskih portova (do 4), sustav im dodjeljuje dva hardverska prekida - IRQ 3 (COM 2 i 4) i IRQ 4 (COM 1 i 3) i nekoliko BIOS prekida. Mnogi komunikacijski 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 virtualni portovi koje emulira sam operativni sustav.

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 osobnog računala trenutno nije široko korišteno sredstvo I/O informacija. Ipak, budući da postoji veliki broj opreme, prvenstveno telekomunikacijske, dizajnirane za rad sa serijskim portom, a i zbog nekih prednosti RS-232 protokola serijskog prijenosa podataka, serijsko sučelje još uvijek ne treba odbaciti kao apsolutno zastarjeli rudiment arhitekture osobnog računala.

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

Ugovoreni sastanak

Najčešće korišteni serijski port za osobna računala je RS-232C standard. Prije se serijski port koristio za spajanje terminala, kasnije za modem ili miš. Sada se koristi za povezivanje, za komunikaciju s ugrađenim računalnim razvojnim hardverom, satelitski prijemnici, blagajne, programatori, sa uređajima za sigurnosne sustave objekata, kao i sa mnogim drugim uređajima.

S COM portom možete spojiti dva računala koristeći takozvani "null modem kabel" (vidi dolje). Koristi se od dana MS-DOS-a za prijenos datoteka s jednog računala na drugo, u UNIX-u za terminalski pristup drugom stroju, a u Windowsima (čak i modernim) za ispravljanje pogrešaka na razini kernela.

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

Slični Videi

Priključci

Na matičnim pločama vodećih proizvođača (na primjer, Intel) ili gotovim sustavima (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šteni D-konektori standardizirani su 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").

Još uvijek softverska emulacija ove luke danas se široko koristi. Tako, na primjer, gotovo sve Mobiteli oponašaju klasični COM port i modem za tethering - pristup računala Internetu putem GPRS / EDGE / 3G / 4G telefonske opreme. Štoviše, za fizička povezanost računalo koristi USB, Bluetooth ili Wi-Fi.

Također, softverska emulacija ovog porta omogućena je "gostima" virtualnih strojeva VMWare i Microsoft Hyper-V, čija je glavna svrha povezivanje razine debuggera Windows kernel"gostu".

U obliku UART-a, koji se razlikuje po razinama napona i nedostatku dodatnih signala, prisutan je u gotovo svim mikrokontrolerima, osim u najmanjim, SoC-ima, razvojnim pločama, a prisutan je i na pločama većine uređaja. , iako konektor nije izvučen u kućište. Ova popularnost je posljedica jednostavnosti ovog sučelja, kako s fizičke točke gledišta, tako i jednostavnosti pristupa portu sa softverske strane u usporedbi s drugim sučeljima.

Oprema

Konektor ima kontakte:

DTR (Data Terminal Ready - spremnost za primanje podataka) - izlaz na računalu, ulaz na modem. Označava da je računalo spremno za rad s modemom. Resetiranje ove linije uzrokuje skoro tvrdo ponovno pokretanje modem u prvobitno stanje, uključujući ispuštanje cijevi (neki kontrolni registri prežive nakon takvog resetiranja). Na UNIX-u se to događa kada sve aplikacije imaju zatvorene datoteke na serijskom upravljačkom programu. Miš koristi ovu žicu za primanje energije.

DSR (Data Set Ready) - ulaz u računalo, 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 (Primanje podataka) - ulaz na računalo, izlaz na modem. Tok podataka koji ulazi u računalo.

TxD (Transmit Data) - izlaz na računalu, ulaz na modem. Odlazni tok podataka s računala.

CTS (Clear to Send) - ulaz na računalu, izlaz na modemu. Računalo je dužno obustaviti prijenos 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 (Zahtjev za slanje) - izlaz na računalu, ulaz na modem. Modem je dužan obustaviti prijenos 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 upravljačkog programa.

DCD (Carrier Detect) - ulaz na računalu, izlaz na modemu. Modem podiže na jedan nakon uspostavljanja veze s modemom na drugoj strani, vraća na nulu kada se veza prekine. Računalni hardver može emitirati prekid kada dođe do takvog događaja.

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

SG (Signal Ground) - zajednička signalna žica priključka, nije zajednički jezik, u pravilu, izoliran od kućišta računala ili modema.

Null modemski kabel koristi dva ukrštena para: TXD / RXD i RTS / CTS.

U početku, u IBM PC-u i IBM PC-u / XT-u, hardver porta je bio izgrađen na mikro krugu UART 8250 od National Semiconductora, zatim je mikro krug zamijenjen 16450, softverom kompatibilnim s prethodnim, ali je dopuštao brzine do 115200 bita po drugo, tada se pojavio mikrosklop 16550, koji sadrži dvosmjerni FIFO međuspremnik podataka kako bi se smanjilo opterećenje na kontroleru prekida. Trenutno uključen u SuperIO čip na matičnoj ploči zajedno s nizom drugih uređaja.

Programski pristup COM portu

UNIX

COM portovi u operacijskom sustavu Unix (Linux) su datoteke znakovnih uređaja. Obično se te 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 pozivanje posebnih funkcija tcgetattr (kako biste saznali trenutne postavke) i tcsetattr (za postavljanje novih postavki). Možda ćete također morati uputiti ioctl pozive s određenim parametrima. Nakon toga, prilikom pisanja u datoteku, podaci će se poslati kroz port, a prilikom čitanja program će primiti već primljene podatke iz međuspremnika COM porta.

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

Ova tehnologija je povijesno nastala 1970-ih, kada su računala poput PDP-11 (u SSSR-u se serija zvala SM računala) ili VAX korištena pod UNIX OS-om, što je omogućilo povezivanje mnogih terminala za rad mnogih korisnika. Terminali - a time i cijelo korisničko sučelje - povezani su putem serijski portovi, uz mogućnost spajanja modema umjesto terminala i daljnjeg biranja na računalo 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 način zaslon + tipkovnica i "povratak" na jedan od otvorite datoteke kontrolnu aplikaciju (ovako se implementiraju telnetd, sshd i xterm).

Klijentski uređaji serijskog porta za upućivanje poziva prema van nazivaju se cuaxx na mnogim UNIX-ima (ne svim).

Budući da je serijski port u UNIX-u dostupan samo kroz terminalski stog, 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 razini kernela, podrška uređivanje zadnjeg retka unesenog tipkama sa strelicama i sl. Da biste onemogućili ovu značajku kako bi se uređaj pretvorio u "cijev" za tok bajtova, potrebni su ioctl pozivi.

Windows

Serijski portovi se tretiraju kao datoteke u Win32. Funkcija CreateFile koristi se za otvaranje porta. Portova može biti mnogo, pa su označeni kao COM1, COM2 itd. redoslijedom kojim se nalaze odgovarajući upravljački programi uređaja. Prvih 9 portova također je dostupno kao imenovane cijevi za prijenos podataka (dostupne pod nazivima "COM1", "COM2", ...), ova metoda pristupa smatra se zastarjelom. Preporuča se tretirati sve portove kao datoteke (pod nazivom "\\. \ COM1", "\\. \ COM2", ... "\\. \ COMx").

Serijski port

Port ili sučelje koje se može koristiti za serijsku komunikaciju, koja prenosi samo 1 bit odjednom.

Većina serijskih portova za osobna računala su kompatibilni s RS-232C ili RS-422. Serijski port je sučelje Opća namjena, može se koristiti za mnoge vrste uređaja, uključujući modeme, miševe i pisače (iako je većina pisača spojena na paralelni port).

Tipično računalo 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. Za korištenje više od dva serijska uređaja, morat ćete ponovno mapirati prekide. Dobar pristup je ponovno mapiranje prekida za paralelni port. Računala obično imaju postavljene IRQ 5 i IRQ 7 na vašim paralelnim portovima, ali malo ljudi koristi dva paralelna porta. Možete ponovno dodijeliti jedan od prekida serijskom uređaju i sasvim dobro koristiti preostali paralelni port. da biste to učinili, potreban vam je setserial program. Također, trebali biste se poigrati s skakačima na matičnoj ploči, provjeriti dokumentaciju za svoju 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 tipkovnica

IRQ 2 Kaskada za kontroler 2

IRQ 3 Serijski port 2

IRQ 4 Serija 1

IRQ 5 Paralelni port 2

IRQ 6 disketni pogon

IRQ 7 Paralelni port 1

IRQ 8 Sat stvarnog 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" za dodjelu prekida. Samo provjeri 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 standardno ne koristi ove IRQS. Također imajte na umu da je IRQ 2 isti kao IRQ 9. Možete ga nazvati ili 2 ili 9, serijski upravljački program je vrlo pametan. Ako imate serijsku ploču sa 16-bitnim konektorom sabirnice, 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 svoju 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 namjestite kratkospojnike. Moj modem je ttyS3, moj miš je ttyS0, a moj terminal je ttyS2.

Kada ponovno pokrenete, Linux bi trebao vidjeti vaše serijske portove na adresama na koje ste ih postavili. IRQ koji Linux vidi možda se neće podudarati s IRQ-om koji ste postavili skakačima. 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 točno. Koristite setserial da kažete Linuxu koji IRQ port koristi. Možete provjeriti / proc / ioports kako biste vidjeli koje su I/O adrese portova u upotrebi nakon pokretanja Linuxa.

Adapter paralelno sučelje je skup registara koji se nalazi u adresnom prostoru ulazno/izlaznih uređaja. Broj registara ovisi o vrsti porta, no tri su standardna i uvijek su prisutna - registar podataka, registar statusa i kontrolni registar. Adrese registra se broje od osnovne, čije su standardne vrijednosti 3BCh, 378h, 278h. Možete saznati broj instaliranih portova u računalu 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) s vrijednošću koja nije nula, onda je to osnovna adresa porta. Ako riječ sadrži nultu vrijednost- port nije instaliran. BIOS ne podržava više od 4 LPT porta. Port može koristiti hardverski prekid(IRQ7 ili IRQ9). Puno moderni sustavi omogućuju promjenu načina rada porta, njegove adrese i IRQ-a BIOS postavke Postaviti. Na primjer, AWARD BIOS ima odjeljak Integrirane periferije koji vam omogućuje da konfigurirate način rada porta, adresu i IRQ.

LPT port ima vanjsku 8-bitnu sabirnicu podataka, 5-bitnu sabirnicu signala statusa i 4-bitnu sabirnicu upravljačkog signala. Na bootstrap BIOS pokušava otkriti paralelni port, a to čini na primitivan i ne uvijek ispravan način - testni bajt koji se sastoji od naizmjenič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 s napisanim, onda se smatra da datu adresu Pronađen LPT priključak. BIOS ne može odrediti adresu LPT4 porta. Za rad s CP-om, BIOS osigurava INT 17h prekid, koji omogućuje prijenos podataka (bajt-po-bajt), inicijaliziranje CP-a i primanje informacija o njegovom stanju.


Tijekom duge povijesti razvoja osobnih računala paralelni priključak(paralelni port) koji se često naziva priključak pisača(priključak pisača) ostaje najbrži i najpouzdaniji način povezivanja pisača i drugih uređaja s računalom. Paralelni prijenos osam bitova podataka i automatska kontrola protoka podataka pomoću signala priznanje(rukovanje) čine vanjske sklopove nepotrebnim za dekodiranje podataka i kontrolnih signala. Široka upotreba paralelnih portova je zbog njihove jednostavnosti i visoke performanse... Štoviše, paralelni priključak omogućuje ulaz do devet bita i izlaz do 12 bita istovremeno, zahtijevajući minimalan vanjski sklop za mnoge jednostavne zadatke.

Standardni paralelni priključak (SPP)

Standardni paralelni priključak(Standardni paralelni priključak - SPP) prikazan je na stražnjoj strani računala s 25-pinskim ženskim konektorom tipa D s rupama. Tipično, kabel za ovaj konektor ima 34-pinski konektor na drugom kraju za povezivanje s pisačem. Često se naziva paralelni port računala priključak pisača(priključak pisača). Na slici su prikazani konektori i kabel za spajanje pisača. Na lijevoj strani je ubodni konektor za paralelni port računala, a na desnoj strani konektor za pisač.

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

Noviji paralelni portovi definirani su standardom IEEE 1284 koji je objavljen 1994. Ovaj standard definira pet načina rada:

    1. Način kompatibilnosti.
    2. Način rada bilježnica (Nibble Mode).
    3. Byte Mode.
    4. Poboljšani način rada s paralelnim portom EPP).
    5. Port način rada s proširenim mogućnostima (Extended Capabilities Port - ECP).

Cilj standarda bio je razviti nove upravljačke programe i uređaje koji su međusobno kompatibilni i unatrag kompatibilni sa standardnim paralelnim portom ( SPP). Kompatibilnost, prijenosno računalo i Byte načini koriste standardne sklopove koji se nalaze na izvornim karticama s paralelnim portom, dok EPP i ECP načini zahtijevaju dodatne sklopove koji su brži, ali i dalje kompatibilni 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, t.j. povući podataka, s tipičnom brzinom od oko 50KB/s, ali su moguće veće brzine do 150KB/s. Za unos podataka morate se prebaciti na način prijenosa ili bajtova. Način rada prijenosnog računala dopušta Unesi tetrade (4 bita) od uređaja do računala. Byte način koristi dvosmjernu mogućnost (nalazi se samo na nekim karticama) za unos bajtova (8 bitova).

EPP i ECP priključci koriste dodatne sklopove za kontrolu i generiranje rukovanja. Za izlaz bajta na pisač u načinu kompatibilnosti program treba učiniti sljedeće:

  1. Upišite bajt u podatkovni port.
  2. Provjerite je li pisač zauzet. Ako je pisač zauzet, ne prihvaća nikakve podatke, pa se gube svi podaci upisani na njega.
  3. Dajte stroboskopski signal (pin 1) nisko. Pokazuje pisaču da postoje valjani podaci na podatkovnim linijama (iglice 2-9).
  4. Instalirati visoka razina stroboskop, čekajući oko 5 μs nakon formiranja niske razine (u fazi 3).

Softverska kontrola izlaza ograničava brzinu standardnog paralelnog porta. Napredniji EPP i ECP priključci rješavaju ovaj problem dopuštajući strujnim krugovima da provjere je li pisač zauzet i generiraju 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 slati podatke brzinom od 1-2 MB/s. Osim toga, ECP priključak koristi izravan pristup memoriji ( DMA) i tamponima FIFO(First In - First Out), tako da se podaci mogu prenositi bez korištenja izlaznih naredbi.

Hardver

Sljedeća tablica prikazuje pinoute za 25-pinski D-tip računalnog konektora i 34-pinski Centronics konektor koji se obično nalazi na pisačima. Međutim, standard IEEE 1284 definira tri različita konektora za korištenje s paralelnim portom. Prvi konektor tipa A 1284 je običan 25-pinski D-tip konektor. Drugi 36-pinski konektor tipa B 1284 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, a na njega je lakše spojiti kabel. Dva dodatna signala mogu se koristiti za provjeru je li uređaj uključen. Ovaj konektor je prepoznat kao obećavajući za korištenje u novim dizajnima.

#kontakt
(D-25)
# kontakt (Centronics) SPP signal Smjer Registar Hardver
obrnuto
1 1 nStrob Unesite izlaz Upravljanje 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 Zaposlen ulaz Države Da
12 12 Paper-Out / Paper-End ulaz Države
13 13 Odaberi ulaz Države
14 14 nAutomatsko uvlačenje u red Unesite izlaz Upravljanje Da
15 32 nPogreška / nGreška ulaz Države
16 31 nInicijalizirati Unesite izlaz Upravljanje
17 36 nSelect-Printer / nSelect-In Unesite izlaz Upravljanje Da
18 - 25 19-30 Zemlja Zemlja

Pismo n ispred naziva signala znači npr. signal s niskom razinom aktivnosti nPogreška... Ako postoji greška u pisaču, ovaj red će biti nizak. Obično je na visokoj razini koja ukazuje na ispravno funkcioniranje pisača. Hardverski invertirani znači da je signal invertiran od strane sklopova paralelnog porta. Primjer ovdje je linija Zaposlen... Ako se na ovu liniju primijeni napon od +5 V (logika 1) i čita se statusni registar, tada se ova razina vraća kao 0 u bitu 7 statusnog registra.

Signali paralelnog porta predstavljeni su konvencionalnim TTL razinama. Većina paralelnih portova temelji se na ASIC-u koji potopi i izvorno troši oko 12 mA. Međutim, druge vrijednosti mogu se pojaviti u referentnim podacima, na primjer Sink / Source 6 mA, Source 12 mA / Sink 20 mA, Sink 16 mA / Source 4 mA.

Podatkovne linije su pravi vodiči koji prenose informacije od računala do uređaja (i od uređaja do računala na novim priključcima). Kako bi se smanjili učinci smetnji, svaka podatkovna linija ima odgovarajuću liniju uzemljenja. Ove uzemljene linije također pružaju zajedničku električnu referencu između računala i uređaja. Ostatak linija paralelnih s portom dodijeljeni su za kontrolu i rukovanje.

Kako bi se osiguralo da je pisač u poznatom početnom stanju, signal nInitialize računala stavlja pisač 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čunalu da je periferija uključena na liniji(online) i spreman za primanje podataka. Računalo ne šalje podatke ako je na liniji Select slab signal. Obično status ovog signala odgovara "on-line" indikatoru na pisaču.

Kada računalo generira valjane podatkovne signale na podatkovnim linijama, uređaj treba izvijestiti da su podaci spremni. To je ono za što je namijenjeno pulsni signal strobe nStrobe, koji bi trebao prisiliti uređaj da prihvati bajt podataka i pohrani ga u međuspremnik za kasniju obradu.

Za postignuće velika brzina za prijenos podataka, pisaču je potrebna posebna metoda koordinacije prijenosa. Računalo mora čekati između bajtova dok pisač ne bude spreman za nastavak primanja novih bajtova. Pisači koriste signal zauzeća kako bi odgodili računalo dok pisač ne bude spreman primiti sljedeći bajt. Pisač generira visoku razinu zauzetog signala kao odgovor na prijem nStrobe signala, a ta razina ostaje sve dok se ne pripremi za primanje sljedećeg bajta. Imajte na umu da signal zauzeća može odgoditi računalo na bilo koji vremenski period ako dođe do ozbiljne pogreške, kao što je zastoj papira. Kada pisač obradi bajt, mora tražiti od računala na čekanju sljedeći bajt. Pisač uklanja signal zauzeća i izdaje kratki potvrdni impuls nAck. Dakle, signali nStrobe, Busy i nAck kontroliraju (potvrđuju) prijenos podataka u paralelnom portu.

U nekim pisačima kontrolni znak Carriage Return (CR) automatski transportira papir sljedeći redak dok u drugima samo vraća kočiju na početak tekuće linije bez transporta papira. U mnogim pisačima bilo koja od ovih opcija može se postaviti prekidačem, ali to također možete kontrolirati pomoću signala nAuto-LineFeed. Niska razina ovog signala uzrokuje da pisač automatski transportira papir jedan po redak kada se primi kontrolni znak CR.

Linija nSelect-Printer omogućuje računalu da daljinski poveže periferni uređaj na mrežu ili izvan mreže. Većina paralelnih priključaka drži ovu liniju niskom tako da će uređaj automatski osjetiti podatke. Visok signal na ovoj liniji inhibira rad uređaja. Signal nError s perifernog uređaja obavještava računalo da postoji problem koji sprječava ispis, ali ga ne razrađuje. Pogreška može biti uzrokovana mnogim razlozima, čiji detalji ovise o perifernom uređaju. Obično signal nError "prikuplja" situacije kao što su odsutnost papira (taj razlog je određen signalom Paper Out), prisutnost pisača u izvan mreže(izvanmrežni način rada) ili kvarovi unutarnjeg kruga pisača.

Centronics sučelje

Centronics je stari standard (često se naziva sučelje i protokol) za prijenos podataka s računala (host) na pisač. Potvrda ovog standarda koristi se u većini pisača i obično se implementira u softver. Na slici je prikazan pojednostavljeni dijagram Centronics protokola.

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

Često, kako bi uštedio vrijeme, domaćin ignorira signal na nAck liniji. Kada se razmatra port s proširenim ECP mogućnostima, bit će prikazana implementacija Fast Centronics Mode (Fast Centronics Mode), u kojem se rukovanje izvodi shematski. Programer treba samo zapisati bajt podataka na I/O port. Krugovi provjeravaju je li pisač zauzet i generiraju strobe. Imajte na umu da se u ovom načinu rada nAck linija ne nadzire.

Adrese portova

Paralelni port ima tri zajedničke osnovne adrese, koje su prikazane u sljedećoj tablici. Osnovna adresa 3BCh izvorno je uvedena za paralelne portove na ranim grafičkim karticama. Nakon što su paralelni portovi uklonjeni s video kartica, ova adresa je nestala. Kasnije se pojavio kao opcija za paralelne portove integrirane u matične ploče, gdje se konfiguracija može mijenjati pomoću BIOS-a. LPT1 nazivu se obično dodjeljuje bazna adresa 378h, a LPT2 se obično dodjeljuje bazna adresa 278h. Međutim, dalje se pokazuje da to nije uvijek tako. Adrese 378h i 278h gotovo se uvijek koriste za paralelne portove, ali se mogu razlikovati od računala do računala.

Kada je računalo uključeno, BIOS detektira 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, a zatim se provjerava adresa 378h. Ako se tamo pronađe paralelni port, dodjeljuje mu se sljedeće slobodno ime... Bit će LPT1 ako nije pronađena kartica na adresi 3BCh, ili LPT2 ako je kartica pronađena. Port u 278h provjerava se 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 s paralelnim portom postavljaju kratkospojnike koji vam omogućuju konfiguriranje porta 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 sučelje s portom, osnovna adresa se često koristi umjesto imena, umjesto LPT1 i drugih imena. Tablica adresa porta nalazi se u području podataka BIOS-a. Kada BIOS dodjeljuje adrese uređajima pisača, pohranjuje adrese na određena memorijska mjesta 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 (priključci)

Podatkovni priključak

Pristranost Ime Čitaj / piši Komadići Ugovoreni sastanak
Baza + 0 Podatkovni priključak napiši ( * ) Bit 7 - 0Podaci 7 - 0

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

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

Port statusa

Port statusa 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, tada pin 11 ima napon od +5 V. Isto vrijedi i za bit 2 (nIRQ) - ako bit sadrži 1, tada nije došlo do prekida.

Upravljačka luka

Port za upravljanje (osnovna adresa + 2) bio je samo za pisanje. Kada je spojen na paralelni priključak pisača, koriste se četiri kontrolna signala: Strobe (bit 0), Auto Linefeed (bit 1), Reset inicijalizacije (bit 2) i Select Printer (bit 3). Svi ovi signali osim Resetiranja su invertirani.

Pisač ne daje signal za inicijalizaciju računala i ne govori računalu da koristi automatsko pomicanje reda. Međutim, gornja četiri izlaza mogu se koristiti za ulaz. Ako računalo gurne pin visoko (+5 V), a uređaj ga želi spustiti na nisko, priključak se kratko spaja, što uzrokuje sukob. Stoga su ovi izlazi projektirani kao "otvoreni kolektor". Imaju dva stanja: nisku (0 V) i visoku impedanciju (otvoren krug).

Kartica pisača obično ima unutarnje otpornike za povlačenje, ali ih nemaju sve kartice. Neke kartice su samo otvoreni kolektorski izlazi, dok su druge konvencionalni push-pull (totem) izlazi. Vanjski otpornik može se koristiti kako bi se omogućilo ispravno funkcioniranje uređaja sa što više priključaka za pisač. Ako već postoji unutarnji otpornik, tada vanjski otpornik djeluje paralelno s njim, au slučaju push-pull izlaza, kao opterećenje.

Vrijednost vanjskog otpornika je obično 4,7 kΩ. Ne preporučuje se korištenje manjeg otpornika jer na kartici može biti unutarnji otpornik. U stanju visoke impedancije, pin paralelnog priključka je visok na +5 V. U tom stanju, vanjski uređaj može postaviti pin na nisku vrijednost i uzrokovati da kontrolni priključak očita drugu vrijednost. To omogućuje korištenje četiri pina kontrolnog porta za dvosmjerni prijenos podataka. Međutim, za čitanje podataka kroz kontrolni port, morate ga postaviti na xxxx0100 tako da svi pinovi imaju +5 V i da uređaj može postaviti nisku razinu (uzemljenje - logička 0).

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

Dvosmjerni portovi

Sljedeći dijagram prikazuje pojednostavljeni prikaz registra podataka paralelnog porta. Izvorne kartice s paralelnim portom temelje se na logici obitelji 74LS. Sada se primjenjuje specijalizirani mikro krugovi, ali principi rada ostaju isti.

Ne-dvosmjerni portovi se izdaju sa signalom za omogućavanje izlaza nOE 74LS374 je trajno spojen na uzemljenje, tako da podatkovni port ima samo pin. Kada se čitaju iz registra podataka, podaci se preuzimaju iz sklopa 74LS374, koji je također spojen na podatkovne pinove. Ako onemogućite shemu 74LS374, možete dobiti dvosmjerni port.

U dvosmjernim portovima, bit 5 kontrolnog registra spojen je na ulaz kako bi se omogućio izlaz. nOE 74LS374 sklopovi tako da se izlazni upravljački programi mogu onemogućiti (onemogućiti). U tom slučaju možete čitati podatke s podatkovnih pinova paralelnog porta bez sukoba.

Bit 5 kontrolnog registra omogućuje ili onemogućuje dvosmjerni rad paralelnog priključka. Radi samo za prave dvosmjerne portove. Kada je ovaj bit postavljen na 1, pinovi 2-9 se dovode u stanje visoke impedancije. U tom stanju možete unijeti podatke u ove linije i pročitati njihov podatkovni port (osnovnu adresu). Podaci upisani u port se spremaju, ali nisu dostupni na podatkovnim kontaktima. Da biste onemogućili dvosmjerni način rada, bit 5 kontrolnog priključka mora se obrisati na 0.

Međutim, ne djeluju svi portovi na isti način. Neki priključci mogu zahtijevati da se bit 6 kontrolnog priključka postavi da omogući dvosmjerni način rada i bit 5 da ga onemogući. Razni proizvođači drugačije implementirati svoje dvosmjerne portove. Ako trebate koristiti dvosmjerni priključak za unos podataka, prvo provjerite je li priključak 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 odabrani su kako bi se pojednostavile veze. Signal zauzetosti najvažniji je bit od 7 statusnog porta, a slijede ga Ack, Paper Out i Select signali statusnog porta, tvoreć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 čita se iz kontrolnog porta (Odaberi pisač, Pokretanje, Automatski pomak u red, Strobe). Ovdje se koriste pretvarači s otvorenim kolektorom. To može zahtijevati 4,7 k pull-up otpornike.

Način rada prijenosnog računala

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. Za sekvencijalno čitanje bilježnica koristi se multipleksor (četverostruki 2:1). Spajanje bilježnica u bajtove vrši se programski. Naravno, ova metoda je nešto sporija od prethodnih. Ovdje čitanje jednog bajta zahtijeva više I/O naredbi i zahtijeva vanjski mikro krug.

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

Korištenje IRQ prekida paralelnog porta

Zahtjev za prekidom paralelnog porta ne koristi se za DOS ispis. Prekidi su dobri za uređaje čiji je trenutak aktivacije nepoznat, na primjer, senzor visoka temperatura... U tom je slučaju učinkovitije raditi na prekidu nego povremeno prozivati ​​senzor softverom. Osim toga, prekidi su posebno važni za operacijski sustav 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 ispis. Prekidi paralelnog porta mogu se omogućiti i onemogućiti korištenjem bita 4 kontrolnog registra - omogućite IRQ preko Ack linije (Enable IRQ Via Ack Line). Omogućeni prekid događa se kada nAck signal prijeđe s niskog na visoki (uzlazni rub). Međutim, neke kartice pokreću prekid od visoke do niske.

Načini paralelnog porta u BIOS-u

Većina paralelnih portova sada su portovi za više načina rada. Obično su softver konfiguriran na jedan od nekoliko načina pomoću BIOS procedura. Tipični načini:

    Način rada pisača, koji se ponekad naziva zadani ili normalni način rada
    Standardno i dvosmjerno (SPP)
    EPP1.7 i SPP način rada
    EPP1.9 i SPP način rada
    ECP način rada
    ECP i EPP1.7 način rada
    ECP i EPP1.9 način rada

Način rada pisača je najjednostavniji način rada - odgovara samo pinu standardnog paralelnog porta. Nedostaje mu dvosmjerna funkcionalnost, pa je bit 5 kontrolnog porta onemogućen. Standardno i dvosmjerno (SPP) je dvosmjerni način rada. U ovom načinu rada, bit 5 kontrolnog priključka mijenja smjer priključka, tako da možete pročitati ulaznu vrijednost preko podatkovnih linija.

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

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

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

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

Razmatrani načini su konfigurirani putem BIOS-a. Korisnik se može rekonfigurirati sa svojim programom, ali učini to Ne preporučuje se... Softverski registri na adresama 2FAh, 3F0h, 3F1h namijenjeni su 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 upotrijebite ECP Extended Control Register da postavite način rada paralelnog porta. U načinu rada EPP1.7 bilo je nekoliko problema vezanih uz formiranje podatkovnih strobova i adrese za pokretanje ciklusa bez obzira na stanja čekanja, tako da se ovaj način sada ne primjenjuje. Najbolje je postaviti paralelni port na ECP i EPP način rada 1.9.

Načini rada paralelnog porta i kontrolni registar proširenog porta ECP

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

Komadići Funkcija
7:5
000 Standardni način rada
001 Byte način rada
010
011 ECP FIFO način rada
100 EPP način rada
101 Rezervirano
110 FIFO testni način
111 Način konfiguracije
4 ECP bit prekida
3 Bit za omogućavanje DMA
2 ECP servisni bit
1 FIFO je pun (pun)
0 FIFO prazan

Prilikom ugradnje ECP način rada novi set registara dostupan je na bazi + 400h. Detaljno razmatranje ovoga je dato u materijalu o ECP portu, ali ovdje nam je potreban samo prošireni kontrolni registar na Base + 402h. Format ovog registra prikazan je u tablici s lijeve strane. Imajte na umu da ECP registri nisu dostupni za port s baznom adresom 3BCh.

Zasad 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 način rada... Sljedeća tablica daje detaljnije informacije o načinima rada.

Načini rada

Standardni način rada
Byte način rada
Paralelni port FIFO način rada
ECP FIFO način rada
EPP način rada / Rezervirano Prema Prošireni protokol porta i standard ISA sučelja
RezerviranoRezervirano za sada. - Prema
FIFO testni način
Način konfiguracije

Ako je ECP način rada postavljen u BIOS-u ili je kartica konfigurirana na ECP, preporuča se inicijalizirati ECP port u unaprijed definirano stanje prije 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 načinima rada, SPP registri mogu nestati ili neće raditi ispravno. Kada koristite SPP, morate postaviti ECR registar na standardni način rada.

Poboljšani paralelni priključak (EPP)

Poboljšani paralelni port(Poboljšani paralelni priključak - EPP) koje su razvili Intel, Xircom i Zenith Podatkovni sustavi... EPP portovi su prvi put definirani u EPP 1.7, a zatim ugrađeni u IEEE 1284 (1994). EPP priključak ima dva standarda EPP 1.7 i EPP 1.9. Među njima postoje razlike koje mogu utjecati na rad uređaja (vidi dolje). Brzine prijenosa podataka kreću se od 500 KB / s do 2 MB / s. To se postiže činjenicom da rukovanje, strobing i druge operacije formiraju krugovi porta, a ne programski, kao u sučelju Centronics.

Hobisti češće koriste EPP priključak nego priključak proširenih mogućnosti (ECP). EPP priključak razlikuje se od ECP priključka po tome što EPP priključak generira i kontrolira sve prijenose na/iz perifernog uređaja. S druge strane, ECP port zahtijeva od perifernog uređaja da potvrdi obrnutu vezu i kontrolira rukovanje. To je teško postići s običnim ljudima. jednostavne sheme i potreban je namjenski kontroler ili ECP periferni čip.

Hardver

U EPP načinu rada, svakoj liniji su dodijeljene različite funkcije i oznake kao što je prikazano u sljedećoj tablici.

Kontakt SPP signal EPP signal Unesite izlaz Funkcija
1 StrobePisati IzlazNiska razina u ovom retku označava pisanje, a visoka razina čitanje.
2-9 Podaci 0-7 Podaci 0-7Unesite izlaz Dvosmjerna sabirnica podataka.
10 Ack Prekinutiulaz Prekidna linija. Do prekida dolazi na pozitivnom (uzlaznom) rubu.
11 Zaposlen Čekatiulaz Koristi se za potvrdu. EPP ciklus može započeti na niskoj razini i završiti na visokoj razini.
12 Papir nestao/kraj Rezervniulaz
13 Odaberi Rezervniulaz Rezervirano - ne koristi se u EPP rukovanju.
14 Automatski ulazak u red Podatkovni strobIzlaz Označava prijenos podataka na niskoj razini.
15 Greška / Greška Rezervniulaz Rezervirano - ne koristi se u EPP rukovanju.
16 Inicijalizirati ResetirajIzlaz Resetiranje niske aktivnosti.
17 Odaberite Pisač 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 prema vlastitom nahođenju. Stanja ovih linija mogu se u bilo kojem trenutku odrediti čitanjem statusnog registra. Nažalost, nema suvišnih izlaza, što može uzrokovati određene poteškoće.

Rukovanje EPP portom

Za ispravnu komunikaciju putem EPP priključka, potrebno je promatrati EPP rukovanje. Budući da se sve operacije izvode u krugu, samo hardver bi trebao koristiti rukovanje, a ne softver, kao što je slučaj sa SPP portom. Za pokretanje EPP ciklusa, 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 registar podataka EPP (Baza + 4).
2. Generira se niska razina 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 pokrenuti 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 niska razina signala Write, što ukazuje na operaciju pisanja.
3. Adresa se stavlja u podatkovnu liniju 0-7.
4. Address Strobe se izdaje ako je Wait nizak (možete započeti petlju).
5. Računalo čeka potvrdu - visoka razina 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 registar podataka EPP (Baza + 4).
2. nData Strobe se izdaje ako je čekanje nizak (možete pokrenuti 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 Wait nizak (možete pokrenuti petlju).
3. Računalo čeka potvrdu - visoka razina na nWait.
4. Podaci se čitaju s pinova paralelnog porta.
5. nAddr Strobe se uklanja.
6. Ciklus čitanja EPP adrese završava.

Bilješka Uz rukovanje EPP 1.7 (do IEEE 1284), mogu se izdati potezi podataka i adrese za pokretanje ciklusa bez obzira na stanje čekanja. U standardu EPP 1.9, ciklus počinje samo kada je razina čekanja niska. I EPP 1.7 i EPP 1.9 zahtijevaju visoku razinu čekanja za završetak ciklusa.

Registri softvera EPP porta

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

Kao što vidite, prve tri adrese su potpuno iste kao one u registrima portova SPP-a i funkcioniraju 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 pisač i koristite način kompatibilnosti, trebate provjeriti je li port zauzet, a zatim treperiti i otvoriti strobe pomoću kontrolnih i statusnih portova, a zatim pričekati Ack.

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

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

Port statusa ima jednu manju izmjenu. Bit 0, koji je rezerviran u registru SPP porta, sada je bit EPP timeout. Ovaj bit se postavlja kada dođe do isteka EPP porta. To se događa 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 dostupni su na ISA sabirnici.

EPP način rada uvelike ovisi o vremenu ISA sabirnice. Kada je ciklus čitanja u tijeku, port mora izvršiti odgovarajuće rukovanje Read/Write i vratiti podatke na tom ISA ciklusu sabirnice. Naravno, to se ne događa u jednom ISA ciklusu, tako da port koristi IOCHRDY (I/O Channel Ready) signal na ISA sabirnici za uvođenje stanja čekanja prije nego što se ciklus završi. Što se sada događa ako se pokrene EPP port Read ili Write, a periferni uređaj nije spojen?. Port nikada neće primiti potvrdu (nWait) i nastavit će čekati zahtjeve stanja dok je računalo blokirano. Stoga se u EPP portu održava mjerač vremena za nadzor, koji je postavljen na oko 10 µs.

Tri registra s 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. To 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 podatkovnih linija porta.

Značajke programiranja EPP porta

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

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

Već smo raspravljali o bitu isteka EPP porta. Kada je ovaj bit postavljen, port možda neće ispravno funkcionirati. Stoga se preporuča uvijek čitati 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 način rada razvili su Hewlett-Packard i Microsoft za implementaciju kao Prošireni protokol porta i standard ISA sučelja... Ovaj protokol koristi dodatne sklopove 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 radi bolje pod Windowsima jer može koristiti kanale izravnog pristupa memoriji (DMA) za prijenos podataka. Također koristi FIFO međuspremnik za primljene i odaslane podatke.

Još jedna značajka ECP-a je kompresija podataka u stvarnom vremenu. Algoritam Run Length Encoding (RLE) pruža omjere kompresije do 64:1. Ovo je korisno za skenere i pisače gdje je velik dio podataka u nizovima koji se ponavljaju.

ECP port podržava metodu adresiranja kanala. Nije namijenjen za korištenje u uređajima s lančanom linijom, ali omogućuje adresiranje više uređaja unutar jednog uređaja. Primjer su mnogi moderni faks uređaji koji uključuju paralelni priključak za sučelje s računalom. Fax uređaj se može podijeliti na zasebne uređaje, kao što su skener, modem/faks i pisač, a svakoj komponenti se može adresirati zasebno, čak i ako drugi uređaji ne mogu čitati podatke zbog punog međuspremnika.

Hardver

Iako priključci ECP pisača koriste isti D25 konektor kao standardni paralelni port (SPP), ECP priključak pridružuje različite funkcije pinama (kao i EPP priključak). Stoga sučelje ECP porta koristi drugačiju metodu rukovanja.

ECP priključak je unatrag kompatibilan sa SPP i EPP priključcima. Kada rade u SPP načinu rada, pojedine linije funkcioniraju isto kao u SPP portu i nazivaju se Strobe, Auto Linefeed, Init, Busy, itd. Kada rade u EPP načinu rada, 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 Niska razina u ovoj liniji označava da host ima valjane podatke. Kada se ovaj signal ukloni, pozitivni rub sinkronizacije treba koristiti za zamrzavanje podataka u uređaju.
2-9 Podaci 0-7 Podaci 0-7Unesite izlaz Dvosmjerna sabirnica podataka.
10 Ack PeriphCLKulaz Niska razina na ovoj liniji označava da uređaj ima valjane podatke. Kada se ovaj signal ukloni, pozitivni rub takta treba koristiti za zamrzavanje podataka na hostu.
11 Zaposlen PeriphAckulaz U obrnutom smjeru, visoka razina označava ciklus podataka, a niska razina označava ciklus naredbi. U smjeru naprijed djeluje kao PeriphAck.
12 Papir nestao/kraj nAckReverseulaz Uređaj potvrđuje obrnuti zahtjev s niskom razinom.
13 Odaberi Zastava Xulaz Zastava proširivosti.
14 Automatski ulazak u red Potvrda domaćinaIzlaz U smjeru naprijed, visoka razina označava ciklus podataka, a niska razina označava ciklus naredbi. U suprotnom smjeru, djeluje kao HostAck.
15 Greška / Greška PeriphRequestulaz Instalirano po uređaju niska razina ukazuje na dostupnost inverznih podataka.
16 Inicijalizirati nReverseRequestIzlaz Niska razina označava prijenos podataka u obrnutom smjeru.
17 Odaberite Pisač 1284 AktivanIzlaz Visoka razina označava da host radi u 1284 prijenosnom načinu. Niska razina prekida ovaj način rada.
18-25 Zemlja ZemljaGNDZemlja

Signali na linijama HostAck i PeriphAck pokazuju jesu li podaci ili naredba na podatkovnoj sabirnici 0-7. Ako su ove linije visoke, postoje podaci na sabirnici podataka (pinovi 2-9). Ako se implementira naredbeni 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.

Naredbeni ciklus može biti jedan od dva - RLE brojač ili adresa, koja je određena bitom 7 podatkovnih linija (pin 9). Ako bit 7 sadrži 0, tada je ostatak podataka (bitovi 0-6) RLE brojač duljine 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 razlikuje se od rukovanja SPP priključka. Najočitija razlika je u tome što ECP port može prenositi podatke u bilo kojem smjeru u bilo kojem trenutku, a to zahtijeva dodatnu signalizaciju. Zatim se razmatra potvrda ECP porta za smjer naprijed i natrag.

ECP izravna podatkovna petlja


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

4. Periferni uređaj izdaje svoju potvrdu valjanosti izdavanjem PeriphAck signala.
5. Domaćin daje visoki HostClk signal. Pozitivni rub se koristi za zamrzavanje podataka u perifernom uređaju.
6. Periferni uređaj izdaje bajt potvrde, uklanjajući PeriphAck signal.

ECP naredba naprijed petlja

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

Inverzni ECP podaci




4. Uređaj zatim odabire podatkovni ciklus generiranjem 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 odabire naredbeni ciklus generiranjem niskog PeriphAck signala.
5. Uređaj prikazuje valjane podatke s niskim PeriphClk signalom.
6. Domaćin izdaje svoju potvrdu valjanosti s visokom snagom HostAck signala.
7. Uređaj postavlja visoki signal PeriphClk. Pozitivni rub se koristi za predaju podataka hostu.
8. Domaćin izdaje svoj bajt potvrde, generirajući nizak HostAck signal.

Usporedba rukovanja ECP i SPP

Rukovanje SPP portom sastoji se od samo pet koraka:

  1. Upišite bajt u podatkovni port.
  2. Provjerite je li pisač zauzet. Ako je pisač zauzet, neće prihvatiti nikakve podatke, tako da se gube svi podaci koji se zapisuju.
  3. Generirajte nisku razinu Strob signala (pin 1). Pisaču govori da postoje ispravni podaci na podatkovnim linijama (iglice 2-9).
  4. Nakon otprilike 5 μs, formirajte visoku razinu Strobe signala.
  5. Provjerite potvrdu Ack s 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 shematskom 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 slanjem duplikata bajtova kao segmentnih brojača i jedne kopije bajta. Brojač segmenata određuje koliko puta se 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, po primitku brojanja dužine rada, produžit će (ponoviti) sljedeći bajt koliko puta odredi brojač.

Bajt brojača odsječaka mora se razlikovati od ostalih bajtova u stazi podataka. Šalje se kao naredba na Address FIFO Port. Bajtovi koji se šalju u ovaj registar mogu biti brojač duljine 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 najmanjih sedam bitova brojač duljine segmenta. U ovom slučaju, adrese kanala i brojači duljine segmenta ograničeni su na sedam bitova (vrijednosti od 0 do 127).

Registri softvera ECP porta

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

Adresa Naziv luke Čitaj / piši
Baza + 0 Podatkovni priključak (SPP)Pisati
ECP FIFO adresa (ECP način rada)Čitaj / piši
Baza + 1Port statusa (svi načini) Čitaj / piši
Baza + 2Upravljački priključak (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 (testni način rada)Čitaj / piši
Registar konfiguracije A (način konfiguracije) Čitaj / piši
Baza + 401hRegistar konfiguracije B (način 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 način rada
010 Paralelni port FIFO način rada
011 ECP FIFO način rada
100 EPP način rada
101 Rezervirano
110 Način provjere FIFO
111 Način konfiguracije
4 ECP bit prekida
3 Bit za omogućavanje DMA
2 ECP servisni bit
1 FIFO Pun
0 FIFO prazan

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

Tri najznačajnija bita proširenog upravljačkog 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 način rada... Sljedeća tablica 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 način rada Djeluje kao SPP u dvosmjernom načinu rada. Bit 5 stavlja port u inverzni način rada.
Paralelni port FIFO način rada U ovom načinu, svi podaci upisani u podatkovni FIFO bit će poslani na periferiju pomoću SPP rukovanja. Potrebna potvrda se implementira u krug. Ovaj način rada je koristan za uređaje koji nisu ECP, kao što su pisači. Osigurane su neke ECP mogućnosti, kao što su FIFO međuspremnici i generiranje rukovanja u krugu, 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 način postavljen putem BIOS-a, a ECR registar je postavljen na ECP FIFO način (011), SPP registri mogu nestati.
EPP način rada / Rezervirano EPP način rada je omogućen ako je dostupan. U BIOS-u, ako je ECP način postavljen, više je nego vjerojatno da ovaj način 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šireni protokol porta i standard ISA sučelja ovaj način je specifičan za dobavljača.
RezerviranoRezervirano za sada. - Prema Prošireni protokol porta i standard ISA sučelja ovaj način je specifičan za dobavljača.
FIFO testni načinU ovom načinu, svi podaci upisani u testni FIFO registar bit će smješteni u FIFO, a svi podaci pročitani iz testnog FIFO registra bit će pročitani iz FIFO međuspremnika. Bitovi statusa FIFO Puno / Prazno će ih odražavati. pravo značenje, dakle, u ovom načinu rada možete definirati neke karakteristike FIFO-a, kao što je njegova dubina.
Način konfiguracijeU ovom načinu rada, dva konfiguracijska registra cnfgA i cnfgB postaju dostupna na svojim adresama.

Kao što je ranije prikazano, kada je port postavljen za rad standardni način rada, djeluje kao SPP port bez dvosmjernog prijenosa podataka. Ako je potreban dvosmjerni prijenos, mora se postaviti bajt mod. Načini rada FIFO i ECP FIFO s paralelnim portom koriste sklopove 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 pisačem. ECP FIFO način rada koristi rukovanje ECP portom.

Način provjere FIFO može se koristiti za testiranje kapaciteta FIFO međuspremnika i za provjeru da oni ispravno rade. U ovom načinu rada, svaki bajt koji je zapisan u TEST FIFO registar (Baza + 400h) stavlja se u FIFO međuspremnik, a svaki bajt pročitan iz ovog registra uzima se iz FIFO međuspremnika. Ovo se može koristiti zajedno s bitovima FIFO Full i FIFO Empty proširenog kontrolnog registra ECR za određivanje kapaciteta FIFO međuspremnika. Dubina FIFO obično je oko 16 bajtova.

Ostali bitovi ECR registra također igraju važnu ulogu u radu ECP porta. Bit prekida (bit 4) omogućuje korištenje prekida, a bit za omogućavanje DMA (bit 3) omogućuje korištenje izravnog pristupa memoriji. ECP servisni bit (bit 2) pokazuje je li 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 izbrišete bit, t.j. upišite 0 u njega, dok se drugi resetiraju kada se čitaju iz registra.

FIFO Puni bit (bit 1) i FIFO Empty (bit 0) označavaju stanje FIFO međuspremnika. Ovi bitovi ovise o smjeru, pa se mora uzeti u obzir bit 5 kontrolnog registra. Ako je postavljen bit 0 (FIFO Empty), tada je FIFO prazan, a ako je postavljen bit 1, tada je FIFO pun. Ako nijedan od ovih bitova nije postavljen, tada postoje podaci u FIFO, ali međuspremnik još nije pun. Ovi se bitovi mogu koristiti u načinu FIFO provjere za određivanje kapaciteta FIFO međuspremnika.

Registar konfiguracije A (cnfgA)

Konfiguracijski registar A (cnfgA) jedan je od dva registra konfiguracije ECP porta. Konfiguracijski registri dostupni su samo u načinu konfiguracije. Adresa registra cnfgA je Base + 400h. Format registra cnfgA prikazan je u sljedećoj tablici.

Bit Funkcija
7 1 Prekidi se pokreću razinom
0 Prekidi se pokreću rubom
6:4 00h Prihvaća riječi širine od max. 16 bita
01hPrihvaća riječi širine od max. 8 bita
02hPrihvaća riječi širine od max. 32 bit
03h: 07hRezervirano za proširenje
3 Rezervirano
2 Oporavak hosta: bajt cjevovoda / odašiljača uključen u FIFO?
0 U smjeru naprijed, jedan bajt u cjevovodu odašiljača ne utječe na FIFO Full.
1 U smjeru naprijed, jedan bajt u cjevovodu odašiljača računa se kao dio FIFO Full.
1:0 Oporavak hosta: Neposlani bajtovi preostali u FIFO
00 Puna riječ
01 1 važeći bajt
10 2 dva valjana 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 generira prekide razine ili ruba. Ovisi o vrsti sabirnice koju koristi kartica. Bitovi 6: 4 pokazuju širinu sabirnica unutar kartice. Neke kartice koriste samo 8-bitni put podataka, dok druge koriste 16- ili 32-bitni. Primiti maksimalna učinkovitost s kartice, program mora pročitati stanje ovih bitova da bi utvrdio maksimalna veličina riječ koja se izlazi na port.

Za oporavak hosta koriste se tri najmanje značajna bita. Da bi se oporavio od pogreške, program mora znati koliko je bajtova preneseno, određujući ima li preostalih bajtova u FIFO-u. Neke implementacije mogu uzeti u obzir bajtove na čekanju u registru odašiljača kao dio FIFO punog stanja, dok druge ne čine. Bit 2 određuje određenu situaciju.

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

Registar konfiguracije B (cnfgB)

Konfiguracijski registar B, kao i registar konfiguracije A, dostupan je samo u načinu konfiguracije. Njegova adresa u ovom načinu rada je Base + 401h. Format registra cnfgB prikazan je u sljedećoj tablici.

Bit Funkcija
7 1 Komprimirajte izlazne podatke pomoću RLE algoritma
0 Nemojte komprimirati podatke
6 Status prekida - prikazuje Trenutna država IRQ kontakt
5:3 Odabire ili prikazuje stanje retka zahtjeva za IRQ prekidom.
000 Prekid odabran kratkospojnikom
001 IRQ 7
010 IRQ 9
011 IRQ 10
100 IRQ 11
101 IRQ 14
110 IRQ 15
111 IRQ 5
2:0 Odabire ili prikazuje stanje DMA kanala koji koristi kartica pisača
000 Koristi 8-bitni DMA kanal odabran skakačem
001 DMA kanala 1
010 DMA kanala 2
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 se softverski konfiguriraju s IRQ i DMA resursima postavljenim iz registra. Ostali se mogu konfigurirati putem BIOS-a ili preko skakača na kartici, tako da se registar može samo čitati.

Bit 7 određuje hoće li ili ne komprimirati izlazne podatke korištenjem RLE algoritma: 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 nestale skakačke ploče, ovi bitovi jednostavno označavaju resurse kao "Jumpered" ili ispravne brojeve redaka. Naravno, u ovom slučaju mogu se samo čitati.

Vrhunski povezani članci