RS-232 (RS-232)
RS-232 (англ. Recommended Standard 232, другое название EIA232[1]) — стандарт физического уровня для асинхронного интерфейса (UART). Устройство, поддерживающее этот стандарт, широко известно как последовательный порт персональных компьютеров. Исторически стандарт имел широкое распространение в телекоммуникационном оборудовании. В настоящее время используется для подключения к компьютерам широкого спектра оборудования, нетребовательного к скорости обмена, особенно при значительном удалении его от компьютера и отклонении условий применения от стандартных. В компьютерах, занятых офисными и развлекательными приложениями, практически вытеснен интерфейсом USB.
RS-232 обеспечивает передачу данных и некоторых специальных сигналов между терминалом (англ. Data Terminal Equipment, DTE) и коммуникационным устройством (англ. Data Communications Equipment, DCE) на расстояние до 15 метров на максимальной скорости (115200 бод). Так как этот интерфейс известен не только простотой программирования, но и неприхотливостью, в реальных условиях это расстояние увеличивается во много раз с примерно пропорциональным снижением скорости.
Протокол интерфейса предполагает два режима передачи данных — синхронный и асинхронный, а также два метода управления обменом данных — аппаратный и программный. Каждый режим может работать с любым методом управления. В протоколе также предполагается вариант управления передачей данных по специальным сигналам, устанавливаемым хостом (DSR — сигнал состояния готовности, DTR — сигнал готовности передачи данных).
Для передачи данных по интерфейсу RS-232 используется код NRZ, который не является самосинхронизирующимся, поэтому для синхронизации используются стартовый и стоповый биты, позволяющие выделить битовую последовательность и синхронизировать приёмник с передатчиком.
Назначение
[править | править код]Изначально создавался для подключения телефонных модемов к компьютерам[источник не указан 2258 дней]. В связи с такой специализацией имеет рудименты, например, в виде отдельной линии RING («звонок»). Постепенно телефонные модемы перешли на другие интерфейсы (USB), но разъём для RS-232 имелся на всех персональных компьютерах, и многие изготовители оборудования использовали его для подключения своего оборудования (например, компьютерной мыши).
В настоящее время чаще всего используется в промышленном и узкоспециальном оборудовании, встраиваемых устройствах. На портативных компьютерах (ноутбуках, нетбуках, КПК и т. п.) широкого применения RS-232 не нашёл, однако материнские платы стационарных персональных компьютеров до недавнего времени ещё содержали RS-232 — либо в виде разъёма на задней панели, либо в виде колодки для подключения шлейфа на плате. Также возможно использование переходников-преобразователей. Кроме того, RS-232 имеется на некоторых телевизорах и ресиверах, в частности, спутниковых, где предназначен в том числе для обновления встроенного ПО через компьютер.
Часто этот стандарт используется для взаимодействия микроконтроллеров различных архитектур, имеющих в своем составе интерфейс UART, с другими цифровыми устройствами и периферией.
Принцип работы
[править | править код]RS-232 — проводной дуплексный интерфейс. Метод передачи данных аналогичен асинхронному последовательному интерфейсу UART.
Информация передаётся по проводам двоичным сигналом с двумя уровнями напряжения (код NRZ). Логическому «0» соответствует положительное напряжение (от +5 до +15 В для передатчика), а логической «1» — отрицательное (от −5 до −15 В для передатчика). Для электрического согласования линий RS-232 и стандартной цифровой логики UART выпускается большая номенклатура микросхем драйверов, например, MAX232.
Помимо линий входа и выхода данных, RS-232 регламентировал ряд необязательных вспомогательных линий для аппаратного управления потоком и специальных функций.
Стандарт ITU-T V.24/V.28 | Стандарт TIA[англ.]/EIA-232 | Неофициальное общепринятое обозначение | Тип | Описание | Направление | Номера контактов в разъёмах по стандартам. Ниже — тип разъёма | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
EIA/TIA-232-F (RS-232) | EIA-232-E Alt A | EIA-574/562 | EIA-561/562 | ||||||||
Цепь | Название сигнала | Цепь | Название сигнала | DB-25 | UD-26 | DB-9 | 8P8C | ||||
Protective Ground or Shield | PG | PG | Экран кабеля, может соединять корпуса приборов. Не используется для сигналов. В зависимости от условий эксплуатации может соединяться, или изолироваться от сигнальной цепи AB (перемычкой). | - | 1 | 1 | - | - | |||
102 | Signal ground or common return | AB | Signal Common | GND | SG | Общий сигнальный провод | - | 7 | 7 | 5 | 4 |
103 | Transmitted data | BA | Transmitted Data | TxD | D | Передача данных. Производить передачу разрешается при состоянии (CA&CB&CC&CD)=ON. Также разрешается передача управляющих команд на DCE (программирование, набор номера) при состоянии (CB&¬(CC)&CD) =ON | DTE→DCE | 2 | 2 | 3 | 6 |
104 | Received Data | BB | Received Data | RxD | D | Приём данных | DTE←DCE | 3 | 3 | 2 | 5 |
105 | Request to send | CA | Request to send | RTS | C | Запрос на передачу. Передача данных по BA сопровождается этим сигналом. В полудуплексном режиме управляет направлением передачи (запрещает приём данных по BB). CA не должен переводиться из состояния OFF в состояние ON пока CF=ON. | DTE→DCE | 4 | 4 | 7 | 8 |
133 | Ready for receiving | CJ | Ready for receiving | - | C | Готов к приёму. Разрешает приём данных по BB. Используется для контроля переполнения входного буфера DTE. Обычно в EIA/TIA не используется, но может быть задействован вместо цепи CA (в этом случае CA всегда остаётся в состоянии ON). | DTE→DCE | ||||
106 | Ready for sending | CB | Clear to send | CTS | C | Свободен для передачи. При СС=ON показывает, что DCE и канал связи готовы к передаче данных. При СС=OFF показывает, что DCE готов к приёму команд управления. | DTE←DCE | 5 | 5 | 8 | 7 |
107 | Data set ready | CC | DCE Ready | DSR | C | Указывает на готовность DCE к работе. Назначение сигнала зависит от режима работы DCE. В основном режиме показывает исправность системы, или готовность канала связи. | DTE←DCE | 6 | 6 | 6 | 1[2] |
108/1 | Connect data set to line | CD | DTE Ready | DTR | C | Готовность DTE. Запрос от DTE к DCE на подготовку к работе линии связи. | DTE→DCE | 20 | 20 | 4 | 3 |
108/2 | Data terminal ready | ||||||||||
109 | Data channel received line signal detector | CF | Received Line Signal Detector | CD | C | Обнаружен принимаемый сигнал. Конкретный смысл сигнала зависит от оборудования. Обычно показывает рабочее состояние канала связи для режима приёма. В полудуплексном режиме запрещает включение сигнала CA. | DTE←DCE | 8 | 8 | 1 | 2 |
111 | Data signal rate selector (DTE) | CH/CI | Data signal rate selector | DSRS | C | Выбор скорости передачи данных. ON — высокая скорость OFF — низкая. Если необходимо использовать цепь SCF, то цепи CH и CI подключаются к контакту 23. Если цепь SCF не используется, то цепь CI подключается к контакту 12 | DTE→DCE | 23 | 23 | ||
112 | Data signal rate selector (DCE) | DTE←DCE | |||||||||
113 | Transmitter signal element timing (DTE) | DA | Transmitter Signal Element Timing (DTE source) | TST out | T | Синхронизация сигнала BA (источник в DTE) | DTE→DCE | 24 | 24 | ||
114 | Transmitter signal element timing (DCE) | DB | Transmitter Signal Element Timing (DCE source) | TST in | T | Синхронизация сигнала BA (источник в DCE) | DTE←DCE | 15 | 15 | ||
115 | Receiver signal element timing (DCE) | DD | Receiver signal element timing (DCE source) | RST | T | Синхронизация сигнала BB (источник в DCE) | DTE←DCE | 17 | 17 | ||
118 | Transmitted backward channel data | SBA | Secondary transmitted data | D | Передача данных по второму (резервному) каналу. Аналогичен сигналу BA. | DTE→DCE | 14 | 14 | |||
119 | Received backward channel data | SBB | Secondary received data | D | Приём данных по второму (резервному) каналу. Аналогичен сигналу BB. | DTE←DCE | 16 | 16 | |||
120 | Transmit backward channel line signal | SCA | Secondary request to send | C | Запрос на передачу по второму (резервному) каналу. Аналогичен сигналу CA. | DTE→DCE | 19 | 19 | |||
121 | Backward channel ready | SCB | Secondary clear to send | C | Свободен для передачи по второму (резервному) каналу. Аналогичен сигналу CB. | DTE←DCE | 13 | 13 | |||
122 | Backward channel received line signal detector | SCF | Secondary received line signal detector | C | Обнаружен принимаемый сигнал по второму (резервному) каналу. Аналогичен сигналу CF. | DTE←DCE | 12 | 12 | |||
112 | Data signal rate selector (DCE) | CI | Data signal rate selector (DCE source) | C | Выбор скорости передачи данных. Если необходимо использовать цепь SCF, то цепи CH и CI подключаются к контакту 23. Если цепь SCF не используется, то цепь CI подключается к контакту 12 | DTE←DCE | |||||
125 | Calling indicator | CE | Ring indicator | RI | C | Запрос на установку соединения от удалённого DCE. Сигнал передаётся независимо от состояния других сигналов. (Назначение контакта в EIA/TIA выбирается по требованию) | DTE←DCE | 22 | 22 | 9 | 1 |
135 | Received energy present | CK | Received Energy Present | C | Показывает наличие сигнала на линии приёма. (Назначение контакта в EIA/TIA выбирается по требованию) | DTE←DCE | |||||
126 | Select transmit frequency | N/A (Unassigned) | C | Не используется в EIA/TIA. Контакт 11 подключён к цепи 126 в ISO/IEC 2110 | DTE→DCE | 11 | 11 | ||||
140 | Loopback/Maintenance test | RL | Remote loopback | RL | C | Тестирование дальнего DCE. Сигнал BA напрямую передаются в линию BB. | DTE→DCE | 21 | 21 | ||
110 | Цепь 110 не включена в текущую редакцию V.24 | CG | Signal quality detector | - | C | в EIA/TIA использование сигнала не рекомендуется | DTE←DCE | ||||
141 | Local loopback | LL | Local Loopback | LL | C | Тестирование ближнего DCE. Сигнал BA напрямую передаётся в линию BB. | DTE→DCE | 18 | 18 | ||
142 | Test indicator | TM | Test mode | TM | C | Показывает, что DTE находится в режиме тестирования (в том числе по запросу от удалённого DCE). | DTE←DCE | 25 | 25 | ||
N/A (reserved) | - | - | Зарезервирован | - | 10 | 10 | |||||
Не подключён | 26 |
Соединители
[править | править код]Устройства для связи по последовательному каналу соединяются кабелями с 9- или 25-контактными разъёмами типа D-sub. Обычно они обозначаются Dx-yz, где
- x — размер разъёма (например, B для 25 контактов, E для 9 контактов);
- y — количество контактов (25 или 9);
- z — тип контактов: вилка (Р, pin) или розетка (S, socket).
Так, DB25P — вилка с 25 контактами, DE9P — вилка с 9 контактами, а DB25S и DE9S, соответственно — розетки с 25 и 9 контактами.
Первоначально в RS-232 использовались DB-25, но, поскольку многие приложения использовали лишь часть предусмотренных стандартом контактов, стало возможно применять для этих целей 9-штырьковые разъёмы DE-9, которые рекомендованы стандартом RS-574.
Номера основного контакта, передающего и принимающего данные, для разъёмов DE-9 и DB-25 разные: для DE-9 контакт 2 — вход приёмника, контакт 3 — выход передатчика. Для DB-25, наоборот, контакт 2 — выход передатчика, контакт 3 — вход приёмника.
С развитием техники производители телекоммуникационного оборудования стали использовать для RS-232 разнообразные соединители, например 6P6C, 6P4C, 8P8C и др.[источник не указан 1402 дня]
Стандарт
[править | править код]Стандарт RS-232 был предложен в 1962 году американской Ассоциацией электронной промышленности (EIA). Стандарты EIA изначально имели префикс «RS» (англ. recommended standard, «рекомендованный стандарт»), но сейчас обозначаются просто «EIA». В 1969 году представлена третья редакция (RS-232C), в 1987 году — четвёртая (RS-232D, или EIA-232D). Самой последней является модификация «Е», принятая в июле 1991 года как стандарт EIA/TIA-232E. В данном варианте нет никаких технических изменений, которые могли бы привести к проблемам совместимости с предыдущими вариантами этого стандарта.
RS-232 идентичен стандартам ITU-T (CCITT) V.24/V.28, X.20bis/X.21bis и ISO IS2110.
Ограничения
[править | править код]Скорость работы ограничена физическими параметрами скорости передачи одного байта: на 115200 бод, каждый бит длится (1/115200) = 8,7 µs. Если передаются 8-разрядные данные, это длится 8 x 8,7 µs = 69 µs, но каждый байт требует дополнительного стартового и стопового бита, поэтому необходимо 10 x 8,7 µs = 87 µs. Это означает максимальную скорость 11,5 Кбайт в секунду.
На практике в зависимости от качества применяемого кабеля требуемое расстояние передачи данных в 15 метров может не достигаться, составляя, к примеру, порядка 1,5 м на скорости 115200 бод для неэкранированного плоского или круглого кабеля. Это вызвано применением однофазных сигналов вместо дифференциальных, а также отсутствием требований по согласованию приёмника (и часто также передатчика) с линией.
Для преодоления этого ограничения, а также возможного получения гальванической развязки между узлами, преобразуют физический уровень RS-232 в другие физические уровни асинхронного интерфейса:
- «RS-232 — RS-422» (с сохранением полной программной совместимости) или «RS-232 — RS-485» (с определёнными программными ограничениями). Расстояние может быть увеличено до 1 км на скорости 9600 бод и при использовании кабеля типа «витая пара» категории 3;
- внешний преобразователь «RS232 — Токовая петля» для 9-контактного разъёма или соответствующие цепи 25-контактного разъёма в случае наличия преобразователя внутри устройств.
См. также
[править | править код]Примечания
[править | править код]- ↑ The RS232 Standard . CAMI Research Inc.. Дата обращения: 22 апреля 2018. Архивировано 12 июля 2018 года.
- ↑ Изначально по стандарту на контакт 1 подключался сигнал CE. Но поскольку CE используется в основном для модемов, то часто на контакт 1 подключается сигнал CC.
Ссылки
[править | править код]- Описание интерфейса Архивная копия от 23 августа 2011 на Wayback Machine
- The Serial Programming Guide for POSIX Operating Systems Архивная копия от 19 июня 2006 на Wayback Machine (русский перевод)
- Serial Communications (MSDN) Архивная копия от 8 декабря 2015 на Wayback Machine
- Английское описание стандарта RS-232 Архивная копия от 19 июня 2008 на Wayback Machine
- Яшкардин В.Л. RS-232. Рекомендованный стандарт 232. Интерфейс между терминалом данных и передающим оборудованием линии связи, применяющий последовательный обмен двоичными данными . SoftElectro (2009). Дата обращения: 25 октября 2020. Архивировано 24 августа 2011 года.
- Java Simple Serial Connector Архивная копия от 10 марта 2011 на Wayback Machine — библиотека для работы с последовательными портами из Java. Поддерживает Win32, Win64, Linux_x86, Linux_x86_64, Linux_ARM, Solaris_x86, Solaris_x86_64, MacOSX_x86, MacOSX_x86_64, MacOSX_PPC, MacOSX_PPC64
- The RS232 Standard Архивная копия от 12 июля 2018 на Wayback Machine — Стандарт RS-232