Книга: Аппаратные интерфейсы ПК. Энциклопедия
12.8.4. Int 14h — поддержка СОМ-портов
12.8.4. Int 14h — поддержка СОМ-портов
СОМ-порты поддерживаются сервисом BIOS Int 14h
, который обеспечивает описанные ниже функции.
? 00h — инициализация (установка скорости обмена и формата посылок, заданных регистром AL
; запрет источников прерываний). На сигналы DTR
и RTS
влияния не оказывает (после аппаратного сброса они пассивны).
? 01h — вывод символа из регистра AL
(без аппаратных прерываний). Активируются сигналы DTR
и RTS
, и после освобождения регистра THR
в него помещается выводимый символ. Если за заданное время регистр не освобождается, фиксируется ошибка тайм-аута и функция завершается.
? 02h — ввод символа (без аппаратных прерываний). Активируется только сигнал DTR(RTS
переходит в пассивное состояние), и ожидается готовность принятых данных, принятый символ помещается в регистр AL
. Если за заданное время данные не получены, функция завершается с ошибкой тайм-аута.
? 03h — опрос состояния модема и линии (чтение регистров МSR
и LSR
). Эту гарантированно быструю функцию обычно вызывают перед функциями ввода-вывода во избежание риска ожидания тайм-аута.
При вызове Int 14h
номер функции задается в регистре АН
, номер порта (0–3) — в регистре DX
(0 — COM1
, 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 бит/с;
? биты [4:3] — контроль паритета:
• 01 — число единиц нечетное;
• 11 — четное;
• 0 и 10 — без контроля;
? бит 2 — количество стоп-бит: 0–1 бит, 1–2 бита (на скорости 110 бит/с — 1,5 стоп-бит);
? биты [1:0] — длина посылки: 00 — 5 бит, 01 — 6 бит, 10 — 7 бит, 11 — 8 бит.
В процессе начального тестирования POST BIOS проверяет наличие последовательных портов (регистров UART 8250 или совместимых) по стандартным адресам и помещает базовые адреса обнаруженных портов в ячейки BIOS Data Area
0:0400, 0402, 0404, 0406. Эти ячейки хранят адреса портов с логическими именами COM1
-СОМ4
. Нулевое значение адреса является признаком отсутствия порта с данным номером. В ячейки 0:047С, 047D, 047Е, 047F заносятся константы, задающие тайм-аут для портов.
Обнаруженные порты инициализируются на скорость обмена 2400 бит/с, 7 бит данных с контролем на четность (even), 1 стоп-бит. Управляющие сигналы интерфейса DTR
и RTS
переводятся в исходное состояние («выключено» — положительное напряжение).
- Запуск InterBase-сервера
- Расширенная установка InterBase-сервера
- Резервное копирование базы данных InterBase
- Резервное копирование при работе InterBase в режиме 24x7
- Миграция между различными версиями InterBase
- Перевод базы данных InterBase 6.x на 3-й диалект
- Профилактика повреждений баз данных InterBase
- Восстановление "безнадежных" баз данных. InterBase Surgeon
- Статистика базы данных InterBase
- Sweep interval
- Статистика InterBase-сервера
- Выбор аппаратного обеспечения для InterBase