Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры_AVMiS_УРА_ТАВАРИЩИ! МЫ Добились этого!.doc
Скачиваний:
7
Добавлен:
25.09.2019
Размер:
3.51 Mб
Скачать
  1. Программирование клавиатуры через порты ввода-вывода (регистры контроллера клавиатуры).

Из буфера клавиатуры коды можно извлечь при помощи программного прерывания BIOS int 16h.

Любой контроллер, как правило состоит из 3-ех регистров регистр данных, управления, состояния. Регистр данных имеет порт с адресом 60h. Используется для:

  • Считывания информации поступившей от клавиатуры.

  • Для передачи информации в клавиатуру.

  • Для получения информации возвращаемой контроллером интерфейса в ответ на выданную ему команду.

  • Запись информации необходимой для исполнения ранее выданной контроллеру команды.

Признаком наличия данных для считывания служит единица в младшем бите регистра состояния. Регистр состояния доступен при считывании из управляющего порта 64h.

Формат регистра состояния:

0 бит равен единице – выходной буфер контроллера содержит информацию.

1 бит равен единице – входной буфер контроллера заполнен, запись в регистр данных и команд запрещена.

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

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

4 бит равен нулю – если клавиатура заблокирована.

5 бит равен единице – если в регистре данных находится байт полученный от мыши.

6 бит равен единице при зафиксированном таймауте. (если таймаут возник при передаче данных в устройство клавиатуры в регистре данных находится слово FE, а если при приеме данных от клавиатуры то будет значение FF).

7 бит равен единице если обнаружена ошибка четности.

Регистр команд доступен только для записи порт 64h.

  1. Типы прерываний.

  1. Что такое программное прерывание?

  1. Что такое аппаратное прерывание?

  1. Программируемый контроллер прерываний 8259А. Назначение, основы функционирования.

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

1 Инициализация контроллера и конфигурирование прерываний – каждому устройству назначается своя линия запроса прерывания IRQ и свой вектор прерывания. Указатель на адрес его обработки.

2 Программируемый контроллер прерываний (ПКП) при обнаружении одного либо нескольких запросов на своих входах IRQ[i] выдает общий запрос прерывания int поступающий на соответствующий вход.

3 ЦП если флаг IF установлен сохраняет в стеке регистр флагов и адрес возврата, запрещает маскируемые прерывания и формирует сигнал подтверждения прерывания INTA.

4 ПКП осуществляет снова опросы своих линий и определяет номер прерывания (если их несколько, то наиболее приоритетный), посылает его к центральному процессору. ЦП получив номер прерывания вызывает соответствующую процедуру его обработки.

6 ПКП получив код процессора команду завершения обработки прерывания, разрешает прием запросов с линий IRQ0-IRQ7.

7 процедура завершается инструкцией IRET по которой ЦП возвращается к выполнению прерванной программы извлекая из стека необходимую информацию и вновь разрешает аппаратные прерывания.

  1. Схема и алгоритм взаимодействия контроллера прерываний с центральным процессором.

1 Инициализация контроллера и конфигурирование прерываний – каждому устройству назначается своя линия запроса прерывания IRQ и свой вектор прерывания. Указатель на адрес его обработки.

2 Программируемый контроллер прерываний (ПКП) при обнаружении одного либо нескольких запросов на своих входах IRQ[i] выдает общий запрос прерывания int поступающий на соответствующий вход.

3 ЦП если флаг IF установлен сохраняет в стеке регистр флагов и адрес возврата, запрещает маскируемые прерывания и формирует сигнал подтверждения прерывания INTA.

4 ПКП осуществляет снова опросы своих линий и определяет номер прерывания (если их несколько, то наиболее приоритетный), посылает его к центральному процессору. ЦП получив номер прерывания вызывает соответствующую процедуру его обработки.

6 ПКП получив код процессора команду завершения обработки прерывания, разрешает прием запросов с линий IRQ0-IRQ7.

7 процедура завершается инструкцией IRET по которой ЦП возвращается к выполнению прерванной программы извлекая из стека необходимую информацию и вновь разрешает аппаратные прерывания.