1* - шлейф 8-битных мультикарт.2* - шлейф 16-битных мультикарт и портов на системных платах.3* - вариант шлейфа портов на системных платах.4* - широкий шлейф к 25-контактному разъему. |
Подмножество сигналов RS-232C, относящихся к асинхронному режиму, рассмотрим с точки зрения СОМ-порта PC, являющегося по терминологии RS-232C терминалом данных (DTE). Следует помнить, что активному состоянию сигнала ("включено") и логической единице передаваемых данных соответствует отрицательный потенциал (ниже - 3 В) сигнала интерфейса, а состоянию "выключено" и логическому нулю - положительный (выше +3 В). Назначение сигналов интерфейса приведено в табл.2.
Таблица 2-Назначение сигналов интерфейса
Начиная с первых моделей в PC имелся последовательный интерфейс - СОМ-порт (Communications Port - коммуникационный порт). Этот порт обеспечивает асинхронный обмен по стандарту RS-232C. Компьютер может иметь до четырех последовательных портов СОМ 1-COM4 (для машин класса AT типично наличие двух портов). СОМ-порты имеют внешние разъемы-вилки (Male "папа") DB25P или DB9P, выведенные на заднюю панель компьютера (назначение выводов приведено в табл.1)
СОМ-порты реализуются на микросхемах UART, совместимых с семейством 18250. Они занимают в пространстве ввода/вывода по 8 смежных 8-битных регистров и могут располагаться по стандартным базовым адресам 3F8h (COM1), 2F8h (COM2), 3E8h (COM3), 2E8h (COM4). Для портов COM3 и COM4 возможны альтернативные адреса 3EOh, 338h и 2EOh, 238h соответственно. Для PS/2 стандартными для портов СОМЗ-СОМ8 являются адреса 3220h, 3228h,4220h, 4228h, 5220h и 5228h соответственно.
Порты могут вырабатывать аппаратные прерывания IRQ4 (обычно используются для COM1 и COM3) и IRQ3 (для COM2 и COM4). Кроме того, возможно использование линий прерываний IRQ11 (вместо IRQ4) и IRQ10 (вместо IRQ3). Возможность разделяемого использования одной линии запроса несколькими портами (или ее разделения с другими устройствами) зависит от реализации аппаратного подключения и программного обеспечения. При использовании портов, установленных на шину ISA, разделяемые прерывания обычно не работают.
Управление последовательным портом разделяется на два этапа - предварительное конфигурирование (Setup) аппаратных средств порта и текущее (оперативное) переключение режимов работы прикладным или системным ПО. Способ и возможности конфигурирования СОМ-портов зависят от его исполнения и местоположения. Порт, расположенный на плате расширения (обычно на мультикарте), устанавливаемой в слот ISA или ISA+VLB, обычно конфигурируется джамперами на самой плате. Порт, расположенный на системной плате, обычно конфигурируется через BIOS Setup.
Конфигурированию подлежат следующие параметры:
* Базовый адрес, который может иметь значение 3F8h, 2F8h, 3E8h (3EOh,338h), 2E8h (2EOh, 238h). При инициализации BIOS проверяет наличие портов по адресам именно в этом порядке и, соответственно, присваивает обнаруженным портам логические имена СОМ1, COM2, COM3 и COM4.
* Используемая линия запроса прерывания: для СОМ1 и COM3 обычно используется IRQ4 или IRQ11, для COM2 и COM4 - IRQ3 или IRQ10. В принципе номер прерывания можно назначать в произвольных сочетаниях с базовым адресом (номером порта), но некоторые программы и драйверы (например, драйверы последовательной мыши) настроены только на стандартные сочетания. Каждому порту, нуждающемуся в аппаратном прерывании, обычно назначают отдельную линию, не совпадающую с линиями запроса прерываний других портов или устройств. Разделяемое использование линий прерывания адаптеров шин ISA проблематично. Прерывания необходимы для портов, к которым подключаются устройства ввода (мышь, дигитайзер), UPS и модемы. При подключении принтера или плоттера прерываниями пользуются только многозадачные ОС (и то не всегда), и этот дефицитный ресурс PC можно сэкономить. Также прерываниями обычно не пользуются и при связи двух компьютеров нуль-модемным кабелем.
*Использование канала DMA (для UART 16450 или 16550, расположенных на системной плате) - разрешение использования и номер канала DMA. Режим DMA при работе с СОМ-портами используют редко, поэтому в большинстве случаев каналы DMA порту не назначают.
Режим работы порта по умолчанию (2400 бит/с, 7 бит данных, 1 стоп-бит и контроль четности), заданный при инициализации порта во время BIOS POST, может изменяться в любой момент при настройке коммуникационных программ или командой DOS MODE COMx: с указанием параметров.
Вопреки названию, СОМ-порты чаще всего используют для подключения манипуляторов (мышь, трекбол). В этом случае порт используется в режиме последовательного ввода, обеспечивая питание устройства от интерфейса. Мышь может подключаться к любому исправному порту, для согласования разъемов порта и мыши возможно применение переходника DB9S-DB25P или, наоборот,DB25S-DB9P. Для работы с мышью обязательно требуется использование линии прерывания, причем для порта СОМ1 - IRQ4, а для COM2 - IRQ3.
Следующим по популярности идет подключение внешних модемов для связи с удаленными компьютерами или выхода в глобальные сети. Модемы должны подключаться полным (9-проводным) кабелем DTE-DCE. Этот же кабель может использоваться и для согласования разъемов (по количеству контактов), возможно и применение переходников 9-25, предназначенных для мышей. Для работы коммуникационного ПО обычно требуется использование прерываний, но здесь, как правило, больше свободы выбора сочетаний номера (адреса) порта и номера линии прерывания. Если предполагается работа на скоростях 9600 бит/с и выше, то СОМ-порт должен быть реализован на микросхеме UART 16550A или совместимой с ней. Возможности работы с использованием FIFO-буферов и обмена по каналам DMA зависят от коммуникационного ПО.
Для связи двух компьютеров, удаленных друг от друга на небольшое расстояние, используют и непосредственное соединение их СОМ-портов нуль-модемным кабелем. Использование программ типа Norton Commander или Interink MS-DOS позволяет обмениваться файлами со скоростью передачи до 115,2 Кбит/с без использования аппаратных прерываний. Это же соединение может использоваться и сетевым пакетом Lantastic, предоставляющим более развитый сервис.
Подключение принтеров и плоттеров к СОМ-порту требует применения кабеля, соответствующего выбранному протоколу управления потоком: программному XON/XOFF или аппаратному RTS/CTS. Аппаратный протокол предпочтительнее, поскольку он не требует программной поддержки со стороны PC. Прерывания при выводе средствами DOS (командами COPY или PRINT) не используются.
СОМ-порт иногда используется и для подключения электронных ключей (Security Devices), предназначенных для защиты от нелицензированного использования программных продуктов. Эти устройства могут быть как "прозрачными", позволяя воспользоваться тем же портом и для подключения периферии, так и полностью занимающими порт.
СОМ-порт при наличии соответствующей программной поддержки позволяет превратить PC в терминал, эмулируя систему команд распространенных специализированных терминалов (VT-52, VT-100 и других). В принципе простейший терминал получается, если замкнуть друг на друга функции BIOS обслуживания СОМ-порта (Int 14h), функцию телетайпного вывода видеосервиса (Int 10h) и клавиатурный ввод (Int 16h). Однако такой терминал будет работать лишь на малых скоростях обмена (если, конечно, его делать не на Pentium), поскольку функции BIOS хоть и универсальны, но работают не самым быстрым образом.
Этим списком, конечно же, возможности использования СОМ-порта не исчерпываются. Интерфейс RS-232C широко распространен в различных периферийных устройствах и терминалах. Все они, при наличии должной программной поддержки, могут подключаться к PC. Кроме использования по прямому назначению, СОМ-порт может использоваться и как двунаправленный интерфейс, у которого имеется 3 программно-управляемых выходных линии и 4 программно-читаемых входных линии с двуполярными сигналами. Возможность их использования ограничивается только фантазией разработчика. Существует, например, схема однобитного широтно-импульсного преобразователя, позволяющего записывать звуковой сигнал на диск PC, используя входную линию СОМ-порта. Воспроизведение этой записи через обычный динамик обеспечивает разборчивость речи. Конечно, в настоящее время, когда звуковая карта стала почти обязательным устройством PC, это уже не впечатляет, но в свое время такое решение было довольно интересным.