Интерфейс и контроллер клавиатуры ([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), указывающий на то, что входной буфер полон. Тем самым процессор оповещается о том, что нужно выдать команду чтения порта данных, чтобы извлечь полученные данные.
Процессор также может передать данные в клавиатуру (например, для переключения индикации) послав их в регистр данных. Данные, поступившие в этот регистр, будут переданы в клавиатуру через последовательный интерфейс. При этом контроллер будет ожидать от клавиатуры подтверждения, получив которое, завершит передачу и выставит оповещающий сигнал процессору.
В процессе передачи и приема данных контроллер выполняет контроль на четность и время передачи. Если произойдет какая-либо ошибка интерфейса или клавиатуры, это будет отражено в регистре состояния.
- Средства тестирования и отладки пэвм
- Программные средства отладки
- Команда прерывания
- Пошаговый режим
- Регистры отладки
- Аппаратные средства отладки
- Режим системного управления smm
- Режим виртуального процессора 8086 (v86)
- Распределение областей системной памяти ([5], с.39)
- Пространство ввода-вывода (адреса компонентов системной платы) ([5], с.49)
- Автоматическое распределение системных ресурсов (Первоначальный заголовок – Спецификация Plug&Play для шины isa) ([5], с.69)
- Системный порт, таймер и динамик (компоненты системной платы) ([5], с.81)
- Интерфейс и контроллер клавиатуры ([5], с.85)
- Кмоп память и часы реального времени (cmos Memory и rtc – Real Time Clock)([5], с.89)
- Цифровой аудиоканал ([5], с.107)
- Rom bios.Тест начального включения([5], с.С.111,148)
- Rom bios.Конфигурирование пэвм –bios Setup([5], с.156)
- Адресация информации на жестких дисках и их разделы ([5], с.553)
- Блок питания пэвм ([5], с.783)
- Заземление пэвм ([5], с.769)