Протоколы, интерфейсы, технологии
Уровни электрических сигналов
RS-232 — интерфейс передачи данных между двумя устройствами на расстоянии до 15 метров. Обмен производится по проводам цифровыми сигналами с двумя уровнями напряжения.
Логический «0» передается положительным напряжением (от +5 до +15 В для передатчика), а логическая «1» передается отрицательным напряжением (от -5 до -15 В для передатчика).

При прохождении по кабелю происходит ослабление и искажение сигналов. Основная причина — электрическая паразитная ёмкость кабеля. С увеличением длины кабеля растет искажение. Согласно стандарту для RS-232 максимальная нагрузочная емкость составляет 2500 пФ. Для кабеля, средняя емкость 1-го погонного метра 130 пФ, что ограничивает максимальную длину кабеля примерно до 19 м.
Распиновка RS-232 для разъема DB-9

| Контакт | Обозначение | Направление | Название | Описание |
| 1 | CD | Вход | Carrier Detect | Обнаружение несущей |
| 2 | RXD | Вход | Receive Data | Прием данных |
| 3 | TXD | Выход | Transmit Data | Передача данных |
| 4 | DTR | Выход | Data Terminal Ready | Готовность оконечного оборудования |
| 5 | GND | — | System Ground | Общий провод |
| 6 | DSR | Вход | Data Set Ready | Готовность оборудования передачи |
| 7 | RTS | Выход | Request to Send | Запрос на передачу |
| 8 | CTS | Вход | Clear to Send | Готов передавать |
| 9 | RI | Вход | Ring Indicator | Наличие сигнала вызова |
Расстояние и скорость передачи данных
Длина кабеля зависит от Максимальной скорости передачи данных. Чем длинее кабель, тем больше его емкость и для надежной передачи требуется более низкая скорость. Максимальным расстоянием принято считаеть 15 м, но это не стандартизовано. В таблице ниже приведена примерная зависимость длины кабеля от скорости обмена данными.
| Скорость (бит/сек) | Длина (м) |
| 19 200 | 15 |
| 9 600 | 150 |
| 4 800 | 300 |
| 2 400 | 900 |
Структура передаваемых данных

Стартовый бит — обязательный бит, означающий начало передаваемого байта.
Данные — 7 или 8 бит данных. Первым передается менее значимый бит.
Бит четности — необязательный бит. Может использоваться в следющих целях:
— проверка на четность (EVEN), дополняет передаваемый символ так, чтобы количество единиц в передаваемом символе было четным;
— проверка на нечетность (ODD), дополняет передаваемый символ так, чтобы количество единиц в передаваемом символе было нечетным;
— маркировка байта (MARK) в 9-битном режиме выставляется единицей для выделения байта адреса устройства;
— маркировка байта (SPACE) в 9-битном режиме выставляется нулем для указания байта данных передаваемого пакета;
Если бит четности не используется, то в соответствующих настройка COM-порта выставляется «NONE».
Стоповый бит — обязательный бит, означающий завершение передачи байта.
Последовательный интерфейс RS-232
Широко используемый последовательный интерфейс синхронной и асинхронной передачи данных, определяемый стандартом EIA RS-232-C и рекомендациями V.24 CCITT. Изначально создавался для связи компьютера с терминалом. В настоящее время используется в самых различных применениях. Интерфейс RS-232-C соединяет два устройства. Линия передачи первого устройства соединяется с линией приема второго и наоборот (полный дуплекс) Для управления соединенными устройствами используется программное подтверждение (введение в поток передаваемых данных соответствующих управляющих символов). Возможна организация аппаратного подтверждения путем организации дополнительных RS-232 линий для обеспечения функций определения статуса и управления.
| Стандарт | EIA RS-232-C, CCITT V.24 |
| Скорость передачи | 115 Кбит/с (максимум) |
| Расстояние передачи | 15 м (максимум) |
| Характер сигнала | несимметричный по напряжению |
| Количество драйверов | 1 |
| Количество приемников | 1 |
| Схема соединения | полный дуплекс, от точки к точке |
Порядок обмена по интерфейсу RS-232C
| Наименование | Направление | Описание | Контакт (25-контактный разъем) |
Контакт (9-контактный разъем) |
| 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-контактный (DB25P) или 9-контактный (DB9P) разъем для подключения RS-232C. Назначение контактов разъема приведено в таблице. Назначение сигналов следующее: FG — защитное заземление (экран).
TxD — данные, передаваемые компьютером в последовательном коде (логика отрицательная).
RxD — данные, принимаемые компьютером в последовательном коде (логика отрицательная).
RTS — сигнал запроса передачи. Активен во все время передачи.
CTS — сигнал сброса (очистки) для передачи. Активен во все время передачи. Говорит о готовности приемника.
DSR — готовность данных. Используется для задания режима модема.
SG — сигнальное заземление, нулевой провод.
DCD — обнаружение несущей данных (детектирование принимаемого сигнала).
DTR — готовность выходных данных.
RI — индикатор вызова. Говорит о приеме модемом сигнала вызова по телефонной сети. Наиболее часто используются трех- или четырехпроводная связь (для двунапрвленной передачи). Схема соединения для четырехпроводной линии связи показана на рисунке 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 бит/ с .
Рис.1.1 Схема 4-проводной линии связи для RS-232C Все сигналы RS-232C передаются специально выбранными уровнями, обеспечивающими высокую помехоустойчивость связи (рис.1.3.). Отметим, что данные передаются в инверсном коде ( лоической единице соответствует низкий уровень, логическому нулю — высокий уровень). Для подключения произвольного УС к компьютеру через RS-232C обычно используют трех- или четырехпроводную линию связи (см. рис. 1.1), но можно задействовать и другие сигналы интерфейса.
Рис.1.2 Формат данных RS-232C Обмен по 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.3 Уровни сигналов RS-232C на передающем и принимающем концах линии связи.
Теги:
none
Опубликована: 2005 г.
0
0
Вознаградить Я собрал 0 0
Описание последовательного интерфейса (serial port interface). Разводка и сигналы для всех типов разъемов RS232
Предисловие о последовательном интерфейсе (порт RS232)

