Серијски порт
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Serial_port.jpg/200px-Serial_port.jpg)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/87/RS-232.jpeg/200px-RS-232.jpeg)
Серијски порт је врста рачунарског порта који се раније често користио за повезивање разних уређаја са рачунарима. Најчешће је кориштен за повезивање рачунарских мишева, рачунарских терминала и раних штампача али и других уређаја који данас углавном користе USB порт. Серијски порт користи RS-232 стандард за комуникацију, па се отуда понекад назива и RS-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) | Индикатор звона |
Модерне матичне плоче најчешће имају интегрисан један девет-пински серијски порт. У случају да плоча нема серијски порт, могуће је купити додатне картице са серијским портовима.
У вријеме стварања стандарда RS-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 |
Сигнали серијског порта
[уреди | уреди извор]![](http://upload.wikimedia.org/wikipedia/commons/thumb/1/1e/Rs232_communication_%28sk%29.svg/300px-Rs232_communication_%28sk%29.svg.png)
Стандардни серијски порт користи напонски ниво од -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), који се налазио на сваком рачунару са ДОС-ом.
Овај код ради у ДОС-у и Windows-у 95 и 98. Шаље слово које је стиснуто на тастатури на серијски порт, брзином од 2400 бпс без успостављања комуникације са другом страном (handshaking). Подесан је за тестирање таласних облика RS-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 и други.
Статус серијског порта се може видјети у контролном панелу код Windows-а (Control Panel-System-Device Manager-Ports-COM and LPT). Resource таб даје хардверску адресу и прекид.
Програм HyperTerminal, који се испоручивао уз све Windows оперативне системе од верзије 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 978-0-13-081949-9..