RS-232 — это стандартный электрический интерфейс для последовательной передачи данных, поддерживающий асинхронную связь (RS — recommended standard — рекомендованный стандарт, 232 — его номер).
Этот стандарт соединения оборудования был разработан в 1969 году рядом крупных промышленных корпораций и опубликован Ассоциацией электронной промышленности США (Electronic Industries Association — EIA). Международный союз электросвязи ITU-T использует аналогичные рекомендации под названием V.24 и V.28.
Интерфейс RS-232 обеспечивает соединение двух устройств, одно из которых называется DTE (Data Terminal Equipment) — ООД (Оконечное Оборудование Данных) и второе — DCE (Data Communications Equipment) — ОПД (Оборудование Передачи Данных).
Как правило, DTE (ООД) — это компьютер, а DCE (ОПД) — это модем, хотя RS-232 использовался и для подключения к компьютеру периферийных устройств (мышь, принтер, прибор), и для соединения с другим компьютером или контроллером. Обозначения DTE и DCE используются в названиях сигналов интерфейса и помогают разобраться с описанием конкретной реализации.
Интерфейс RS-232 (стандарт EIA-232) использует 25 контактные разъемы DB и служит для подключения последовательных устройств DTE и DCE (как в синхронном, так и в асинхронном режиме). Существуют также варианты этого интерфейса для 26-контактного разъема UD-26 (EIA-232-E/RS-232E ALT A) и усеченный вариант — для 9-контактного DB-9 (EIA-574) и RJ-45 (EIA-561) наиболее распространенные в настоящее время.
D — данные, C — управление, T — синхронизация
Последовательный интерфейс RS-232
Интерфейс RS-232-C соединяет два устройства. Линия передачи первого устройства соединяется с линией приема второго и наоборот (полный дуплекс). Для управления соединенными устройствами используется программное подтверждение (введение в поток передаваемых данных соответствующих управляющих символов). Возможна организация аппаратного подтверждения путем организации дополнительных RS-232 линий для обеспечения функций определения статуса и управления.
Стандарт | EIA-232(RS-232-C, CCITT V.24) |
Скорость передачи | 115 Кбит/с (максимум) |
Расстояние передачи | 15 м (максимум) |
Характер сигнала | несимметричный по напряжению |
Количество драйверов(передатчиков) | 1 |
Количество приемников | 1 |
Схема соединения | полный дуплекс, от точки к точке |
Порядок обмена по интерфейсу RS- 232C
Наименование |
Направление |
Описание |
Контакт |
Контакт |
DCD |
IN |
Carrier Detect |
8 |
1 |
RXD |
IN |
Receive Data |
3 |
2 |
TXD |
OUT |
Transmit Data |
2 |
3 |
DTR |
OUT |
Data Terminal Ready |
20 |
4 |
GND |
— |
System Ground |
7 |
5 |
DSR |
IN |
Data Set Ready |
6 |
6 |
RTS |
OUT |
Request to Send |
4 |
7 |
CTS |
IN |
Clear to Send |
5 |
8 |
RI |
IN |
Ring Indicator |
22 |
9 |
Интерфейс RS- 232C предназначен для подключения к компьютеру стандартных внешних устройств (принтера, сканера, модема, мыши и др.), а также для связи компьютеров между собой. Основными преимуществами использования RS- 232C по сравнению с Centronics являются возможность передачи на значительно большие расстояния и гораздо более простой соединительный кабель. В то же время работать с ним несколько сложнее. Данные в RS- 232C передаются в последовательном коде побайтно. Каждый байт обрамляется стартовым и стоповыми битами. Данные могут передаваться как в одну, так и в другую сторону (дуплексный режим).
Компьютер имеет 25-контактный (DB25) или 9-контактный (DB9) разъем для подключения RS- 232C . Назначение контактов разъема приведено в таблице.
Назначение сигналов следующее:
FG — защитное заземление (экран).
TxD — данные, передаваемые компьютером (логика отрицательная).
RxD — данные, принимаемые компьютером (логика отрицательная).
RTS(Request to Send) — сигнал запроса передачи. Активен во все время передачи.
CTS(Clear to Send) — сигнал сброса (очистки) для передачи. Активен во все время передачи. Говорит о готовности приемника.
DSR — готовность данных. Используется для задания режима модема.
SG — сигнальное заземление, нулевой провод.
DCD — обнаружение несущей данных (детектирование принимаемого сигнала).
DTR — готовность выходных данных.
RI — индикатор вызова. Говорит о приеме модемом сигнала вызова по телефонной сети.
Наиболее часто используются трех- или четырехпроводная связь (для двунапрaвленной передачи). Схема соединения для четырехпроводной линии связи показана на рисунке 1.1.
Для двухпроводной линии связи в случае только передачи из компьютера во внешнее устройство используются сигналы SG и TxD. Все 10 сигналов интерфейса задействуются только при соединении компьютера с модемом.
Формат передаваемых данных показан на рисунке 1.2. Собственно данные (5, 6, 7 или 8 бит) соопровождаются стартовым битом, битом четности и одним или двумя стоповыми битами. Получив стартовый бит, приемник выбирает из линии биты данных через определннные интервалы времени. Очень важно, чтобы тактовые частоты приемника и передатчика были одинаковыми, допустимое расхождение — не более 10%). Скорость передачи по RS- 232C может выбираться из ряда: 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бит/с.
Все сигналы RS- 232C передаются специально выбранными уровнями, обеспечивающими высокую помехоустойчивость связи (рис.1.3.). Отметим, что данные передаются в инверсном коде (логической единице соответствует низкий уровень, логическому нулю — высокий уровень).
Для подключения произвольного УС к компьютеру через RS- 232C обычно используют трех- или четырехпроводную линию связи (см. рис. 1.1), но можно задействовать и другие сигналы интерфейса.
Обмен по RS- 232C осуществляется с помощью обращений по специально выделенным для этого портам COM1 (адреса 3F8h…3FFh, прерывание IRQ4), COM2 (адреса 2F8h…2FFh, прерывание IRQ3), COM3 (адреса 3F8h…3EFh, прерывание IRQ10), COM4 (адреса 2E8h…2EFh, прерывание IRQ11). Форматы обращений по этим адресам можно найти в многочисленных описаниях микросхем контроллеров последовательного обмена UART (Universal Asynchronous Receiver/Transmitter), например, i8250, КР580ВВ51.
Ключевые моменты:
1. Любая программа, способная обращаться к COM-портам c номерами от 5 и выше, скорее всего использует вызовы Windows API и потому есть большая вероятность того, что она будет работать и с USB’шным COM-портом.
2. Прикладная программа, работающая через специфические драйверы, может вызвать проблемы: «заказные» драйверы могут отсылать портам специальные команды, не распознаваемые Windows. Такая ситуация может не позволить обращаться к COM-порту через USB.
3. В случаях, когда прикладное ПО требует от пользователя указать адрес ввода-вывода и IRQ, есть большая вероятность того, что это ПО не распознает адаптер USB / RS232.