Serijski port

S Vikipedije, slobodne enciklopedije
Serijski port na računaru, sa 9 pinova.
Serijski port konektor (ženski) na uređaju koji se uključuje u računar.

Serijski port je vrsta računarskog porta koji se ranije često koristio za povezivanje raznih uređaja sa računarima. Najčešće je korišten za povezivanje računarskih miševa, računarskih terminala i ranih štampača ali i drugih uređaja koji danas uglavnom koriste USB port. Serijski port koristi RS-232 standard za komunikaciju, pa se otuda ponekad naziva i RS-232 port.

Port se može koristiti i za kontrolu uređaja i komunikaciju sa raznim mikrokontrolerskim razvojnim sistemima.

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

Pridjev serijski potiče od činjenice da port šalje bitove podataka jedan po jedan, za razliku od paralelnog porta, koji bitove šalje paralelno, po osam odjednom. Paralelnim sistemom prenosa se postiže veća brzina prenosa podataka, ali je potrebno više žica u kablu. Sa druge strane, dozvoljena dužina kabla za serijsku komunikaciju je mnogostruko veća nego paralelnog kabla, posebno pri manjim brzinama rada.

Na ličnim računarima, serijski port ima oznaku COM1, COM2, COM3 ili COM4. To je na računaru 9-pinski D-konektor muškog tipa, a ponekad i 25-pinski D-konektor muškog tipa (na starijim računarima).

Hardver[uredi | uredi izvor]

Raspored pinova[uredi | uredi izvor]

Raspored pinova serijskog porta se može vidjeti u tabeli ispod, za 9 pinske i 25-pinske konektore. 9-pinski konektor je uveden na AT (286) računarima tokom 1980-ih godina, kao dopuna tadašnjem standardnom 25-pinskom konektoru, da omogući montažu 2 serijska konektora na metalnu pločicu na kartici.

Raspored kod 25-pinskog
konektora
Raspored kod 9-pinskog
konektora
Izlaz / Ulaz
(gledano s računara)
Oznaka Funkcija
2 3 Izlaz TxD (Transmit Data) Slanje podataka
3 2 Ulaz RxD (Receive Data) Prijem podataka
4 7 Izlaz RTS (Request To Send) Zahtjev za slanje
5 8 Ulaz CTS (Clear To Send) Spremnost za slanje
6 6 Ulaz DSR (Data Set Ready) Podaci spremni
7 5 - GND (Ground) Minus pol signala
8 1 Ulaz DCD (Data Carrier Detector) Detektor nosioca podataka
20 4 Izlaz DTR (Data Terminal Ready) Uređaj spreman
22 9 Ulaz RI (Ring Indicator) Indikator zvona

Moderne matične ploče najčešće imaju integrisan jedan devet-pinski serijski port. U slučaju da ploča nema serijski port, moguće je kupiti dodatne kartice sa serijskim portovima.

U vrijeme stvaranja standarda RS-232, koji pokriva komunikaciju uz pomoć serijskog porta, napravljena je podjela na DTE (Data Terminal Equipment) i DCE (Data Communication Equipment) uređaje. Računar, kao DTE ima po tom standardu muški konektor, a uređaji DCE imaju ženski konektor. Ova podjela je kasnije postala mnogo manje jasna, jer je dobar dio uređaja koristio dvosmjernu komunikaciju.

Adrese[uredi | uredi izvor]

Hardverske adrese serijskog portova su uglavnom pratile standard prikazan u donjoj tablici:

Port Ulazno-izlazna (I/O) adresa Prekid (interapt)
COM1 3F8-3FF heksadecimalno IRQ4
COM2 2F8-2FF heksadecimalno IRQ3
COM3 3EB-3EF heksadecimalno IRQ4
COM4 2E8-2EF heksadecimalno IRQ3

Signali serijskog porta[uredi | uredi izvor]

Naponski nivoi serijskog porta pri prenosu jednog slova.

Standardni serijski port koristi naponski nivo od -12 V za logičku jedinicu a +12 V za logičku nulu, što je obrnuto od normalne konvencije.

Radi lakše komunikacije, preneseni bitovi nisu samo bitovi podatka, već postoje i START, STOP i PARITET (PARITY) bitovi.

Brzina rada se može podešavati sa vrlo velikim brojem bps (bit po sekundi) stanja, neke od mogućih brzina su:

  • 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 bitova u sekundi. Neki serijski portovi podržavaju i brzine od 115200, 128000, i 256000 bps. Sve brzine nisu podržane od svih vrsta hardvera. Manje brzine omogućavaju rad sa većim dužinama serijskog kabla.

Broj bitova podataka je 7, 8 ili 8, broj start bitova 1, a stop bitova 0 do 2. Paritet može biti paran, neparan ili nepostojeći.

Broj bitova podataka je najčešće 8. Start bit signalizira uređaju da se pripremi za prijem podataka, pošto obara serijsku liniju sa +12 na -12 volti. Stop bit označava kraj niza bitova podataka, a paritet bit se koristi za kontrolu ispravnosti podataka. Oba se često izostavljaju.

Softver[uredi | uredi izvor]

DOS[uredi | uredi izvor]

Direktan pristup portu je bio omogućen u DOS operativnom sistemu. Svi značajniji programski jezici (QBasic/QuickBasic, C, Pascal) su podržavali pristup portu.

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

Ovaj kod radi u DOS-u i Windows-u 95 i 98. Šalje slovo koje je stisnuto na tastaturi na serijski port, brzinom od 2400 bps bez uspostavljanja komunikacije sa drugom stranom (handshaking). Podesan je za testiranje talasnih oblika RS-232 komunikacije preko osciloskopa:

OPEN "COM1:2400,N,8,1,RS,CS,DS,CD" AS #1 'Otvara ser. port na 2400 bps
100
VAR1$=INKEY$ 'Prati tastaturu. Slovo = VAR1.
PRINT #1, VAR1$ 'Salji slovo na port.
GOTO 100 'Ponovo.

Postojalo je mnoštvo komercijalnih programa koji su služili za komunikaciju preko serijskog porta, priključenje modema, kontrolu uređaja i tako dalje. U te se mogu ubrojiti ProComm, Qmodem, Telix i drugi.

Microsoft Windows[uredi | uredi izvor]

Status serijskog 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.

Program HyperTerminal, koji se isporučivao uz sve Windows operativne sisteme od verzije 95 do XP, je služio za komunikaciju i kontrolu uređaja preko serijskog porta.

Linuks[uredi | uredi izvor]

U Linuks operativnom sistemu, oznaka prvog porta je ttyS0, drugog ttyS1 i tako dalje. Popularan program za korištenje porta u ulozi terminal emulatora je Minicom.

Pristup portu je moguć iz većine programskih jezika, kao C, Python i drugih.

U programskom jeziku Python, kontrola porta je jednostavna uz pomoć pyserial (PySerial sajt[mrtva veza]) modula:

print 'Otvaram serijski port...'
ser = serial.Serial(0, 9600, timeout=2) # Port ttyS0 (COM1) na 9600 bps
print 'Serijski port otvoren.'
ser.write('a') # Posalji slovo a
ser.close() # Zatvori port.

Ako neki uređaj šalje podatke računaru, mogu se dobiti upotrebom:

ulaz=ser.read(1) # Очитава један знак (слово) са порта

Na ovaj način se mogu stvoriti programi za komunikaciju, kontrolu uređaja i slično.

Vidi još[uredi | uredi izvor]

Literatura[uredi | uredi izvor]

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

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

Spoljašnje veze[uredi | uredi izvor]