Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб.ПУ №1,2...doc
Скачиваний:
146
Добавлен:
16.11.2018
Размер:
13.54 Mб
Скачать

3 Интерфейс клавиатуры

Клавиатура состоит из набора переключателей, объединенных в матрицу. При нажатии клавиши процессор, установленный в самой клавиатуре, определяет координаты нажатой клавиши в матрице. Кроме того, процессор клавиатуры определяет продолжительность нажатия и может обработать даже одновременное нажатие нескольких клавиш. В клавиатуре установлен буфер емкостью 16 байт, в который заносятся данные при слишком быстрых или одновременных нажатиях. Затем эти данные в соответствующей последовательности передаются в систему.

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

Клавиатура персональных компьютеров фактически представляет собой небольшой компьютер, связанный с основной системой одним из двух способов:

- с помощью стандартного разъема клавиатуры и специального последовательного ка­нала передачи данных;

- через порт USB.

Связь с системным блоком осуществляется через последовательный канал, данные по которому передаются по 11 бит, причем восемь из них собственно данные, а остальные — синхронизирующие и управляющие. При том, что это полноценный последовательный канал связи (данные передаются по одному проводнику), он не совместим со стандартным последовательным портом RS-232, который часто используется для подключения модемов.

В клавиатурах первых PC использовался микроконтроллер 8048, а в более новых компьютерах применяется микросхема 8049 со встроенной памятью ROM или другие микросхемы, совместимые с 8048 или 8049. Встроенный процессор клавиатуры сканирует матрицу переключателей, устраняет эффект дребезжания, вырабатывает при нажатии клавиши соответствующий скан-код и передает его на системную плату. Этот процессор имеет свою память, иногда небольшую память ROM и встроенный последовательный интерфейс.

В компьютере PC/XT последовательный интерфейс клавиатуры соединен с микросхемой 8255 программируемого периферийного интерфейса (Programmable Peripheral Interface — PPI) на системной плате. Эта микросхема, в свою очередь, подключена к контроллеру прерываний через линию IRQ 1, которая используется для сигнализации о том, что данные с клавиатуры доступны. Сами данные из микросхемы 8255 передаются в процессор через порт ввода-вывода с адресом 60h. Сигнал на линии IRQ 1 заставляет процессор компьютера перейти к подпрограмме обработки прерываний (INT 9h), которая интерпретирует скан-коды клавиатуры и определяет дальнейшие действия.

В компьютерах типа AT последовательный интерфейс клавиатуры подключен к специальному контроллеру клавиатуры на системной плате. В качестве такого контроллера используется микросхема 8042 универсального интерфейса периферийных устройств (Universal Pe­ripheral Interface — UPI). Этот микроконтроллер фактически является еще одним процессором со встроенными ROM емкостью 2 Кбайт и RAM на 128 байт. Существует версия с микроконтроллером 8742, в котором используется микросхема EPROM; такой микроконтроллер позволяет стирать информацию и записывать ее заново. В комплекты ROM для модернизации старых системных плат входили и новые микросхемы контроллеров клавиатуры, поскольку в них есть свои микросхемы ROM, которые тоже должны быть модифицированы. В некоторых компьютерах можно использовать микросхемы 8041 и 8741, которые отличаются только емкостью встроенной памяти.

В системах AT микроконтроллер, установленный в клавиатуре (типа 8048), пересылает данные в контроллер клавиатуры (типа 8042) на системной плате; возможна также передача данных в обратном направлении. Когда контроллер на системной плате принимает данные от клавиатуры, он выдает запрос по цепи IRQ 1 и передает данные главному процессору через порт ввода-вывода с адресом 60h (как и в PC/XT). Играя роль посредника между клавиатурой и главным процессором, контроллер клавиатуры типа 8042 может также преобразовывать скан-коды и выполнять другие функции. Данные могут передаваться контроллеру 8042 через тот же порт 60h, после чего он пересылает их в клавиатуру. Кроме того, при необходимости передать команды или проверить состояние контроллера клавиатуры на системной плате может быть использован порт ввода-вывода с адресом 64h. Передача команд обычно сопровождается пересылкой данных в одном из направлений через порт 60h.

В большинстве старых систем контроллер 8042 используется также для управления шиной адреса А20 при обращении к памяти, объем которой больше одного мегабайта. В современных системных платах эта функция возложена непосредственно на процессор и набор микросхем системной платы.

Клавиатура, подключенная к порту USB, работает практически так же, как и при подключении к традиционному порту DIN или mini-DIN. Микросхемы контроллера, установленные в клавиатуре, используются для получения и интерпретации данных перед тем, как они будут переданы через порт USB в систему. Некоторые микросхемы включают в себя логическую часть концентратора USB, что позволяет клавиатуре работать непосредственно в качестве концентратора USB. При получении данных от клавиатуры порт USB передает их на 8042-совместимый контроллер, который обрабатывает данные так же, как и любую другую информацию клавиатуры.

Описанный процесс осуществляется уже после загрузки операционной системы. Но что же происходит в том случае, если пользователю приходится использовать клавиатуру при работе в командной строке или при конфигурировании системной BIOS? Как уже отмечалось, для работы с клавиатурой USB в режиме командной строки необходимо осуществить поддержку технологии USB Legacy в базовой системе ввода-вывода. BIOS, поддерживающая USB Legacy, позволяет выполнить следующие задачи:

- конфигурирование главного контроллера;

- подключение клавиатуры и мыши USB;

- настройка планировщика главного контроллера;

- направление данных, вводимых с клавиатуры или мыши USB, на контроллер клавиатуры 8042.

Системы, поддерживающие USB Legacy, могут использовать базовую систему ввода-вывода для управления клавиатурой USB до загрузки операционной системы. После загрузки системы драйвер главного контроллера USB берет управление клавиатурой на себя, отправляя команду StopBIOS подпрограмме BIOS, которая непосредственно "руководит" клавиатурой. При перезагрузке компьютера в режиме командной строки главный контроллер USB отправляет команду StartBIOS для повторного запуска той же под­программы базовой системы ввода-вывода.

Клавиатура USB, начиная с того момента, как контроллер клавиатуры 8042 принимает отправленные сигналы, работает аналогично стандартным клавиатурам. При этом управление клавиатурой осуществляется на уровне BIOS (параметры BIOS, необходимые для работы с клавиатурой USB, должны быть корректно заданы). Как уже отмечалось, в некоторых случаях для обеспечения соответствующей поддержки клавиатуры USB может понадобиться обновленная версия BIOS. Кроме этого, используемые наборы микросхем системной логики должны поддерживать режим USB Legacy.