Статьи

послідовний порт

  1. UNIX [ правити | правити код ]
  2. Windows [ правити | правити код ]
  3. OS / 2 [ правити | правити код ]

Послідовний порт ( англ. serial port, COM-порт [1] , англ. communications port) - сленгове назва інтерфейсу стандарту RS-232 , Яким масово оснащувалися персональні комп'ютери . Порт має назву «послідовним», тому що інформація через нього передається по одному біту , Послідовно біт за бітом (на відміну від паралельного порту ). Незважаючи на те, що деякі інтерфейси комп'ютера (наприклад, Ethernet , FireWire і USB ) Теж використовують послідовний спосіб обміну інформацією, назва «послідовний порт» закріпилося за портом стандарту RS-232 .

Найбільш часто для послідовного порту персональних комп'ютерів використовується стандарт RS-232C. Раніше послідовний порт використовувався для підключення терміналу, пізніше для модему або миші . Зараз він використовується для з'єднання з джерелами безперебійного живлення , Для зв'язку з апаратними засобами розробки вбудованих обчислювальних систем , Супутниковими ресиверами, касовими апаратами, программаторами, з приладами систем безпеки об'єктів, а також з багатьма іншими пристроями.

За допомогою COM-порту можна з'єднати два комп'ютери, використовуючи так званий «нуль-модемний кабель» (див. Нижче). Використовувався з часів MS-DOS для передачі файлів з одного комп'ютера на інший, в UNIX для термінального доступу до іншої машини, а в Windows (навіть сучасної) - для відладчика рівня ядра.

Перевагою технології є крайня простота обладнання. Недоліком є ​​низька швидкість, великі розміри роз'ємів, а також часто високі вимоги до часу відгуку ОС і драйвера і велика кількість переривань (одне на половину апаратної черзі, тобто 8 байт).

На материнських платах провідних виробників (наприклад, Intel ) Або готових системах (наприклад, IBM , Hewlett-Packard , Fujitsu Siemens Computers ) Для послідовного порту прийнято умовне позначення COM або RS-232.

Найбільш часто використовуються стандартизовані в 1969 році D-образні роз'єми: 9- і 25-контактні, (DB-9 і DB-25 відповідно). Раніше використовувалися також DA-31 і круглі восьмиконтактних DIN-8. Максимальна швидкість передачі в звичайному виконанні порту становить 115 200 бод .

Широко поширений в IBM PC-сумісних комп'ютерах , Інтерфейс RS-232 не придатний для розважальних і офісних завдань, зате широко використовується в прикладних задачах, тому спроби позбутися в сучасних материнських платах від спадщини старих інтерфейсів приречені. Специфікація PC99 - один з безуспішних прикладів нажитися [ джерело? ] На масштабної заміни «застарілого» обладнання. Про неї пишуть [ джерело? ], Що вона «нині застаріла і представляє виключно історичний інтерес», а виробництво «застарілого» обладнання процвітає. В офісних і домашніх комп'ютерах, де відстані і перешкоди невеликі, а швидкість обміну затребувана, RS-232 практично витіснений інтерфейсом USB .

Існують стандарти на емуляцію послідовного порту над USB і над Bluetooth (ця технологія в значній мірі і проектувалася як «бездротової послідовний порт»).

Проте програмна емуляція даного порту широко використовується і сьогодні. Так, наприклад, практично всі мобільні телефони емулюють всередині себе класичний COM-порт і модем для реалізації тетерінга - доступу комп'ютера в Інтернет через GPRS / EDGE / 3G / 4G обладнання телефону. При цьому для фізичного підключення до комп'ютера використовується USB , Bluetooth або Wi-Fi [2] .

Також програмна емуляція даного порту надається «гостям» віртуальних машин VMWare і Microsoft Hyper-V , Основна мета при цьому - підключення відладчика рівня ядра Windows до «гостю».

У вигляді UART , Що відрізняється рівнями напруги і відсутністю додаткових сигналів, присутній практично у всіх мікроконтролерах, крім самих-самих маленьких, SoC, платах розробників, а також присутній на платах більшої частини пристроїв, хоча роз'єм і не виведений на корпус. Така популярність пов'язана з простотою цього інтерфейсу, як з фізичної точки зору, так і з легкістю доступу до порту з боку ПО в порівнянні з іншими інтерфейсами.

Роз'єм має контакти:

