Аппаратная реализация
Обычно компьютер оснащен одним или двумя портами последовательной передачи данных. Эти порты расположены либо на материнской плате, либо на отдельной плате, вставляемой в слоты расширения материнской платы.
Бывают специальные платы, содержащие четыре или восемь портов последовательной передачи данных. Их часто используют для подключения нескольких модемов и факс-модемов к одному центральному компьютеру.
Сердцем последовательного асинхронного адаптера служит микросхема универсального асинхронного приемопередатчика (UART - Universal Asynchronous Receiver Transmitter). Вы можете встретить несколько разновидностей этой микросхемы - Intel 8250, 16450, 16550, 16550A.
Для каждого COM-порта микросхема 8250 содержит регистры передатчика и приемника данных, а также несколько управляющих регистров, доступных через команды ввода/вывода.
При передаче байта он записывается в буферный регистр передатчика, откуда затем переписывается в сдвиговый регистр. Затем байт "выдвигается" из сдвигового регистра по битам. Аналогично работает сдвиговый и буферный регистры приемника.
Программа имеет доступ только к буферным регистрам. Копирование информации в сдвиговые регистры и сдвиг данных выполняется микросхемой UART автоматически. Регистры, управляющие асинхронным последовательным портом, будут описаны в следующей главе.
Внешне каждый COM-порт асинхронного последовательного адаптера представлен собственным разъемом. Существует два стандарта на разъемы COM-порта: это DB25 и DB9. Первый разъем имеет 25, а второй 9 выводов. Несмотря на то, что разъем DB25 содержит в два с половиной раза больше выводов, чем DB9, они передают одинаковые сигналы. При необходимости можно приобрести переходник между разъемами DB25 и DB9.
Внутренний модем содержит COM-порт внутри себя, поэтому на плате внутреннего модема вы не обнаружите ни одного разъема COM-порта.
Приведем разводку разъема DB25 со стороны последовательного асинхронного адаптера:
Номер контакта |
| Назначение контакта | Вход или выход | ||
1 | Защитное заземление (Frame Ground, FG) | - | |||
2 | Передаваемые данные (Transmitted Data, TD) | Выход | |||
3 | Принимаемые данные (Received Data, RD) | Вход | |||
4 | Запрос для передачи (Request to send, RTS) | Выход | |||
5 | Сброс для передачи (Clear to Send, CTS) | Вход | |||
6 | Готовность данных (Data Set Ready, DSR) | Вход | |||
7 | Сигнальное заземление (Signal Ground, SG) | - | |||
8 | Детектор принимаемого с линии сигнала (Data Carrier Detect, DCD). Иногда сигнал DCD обозначают как CD (Carrier Detect) или RLSD (Receive Line Signal Detect) | Вход | |||
9-19 | Не используются | ||||
20 | Готовность выходных данных (Data Terminal Ready, DTR) | Выход | |||
21 | Не используется | ||||
22 | Индикатор вызова (Ring Indicator, RI) | Вход | |||
23-25 | Не используются |
Теперь приведем разводку разъема DB9 со стороны последовательного асинхронного адаптера:
Номер контакта |
Назначение контакта |
Вход или выход |
1 |
Детектор принимаемого с линии сигнала (Data Carrier Detect, DCD). Иногда сигнал DCD обозначают как CD или RLSD |
Вход |
2 |
Принимаемые данные (Received Data, RD) |
Вход |
3 |
Передаваемые данные (Transmitted Data, TD) |
Выход |
4 |
Готовность выходных данных (Data Terminal Ready, DTR) |
Выход |
5 |
Сигнальное заземление (Signal Ground, SG) |
- |
6 |
Готовность данных (Data Set Ready, DSR) |
Вход |
7 |
Запрос для передачи (Request to send, RTS) |
Выход |
8 |
Сброс для передачи (Clear to Send, CTS) |
Вход |
9 |
Индикатор вызова (Ring Indicator, RI) |
Вход |
Интерфейс RS-232-C определяет обмен между устройствами двух типов: DTE (Data Terminal Equipment - терминальное устройство) и DCE (Data Communication Equipment - устройство связи). В большинстве случаев, но не всегда, компьютер является терминальным устройством. Модемы, принтеры, графопостроители всегда являются устройствами связи. Рассмотрим теперь сигналы интерфейса RS-232-C более подробно.