Общие сведения о интерфейсе RS–232C
Интерфейс RS–232C является наиболее широко распространенной стандартной последовательной связью между микрокомпьютерами и периферийными устройствами. Интерфейс, определенный стандартом Ассоциации электронной промышленности (EIA), подразумевает наличие оборудования двух видов: терминального DTE и связного DCE.
Чтобы не составить неправильного представления об интерфейсе RS–232C, необходимо отчетливо понимать различие между этими видами оборудования. Терминальное оборудование, например микрокомпьютер, может посылать и (или) принимать данные по последовательному интерфейсу. Оно как бы оканчивает (terminate) последовательную линию. Связное оборудование — устройства, которые могут упростить передачу данных совместно с терминальным оборудованием. Наглядным примером связного оборудования служит модем (модулятор–демодулятор). Он оказывается соединительным звеном в последовательной цепочке между компьютером и телефонной линией.
Различие между терминальными и связными устройствами довольно расплывчато, поэтому возникают некоторые сложности в понимании того, к какому типу оборудования относится то или иное устройство. Рассмотрим ситуацию с принтером. К какому оборудованию его отнести? Как связать два компьютера, когда они оба действуют как терминальное оборудование. Для ответа на эти вопросы следует рассмотреть физическое соединение устройств. Произведя незначительные изменения в линиях интерфейса RS–232C, можно заставить связное оборудование функционировать как терминальное. Чтобы разобраться в том, как это сделать, нужно проанализировать функции сигналов интерфейса RS–232C (таблица 1).
Таблица 1. Функции сигнальных линий интерфейса RS–232C.
Номер контакта | Сокращение | Направление | Полное название |
1 | FG | — | Основная или защитная земля |
2 | TD (TXD) | К DCE | Передаваемые данные |
3 | RD (RXD) | К DTE | Принимаемые данные |
4 | RTS | К DCE | Запрос передачи |
5 | CTS | К DTE | Сброс передачи |
6 | DSR | К DTE | Готовность модема |
7 | SG | — | Сигнальная земля |
8 | DCD | К DTE | Обнаружение несущей данных |
9 | — | К DTE | (Положительное контрольное напряжение) |
10 | — | К DTE | (Отрицательное контрольное напряжение) |
11 | QM | К DTE | Режим выравнивания |
12 | SDCD | К DTE | Обнаружение несущей вторичных данных |
13 | SCTS | К DTE | Вторичный сброс передачи |
14 | STD | К DCE | Вторичные передаваемые данные |
15 | TC | К DTE | Синхронизация передатчика |
16 | SRD | К DTE | Вторичные принимаемые данные |
17 | RC | К DTE | Синхронизация приемника |
18 | DCR | К DCE | Разделенная синхронизация приемника |
19 | SRTS | К DCE | Вторичный запрос передачи |
20 | DTR | К DCE | Готовность терминала |
21 | SQ | К DTE | Качество сигнала |
22 | RI | К DTE | Индикатор звонка |
23 | — | К DCE | (Селектор скорости данных) |
24 | TC | К DCE | Внешняя синхронизация передатчика |
25 | — | К DCE | (Занятость) |
Примечания:
1. Линии 11, 18, 25 обычно считают незаземленными. Приведенная в таблице спецификация относится к спецификациям Bell 113B и 208A.
2. Линии 9 и 10 используются для контроля отрицательного (MARK) и положительного (SPACE) уровней напряжения.
3. Во избежание путаницы между RD (Read — считывать) и RD (Received Data — принимаемые данные) будут использоваться обозначения RXD и TXD, а не RD и TD.
Стандартный последовательный порт RS–232C имеет форму 25–контактного разъема типа D (рис 1).
Рис. 1. Назначение линий 25–контактного разъема типа D для интерфейса RS–232C
Терминальное оборудование обычно оснащено разъемом со штырьками, а связное — разъемом с отверстиями (но могут быть и исключения).
Сигналы интерфейса RS–232C подразделяются на следующие классы.
Последовательные данные (например, TXD, RXD). Интерфейс RS–232C обеспечивает два независимых последовательных канала данных: первичный (главный) и вторичный (вспомогательный). Оба канала могут работать в дуплексном режиме, т.е. одновременно осуществляют передачу и прием информации.
Управляющие сигналы квитирования (например, RTS, CTS). Сигналы квитирования — средство, с помощью которого обмен сигналами позволяет DTE начать диалог с DCE до фактической передачи или приема данных по последовательной линии связи.
Сигналы синхронизации (например, TC, RC). В синхронном режиме (в отличие от более распространенного асинхронного) между устройствами необходимо передавать сигналы синхронизации, которые упрощают синхронизм принимаемого сигнала в целях его декодирования.
На практике вспомогательный канал RS–232C применяется редко, и в асинхронном режиме вместо 25 линий используются 9 линий (таблица 2).
Таблица 2. Основные линии интерфейса RS–232C.
Номер контакта | Сигнал | Выполняемая функция |
1 | FG | Подключение земли к стойке или шасси оборудования |
2 | TXD | Последовательные данные, передаваемые от DTE к DCE |
3 | RXD | Последовательные данные, принимаемые DTE от DCE |
4 | RTS | Требование DTE послать данные к DCE |
5 | CTS | Готовность DCE принимать данные от DTE |
6 | DSR | Сообщение DCE о том, что связь установлена |
7 | SG | Возвратный тракт общего сигнала (земли) |
8 | DCD | DTE работает и DCE может подключится к каналу связи |
Виды сигналов
В большинстве схем, содержащих интерфейс RS–232C, данные передаются асинхронно, т.е. в виде последовательности пакета данных. Каждый пакет содержит один символ кода ASCII, причем информация в пакете достаточна для его декодирования без отдельного сигнала синхронизации.
Символы кода ASCII представляются семью битами, например буква А имеет код 1000001. Чтобы передать букву А по интерфейсу RS–232C, необходимо ввести дополнительные биты, обозначающие начало и конец пакета. Кроме того, желательно добавить лишний бит для простого контроля ошибок по паритету (четности).
Наиболее широко распространен формат, включающий в себя один стартовый бит, один бит паритета и два стоповых бита. Начало пакета данных всегда отмечает низкий уровень стартового бита. После него следует 7 бит данных символа кода ASCII. Бит четности содержит 1 или 0 так, чтобы общее число единиц в 8–битной группе было нечетным. Последним передаются два стоповых бита, представленных высоким уровнем напряжения. Эквивалентный ТТЛ–сигнал при передаче буквы А показан на рис. 2.
Рис. 2. Представление кода буквы А сигнальными уровнями ТТЛ.
Таким образом, полное асинхронно передаваемое слово состоит из 11 бит (фактически данные содержат только 7 бит) и записывается в виде 01000001011.
Используемые в интерфейсе RS–232C уровни сигналов отличаются от уровней сигналов, действующих в компьютере. Логический 0 (SPACE) представляется положительным напряжением в диапазоне от +3 до +25 В, логическая 1 (MARK) — отрицательным напряжением в диапазоне от –3 до –25 В. На рис. 3 показан сигнал в том виде, в каком он существует на линиях TXD и RXD интерфейса RS–232C.
Рис. 3. Вид кода буквы А на сигнальных линиях TXD и RXD.
Сдвиг уровня, т.е. преобразование ТТЛ–уровней в уровни интерфейса RS–232C и наоборот производится специальными микросхемами драйвера линии и приемника линии.
На рис. 4 представлен типичный микрокомпьютерный интерфейс RS–232C. Программируемая микросхема DD1 последовательного ввода осуществляет параллельно–последовательные и последовательно–параллельные преобразования данных. Микросхемы DD2 и DD3 производят сдвиг уровней для трех выходных сигналов TXD, RTS, DTR, а микросхема DD4 — для трех входных сигналов RXD, CTS, DSR. Микросхемы DD2 и DD3 требуют напряжения питания ±12 В.
Рис. 4. Типичная схема интерфейса RS–232C.
Разработано несколько новых стандартов, направленных на устранение недостатков первоначальных спецификаций интерфейса RS–232C. Среди них можно отметить интерфейс RS–422 (балансная система, допускающая импеданс линии до 50 Ом), RS–423 (небалансная система с минимальным импедансом линии 450 Ом) и RS–449 (стандарт с высокой скоростью передачи данных, в котором несколько изменены функции схем и применяется 37–контактный разъем типа D).