Программирование модемов

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


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

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

В основе последовательного порта передачи данных лежит микросхема Intel 8250 или ее современные аналоги - Intel 16450, 16550, 16550A. Эта микросхема является универсальным асинхронным приемопередатчиком (UART - Universal Asynchronous Receiver Transmitter). Микросхема содержит несколько внутренних регистров, доступных через команды ввода/вывода.

Микросхема 8250 содержит регистры передатчика и приемника данных. При передаче байта он записывается в буферный регистр передатчика, откуда затем переписывается в сдвиговый регистр передатчика. Байт "выдвигается" из сдвигового регистра по битам.

Аналогично имеются сдвиговый и буферный регистры приемника.

Программа имеет доступ только к буферным регистрам, копирование информации в сдвиговые регистры и процесс сдвига выполняется микросхемой UART автоматически. Регистры, управляющие асинхронным последовательным портом, будут описаны в следующей главе.

К внешним устройствам асинхронный последовательный порт подключается через специальный разъем. Существует два стандарта на разъемы интерфейса RS-232-C, это DB25 и DB9. Первый разъем имеет 25, а второй 9 выводов.

Приведем разводку разъема последовательной передачи данных 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) Вход
9-19Не используются
20Готовность выходных данных(Data Terminal Ready, DTR) Выход
21Не используется
22Индикатор вызова(Ring Indicator, RI) Вход
23-25Не используются
<
Наряду с 25-контактным разъемом часто используется 9-контактный разъем:

Номер контактаНазначение контакта Вход или выход
1Детектор принимаемого с линии сигнала(Data Carrier Detect, DCD) Вход
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 более подробно.


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