Серијски порт

Из Википедије, слободне енциклопедије
Серијски порт на рачунару, са 9 пинова.
Серијски порт конектор (женски) на уређају који се укључује у рачунар.

Серијски порт је врста рачунарског порта који се раније често користио за повезивање разних уређаја са рачунарима. Најчешће је кориштен за повезивање рачунарских мишева, рачунарских терминала и раних штампача али и других уређаја који данас углавном користе УСБ порт. Серијски порт користи РС-232 стандард за комуникацију, па се отуда понекад назива и РС-232 порт.

Порт се може користити и за контролу уређаја и комуникацију са разним микроконтролерским развојним системима.

Раније је кориштен и за пријенос фајлова између рачунара путем посебног серијског кабла.

Придјев серијски потиче од чињенице да порт шаље битове података један по један, за разлику од паралелног порта, који битове шаље паралелно, по осам одједном. Паралелним системом пријеноса се постиже већа брзина пријеноса података, али је потребно више жица у каблу. Са друге стране, дозвољена дужина кабла за серијску комуникацију је многоструко већа него паралелног кабла, посебно при мањим брзинама рада.

На личним рачунарима, серијски порт има ознаку COM1, COM2, COM3 или COM4. То је на рачунару 9-пински Д-конектор мушког типа, а понекад и 25-пински Д-конектор мушког типа (на старијим рачунарима).

Хардвер[уреди]

Распоред пинова[уреди]

Распоред пинова серијског порта се може видјети у табели испод, за 9 пинске и 25-пинске конекторе. 9-пински конектор је уведен на АТ (286) рачунарима током 1980-их година, као допуна тадашњем стандардном 25-пинском конектору, да омогући монтажу 2 серијска конектора на металну плочицу на картици.

Распоред код 25-пинског
конектора
Распоред код 9-пинског
конектора
Излаз / Улаз
(гледано с рачунара)
Ознака Функција
2 3 Излаз TxD (Transmit Data) Слање података
3 2 Улаз RxD (Receive Data) Пријем података
4 7 Излаз RTS (Request To Send) Захтјев за слање
5 8 Улаз CTS (Clear To Send) Спремност за слање
6 6 Улаз DSR (Data Set Ready) Подаци спремни
7 5 - GND (Ground) Минус пол сигнала
8 1 Улаз DCD (Data Carrier Detector) Детектор носиоца података
20 4 Излаз DTR (Data Terminal Ready) Уређај спреман
22 9 Улаз RI (Ring Indicator) Индикатор звона

Модерне матичне плоче најчешће имају интегрисан један девет-пински серијски порт. У случају да плоча нема серијски порт, могуће је купити додатне картице са серијским портовима.

У вријеме стварања стандарда РС-232, који покрива комуникацију уз помоћ серијског порта, направљена је подјела на DTE (Data Terminal Equipment) и DCE (Data Communication Equipment) уређаје. Рачунар, као DTE има по том стандарду мушки конектор, а уређаји DCE имају женски конектор. Ова подјела је касније постала много мање јасна, јер је добар дио уређаја користио двосмјерну комуникацију.

Адресе[уреди]

Хардверске адресе серијског портова су углавном пратиле стандард приказан у доњој таблици:

Порт Улазно-излазна (I/O) адреса Прекид (интерапт)
COM1 3F8-3FF хексадецимално IRQ4
COM2 2F8-2FF хексадецимално IRQ3
COM3 3EB-3EF хексадецимално IRQ4
COM4 2E8-2EF хексадецимално IRQ3

Сигнали серијског порта[уреди]

Напонски нивои серијског порта при преносу једног слова.

Стандардни серијски порт користи напонски ниво од -12 V за логичку јединицу а +12 V за логичку нулу, што је обрнуто од нормалне конвенције.

Ради лакше комуникације, пренесени битови нису само битови податка, већ постоје и СТАРТ, СТОП и ПАРИТЕТ (PARITY) битови.

Брзина рада се може подешавати са врло великим бројем бпс (бит по секунди) стања, неке од могућих брзина су:

  • 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 битова у секунди. Неки серијски портови подржавају и брзине од 115200, 128000, и 256000 бпс. Све брзине нису подржане од свих врста хардвера. Мање брзине омогућавају рад са већим дужинама серијског кабла.

Број битова података је 7, 8 или 8, број старт битова 1, а стоп битова 0 до 2. Паритет може бити паран, непаран или непостојећи.

Број битова података је најчешће 8. Старт бит сигнализира уређају да се припреми за пријем података, пошто обара серијску линију са +12 на -12 волти. Стоп бит означава крај низа битова података, а паритет бит се користи за контролу исправности података. Оба се често изостављају.

Софтвер[уреди]

ДОС[уреди]

Директан приступ порту је био омогућен у ДОС оперативном систему. Сви значајнији програмски језици (QBasic/QuickBasic, C, Pascal) су подржавали приступ порту.

Као примјер можемо узети КјуБејсик (QBasic), који се налазио на сваком рачунару са ДОС-ом.

Овај код ради у ДОС-у и Виндовсу 95 и 98. Шаље слово које је стиснуто на тастатури на серијски порт, брзином од 2400 бпс без успостављања комуникације са другом страном (handshaking). Подесан је за тестирање таласних облика РС-232 комуникације преко осцилоскопа:

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.

Постојало је мноштво комерцијалних програма који су служили за комуникацију преко серијског порта, прикључење модема, контролу уређаја и тако даље. У те се могу убројити ProComm, Qmodem, Telix и други.

Виндоус[уреди]

Статус серијског порта се може видјети у контролном панелу код Виндоуса (Control Panel-System-Device Manager-Ports-COM and LPT). Resource таб даје хардверску адресу и прекид.

Програм HyperTerminal, који се испоручивао уз све Виндовс оперативне системе од верзије 95 до XP, је служио за комуникацију и контролу уређаја преко серијског порта.

Линукс[уреди]

У Линукс оперативном систему, ознака првог порта је ttyS0, другог ttyS1 и тако даље. Популаран програм за кориштење порта у улози терминал емулатора је Minicom.

Приступ порту је могућ из већине програмских језика, као C, Python и других.

У програмском језику Python, контрола порта је једноставна уз помоћ pyserial (PySerial сајт) модула:

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.

Ако неки уређај шаље податке рачунару, могу се добити употребом:

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

На овај начин се могу створити програми за комуникацију, контролу уређаја и слично.

Види још[уреди]

Литература[уреди]

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

Prentice Hall, ISBN 0-13-081949-2

Спољашње везе[уреди]