RS-232

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:47, 3 апреля 2016.

RS232 - протокол, применяемый для связи компьютеров с модемами и другими периферийными устройствами. Информация передается по проводам с уровнями сигналов, отличающимися от стандартных 5В, для обеспечения большей устойчивости к помехам. Асинхронная передача данных осуществляется с установленной скоростью при синхронизации уровнем сигнала стартового импульса.

Назначение RS-232

Интерфейс RS-232-C был разработан для простого применения, однозначно определяемого по его названию "Интерфейс между терминальным оборудованием и связным оборудованием с обменом по последовательному двоичному коду". Каждое слово в названии значимое, оно определяет интерфейс между терминалом (DTE) и модемом (DCE) по передаче последовательных данных.

Интерфейс RS-232 полностью аппаратно реализован на персональных компьютерах в виде микросхем и разъемов . В PC его называют COM-портом(Communication port). Аппаратная реализация означает то, что он работает всегда, не зависимо, какая операционная система установлена на PC (он работает и без ОС). Программы могут взаимодействовать с СОМ-портами всеми доступными средствами: прямым кодом микропроцессора, аппаратными прерываниями, функциями BIOS, средствами ОС, компонентами языков высокого уровня. СОМ порт реализованный по стандарту RS-232- универсален. Он обеспечивал работу PC с периферийными устройствами (чем сейчас занят USB), взаимодействие с локальной сетью через модем (Ethernet), обмен данными между PC и промышленным оборудованием (ModBus и др.), чтобы разбираться как работают эти протоколы необходимо понимать какую функцию СОМ порта они взяли на себя.

Физический интерфейс реализуется одним из двух типов разъемов: DB-9M или DB-25M, последний в выпускаемых в настоящее время компьютерах практически не встречается.[1]

9-контактная вилка типа DB-9M

Нумерация контактов со стороны штырьков. Направление сигналов указано относительно хоста (компьютера)[2].

Схема разъема DB-9M
Назначение выводов 9-контактного разъема
Контакт Сигнал Направление Описание
1 CD Вход Обнаружена несущая
2 RXD Вход Принимаемые данные
3 TXD Выход Передаваемые данные
4 DTR Выход Хост готов
5 GND - Общий провод
6 DSR Вход Устройство готово
7 RTS Выход Хост готов к передаче
8 CTS Вход Устройство готово к приему
9 EI Вход Обнаружен вызов

25-контактная вилка типа DB-25M

Нумерация контактов со стороны штырьков. Направление сигналов указано относительно хоста (компьютера)[3].

Назначение выводов 25-контактного разъема
Контакт Сигнал Направление Описание
1 SHIELD - Экран
2 TXD Выход Передаваемые данные
3 RXD Вход Принимаемые данные
4 RTS Выход Хост готов к передаче
5 CTS Вход Устройство готово к приему
6 DSR Вход Устройство готово
7 GND - Общий провод
8 CD Вход Обнаружена несущая
9 - - Резерв
10 - - Резерв
11 - - Не используется
12 SCD Вход Обнаружена несущая #2
13 SCTS Вход Устройство готово к приему #2
14 STXD Выход Передаваемые данные #2
15 TRC Вход Тактирование передатчика
16 SRXD Вход Принимаемые данные #2
17 RCC Вход Тактироание приемника
18 LLOOP Выход Локальная петля
19 SRTS Выход Хост готов к передаче #2
20 DTR Выход Хост готов
21 RLOOP Выход Внешняя петля
22 RI Вход Обнаружен вызов
23 DRD Вход Определена скорость данных
24 TRCO Выход Тактирование внешнего передатчика
25 TEST Вход Тестовый режим
Схема разъема DB-25M

Описание основных сигналов интерфейса

CD – Устройство устанавливает этот сигнал, когда обнаруживает несущую в принимаемом сигнале. Обычно этот сигнал используется модемами, которые таким образом сообщают хосту о обнаружении работающего модема на другом конце линии.

RXD – Линия приема хостом данных от устройства. Подробно описана в разделе "Протокол обмена данными".

TXD – Линия передачи хостом данных к устройству. Подробно описана в разделе "Протокол обмена данными".

DTR – Хост устанавливает этот сигнал, когда готов к обмену данными. Фактически сигнал устанавливается при открытии порта коммуникационной программой и остается в этом состоянии все время, пока порт открыт.

DSR – Устройство устанавливает этот сигнал, когда включено и готово к обмену данными с хостом. Этот и предыдущий (DTR) сигналы должны быть установлены для обмена данными.

