Інтерфейс rs-232 (com-порт)

Опис інтерфейсу RS-232, формат використовуваних роз'ємів і призначення висновків, позначення сигналів, протокол обміну даними.

Інтерфейс RS-232, зовсім офіційно званий "EIA / TIA-232-E", але більш відомий як інтерфейс "COM-порту", раніше був одним з найпоширеніших інтерфейсів в комп'ютерній техніці. Він до цих пір зустрічається в настільних комп'ютерах, незважаючи на появу більш швидкісних і "інтелектуальних" інтерфейсів, таких як USB і FireWare. До його переваг з точки зору радіоаматорів можна віднести невисоку мінімальну швидкість і простоту реалізації протоколу в саморобному пристрої.

Фізичний інтерфейс реалізується одним з двох типів роз'ємів: DB-9M або DB-25M, останній в випускаються в даний час комп'ютерах практично не зустрічається.

З таблиць видно, що 25-контактний інтерфейс відрізняється наявністю повноцінного другого каналу прийому-передачі (сигнали, що позначені «# 2"), а також численних додаткових керуючих і контрольних сигналів. Однак, часто, незважаючи на наявність в комп'ютері "широкого" роз'єму, додаткові сигнали на ньому просто не підключені.

Логічні рівні передавача: "0" - від +5 до +15 Вольт, "1" - від -5 до -15 Вольт.

Логічні рівні приймача: "0" - вище +3 Вольт, "1" - нижче -3 Вольт.

Максимальне навантаження на передавач: вхідний опір приймача не менше 3 кОм.

CD - Пристрій встановлює цей сигнал, коли виявляє несучу в прийнятому сигналі. Зазвичай цей сигнал використовується модемами, які таким чином повідомляють хосту про виявленні працюючого модему на іншому кінці лінії.

RXD - Лінія прийому хостом даних від пристрою. Детально описана в розділі "Протокол обміну даними".

TXD - Лінія передачі хостом даних до пристрою. Детально описана в розділі "Протокол обміну даними".

DTR - Хост встановлює цей сигнал, коли готовий до обміну даними. Фактично сигнал встановлюється при відкритті порту комунікаційної програмою і залишається в цьому стані весь час, поки порт відкритий.

DSR - Пристрій встановлює цей сигнал, коли включено і готовий до обміну даними з хостом. Цей і попередній (DTR) сигнали повинні бути встановлені для обміну даними.

RTS - Хост встановлює цей сигнал перед тим, як почати передачу даних пристрою, а також сигналізує про готовність до прийому даних від пристрою. Використовується при апаратному управлінні обміном даними.

CTS - Пристрій встановлює цей сигнал у відповідь на установку хостом попереднього (RTS), коли готове прийняти дані (наприклад, коли попередні надіслані хостом дані передані модемом в лінію або є вільне місце в проміжному буфері).

У протоколі RS-232 існують два методи управління обміном даних: апаратний і програмний, а також два режими передачі: синхронний і асинхронний. Протокол дозволяє використовувати будь-який з методів управління спільно з будь-яким режимом передачі. Також допускається робота без управління потоком, що має на увазі постійну готовність хоста і пристрої до прийому даних, коли зв'язок встановлено (сигнали DTR і DSR встановлені).

Апаратний метод управління реалізується за допомогою сигналів RTS і CTS. Для передачі даних хост (комп'ютер) встановлює сигнал RTS і чекає установки пристроєм сигналу CTS, після чого починає передачу даних до тих пір, поки сигнал CTS встановлений. Сигнал CTS перевіряється хостом безпосередньо перед початком передачі чергового байта, тому байт, який вже почав передаватися, буде переданий повністю незалежно від значення CTS. У напівдуплексному режимі обміну даними (пристрій і хост передають дані по черзі, в повнодуплексному режимі вони можуть робити це одночасно) зняття сигналу RTS хостом означає його перехід в режим прийому.

Програмний метод управління полягає в передачі приймаючою стороною спеціальних символів зупинки (символ з кодом 0x13, званий XOFF) і відновлення (символ з кодом 0x11, званий XON) передачі. При отриманні даних символів передає, повинна відповідно зупинити передачу або відновити її (при наявності даних, які мають бути надіслані). Цей метод простіше з точки зору реалізації апаратури, однак забезпечує більш повільну реакцію і відповідно вимагає завчасного сповіщення передавача при зменшенні вільного місця в приймальному буфері до певної межі.

Синхронний режим передачі передбачає безперервний обмін даними, коли біти проходять один за іншим без додаткових пауз із заданою швидкістю. Цей режим COM-портом не підтримується.

Асинхронний режим передачі полягає в тому, що кожен байт даних (і біт контролю парності, в разі його наявності) "обертається" синхронизирующей послідовністю з одного нульового старт-біта і одного або декількох одиничних стоп-бітів. Схема потоку даних в асинхронному режимі представлена ​​на малюнку.

Один з можливих алгоритмів роботи приймача наступний:

  1. Очікувати рівня "0" на сигнал підтвердження (RXD в разі хоста, TXD в разі влаштування).
  2. Відрахувати половину тривалості біта і перевірити, що рівень сигналу все ще "0"
  3. Відрахувати повну тривалість біта і поточний рівень сигналу записати в молодший біт даних (біт 0)
  4. Повторити попередній пункт для всіх інших бітів даних
  5. Відрахувати повну тривалість біта і поточний рівень сигналу використовувати для перевірки правильності прийому за допомогою контролю парності (див. Далі)
  6. Відрахувати повну тривалість біта і переконатися, що поточний рівень сигналу "1".
  7. Повернутися до очікування початку наступного байта даних (крок 1)

Протокол має ряд змінних параметрів. які повинні бути прийняті однаковими на стороні приймача і на стороні передавача для успішного обміну даними:

  • Швидкість обміну даними задається в бітах в секунду, визначаючи тривалість одного біта, вибирається з ряду стандартних значень (300, 1200, 2400, 4800, 9600, 19200, 38400, 57600), але можуть бути і нестандартними, якщо підтримуються обома сторонами;
  • Кількість біт даних може бути від 4 до 8;
  • Контроль парності може бути парним ( "even", коли загальне число одиничних бітів в прийнятих даних, включаючи сам біт парності, повинно бути парним), непарних ( "odd", коли загальне число одиничних бітів в прийнятих даних, включаючи сам біт парності, повинно бути парним) або взагалі бути відсутнім;
  • Довжина стоп-біта може становити одну, півтори або дві тривалості біта.