Аппаратная реализация
Компьютер может быть оснащен одним или двумя портами последовательной передачи данных. Эти порты расположены либо на материнской плате, либо на отдельной плате, вставляемой в слоты расширения материнской платы.
Бывают также платы, содержащие четыре или восемь портов последовательной передачи данных. Их часто используют для подключения нескольких компьютеров или терминалов к одному, центральному компьютеру. Эти платы имеют название "мультипорт".
В основе последовательного порта передачи данных лежит микросхема 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 более подробно.