Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по архитектуре ЭВМ.doc
Скачиваний:
46
Добавлен:
02.05.2014
Размер:
238.59 Кб
Скачать

21. Драйверы устройств dos. Формат и загрузка драйвера устройства.

Файл IBMIO.COM включает резидентные драйвера устройств, формирующие базовую систему ввода/вывода BIOS (DOS). Эти драйвера вызываются системой для обработки запросов прикладных программ на ввод/вывод. Возможности DOS позволяют вводить новые устройства.

Включаются устройства командной строкой DEVICE в файле config.sys.

Во время начальной загрузки должны присутствовать минимум 5 резидентных драйверов. Все они находятся в связанном списке. Заголовок каждого содержит двойное слово-указатель на следующий. Заголовок последнего содержит маркер конца списка 4fh (все биты установлены). Каждый драйвер в этой цепи имеет 2 точки входа. Указатели на программу стратегии и программу прерывания.

DOS сразу после программы стратегии вызывает программу прерывания.

Программа стратегии выстраивает очередь из запросов и быстро возвращает управление. Дальше вся ответственность на выполнение поступивших запросов лежит на программе прерывания, которая считывает запросы из прерывания.

Запросы различаются размером и форматом, и состоят из двух секций: заголовок запроса, имеющий стандартный формат, для всех запросов и конкретная информация к запросу.

Формат драйвера устройства.

Драйвера устройств – это программный сегмент, отвечающий за коммуникацию между DOS и аппаратной частью. Он имеет в начале заголовок, идентифицирующий его как драйвер устройства , определяющий точки входа и различные атрибуты файла.

Драйверы символьного устройства и блокового устройства.

Символьные устройства осущ-ют послед. Ввод/вывод. Такими устройствами являются console, последовательный порт, часы и принтер.

Блоковые устройства включают все дисководы и обозначаются A,B,C.

Загрузка драйверов.

Происходит во время начальной загрузки системы. Загрузка выполняется кодом инициализации, находящимся в файле IBMIO.COM и обрабатывающем файл config.sys

DOS вызывает драйвера устройств следующем образом:

1). DOS делает дальнейший вызов программы-стратегии.

2). DOS передает информацию из заголовка запроса программе-стратегии.

3). DOS делает дальнейший вызов программе-прерывания.

22. Программирование на уровне портов ввода/вывода. Системный таймер.

Последовательный порт. Параллельный порт.

Системные таймеры.

Компьютеры содержат 2 устройства для управления процессом:

Часы реального времени получают питание от аккумулятора на материнской плате. Данной устройство можно применять для определения текущей даты, времени. Установки будильника с целью выполнения какого-либо действия и для вызова прерывания IRQ8 или INT4Ah. Каждую миллисекунду системный таймер используется одновременно для управления контроллером прямого доступа к памяти, для управления динамиком и как генератор импульсов, вызывающих прерывание IRQ0 или INT8h 18.2 раз в секунду.

Системный таймер на уровне портов ввода/вывода используется только как средство определения установки текущего времени и организации задержек.

Обработка прерываний системного таймера.

При инициализации BIOS устанавливает свой обработчик для прерывания таймера. Этот обработчик каждый раз увеличивает на 1 текущее значение 4-х байтовой переменной, располагающейся в области данных BIOS по адресу 0000:046ch – сегмент: смещение (счетчик таймера).

Если этот счетчик переполняется из-за того, что прошло более 24 часов с момента запуска таймера, в ячейку по адресу 0000:0470h заносится значение единица.

Другое действие, выполненное стандартным образом прерывания таймера – это контроль за работой двигателей и если после последнего обращения к гибким магнитным дискам прошло более 2 секунд, ячейка с адресом 0000:0440р содержит время, оставшееся до включения двигателя. Это время постоянно уменьшается обработчиком прерывания таймера.

Последнее действие INT ch выполняет обработчик. После инициализации системы вектор 1ch указывает на команду IRET? То есть обработчик ничего не делает. Прерывание INT1ch вызывается обработчиком прерывания INT8h до сброса контроллером прерываний, поэтому во время выполнения прерывания INT1ch все аппаратные прерывания запрещены. Перед завершением его работы необходимо сбросить контроллер прерываний.

Сделать можно следующим образом:

mov al, 20h

out 20h, al

8253 8254

Эти две микросхемы состоят из 3 независимых каналов или счетчиков. Каждый канал содержит регистры. Состояние каналов RS 8 разрядов, управляющего слова RSW 8 разрядов, буферный регистр OL 16 разрядов, регистр-счетчик CE – 16 разрядов, регистр const пересчета CR – 16 разрядов. Каналы таймера подключается к внешним устройствам при помощи 3 линий, управляющий вход GATE, CLOCK – ход тактовой частоты, OUT - выход таймера.

Каналы таймеров.

0 – используется в системных часах времени суток 18,2 Гц – тактовая частота

1 – используется для регенерации содержимого памяти допуска DMA, который выполняет обновления содержимого памяти компьютера.

2 – подключен к громкоговорителю компьютера и может быть использован для генерации звуков и музыки или как генератор случайных чисел.

Таймеру соответствует 4 порта ввода/вывода:

40h – 0

41h – 1

42h - 2

43h – управляющий регистр

Последовательный порт:

Каждый компьютер оснащен двумя портами для мыши и модема, а также для других дополнительных устройств или соединения компьютеров между собой.

Для работы с устройствами, такими как мышь применяются драйвера, которые «общаются» с последовательными портами на уровне порта вводы/вывода и представляют собой программу, некоторый набор функций, связанных с языком высокого уровня.

Таким образом прямая работа с последовательными портами оказывается необходимой только при написании таких драйверов или для работы с нестандартными устройствами, или модемами.

Параллельный порт.

Обнаруж. только 3 пар. порта: LPT1, LPT2, LPT3. таблица базовых адресов распол. по адресу 0000 0400h.

LPT1 - 378h, LPT2 - 278h, LPT3 - 3BCh. LPT3 - это уже редкость, на плате адаптера монохромного дисплея.

LPT1(IRQ7) / int 0Fh. LPT2(IRQ5) / int 0Dh. LPT1 доступ. и для записи, и для чтения. Предн. для вывода данных.

Прг. может прочитать байт, запис. в данный порт. Порт 37Ah примен. для управл. принтером, подкл. к парал. адаптеру.

Для того, чтобы вывести символ на принтер, прг. должна убедиться, что уровень сигнала на контакте под номером

7 (busy(379h)) равен 0, а ур-нь сигнала нна линии АСК (в контакт) = 1. После этого следует установить код выходн.

символа на линиях data(376h) (от 2 по 9 контакт). Линию strobe необх. привести в сост-е логич. 0 (1й контакт).

При этом выходной символ запишется во внутр. буфер принтера и сохр. в буфере ~0,5 мс (столько же, сколько поставлялся).

Этот бит strobe сбрасывается потом (после отпечатки) в 1 и дает готовность к след. символу.