Paralelni port je vrsta računarskog porta koji se ranije uglavnom koristio za povezivanje printera (štampača) sa računarima. Odatle se često naziva i printer port, štampač port, Centroniks port (engl. Centronics, po nekadašnjem proizvođaču štampača).

Paralelni port na računaru.
Paralelni (Centroniks) port na štampaču (printeru).

Port se međutim može koristiti i za kontrolu uređaja, manipulacijom naponskog nivoa individualnih pinova.

Ranije je korišten i za prenos fajlova između računara putem posebnog Laplink kabla.

Pridjev paralelni potiče od činjenice da port šalje osam bitova podataka štampaču (1 bajt) na osam paralelnih linija, za razliku od serijskog porta, koji bitove šalje jedan po jedan. Paralelnim sistemom prenosa se postiže veća brzina prenosa podataka, ali je potrebno više žica u kablu.

Na PC računarima, paralelni port ima oznaku LPT1 ili LPT2. To je na računaru 25-pinski D-konektor ženskog tipa, a na printeru 36-pinski Centroniks D-konektor ženskog tipa.

Hardver uredi

Stariji PC računari su imali posebne kartice na kojima su se morali podešavati prekidači da se označi računaru koji prekid („interapt“) i adresa će se koristiti.

Današnje matične ploče imaju integrisane ulazno-izlazne (I/O) kontrolere za serijski, paralelni, USB i druge portove.

Adrese uredi

Tipični raspored adresa i prekida je prikazan u tabeli ispod. Treba napomenuti da računari firme IBM često imaju 0x3bc kao adresu prvog paralelnog porta.

Ime porta Prekid # Početna adresa Krajnja adresa
LPT1 IRQ 7 0x378 0x37f
LPT2 IRQ 7 0x278 0x27f
LPT3 IRQ 5 0x3bc 0x3bf

Početna adresa, na primjer 0x378 za LPT1, daje pristup pinovima 2-9 paralelnog porta, koji mogu da se koriste kao digitalni izlazi. Iduća adresa u nizu, 0x379, kontroliše status porta, i pinovi mogu da se koriste kao digitalni ulazi. Zadnja adresa je 0x37A, kontrolni port, koja može da se koristi za digitalne ulaze.

Veza adresa porta i pinova je prikazana u tabeli ispod.

Adresa Najznačajniji (MSB) bit Najmanje značajan (LSB) bit
Bit: 7 6 5 4 3 2 1 0
Базна адреса, Подаци (Data port) Pin: 9 8 7 6 5 4 3 2
Базна адреса+1, Статус (Status port) Pin: ~11 10 12 13 15
Базна адреса+2, Контрола (Control port) Pin: ~17 16 ~14 ~1

~ označava logičku inverziju pina u hardveru.

Raspored pinova uredi

Raspored svih pinova paralelnog porta je dat u tabeli ispod.

Broj pina (DB25) Broj pina (36 pinova) Ime signala Smjer Registar-bit Invertovan
1 1 nStrobe Izlaz Control-0 Da
2 2 Data0 Ulaz/Izlaz Data-0 Ne
3 3 Data1 Ulaz/Izlaz Data-1 Ne
4 4 Data2 Ulaz/Izlaz Data-2 Ne
5 5 Data3 Ulaz/Izlaz Data-3 Ne
6 6 Data4 Ulaz/Izlaz Data-4 Ne
7 7 Data5 Ulaz/Izlaz Data-5 Ne
8 8 Data6 Ulaz/Izlaz Data-6 Ne
9 9 Data7 Ulaz/Izlaz Data-7 Ne
10 10 nAck Ulaz Status-6 Ne
11 11 Busy Ulaz Status-7 Da
12 12 Paper-Out Ulaz Status-5 Ne
13 13 Select Ulaz Status-4 Ne
14 14 Linefeed Izlaz Control-1 Da
15 32 nError Ulaz Status-3 Ne
16 31 nInitialize Izlaz Control-2 Ne
17 36 nSelect-Printer Izlaz Control-3 Da
18-25 19-30,33,17,16 Ground - - -

Signali paralelnog porta uredi

Port koristi standardne TTL logičke nivoe, od 0 i 5 Volti.

