Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Клавиатура персональных ЭВМ.docx
Скачиваний:
2
Добавлен:
09.12.2018
Размер:
716.73 Кб
Скачать

МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ

(ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

Клавиатура персональных эвм

Выполнил студент группы № 04-221

Бодягин Александр Михайлович

Москва

2011

Содержание

  1. Организация системы прерываний…………………………………………………………3

  • Классификация……………………………………………………………………………….3

  • Аппаратное прерывание………………………………………………………………..4

  • Процедура прерывания………………………………………………………………….4

  1. Принцип действия клавиатуры………………………………………………………………..6

  1. Аппаратная поддержка работы с клавиатурой……………………………………….8

  • Контролер клавиатуры…………………………………………………………………..8

  • Порты………………………………………………………………………………………………8

  • Контролер приоритетных прерываний……………………………………..….9

  1. Программная поддержка……………………………………………………………….……..11

  • BIOS………………………………………………………………………………………….……11

  • Обработчик прерываний……………………………………………………….…….11

  1. Взаимодействие аппаратных и программных средств…………………………13

  1. Современное состояние и перспективы……………………………………………….15

  1. Приложения……………………………………………………………………………………….…..16

  1. Список литературы………………………………………………………………………………...19

Организация системы прерываний

Классификация

Прерывание (англ. interrupt) — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.

В зависимости от источника возникновения сигнала прерывания делятся на:

  • аппаратные (асинхронные, или внешние) — события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши.

  • синхронные или внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение, обращение к недопустимым адресам или недопустимый код операции;

  • программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания как правило используются для обращения к функциям встроенного программного обеспечения (firmware), драйверов и операционной системы. Возникают при выполнении в программе команды int номер_прерывания (к примеру int 13h), они обычно используются для вызова из программы системных функций MS-DOS (Microsoft Disk Operating System — дисковая операционная система от Microsoft) или BIOS (Basic Input-Output System — базовая система ввода-вывода).

Аппаратное прерывание1

Аппаратные прерывания вызываются физическими устройствами и приходят асинхронно. Аппаратные прерывания поступают из вне по линиям внутренней шины компьютера от внутренних либо внешних устройств. Сигналы, возбуждающие аппаратные прерывания, могут инициироваться цепями самого процессора, например, при попытке выполнения операции деления на ноль (такие прерывания называются внутренними, или отказами), а могут приходить из периферийного оборудования (внешние прерывания). Внешние аппаратные прерывания вызываются, например, сигналами микросхемы таймера, сигналами от принтера, сетевой карты, дискового накопителя, нажатием или отпусканием клавиш клавиатуры, движением мыши.

Сигналы аппаратных прерываний, возникающие в устройствах, входящих в состав компьютера или подключенных к нему, поступают в процессор через два контроллера прерываний (микросхема Intel 8259), один из которых называется ведущим, а второй – ведомым.

Процедура прерываний

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

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

Получив сигнал прерывания с определенным номером, процессор сохраняет в стеке выполняемой программы текущее содержимое трех регистров процессора: регистра флагов, CS и IP. Два последних числа образуют полный адрес возврата в прерванную программу. Далее процессор загружает CS и IP из соответствующего вектора прерываний2, осуществляя, тем самым, переход на обработчик прерывания, связанный с этим вектором.

Обработчик прерываний всегда заканчивается командой iret (interrupt return, возврат из прерывания), выполняющей обратные действия - извлечение из стека сохраненных там слов и помещение их назад в регистры IP и CS, а также в регистр флагов. Это приводит к возврату в основную программу в ту самую точку, где она была прервана.

Процедура прерывания отличается от обычной процедуры способом выхода из процедуры. Для выхода из процедуры прерывания служит команда IRET. Команда IRET аналогична команды RET, за исключением того, что она инкрементирует содержимое регистра ESP на четыре лишние байта и восстанавливает сохраненные флаги.