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 Area0: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, разделяемые прерывания обычно не работают.
Читать дальше