Модемы и факс-модемы. Программирование для MS-DOS и Windows

Аппаратная реализация


Обычно компьютер оснащен одним или двумя портами последовательной передачи данных. Эти порты расположены либо на материнской плате, либо на отдельной плате, вставляемой в слоты расширения материнской платы.

Бывают специальные платы, содержащие четыре или восемь портов последовательной передачи данных. Их часто используют для подключения нескольких модемов и факс-модемов к одному центральному компьютеру.

Сердцем последовательного асинхронного адаптера служит микросхема универсального асинхронного приемопередатчика (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 более подробно.


Содержание раздела