Интерфейсы ПК

       

Функции BIOS для СОМ-портов


2.5.5. Функции BIOS для СОМ-портов

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

Обнаруженные порты инициализируются на скорость обме- на 2400 бит/с, 7 бит данных с контролем на четность

(even), 1 стоп-бит. Управляющие сигналы интерфейса DTR и RTS переводятся в исходное состояние ("выключено" - положительное напряжение).

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

ООЬ - инициализация (установка скорости обмена и фор- мата посылок, заданных регистром AL; запрет источни- ков прерываний). На сигналы DTR и RTS влияния не ока- зывает (после аппаратного сброса они пассивны).

Olh - вывод символа из регистра AL (без аппаратных пре- рываний). Активируются сигналы DTR и RTS, и после освобождения регистра THR в него помещается выводи- мый символ. Если за заданное время регистр не освобож- дается, фиксируется ошибка тайм-аута и функция завер- шается.

02h - ввод символа (без аппаратных прерываний). Акти- вируется только сигнал DTR (RTS переходит в пассивное состояние), и ожидается готовность принятых данных, принятый символ помещается в регистр AL. Если за за- данное время данные не получены, функция завершает- ся с ошибкой тайм-аута.

03h - опрос состояния модема и линии (чтение регист- ров MSR и LSR). Эту гарантированно быструю функцию обычно вызывают перед функциями ввода/вывода во из- бежание риска ожидания тайм-аута.

При вызове INT 14h номер функции задается в регистре АН, номер порта (0-3) - в регистре DX(0 - СОМ 1, 1 - COM2...). При возврате из функций 0,1 и 3 регистр АН содержит байт состояния линии (регистр LSR), AL - байт состояния моде- ма (MSR). При возврате из функции 2 нулевое значение бита 7 регистра АН указывает на наличие принятого симво- ла в регистре AL', ненулевое значение бита 7 - на ошибку приема, которую можно уточнить функцией 3.


Формат байта состояния линии (регистр АН):

Бит 7 - ошибка тайм-аута (после вызова функции 2 - признак любой ошибки).



Бит 6 - регистр сдвига передатчика пуст (пауза передачи).

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

SB Бит 4 - обнаружен обрыв линии.

вя Бит 3 - ошибка кадра (отсутствие стоп-бита).

а? Бит 2 - ошибка паритета принятого символа.

ш Бит 1 - переполнение (потеря символа).

Бит 0 - регистр данных содержит принятый символ.

Формат байта состояния модема (регистр AL):

Бит 7 - состояние линии DCD.

Бит 6 - состояние линии RI.

?й Бит 5 - состояние линии DSR.

si Бит 4 - состояние линии CTS.

т Бит 3 - изменение состояния DCD.

Бит 2 - изменение огибающей RI.

as Бит 1 - изменение состояния DSR.

ss Бит 0 - изменение состояния CTS. Формат регистра AL при инициализации:

Биты [7:5] - скорость обмена:

000-110; 010-300; 100-1200; 110-4800,

001-150; 011-600; 101-2400; 111-9600 бит/с. Биты [4:3] - контроль паритета:

01 - число единиц нечетное,

11 -четное,

00 и 10 - без контроля.

Бит 2 - количество стоп-бит: 0-1 бит, 1-2 бита (на скорости 110 бит/с - 1,5 стоп-бита).

т Биты [1:0] - длина посылки: 00-5 бит, 01-6 бит, 10-7 бит, 11-8 бит.


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