Выбрать главу

 • 0 — активна (-V);

 • 1 — пассивна (+V).

♦ Бит 5 — DSR (Data Set Ready) — состояние линии DSR:

 • 0 — активна (-V);

 • 1 — пассивна (+V).

♦ Бит 4 — CTS (Clear To Send) — состояние линии CTS:

 • 0 — активна (-V);

 • 1 — пассивна (+V).

♦ Бит 3 — DDCD (Delta Data Carrier Detect) — изменение состояния DCD.

♦ Бит 2 — ТЕRI (Trailing Edge Of Ring Indicator) — спад огибающей RI (окончание звонка).

♦ Бит 1 — DDSR (Delta Data Set Ready) — изменение состояния DSR.

♦ Бит 0 — DCTS (Delta Clear To Send) — изменение состояния CTS.

Признаки изменения (биты [3:0]) сбрасываются по чтению регистра.

SCRрабочий регистр (8 бит), на работу UART не влияет, предназначен для временного хранения данных (в 8250 отсутствует).

В диагностическом режиме (при LME=1) внутри UART организуется внутренняя «заглушка»:

♦ выход передатчика переводится в состояние логической единицы;

♦ вход приемника отключается;

♦ выход сдвигающего регистра передатчика логически соединяется со входом приемника;

♦ входы DSR, CIS, RI и DCD отключаются от входных линий и внутренне управляются битами DTRC, RISC, OUT1C, IE;

♦ выходы управления модемом переводятся в пассивное состояние (логический ноль).

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

2.6. Системная поддержка СОМ-портов

СОМ-порты поддерживаются сервисом BIOS Int 14h, который обеспечивает следующие функции:

♦ инициализация (установка скорости обмена и формата посылок; запрет источников прерываний) — на сигналы DTR и RTS влияния не оказывает (после аппаратного сброса они пассивны);

♦ вывод символа — активируются сигналы DTR и RTS, и после освобождения регистра THR в него помещается выводимый символ;

♦ ввод символа — активируется только сигнал DTR (RTS переходит в пассивное состояние), и ожидается готовность принятых данных;

♦ опрос состояния модема и линии (чтение регистров MSR и LSR).

Аппаратные прерывания не используются, ожидание готовности ввода и вывода ограничивается по тайм-ауту. Готовность можно быстро проверить опросом состояния.

В процессе начального тестирования POST BIOS проверяет наличие последовательных портов (регистров UART 8250 или совместимых) по стандартным адресам и помещает базовые адреса обнаруженных портов в ячейки BIOS Data Area 0:0400, 0402, 0404, 0406. Эти ячейки хранят адреса портов с логическими именами СOМ1-COM4. Нулевое значение адреса является признаком отсутствия порта с данным номером. В ячейки 0:047C, 047D, 047E, 047F заносятся константы, задающие тайм-ауты для портов.

Обнаруженные порты инициализируются на скорость обмена 2400 бит/с, 7 бит данных с контролем на четность (even), 1 стоп-бит. Управляющие сигналы интерфейса DTR и RTS переводятся в исходное состояние («выключено» — положительное напряжение).

2.7. Конфигурирование СОМ-портов

Компьютер может иметь до четырех последовательных портов COM1-COM4; для машин класса AT типично наличие двух портов. Управление последовательным портом разделяется на два этапа — предварительное конфигурирование (Setup) аппаратных средств порта и текущее (оперативное) переключение режимов работы прикладным или системным ПО. Конфигурирование СОМ-порта зависит от его исполнения. Порт на плате расширения конфигурируется джамперами на самой плате. Порт на системной плате конфигурируется через BIOS Setup.

Конфигурированию подлежат перечисленные ниже параметры:

♦ Базовый адрес, который для портов COM1-СОМ4 обычно имеет значение 3F8h, 2F8h, 3E8h и 2E8h. При инициализации BIOS проверяет наличие портов по адресам именно в этом порядке и присваивает обнаруженным портам логические имена COM1, COM2, COM3 и COM4. Для портов COM3 и COM4 возможны альтернативные адреса 3E0h, 338h и 2E0h, 238h соответственно. Для PS/2 стандартными для портов COM3-СОМ8 являются адреса 3220h, 3228h, 4220h, 4228h, 5220h и 5228h соответственно.

♦ Используемая линия запроса прерывания: для СОМ 1 и COM3 обычно используется IRQ4 или IRQ11, для COM2 и COM4 — IRQ3 или IRQ10. В принципе номер прерывания можно назначать в произвольных сочетаниях с базовым адресом (номером порта), но некоторые программы и драйверы (например, драйверы последовательной мыши) настроены на стандартные сочетания. Каждому порту, нуждающемуся в аппаратном прерывании, назначают отдельную линию, не совпадающую с линиями запроса прерываний других устройств. Прерывания необходимы для портов, к которым подключаются устройства ввода, UPS или модемы. При подключении принтера или плоттера прерываниями пользуются только многозадачные ОС (не всегда), и этот дефицитный ресурс PC можно сэкономить. Также прерывания обычно не задействуют при связи двух компьютеров нуль-модемным кабелем. Возможность разделяемого использования одной линии запроса несколькими портами (или ее разделения с другими устройствами) зависит от реализации аппаратного подключения и ПО. При использовании портов, установленных на шину ISA, разделяемые прерывания обычно не работают.

♦ Канал DMA (для микросхем UART 16450/16550, расположенных на системной плате) — разрешение использования и номер канала DMA. Режим DMA при работе с СОМ-портами используют редко.

2.8. Использование СОМ-портов

СОМ-порт широко применяется для подключения различных периферийных и коммуникационных устройств, связи с различным технологическим оборудованием, объектами управления и наблюдения, программаторами, внутрисхемными эмуляторами и прочими устройствами, используя протокол RS-232C.

СОМ-порты чаще всего применяют для подключения манипуляторов (мышь, трекбол). В этом случае порт используется в режиме последовательного ввода. Мышь с последовательным интерфейсом — Serial Mouse — может подключаться к любому исправному порту. Для согласования разъемов порта и мыши возможно применение переходника DB-9S-DB-25P или DB-25S-DB-9P. Для мыши требуется прерывание, для порта COM1 — IRQ4, для COM2 — IRQ3. То, что для использования мыши порт COM1 должен использовать прерывание IRQ4, является особенностью ее драйвера, но для пользователя важен сам факт ограничения. Каждое событие — перемещение мыши или нажатие-отпускание кнопки — кодируется двоичной посылкой по интерфейсу RS-232C. Применяется асинхронная передача; двуполярное питание обеспечивается от управляющих линий интерфейса.

Для подключения внешних модемов используется полный (9-проводный) кабель АПД — АКД, схема которого приведена на рис. 2.4. Этот же кабель используется для согласования разъемов (по количеству контактов); возможно применение переходников 9–25, предназначенных для мыши. Для работы коммуникационного ПО обычно требуются прерывания, но здесь есть свобода выбора номера (адреса) порта и линии прерывания. Если предполагается работа на скоростях 9600 бит/с и выше, то СОМ-порт должен быть реализован на микросхеме UART 16550А или совместимой. Возможности работы с использованием FIFO-буферов и обмена по каналам DMA зависят от коммуникационного ПО.