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

13. Устройства ввода информации

в компьютеры.

1. Клавиатура

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

Клавиатура персонального компьютера представляет собой унифицированное устройство со стандартным разъемом (обычно 5-контактным разъемом типа DIN (Deutche Industrie Norm) или типа Mini DIN (используемые ранее в компьютерах PS/2)) и последовательным интерфейсом связи с системной платой. Конструктивное выполнение клавиш клавиатуры может быть различным. В качестве датчиков нажатия клавиш используют механические контакты (открытые или герконовые), контакты на основе токопроводящей резины, емкостные датчики и датчики на эффекте Холла. Последние два типа датчиков клавиш являются наиболее надежными, но и существенно более дорогими. Независимо от типа применяемых датчиков нажатия клавиш, все они объединяются в матрицу.

В настоящее время, наиболее распространенным типом клавиатуры, ставшим современным стандартом является так называемая расширенная клавиатура, имеющая 101/102 клавиши, хотя и используются клавиатуры с 84, а также с 104, 105 и даже с 122 клавишами. Кроме того, имеются и различные эргономические варианты, которые целесообразно использовать в случаях особо интенсивной работы на них.

Блок-схема связи клавиатуры с системной платой и монитором компьютера приведена на рис.13I.1.

Нажатием клавиши клавиатуры пользователь подает сигнал во внутренний контроллер клавиатуры, обычно реализуемый в виде специальной микросхемы типа 8049. При поступлении этого сигнала, контроллер клавиатуры генерирует некоторый пакет данных, называемый скэн-кодом (scan-code), который определяется порядковым номером расположения клавиши на клавиатуре. Для увеличения надежности ввода, скэн-код состоит как бы из двух частей, образующих непрерывную цепочку битов: кода нажатия и кода освобождения. Код нажатия генерируется при нажатии клавиши и представляет собой один байт, код которого определяет порядковый номер нажатой клавиши. Код освобождения генерируется при отпускании клавиши и

представляет собой два байта. Первый байт всегда равен F0h, а второй – повторяет код порядкового номера нажатой клавиши. Сами же номера клавиш назначаются фирмой-изготовителем.

о

Рис.13I. Схема принципа действия клавиатуры.

При удержании клавиши в нажатом состоянии, через некоторое время клавиатура начинает автоповтор передачи скэн-кода нажатия этой клавиши. Задержка автоповтора (typematic delay) и скорость автоповтора (typematic rate) программируются и, следовательно, интерфейс между внутренним контроллером клавиатуры и системной платой – двунаправленный. От клавиатуры передается информация о нажатии/отпускании клавиш, а передача информации к клавиатуре используется для управления светодиодными индикаторами ее состояния и программирования параметров (автоповтор, выбор таблиц скэн-кодов, а также управление режимом сканирования матрицы клавиш и запуск диагностического теста).

Формируемый контроллером клавиатуры скэн-код подается на специальный контроллер интерфейса клавиатуры на системной плате. В наиболее распространенных персональных компьютерах PC AT, в качестве такого контроллера, обычно используется микросхема периферийного универсального интерфейса UPI (Universal Peripheral Interface) типа i8042/8242. Когда скэн-код поступает в этот контроллер, инициируется аппаратное прерывание IRQ1 (вектор 09h). Процессор прекращает выполнение текущей программы, и управление передается на процедуру, анализирующую скэн-код. Данное прерывание обслуживается специальной программой, входящей в состав ROM BIOS (BIOS INT 09h). Процедура прерывания преобразует, поступающие с клавиатуры скэн-коды, в специальный двухбайтовый код. Младший из этих двух байтов для алфавитно-цифровых клавиш содержит ASCII-код, соответствующий изображенному на клавише знаку. Этот байт называется главным. Старший байт - вспомогательный – содержит исходный скэн-код нажатия. При нажатии одиночной клавиши, относящейся к функциональным или служебным клавишам, или при одновременном нажатии некоторых клавиш главный байт содержит не ASCII-код, а 0. Это позволяет проверить важный факт, свидетельствующий о том, что при нажатии в данный момент клавиша не относится к алфавитно-цифровым клавишам. Вспомогательный байт при этом содержит уникальный номер, совпадающий со скэн-кодом нажатой клавиши, или же он соответствует определенной комбинации одновременно нажатых клавиш. Сочетание главного и вспомогательного кода, когда первый из них равен 0, называют расширенным ASCII-кодом. При поступлении скэн-кода от клавиш <Alt>, <Ctrl>, <Shift> или <CapLock>, изменение статуса записывается в RAM. При этом обрабатывающая процедура сначала определяет установку клавиш и переключателей, чтобы правильно получить вводимый код (например, «а» или «А»). Затем введенный код помещается в буфер клавиатуры, представляющий собой область памяти, способную запомнить до 15 вводимых символов, пока прикладная программа не может их обработать. Этот буфер организован по принципу FIFO (первый вошел – первый вышел).