Читайте также:
|
|
В процессе начального тестирования POST BIOS проверяет наличие последовательных портов (регистров UART) по стандартным адресам (3F8h, 2F8h, 3E8h, 2E8h соответственно для СОМ1...СОМ4) и помещает базовые адреса обнаруженных портов в ячейки BIOS DATA AREA 0:0400, 0402, 0404, 0406. Эти ячейки хранят адреса портов с логическими именами СОМ1 – СОМ4. В ячейки 0:047С, 047D, 047Е, 047F заносятся константы, задающие выдержку тайм-аута для этих портов.
Обнаруженные порты инициируются обычно на скорость обмена 2400 бит/с, 7 бит данных с контролем на чётность, 1 стоп-бит. Управляющие сигналы интерфейса DTR и RTS переводятся в исходное состояние («выключено» - положительное напряжение).
Порты поддерживаются сервисом BIOS INT 14h, который обеспечивает следующие функции:
00h – инициализация (установка скорости обмена и формата посылок, заданных регистром AL, запрет источника прерываний). На сигналы DTR и RTS влияния не оказывает (после аппаратного сброса они пассивны);
01h – вывод символа из регистра AL (без аппаратных прерываний). Активируются сигналы DTR и RTS, и, дождавшись освобождения регистра THR, в него помещают вводимый символ. Если за заданное время регистр не освобождается, фиксируется ошибка тайм-аута и функция завершения;
02h – ввод символа (без аппаратных прерываний). Активируется только сигнал DTR (RTS переходит в пассивное состояние) и ожидается готовность принятых данных, принятый символ помещается в регистр AL. Если за заданное время данные не получены, функция завершается ошибкой тайм-аута;
03h – опрос состояния модема и линии (чтение регистров MSR и LSR). Эту гарантированно быструю функцию обычно вызывают перед функциями ввода/вывода во избежание риска ожидания тайм-аута.
При вызове INT14h номер функции задаётся в регистре АН, номер порта (0-3) – в регистре DX (0 – СОМ1, 1 – СОМ2,...). При возврате из функций 0,1 и 3 регистр АН содержит байт состояния линии (регистр LSR), AL – байт состояния модема (MSR). При возврате из функции 2 нулевое значение бита 7 регистра АН указывает на наличие принятого символа в регистре AL; ненулевое значение бита 7 указывает на ошибку приёма, которую можно уточнить функцией 3.
Байт состояния линии (регистр АН) имеет формат, который повторяет содержимое регистра LSR.
Байт состояния модема (регистр AL при возврате из функций 0, 1, 3) имеет формат, который повторяет содержимое регистра MSR.
При инициализации порта биты регистра AL имеют следующее назначение:
биты 7:5 – скорость обмена:
000 = 110 бит/с
100 = 1200 бит/с
001 = 150 бит/с
101 = 2400 бит/с
010 = 300 бит/с
110 = 4800 бит/с
011 = 600 бит/с
111 = 9600 бит/с
биты 4:3 – контроль паритета:
01 – число единиц нечётное
11 – число единиц чётное
00 и 10 – без контроля
бит 2 – количество стоп-бит:
0 – 1 бит, 1 – 2 бита
биты 1:0 – длина посылки:
00 – 5 бит
01 – 6 бит
10 – 7 бит
11 – 8 бит
Режим работы порта может устанавливаться командой DOS MODE COMх с указанием параметров.
Стандартные функции библиотеки Си
Библиотеки трансляторов Borland С++ и Turbo C содержат две функции управления портами асинхронного последовательного адаптера – bioscom и _bios_serialcom. Эти функции управляют СОМ-портами компьютера через прерывания BIOS INT 0х14. Вследствие этого функции не могут работать со скоростями больше чем 9600 бит/с. Если необходимо использовать более высокие скорости необходимо непосредственное программирование портов асинхронного последовательного адаптера.
Варианты индивидуальных заданий к лабораторной работе
«Исследование порта последовательной передачи данных»
номер варианта | Контрольный вопрос | Регистр UART 16550А | Функция BIOS | Скорость обмена, бит/с | Контроль паритета | Количество стоп-бит | Длина посылки, бит |
THR,RBR DLL,DLM IER IIR FCR | 1,2 1,3 1,4 2,4 3,4 | Чет Неч Без Неч Чет | 1,5 | ||||
LCR MCR LSR MSR THR,RBR | 2,4 1,4 1,3 1,2 3,4 | Без Чет Неч Без Чет | 1,5 | ||||
DLL,DLM IER IIR FCR LCR | 1,3 1,2 3,4 2,4 1,4 | Неч Без Неч Чет Неч | |||||
MCR LSR MSR LSR MCR | 3,4 1,4 1,2 1,3 2,4 | Без Чет Без Неч Чет | 1,5 | ||||
LCR FCR IIR IER DLL,DLM | 1,4 1,3 1,2 2,4 3,4 | Неч Без Неч Чет Без |
В соответствии с индивидуальным заданием необходимо:
- ответить письменно на заданный контрольный вопрос;
- описать назначение заданного регистра UART 16550А, привести его структуру и пояснить назначение каждого бита;
- составить программу реализующую заданный номер функции BIOS, используя прерывание INT14h. Значения функции: 1 - 00h, 2 – 01h, 3 – 02h, 4 – 03h;
- при инициализации порта установить заданные параметры работы: скорость обмена бит/с, контроль паритета, количество стоп-бит, длина посылки, бит. Привести значение регистра АН и AL при возврате из прерывания INT 14h при реализации заданных функций BIOS.
Дата добавления: 2015-08-27; просмотров: 30 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Интерфейс RS-232С | | | Порядок выполнения работы |