![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Int 14h — поддержка СОМ-портов
СОМ-порты поддерживаются сервисом BIOS Int 14h, который обеспечивает описанные ниже функции. ♦ ООН — инициализация (установка скорости обмена и формата посылок, заданных регистром AL; запрет источников прерываний). На сигналы DTR и RTS влияния не оказывает (после аппаратного сброса они пассивны). ♦ Olh — вывод символа из регистра AL (без аппаратных прерываний). Активируются сигналы DTR и RTS, и после освобождения регистра THR в него помещается выводимый символ. Если за заданное время регистр не освобождается, фиксируется ошибка тайм-аута и функция завершается. 492______ Глава 12. Архитектурные компоненты IBM РС-совместимого, компьютера ♦ 02h — ввод символа (без аппаратных прерываний). Активируется только сигнал DTR (RTS переходит в пассивное состояние), и ожидается готовность принятых данных, принятый символ помещается в регистр AL. Если за заданное время данные не получены, функция завершается с ошибкой тайм-аута. ♦ 03h — опрос состояния модема и линии (чтение регистров МSRиLSR). Эту гарантированно быструю функцию обычно вызывают перед функциями ввода-вывода во избежание риска ожидания тайм-аута. При вызове I n t 14h номер функции задается в регистре АН, номер порта (0-3) — в регистре DX (0 — СОМ1, 1 — COM2...). При возврате из функций 0, 1 и 3 регистр АН содержит байт состояния линии (регистр LSR), AL — байт состояния модема (MSR). При возврате из функции 2 нулевое значение бита 7 регистра АН указывает на наличие принятого символа в регистре AL; ненулевое значение бита 7 — на ошибку приема, которую можно уточнить функцией 3. Байт состояния линии (регистр АН) имеет следующий формат: ♦ бит 7 — ошибка тайм-аута (после вызова функции 2 — признак любой ошибки); ♦ бит 6 — регистр сдвига передатчика пуст (пауза передачи); ♦ бит 5 — промежуточный регистр передатчика пуст (готов принять символ для передачи); ♦ бит 4 — обнаружен обрыв линии; ♦ бит 3 — ошибка кадра (отсутствие стоп-бита); ♦ бит 2 — ошибка паритета принятого символа; ♦ бит 1 — переполнение (потеря символа); ♦ бит 0 — регистр данных содержит принятый символ. Байт состояния модема (регистр AL при возврате из функций 0, 1, 3) имеет следующий формат: ♦ бит 7 — состояние линии DCD; ♦ бит 6 — состояние линии RI; ♦ бит 5 — состояние линии DSR; ♦ бит 4 — состояние линии CTS; ♦ бит 3 — изменение состояния DCD; ♦ бит 2 — изменение огибающей RI; ♦ бит 1 — изменение состояния DSR; ♦ бит 0 — изменение состояния CTS. При инициализации порта биты регистра AL имеют следующее назначение: ♦ биты [7: 5] — скорость обмена: • 000=110; 100=1200; 001=150; 101=2400; • 010=300; 110=4800; 011=600; 111=9600 бит/с; 12.8. Сервисы и прерывания BIOS______________________________________ 493 ♦ биты [4: 3] — контроль паритета: • 01 — число единиц нечетное; • 11 — четное; • 0 и 10 — без контроля;
♦ бит 2 — количество стоп-бит: 0 — 1 бит, 1 — 2 бита (на скорости ПО бит/с —1, 5 стоп-бит); ♦ биты [1: 0] — длина посылки: 00 — 5 бит, 01 — 6 бит, 10 — 7 бит, 11 — 8 бит. В процессе начального тестирования POST BIOS проверяет наличие последовательных портов (регистров UART 8250 или совместимых) по стандартным адресам и помещает базовые адреса обнаруженных портов в ячейки BIOS Data Area 0: 0400, 0402, 0404, 0406. Эти ячейки хранят адреса портов с логическими именами СОМ1-СОМ4. Нулевое значение адреса является признаком отсутствия порта с данным номером. В ячейки 0: 047С, 047D, 047Е, 047F заносятся константы, задающие тайм-аут для портов. Обнаруженные порты инициализируются на скорость обмена 2400 бит/с, 7 бит данных с контролем на четность (even), 1 стоп-бит. Управляющие сигналы интерфейса DTR и RTS переводятся в исходное состояние («выключено» — положительное напряжение).
|