Информационные технологииStfw.Ru 🔍
🕛

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

СОМ-порты поддерживаются сервисом BIOS Int 14h, который обеспечивает описанные ниже функции.СОМ-порты поддерживаются сервисом BIOS 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 переводятся в исходное состояние («выключено» - положительное напряжение).

Также по теме:
Новые программы для Windows, Linux и Android.