DTR (Data Terminal Ready - готовність до прийому даних) - вихід на комп'ютері, вхід на модемі. Чи означає готовність комп'ютера до роботи з модемом. Скидання цієї лінії викликає майже повне перезавантаження модему в первісний стан, в тому числі кидання трубки (деякі керуючі регістри виживають після такого скидання). В UNIX це відбувається в разі, якщо всі додатки закрили файли на драйвері послідовного порту. Миша використовує цей провід для отримання харчування.

DSR (Data Set Ready - готовність до передачі даних) - вхід на комп'ютері, вихід на модемі. Чи означає готовність модему. Якщо ця лінія знаходиться в нулі - то в ряді ОС стає неможливо відкрити порт як файл.

RxD (Receive Data - прийом даних) - вхід на комп'ютері, вихід на модемі. Потік даних, що входить в комп'ютер.

TxD (Transmit Data - передача даних) - вихід на комп'ютері, вхід на модемі. Потік даних, що виходять з комп'ютера.

CTS (Clear to Send - готовність передачі) - вхід на комп'ютері, вихід на модемі. Комп'ютер повинен призупинити передачу даних, поки цей провід не буде виставлений в одиницю. Використовується в апаратному протоколі управління потоком для запобігання переповнення в модемі.

RTS (Request to Send - запит на передачу) - вихід на комп'ютері, вхід на модемі. Модем зобов'язаний призупинити передачу даних, поки цей провід не буде виставлений в одиницю. Використовується в апаратному протоколі управління потоком для запобігання переповнення в обладнанні і драйвер.

DCD (Carrier Detect - наявність несучої) - вхід на комп'ютері, вихід на модемі. Зводиться модемом в одиницю після встановлення з'єднання з модемом з того боку, скидається в нуль при розриві зв'язку. Апаратура комп'ютера може видавати переривання при настанні такої події.

RI (Ring Indicator - сигнал виклику) - вхід на комп'ютері, вихід на модемі. Зводиться модемом в одиницю після виявлення сигналу телефонного дзвінка. Апаратура комп'ютера може видавати переривання при настанні такої події.

SG (Signal Ground - сигнальна земля) - загальний сигнальний провід порту, не є загальною землею, як правило, ізольований від корпусу ЕОМ або модему.

В нуль-модемном кабелі використовуються дві перехрещені пари: TXD / RXD і RTS / CTS.

Початково в IBM PC і IBM PC / XT апаратура порту була побудована на мікросхемі UART 8250 фірми National Semiconductor, потім мікросхема була замінена на 16450, програмно сумісної з попередніми, але дозволяла використовувати швидкості аж до 115200 біт в секунду, потім з'явилася мікросхема 16550, що містила двонаправлений FIFO буфер даних для зниження навантаження на контролер переривань. В даний час включена в SuperIO мікросхему на материнській платі разом з рядом інших пристроїв.

UNIX [ правити | правити код ]

COM-порти в операційній системі Unix ( Linux ) - це файли символьних пристроїв. Зазвичай ці файли розташовуються в каталозі / dev і називаються

  • ttyS0, ttyS1, ttyS2 і т. д. в Linux
  • ttyd0, ttyd1, ttyd2 і т. д. (або ttyu0, ttyu1, ttyu2 і т. д. починаючи з версії 8.0) в FreeBSD
  • ttya, ttyb, ttyc і т. д. в Solaris
  • ttyf1, ttyf2, ttyf3 і т. д. в IRIX
  • tty1p0, tty2p0, tty3p0 і т. д. в HP-UX
  • tty01, tty02, tty03 і т. д. в Digital Unix
  • ser1, ser2, ser3 і т. д. в QNX

Для програмного доступу до СОМ-порту необхідно відкрити на читання / запис відповідний файл і зробити виклики спеціальних функцій tcgetattr (для того, щоб дізнатися про поточні настройки) і tcsetattr (щоб встановити нові настройки). Також може знадобитися зробити виклики ioctl з певними параметрами. Після цього при записі в файл дані будуть відправлятися через порт, а при читанні програма буде отримувати вже прийняті дані з буфера СОМ-порту.

Пристрої з іменами «ttyxx» використовуються як серверні, тобто додаток, що відкрила даний пристрій, зазвичай очікує вхідного дзвінка від модему. Класичним таким додатком, використовуваним за замовчуванням, є getty , Яка очікує вхідного дзвінка, далі налаштовує COM-порт відповідно до файлами конфігурації, виводить туди "login:", приймає ім'я користувача і запускає як нащадка команду «login ім'я користувача», зі стандартним вводом і виводом, перенаправлення в COM-порт. Ця команда в свою чергу запитує і перевіряє пароль, і в разі успіху запускає (не як нащадка, а замість себе викликом execve в тому ж процесі) default user shell, прописаний у файлі / etc / passwd.

