Разъемы подключения клавиатур XT, AT - а и PS/2 - б (вид со стороны контактов)
Рисунок 3.1. Разъемы подключения клавиатур XT, AT - а и PS/2 - б (вид со стороны контактов)
Питание от разъема клавиатуры часто используется такими устройствами, как внеш- ние накопители или адаптеры локальных сетей, подключаемыми к параллельному порту. Плавкий предохранитель, установленный на системной плате, может не вы- держать броска тока, потребляемого этими устройствами. При этом откажется ра- ботать и клавиатура - ее индикаторы не мигнут при включении.
Программируемый микроконтроллер 18042 имеет встроенное ПО, которое хранится в масочном внутреннем ПЗУ и обес- печивает вырабатывание запроса прерывания по приему скан- кода от клавиатуры и отработку управляющих команд от ЦП. Кроме управления клавиатурой, через программно- управляемые и программно-читаемые линии внешних пор- тов контроллера формируются сигналы управления венти- лем Gate А20, аппаратного системного сброса, а также считываются сигналы от конфигурационных джамперов си- стемной платы. Контроллер 18242В, кроме интерфейса кла-
виатуры, поддерживает аналогичный интерфейс дополни- тельного устройства, например PS/2-Mouse. Контроллер имеет два порта, доступ к которым осуществляется через команды контроллера.
Порт ввода, доступный по команде СО/?, используется для чтения состояния джамперов и ключа:
т Бит 7 - если 0, то клавиатура заблокирована ключом (KeyLock).
Бит б - исходный видеорежим: 0=CGA, 1=MDA. Бит 5 - системная перемычка: 0=замкнута. т Бит 4 - системное ОЗУ: 0=512 Кбайт и более, 1-256 Кбайт. Бит 1 - вход данных дополнительного интерфейса. Бит 0 - вход данных интерфейса клавиатуры.
Порт вывода, доступный для записи и чтения по командам D1h и DOh соответственно, имеет следующее назначение бит:
Бит 7 - последовательные данные клавиатуры. ?i Бит 6 - синхронизация клавиатуры.
Бит 5 - запрос прерывания от дополнительного интер- фейса (IRQ12).
Бит 4 - запрос прерывания от клавиатуры (IRQ1). т Бит 3 - синхронизация дополнительного интерфейса.
Бит 2 - последовательные данные дополнительного ин- терфейса.
т Бит 1 - вентиль линии адреса А20 (Gate А20).
т Бит 0 - альтернативный сброс процессора ( без форми- рования общего сигнала сброса).
Контроллер расположен в пространстве ввода/вывода по адресам 60h и 64h, причем по чтению скан-кода клавиату- ры из порта 60h сохраняется совместимость с XT. Назначе- ние регистров контроллера клавиатуры приведено в табл. 3.1. Регистр данных контроллера в режиме записи используется для подачи команд, относящихся к клавиатуре и собственно контроллеру. Признаком готовности контроллера является нулевое значение бита 1 регистра состояния (порт 064h).
Порт, |
Назначение |
R/W |
|
060 RW |
Порт данных 8042 |
064 R |
Регистр состояния 8042: |
Бит 7 - ошибка четности |
|
Бит 6 - тайм-аут приемника/общий тайм-аут* |
|
Бит 5 - тайм-аут передатчика/выходной буфер |
|
дополнительного интерфейса полон* |
|
Бит 4: 1 - клавиатура на замке |
|
БитЗ: |
|
1 - команда, |
|
0 - данные |
|
Бит 2: |
|
0 - Power ON, |
|
1 - Reset OK (состояние завершения |
|
системного сброса) |
|
Бит 1: |
|
1 - входной буфер полон, |
|
0 - готовность к приему команды/данных |
|
Бит 0: 1 - выходной буфер полон |
|
064 W |
Регистр команд 8042 |
Общие команды контроллера 18042:
т DF - разрешить управление линией А20. т DD - запретить управление линией А20. D1 - запись в порт вывода 18042. т 00 - чтение порта вывода 18042. т СО - чтение порта ввода 18042. т АЕ - разрешение клавиатуры. AD - запрещение клавиатуры. т AC - чтение ОЗУ контроллера.
ss AB - тест синхронизации и данных.
ш АА - внутренний тест контроллера.
т 60 - запись в контроллер.
20 - чтение контроллера. Команды управления клавиатурой AT:
т. FF - Reset - сброс и тест клавиатуры.
FE - Resend - повтор последней передачи.
FB-FD - Set Key Types - установка автоповтора отдель- ных клавиш.
т F7-FA -Set All Keys - установка операции автоповтора клавиатуры.
т F6 - Set Default - сброс в начальное состояние и разре- шение сканирования.
ш F5 - Default Disable - сброс в начальное состояние и за- прет сканирования.
F4 - Enable KB - клавиатура ответит байтом подтверж- дения АСК и продолжит сканирование.
F3 - Set Typematic Rate/Delay - задание задержки и час- тоты повтора кодов. Последующий байт данных имеет следующий формат:
Бит 7=0. Биты [6:5] - задержка, мс:
00=250, 01=500, 10-750. 11=1000. Биты IOJOO-lFh - скорость повторов, 1/с:
00h=30.0 05h=18,5 OAh=12,0 12h=6,0 01h=26,7 06h=17,l OCh-10,0 14h=5,0 02h=24,0 07h=16,0 ODh=9,2 17h=4,0 03h=21,8 08h=15,0 OFh=8,0 lAh=3,0 04h-20,0 09h=13,3 lOh-7,5 lFh=2,0
m F2 - Read ID Code - запрос на двухбайтный идентифи- катор.
ЕЕ - Echo - эхо-диагностика: возвращает OEEh.
ffi ED - Set/Reset Mode Indicators - управление индикато- рами клавиатуры. Последующий байт данных:
Бит 0: 1=включить Scroll Lock.
Бит 1: 1 включить Num Lock.
Бит 2: 1=включить Caps Lock. 8й AD - запрет сканирования. т АЕ - разрешение сканирования.
По нажатии клавиши ее скан-код попадает в регистр дан- ных. По отпускании в регистр данных попадает сначала пре- фикс отпускания, затем - скан код. В XT префикса нет, по отпускании передается скан-код с единицей в бите 7.
Из регистра данных контроллера кроме скан-кодов возмож- но получение ответов на команды, префикса кода отпуска- ния клавиши (FO) или кодов особых случаев:
as FA - АСК - подтверждение приема команды. йй АА - Test OK - внутренний тест прошел. т FD - Diagnostic Failure - ошибка внутреннего теста. ЕЕ - Echo Response - ответ на эхо-команду.
а? 00, FF - Buffer Error - переполнение буфера или неиден- тифицированная клавиша.