Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 / Lectures / Lect5_pc.doc
Скачиваний:
58
Добавлен:
28.05.2015
Размер:
350.21 Кб
Скачать

Интерфейс и контроллер клавиатуры ([5], с.85)

Для подключения клавиатуры предназначен последовательный интерфейс, включающий в себя два обязательных сигнала KB-Data иKB-Clock (данные и синхронизация), а также необязательный сигнал сбросаKB-Reset, сбрасывающий клавиатуру низким уровнем.

Интерфейс клавиатуры ПЭВМ, начиная с AT, построен на контроллереi8042(или на логически эквивалентном контроллере, интегрированным в микросхемы чипсета, обычно, в южный мост или аналогичный по назначению хаб) и обеспечивает двустороннюю связь с клавиатурой. Причем передача информации к клавиатуре используется для управления индикаторами ее состояния и программирования параметров (автоповтор, набор скан-кодов).

Интерфейс клавиатуры ПЭВМ XT был реализован аппаратной логикой и несколько отличался от интерфейса AT. Поэтому подключение неправильного типа клавиатуры (если такая сохранилась) будет восприниматься тестомPOSTпри загрузке ПЭВМ как ошибка (или неподключенная клавиатура) и вызовет зависание при разрешенной вBIOS Setup проверке клавиатуры.

Клавиатура подключается к системному блоку одним из двух видов разъема: обычным 5-контактным (розеткой на системном блоке и вилкой на клавиатуре) DIN, применяемым и в бытовой радиоаппаратуре, или малогабаритным (розеткой на системном блоке) mini-DIN, появившимся в компьютерах семействаPS/2и получившим аналогичное название. На этот же разъем через плавкий предохранитель поступает и напряжение питания клавиатуры +5 В. Вид разъемов со стороны системного блока и назначение контактов приведены на рис.6. (Появляется и клавиатура, подключаемая к портуUSB).

Электрически и логически интерфейс клавиатуры PS/2повторяет интерфейс клавиатурыAT, поэтому для согласования различных типов разъемов применяют специальные переходники. Лучше использовать переходники в виде мягкого кабеля с разъемами. Жесткий переходник, особенно сAT-клавиатуры наPS/2разъем системного блока, хуже тем, что малые движения кабеля создают большой момент силы, выламывающий переходник из маленького гнездаPS/2.

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

Контроллер клавиатуры

Программируемый контроллер клавиатуры i8042 применяется в ПЭВМ, начиная сAT. Его функции состоят в приеме кодов от клавиатуры и управлении ее состоянием.

ПЭВМ использовали контролер клавиатуры i8042(позднееi8242) для общения с клавиатурой. Контролер на материнской плате в действительности взаимодействовал с подобным контроллером внутри клавиатуры, формировавшим коды нажимаемых клавиш – скан-коды. Контроллер, встроенный в клавиатуру, обычно, реализуется микросхемой из семействаMCS-48(51) – Micro Controller Set или логически совместимой.

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

Контроллер также регулирует время задержки повторения сигналов клавиатуры и скорость, с которой нажатая клавиша автоматически повторяется в отрезок времени.

В ряде ПЭВМ контролер клавиатуры обрабатывает ввод от интегрированной PS/2 мыши, имеющейся на многих ПЭВМ. Этот способ спроектирован IBM при создании оригинальной PS/2 линии.

Кроме того, контроллер клавиатуры использовался для управления "линией A20" (21-й адресной линией). Многие новые чипсеты сохраняют эту.

Встроенное программное обеспечение контроллера i8042хранится обычно в масочном внутреннем ПЗУ и не допускает изменения, но в этом, как правило, и нет необходимости. Данная программа обеспечивает формирование запроса прерывания по приему скан-кода от клавиатуры и отработку управляющих команд от процессора.

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

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

Порты ввода и вывода (оба имеют адрес 060h) доступны по командам контроллера:

C0h – чтение порта ввода

D0h – чтение порта вывода

D1h– запись в порт вывода

При этом назначение разрядов порта вывода следующее:

бит 7 – последовательные данные в клавиатуру

бит 6 – синхронизация клавиатуры

бит 5 – запрос прерывания от дополнительного интерфейса (IRQ12)

бит 4 – запрос прерывания от клавиатуры (IRQ1)

бит 3 – синхронизация дополнительного

бит 2 – последовательные данные доп. Интерфейса

бит 1 – вентиль линии адреса A20 (Gate A20)

бит 0 – альтернативный сброс процессора (Ctrl+Alt+Del)

Биты [1:0]входного порта используются как вход данных дополнительного интерфейса и интерфейса клавиатуры.

Назначение регистров контроллера указано в табл.7:

Таблица 7. Регистры контроллера клавиатуры IBM PC

Порт

Чтн/Зап

Назначение

060h

Чт/Зп

Регистр данных (связан с портами ввода и вывода)

064h

Чт

Регистр состояния (выдается при чтении порта вывода)

Бит 7 – ошибка четности

Бит 6 – тайм-аут приемника/общий тайм-аут

Бит 5 – тайм-аут передатчика

Бит 4 – 1 = клавиатура на замке

Бит 3 – 1 = команда, 0 = данные

Бит 2 – 0 = питание включено, 1 = завершение системного сброса

Бит 1 – 1 = входной буфер полон, 0 = готовность к приему команды/данных

Бит 0 – 1 = выходной буфер полон

064h

Зп

Регистр команд (команда заносится при записи в порт вывода)

На рис.7 для ознакомленияприведена структурная схема контроллера (одной из его модификацийVIA 82C42).

Когда клавиатура или мышка подают сигналы по линиям интерфейса (KBCLK, KBDATA, MSCLK, MSDATA), контроллер получает данные по последовательному интерфейсу и сохраняет полученные данные во внутреннем входном буфере. Если данные поступили от клавиатуры, то перед посылкой их во входной буфер выполняется трансляция полученного скан-кода. Кроме того, взводится сигнал в регистре состояния (и бит 4 порта вывода –IRQ1), указывающий на то, что входной буфер полон. Тем самым процессор оповещается о том, что нужно выдать команду чтения порта данных, чтобы извлечь полученные данные.

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

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

Соседние файлы в папке Lectures