Ця технологія історично виникла в 1970-і роки, коли під ОС UNIX використовувалися комп'ютери на кшталт PDP-11 (В СРСР серія називалася СМ ЕОМ ) або VAX , Що дозволяють підключення багатьох терміналів для роботи багатьох користувачів. Термінали - а значить, і весь інтерфейс користувача - при цьому підключалися через послідовні порти, з можливістю підключення замість терміналу модему і подальшого дозвону на комп'ютер по телефону. До сих пір в UNIX-подібних ОС існує термінальний стек, і зазвичай 3 реалізації терміналів - послідовний порт, консоль текстового режиму екрану + клавіатура, і «зворотна петля» в один з відкритих файлів керуючого додатки (так реалізовані telnetd, sshd і xterm).

Клієнтські пристрої послідовного порту, призначені для здійснення дзвінків зовні, в багатьох UNIX (не у всіх) називаються cuaxx.

Так як послідовний порт в UNIX доступний тільки через термінальний стек, він може бути керуючим терміналом для процесів і груп (посилати SIGHUP при розриві зв'язку від модему і SIGINT при натисканні Ctrl-C), на рівні ядра підтримувати редагування останньої введеної рядки клавішами стрілок, і т. д. для відключення цієї можливості з метою перетворення пристрою в «трубу» для потоку байт необхідні виклики ioctl.

Windows [ правити | правити код ]

З послідовними портами в Win32 працюють як з файлами. Для відкриття порту використовується функція CreateFile. Портів може бути багато, тому вони позначаються як COM1, COM2 і т. Д. По порядку виявлення драйверів відповідних пристроїв. Перші 9 портів доступні в тому числі як іменовані канали для передачі даних (доступні по іменах «COM1», «COM2», ...), такий метод доступу вважається застарілим. Рекомендується до всіх портів звертатися як до файлів (за іменами «\\. \ COM1», «\\. \ COM2», ... «\\. \ COMx»).

Пошук PnP-імен пристроїв в системі здійснюється викликом SetupDiGetClassDevs. У реєстрі існує розділ HKEY_LOCAL_MACHINE \ HARDWARE \ DEVICEMAP \ SERIALCOMM, в якому відображаються наявні в даний момент COM-порти.

Для кожного порту в реєстрі є розділ. Ці розділи мають такі імена:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Serial \ Parameters \ Serial10000,

де останнє значення «Serial10000» - унікальний номер для кожного нового доданого в систему COM-порту, для другого - «Serial10001» і т. д.

OS / 2 [ правити | правити код ]

Наявний драйвер COM.SYS підтримує тільки 4 COM-порту, кожен з яких повинен мати свою лінію переривань. Для обслуговування COM-портів із загальною лінією переривання необхідно скористатися драйвером SIO [3] .

У деяких випадках можливе застосування спрощеного варіанту кабелю, в якому задіюються тільки контакти 2, 3 і 5.

  • Переклад керівництва по програмуванню СОМ-порту в POSIX операційних системах
  • MSDN. Serial Communications (Eng-1995)
  • Програмування порту на java - не дозволяє працювати з Windows, на відміну від офіційних пакетів від Sun.
  • jSSC (Java Simple Serial Connector) - бібліотека для роботи з послідовним портом з Java. Підтримує Win32 (Win98-Win8), Win64, Linux (x86, x86-64, ARM), Solaris (x86, x86-64), Mac OS X 10.5 and higher (x86, x86-64, PPC, PPC64).
  • Програмування COM порту на C ++ під Windows. Готова бібліотека, вихідні тексти, приклади програм.
  • Яшкардін В.Л. Послідовний порт. Програмування COM-порту в Windows і MS-DOS (неопр.). SoftElectro (2009). Дата обігу 18 жовтня 2010 року. Читальний зал 8 лютого 2012 року.

Новости

Как создать фото из видео
Кризис заставляет искать дополнительные источники дохода. Одним из таких источников может стать торговля на валютном рынке Форекс. Но чтобы не потерять свои деньги необходимо работать с надежным брокером.

Как оформить группу в вконтакте видео
Дано хотел свой магазин в вк, но не знал с чего начать его делать. Так как хотелось не банальный магазин с кучей ссылок и фото, а красиво оформленный. С меню, с аватаркой. После просмотра видео создал

Как оформить диск малыш от рождения до года из фото и видео
Оформить диск "Малыш от рождения до года" из фото и видео можно совершенно разными способами! Кто-то для достижения данной цели идет на шоу-таланты, кто-то пользуется услугами профессионалов, а кто-то