Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Периферийные устройства _ЧАСТЬ_1_Осокин.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
14.85 Mб
Скачать

2.1.2. Взаимодействие клавиатуры с системами персонального компьютера

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

Рис. 2.3. Процесс прохождения информации от клавиатуры до формирования символа на экране монитора

При нажатии клавиши факт нажатия регистрируется микроконтроллером клавиатуры, который формирует идентифицирующий ее скэн-код и передает его на системную плату компьютера по последовательному интерфейсу, по линиям KB-Data и KB-Clock. Каждая клавиша основного поля клавиатуры генерирует два типа скэн-кодов: «код нажатия», когда клавиша нажимается, и «код отпускания (освобождения)», когда клавиша отпускается. Скэн-коды отпускания отличаются от скэн-кодов нажатия. Код отпускания для клавиатур IBM PC на 80h больше кода нажатия. Данные коды приведены в справочной литературе. Соответствие скэн-кодов клавишам клавиатуры можно узнать с помощью программы ndiags.exe, входящей в пакет Norton Utilities, программы ts.exe (Trouble Shooter). Следует отметить, что в стандартном наборе OC Windows нет программы, индицирующей скэн-коды нажатой клавиши. Микроконтроллер клавиатуры способен определять факты нажатия и отпускания клавиш, при этом можно нажимать очередную клавишу, удерживая несколько ранее нажатых. Кроме того, микроконтроллер клавиатуры управляет индикаторами клавиатуры, осуществляет внутреннюю диагностику. Процесс самоконтроля отображается однократным миганием индикаторов Num Lock, Caps Lock, Stroll Lock клавиатуры AT, PS/2 во время выполнения программы Post. Таким образом, неисправность клавиатуры выявляется уже на стадии загрузки PC. В компьютерах типа IBM PC AT применяется микросхема универсального периферийного интерфейса UPI (Universal Peripheral Interface) 8042, называемая в литературе контроллером клавиатуры. Эта микросхема имеет встроенные 2 Кбайт ROM и 128 байт RAM-памяти. Некоторые производители системных плат в качестве контроллера универсального периферийного интерфейса (контроллера клавиатуры) используют микросхемы 8041, 8741, 8242.

Когда скэн-код поступает в контроллер универсального периферийного интерфейса (контроллер клавиатуры), то инициализируется аппаратное прерывание IRQ1 (Interrupt Requests) и выполняется процедура обработки прерывания. Отметим, что более высокий приоритет имеет только IRQ0, присвоенный прерыванию от таймера. Процессор системной платы прекращает работу выполняемого программного обеспечения, отмечает место, в котором остановилось выполнение программы, и выполняет процедуру обработки прерывания клавиатуры. Данное прерывание обслуживается специальной программой – обработчиком прерывания клавиатуры, входящей в BIOS. Эта программа может быть вызвана также через программное прерывание INT9. Процедура обработки прерывания включает в себя такие операции, как считывание скэн-кода из порта контроллера универсального периферийного интерфейса 8042 по адресу 60h, слежение за состоянием служебных клавиш (Shift, Alt, Ctrl, Caps Lock), преобразование скэн-кода в расширенный код ASCII, детектирование специальных комбинаций клавиш (Ctrl-Alt-Del, Ctrl-Break и т.д.), передача преобразованного кода в буфер клавиатуры, область в оперативной памяти RAM с начальным адресом памяти – 41eh. Таким образом, при поступлении скэн-кода от клавиш (Alt, Ctrl) или (Shift, Caps Lock) изменение статуса записывается в буфер клавиатуры, находящийся в оперативной памяти RAM. Клавиши управления курсором подключают обработчик прерываний клавиатуры. Во всех остальных случаях скэн-код преобразуется в ASCII-код символа. При этом программа-обработчик прерывания сначала определяет установки клавиш и переключателей, чтобы правильно сформировать код введенного символа (L или l). Затем код помещается в буфер клавиатуры, способный запомнить до 15 вводимых символов, пока подсистема вывода на монитор не может их обработать. Буфер организован по принципу FIFO (первый вошел – первый вышел). При удержании клавиш в нажатом состоянии через некоторое время начинается автоповтор считывания скэн-кода этой клавиши. Задержка автоповтора (Typematic Delay) и скорость автоповтора (Typematic Rate) для клавиатур AT задается командами, посылаемыми в контроллер 8042 из операционной системы.