Pin STROBE je normalno na visokom logičkom nivou (+5V, logička jedinica). Računar obara ovaj pin na 0V (logička nula) da signalizira printeru da pošalje bajt podataka. Pinovi 2-9 su za 8 bitova podataka. Pin 10 koristi printer da signalizira računaru da je primio bajt. Pin 11, BUSY, je u stanju logičke jedinice kada printer želi da signalizira računaru da je zaposlen.

Pin 11, BUSY, u stanju logičke nule govori računaru da je printer spreman za prijem. Pin 12, OUT OF PAPER ili PRINTER ERROR u niskom stanju govori računaru da printer nema probleme (sve je u redu).

Softver uredi

Zastarjeli operativni sistem DOS je direktno upravljao paralelnim portom.

Komanda SHIFT+PRINTSCREEN je direktno štampala tekst sa ekrana na štampaču priključenom na paralelni port.

Kontrola uređaja korištenjem paralelnog porta (DOS, Windows 95 i 98) uredi

Direktni pristup portu je bio moguć iz većine programskih jezika toga doba.

Kao primjer možemo uzeti KjuBejsik (QBasic, QuickBasic), koji se nalazio na svakom računaru sa DOS-om.

Ovaj kod radi u DOS-u i Windows-u 95 i 98:

OUT &H378, 0 ' Pinovi 2 do 9 = 0 V. Format je IZLAZ, adresa, bajt
ulaz = INP(&H379) ' Varijabla ulaz = stanje pinova vezanih sa status bajtom

Ako želimo podesiti sve pinove na +5 V:

OUT &H378, 255 ' Pinovi 2 do 9 = 5 V

Individualni pinovi su se mogli podesiti na +5 V sa:

OUT &H378, 1 ' Samo Pin 2 = 5 V, ostali 0 V

Pin 3 se može podesiti na +5 V sa:

OUT &H378, 2 ' Samo Pin 3 = 5 V, ostali 0 V

Manipulacijom izlaznih pinova i očitavanjem ulaznih, mogao se dakle stvoriti jednostavan sistem za kontrolu uređaja, mašina, svjetala i tako dalje.

Novi Windows operativni sistemi (Windows 2000, XP i noviji) uredi

U Windows-u 95 i 98, programi su i dalje imali mogućnost direktnog pristupa portu. To u novijim Majkrosoft operativnim sistemima više nije slučaj, i drajveri se moraju koristiti za tu svrhu.

Status paralelnog porta se može vidjeti u kontrolnom panelu kod Windows-a (Control Panel-System-Device Manager-Ports-COM and LPT). Resource tab daje hardversku adresu i prekid.

Status printera je vidljiv pod Start-Settings-Printers.

Linuks uredi

U Linuks operativnom sistemu, paralelni port se ne može direktno koristiti osim od root korisnika, ili promjenom načina pristupa običnih korisnika putem chmod komande.

Oznaka prvog porta je lp0, drugog lp1 i tako dalje.

Primjer C programskog koda za pristup portu i kontrolu naponskog stanja izlaznih pinova je dat ispod. Program mora imati root privilegije. Fajl io.h se nalazi u raznim direktorijima, zavisno od distribucije. Na Debian GNU/Linuksu je na primjer u /usr/include/sys direktoriju, pa kod treba podesiti.

#include <stdio.h>
#include <unistd.h>
#include <asm/io.h>
#define PARPORT 0x378 /* prvi paralelni port */

int main() {
  /* Omoguci pristup portu */
  if (ioperm(PARPORT, 3, 1)) {perror("ioperm"); exit(1);}
  /* Podesi pinove podataka 2-9 (data) porta na 0 V */
  outb(255, PARPORT);
  /* Malo sacekaj (20 ms) */
  usleep(20000);
  /* Ocitaj status port (adresa+1) i pokazi stanje */
  printf("status: %d\n", inb(PARPORT + 1));
  /* Zatvori port */
  if (ioperm(PARPORT, 3, 0)) {perror("ioperm"); exit(1);}
  exit(0);
}

Kod Linuksa se, kao i kod DOS-a, može dakle ostvariti jednostavan kontrolni sistem korištenjem paralelnog porta. To se i koristi za mnoge amaterske uređaje, kao male CNC mašine i slično.

Literatura uredi

  • Assembling and Repairing Personal Computers, 2nd edition, Dan L. Beeson,

Prentice Hall. ISBN 978-0-13-081949-9.

Vidi još uredi

Spoljašnje veze uredi