MSR
— регистр состояния модема . Ниже описано назначение бит регистра MSR
:
♦ Бит 7 — DCD
(Data Carrier Detect) — состояние линии DCD
:
• 0 — активна (-V);
• 1 — пассивна (+V).
♦ Бит 6 — RI
(Ring Indicator) — состояние линии RI
:
• 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, разделяемые прерывания обычно не работают.
Читать дальше