Аппаратные интерфейсы ПК

         

Int h — поддержка СОМ-портов


СОМ-порты поддерживаются сервисом 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 переводятся в исходное состояние («выключено» — положитель­ное напряжение).


Содержание раздела