КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Специализированные интерфейсы периферийных устройств

На этот же разъем через плавкий предохранитель поступает напряжение питания клавиатуры +5 В.

Рис. 8.1. Разъемы (вид со стороны контактов) подключения клавиатур: а — AT и б — PS/2
ВНИМАНИЕ

Питание от разъема клавиатуры часто используется такими устройствами, как внешние на¬копители или адаптеры локальных сетей, подключаемыми к параллельному порту. Плавкий предохранитель, установленный на системной плате, может не выдержать броска тока, по¬требляемого этими устройствами. При этом откажется работать и клавиатура — ее индикато¬ры даже и не мигнут при включении.
Процессор общается с клавиатурой через контроллер интерфейса клавиатуры — микроконтроллер 8042 или программно-совместимый с ним, установленный на системной плате. Для обмена информацией в основном используется порт 60h, из которого принимаются скан-коды. О необходимости чтения скан-кода контрол¬лер сигнализирует процессору через аппаратное прерывание IRQ1, сигнал которо¬го вырабатывается по каждому событию клавиатуры (нажатию и отпусканию клавиши). Задание параметров автоповтора, выбор таблиц скан-кодов, управле¬ние светодиодными индикаторами, а также управление режимом сканирования матрицы клавиш и запуск диагностического теста осуществляется командами, посылаемыми в этот же порт. Контроллер транслирует команды в посылки, на¬правляемые к клавиатуре.
Работу двунаправленного интерфейса иллюстрирует рис. 8.2, а, где серым цветом помечены сигналы, формируемые контроллером, а черным — клавиатурой. В исход¬ном состоянии обе линии «отпущены» выходными формирователями в состо¬яние с высоким уровнем. Клавиатура может начать передачу данных в произволь-


312
Глава 8. Специализированные интерфейсы периферийных устройств
ный момент, когда интерфейс находится в покое. Клавиатура формирует старто¬вый бит (низкий уровень) на линии KB-Data и первый импульс KB-Clock, что яв¬ляется сигналом контроллеру о необходимости начала приема. После подъема KB-Clock она выводит 0-й бит данных на линию KB-Data, а затем и следующий им¬пульс KB-Clock. Контроллер должен «защелкивать» принятый бит данных по спа¬ду KB-Clock. Так передаются все 8 бит данных и бит паритета, дополняющий чис¬ло единичных бит до нечетного. После синхроимпульса бита паритета контроллер клавиатуры должен сформировать импульс KB-Clock, подтверждающий прием байта (Ack). Если весь байт с битом паритета не будет получен контроллером за 2 мс, контроллер прекращает прием данного байта и фиксирует ошибку тайм-аута.

Рис. 8.2. Временные диаграммы интерфейса клавиатуры: а — прием посылки от клавиатуры,
б — передача команды в клавиатуру
Обратная передача — вывод команды контроллера в клавиатуру — происходит несколько сложнее (рис.

Hosted by uCoz