Последовательный порт это устройства ввода-вывода (I/O device). Как устройство I/O это только путь для передачи данных из компьютера и в него. существует также множество других устройств ввода-вывода, таких как последовательные порты, паралельные порты, контроллеры дисков, сетевые карты, устройства универсальной последовательной шины USB, и т.п. Большинство компьютеров имеют один или два последовательный порта. Какждый имеет 9-ти контактный разъем (иногда 25-ти контактный) (рис.1) на задней стенке системного блока компьютера. Программы могут отсылать данные (байты) через контакт отправки данных (output) и получать байты через другой контакт приема данных (input). Все остальные контакты служат для управления и земли.
Последовательный порт (serial port) это несколько больше чем просто разъем. Он преобразует данные из паралельного представления в последоватльное и меняет электрическое представление данных. Внутри компьютера, биты данных передаются в паралельном виде (используется несколько проводов для передачи данных одновременно). Последовательный поток данных это последовательность битов всего по одному проводу (такому как провод передачи и приема данных на разъеме последовательного порта). Для того и служит это устройство, чтобы создать такой поток данных из паралельного вида в последовательный (внутри компьютера) и передать на контакт передачи данных (и соответственно наоборот).
Большинство электронных компонентов последовательного порта сосредоточено в одно компьютерном чипе (микросхеме) называемом UART.
Контакты и провода
Старые компьютеры используют 25-ти контактные разъемы, но только 9 контактов реально задействовано на сегодняшний день. Каждый из 9-ти контактов соединен обычно с проводом. за исключением двух проводов для передачи и приема данных, остальные используются для контроля и земли. Напряжение на каждом из контактов и проводов измеряется относительно сигнальной земли. Поэтому минимальное количество проводом для двунаправленной передачи данных — 3. В редких случаях для работы может хватитть и двух проводов (без сигнальной земли), однако это может привести к низкой производительности, и иногда к ошибкам при передаче данных.
Остается еще несколько проводов, которые предназначены только для управления (контроля) и не используются для передачи данных. Все эти сигналы могли бы передаваться по одной линии, но вместо этого, для выделены отдельные провода. Некоторые (или все вместе) эти сигнальные линии называются «линии состояния модема». Линии состояния могут находиться в одном из двух состояний установленном (включено) +12 вольт или сброшенном (выключено) -12 вольт. Одни из этих проводов сигнализируют компьютеру о том, что нужно прекратить передачу данных через последовательный порт. Другие в свою очередь сигнализируют устройству, подключенному к последовательному порту, прекратить передачу даных в компьютер. Если подключенно устройство это модем, то оставшиеся линии могут указывать модуме на то, что нужно занять телефонную линию или сигнализируют компьютеру о том, что соединение было установлено или что есть звонок на телефонной линии (значит кото-то соединиться с компьютером). Смотрите раздел Контакты и сигналы с более полной информацией.
RS-232 или EIA-232, и т.п.
Последовательный порт (serial port) (не путать с USB) обычно соответствует стандарту RS-232-C, EIA-232-D, или EIA-232-E. Это три обозачения одного и тоже. Основной стандарт RS (рекомендованный стандарт — Recommended Standard) получил префикс EIA (Electronics Industries Association) и позднее EIA/TIA после того как организация EIA было объединена с TIA (Telecommunications Industries Association). Спецификация EIA-232 также охватывает синхронную передачу данных, но в большинстве случаев синхронная передача данных не поддерживается чипами в компьютерах. Обозначение RS устарело, однако до сих пор широко используется. EIA будет использоваться далее на этом сайте более часто. Некоторые документы используют полное обозначение EIA/TIA.
Обмен данными (Скорости передачи данных)
Данные (байты из которых состоят письма, картинки и т.п.) проходят через последовательный порт. Скорости передачи данных (такие как 56k (56000) бит/сек) называются (неверно) «скоростью». Большинство людей неверно говорят «скорость» вместо «коэффициент скорости».
Важно знать, что средняя скорость передачи данных зачастую меньше максимально заявленной. Задержки (или периоды ожидания) и в результате скорость становится меньше. Эти задержки могут увеличиваться в щависимости от типа контроля передачи данных. Даже в лучшем случае всегда есть задержки между байтами, пусть даже и небольшие (несколько микросекунд). Если устройство, соединенное с компьютером через последоватльный порт не может работать на полной скорости, то средняя скорость должна быть уменьшена.
Контроль передачи данных
Контроль передачи данных означает возможность ограничить поток передачи данных через последовательный порт. Для последовательного порта это означает возможность остановить и потом возобновить передачу данных без потери байтов.
Интерфейс RS-232 (COM-порт)
Описание интерфейса RS-232, формат используемых разъемов и назначение выводов, обозначения сигналов, протокол обмена данными.
Общее описание
Интерфейс RS-232, совсем официально называемый «EIA/TIA–232–E», но более известный как интерфейс «COM-порта», ранее был одним из самых распространенных интерфейсов в компьютерной технике. Он до сих пор встречается в настольных компьютерах, несмотря на появление более скоростных и «интеллектуальных» интерфейсов, таких как USB и FireWare. К его достоинствам с точки зрения радиолюбителей можно отнести невысокую минимальную скорость и простоту реализации протокола в самодельном устройстве.
Физический интерфейс реализуется одним из двух типов разъемов: DB-9M или DB-25M, последний в выпускаемых в настоящее время компьютерах практически не встречается.
Назначение выводов 9-контактного разъема
| Контакт | Сигнал | Направление | Описание |
|---|---|---|---|
| 1 | CD | Вход | Обнаружена несущая |
| 2 | RXD | Вход | Принимаемые данные |
| 3 | TXD | Выход | Передаваемые данные |
| 4 | DTR | Выход | Хост готов |
| 5 | GND | – | Общий провод |
| 6 | DSR | Вход | Устройство готово |
| 7 | RTS | Выход | Хост готов к передаче |
| 8 | CTS | Вход | Устройство готово к приему |
| 9 | RI | Вход | Обнаружен вызов |
Назначение выводов 25-контактного разъема
| 25-контактная вилка типа DB-25M Нумерация контактов со стороны штырьков Направление сигналов указано относительно хоста (компьютера) |
| Контакт | Сигнал | Направление | Описание |
|---|---|---|---|
| 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 | Вход | Тестовый режим |
Из таблиц видно, что 25-контактный интерфейс отличается наличием полноценного второго канала приема-передачи (сигналы, обозначенные «#2»), а также многочисленных дополнительных управляющих и контрольных сигналов. Однако, часто, несмотря на наличие в компьютере «широкого» разъема, дополнительные сигналы на нем просто не подключены.
Электрические характеристики
Логические уровни передатчика: «0» – от +5 до +15 Вольт, «1» – от -5 до -15 Вольт.
Логические уровни приемника: «0» – выше +3 Вольт, «1» – ниже -3 Вольт.
Максимальная нагрузка на передатчик: входное сопротивление приемника не менее 3 кОм.
Данные характеристики определены стандартом как минимальные, гарантирующие совместимость устройств, однако реальные характеристики обычно существенно лучше, что позволяет, с одной стороны, питать маломощные устройства от порта (например, так спроектированы многочисленные самодельные data-кабели для сотовых телефонов), а с другой – подавать на вход порта инвертированный TTL-уровень вместо двуполярного сигнала.
Описание основных сигналов интерфейса
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-портом не поддерживается.
Асинхронный режим передачи состоит в том, что каждый байт данных (и бит контроля четности, в случае его наличия) «оборачивается» синхронизирующей последовательностью из одного нулевого старт-бита и одного или нескольких единичных стоп-битов. Схема потока данных в асинхронном режиме представлена на рисунке.

Один из возможных алгоритмов работы приемника следующий:
- Ожидать уровня «0» сигнала приема (RXD в случае хоста, TXD в случае устройства).
- Отсчитать половину длительности бита и проверить, что уровень сигнала все еще «0»
- Отсчитать полную длительность бита и текущий уровень сигнала записать в младший бит данных (бит 0)
- Повторить предыдущий пункт для всех остальных битов данных
- Отсчитать полную длительность бита и текущий уровень сигнала использовать для проверки правильности приема с помощью контроля четности (см. далее)
- Отсчитать полную длительность бита и убедиться, что текущий уровень сигнала «1».
- Вернуться к ожиданию начала следующего байта данных (шаг 1)
Протокол имеет ряд переменных параметров, которые должны быть приняты одинаковыми на стороне приемника и на стороне передатчика для успешного обмена данными:
- Скорость обмена данными задается в битах в секунду, определяя длительность одного бита, выбирается из ряда стандартных значений (300, 1200, 2400, 4800, 9600, 19200, 38400, 57600), но могут быть и нестандартными, если поддерживаются обеими сторонами;
- Количество бит данных может быть от 4 до 8;
- Контроль четности может быть четным («even», когда общее число единичных битов в принятых данных, включая сам бит четности, должно быть четным), нечетным («odd», когда общее число единичных битов в принятых данных, включая сам бит четности, должно быть четным) или вообще отсутствовать;
- Длина стоп-бита может составлять одну, полторы или две длительности бита.