RTS – Хост устанавливает этот сигнал перед тем, как начать передачу данных устройству, а также сигнализирует о готовности к приему данных от устройства. Используется при аппаратном управлении обменом данными.

CTS – Устройство устанавливает этот сигнал в ответ на установку хостом предыдущего (RTS), когда готово принять данные (например, когда предыдущие присланные хостом данные переданы модемом в линию или есть свободное место в промежуточном буфере).

RI – Устройство (обычно модем) устанавливает этот сигнал при получении вызова от удаленной системы, например при приеме телефонного звонка, если модем настроен на прием звонков.

Протокол обмена данными

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

Аппаратный метод управления реализуется с помощью сигналов RTS и CTS. Для передачи данных хост (компьютер) устанавливает сигнал RTS и ждет установки устройством сигнала CTS, после чего начинает передачу данных до тех пор, пока сигнал CTS установлен. Сигнал CTS проверяется хостом непосредственно перед началом передачи очередного байта, поэтому байт, который уже начал передаваться, будет передан полностью независимо от значения CTS. В полудуплексном режиме обмена данными (устройство и хост передают данные по очереди, в полнодуплексном режиме они могут делать это одновременно) снятие сигнала RTS хостом означает его переход в режим приема.

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

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

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

Схема потока данных в асинхронном режиме

Один из возможных алгоритмов работы приемника следующий:

  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", когда общее число единичных битов в принятых данных, включая сам бит четности, должно быть четным) или вообще отсутствовать;
  • Длина стоп-бита может составлять одну, полторы или две длительности бита.


Основные характеристики

Параметр RS-232
Способ передачи сигнала Однофазный
Максимальное количество приемников 1
Максимальная длина кабеля 15 м
Максимальная скорость передачи 460 кбит/с
Синфазное напряжение на выходе ± 25 В
Напряжение в линии под нагрузкой ±5... ±15 В
Импеданс нагрузки 3...7 кОм
Ток утечки в "третьем" состоянии -
Допустимый диапазон сигналов на входе приемника ±15 В
Чувствительность приемника ±3В
Входное сопротивление приемника 3...7 кОм

Стандарт

Ассоциация электронной промышленности (EIA) развивает стандарты по передаче данных. Стандарты EIA имеют префикс «RS». «RS» означает рекомендуемый стандарт, но сейчас стандарты просто обозначаются как «EIA» стандарты. RS-232 был введён в 1962 году. Стандарт развивался, и в 1969 г.. представлена третья редакция (RS-232C). Четвёртая редакция была в 1987 (RS-232D, известная также под EIA-232D). RS-232 идентичен стандартам МККТТ (CCITT) V.24/V.28, X.20bis/X.21bis и ISO IS2110. Самой последней модификацией является модификация «Е», принятая в июле 1991 г. как стандарт EIA/TIA-232E. В данном варианте нет никаких технических изменений, которые могли бы привести к проблемам совместимости с предыдущими вариантами этого стандарта.

Ограничения

На практике в зависимости от качества применяемого кабеля требуемое расстояние передачи данных в 15 метров может не достигаться, составляя, к примеру, порядка 1,5 м на скорости 115200 бод для неэкранированного плоского или круглого кабеля. Это вызвано применением однофазных сигналов вместо дифференциальных, а также отсутствием требований по согласованию приёмника (и часто также передатчика) с линией. Для преодоления этого ограничения, а также возможного получения гальванической развязки между узлами, можно применить преобразователи интерфейса:

RS-232—RS-422 (с сохранением полной программной совместимости) или RS-232—RS-485 (с определёнными программными ограничениями). При этом расстояние может быть увеличено до 1 км на скорости 9600 бод и использовании кабеля типа «витая пара» категории 3; Внешний преобразователь RS232—Токовая петля для 9-контактного разъёма, или соответствующие цепи 25-контактного разъёма, в случае наличия преобразователя внутри устройств.

Источники

  1. Яшкардин В.Л. RS-232.Рекомендованный стандарт для последовательной передачи данных.
  2. American National Standart. ANSI/TIA/EIA-232-F-1997 30.09.1997
  3. MAX232A-MAX249 - Описание многоканальных приемников/драйверов RS-232 с питанием +5 В
  4. National Semiconductor. DataSheet. PC16550D Universal Asynchronous Receiver/Transmitter with FIFOs. June 1995.
  5. ГОСТ 18145-81: Цепи на стыке С2 аппаратуры передачи данных с оконечным оборудованием при последовательном вводе-выводе данных.

Примечания