Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
008401 / / специнтерфейсы.doc
Скачиваний:
45
Добавлен:
10.04.2015
Размер:
311.81 Кб
Скачать

3. Специальные интерфейсы

В этой главе рассматриваются следующие интерфейсы IBM PC-совместимых компьютеров: интерфейсы устройств ввода (клавиатуры и манипуляторов), аналоговый и дискретный интерфейсы игрового адаптера, аудиоинтерфейсы и интерфейсы мониторов.

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

Для подключения клавиатуры предназначен последователь­ный синхронный интерфейс, состоящий из двух обязательных сигналов, KB-Data и KB-Clock. Необязательный сигнал KB-Reset сбрасывает клавиатуру низким уровнем сигнала. Интерфейс на системной плате XT реализован аппаратной логикой — регистром сдвига, параллельный выход которого подключается ко входам порта А системного интерфейса 18255. По приему байта от клавиатуры вырабатывается аппаратное прерывание IRQ2, обработчик которого может про­читать принятый байт из порта 60h. С помощью бит 7 и 6 порта 61h возможны программная блокировка и сброс кла­виатуры соответственно. Сброс клавиатуры XT осуществляется обнулением линии KB-Clock.

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

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

разрешена в BIOS Setup, то по этой ошибке POST будет дожидаться получения кода клавиши F1.

Вид разъемов клавиатур (со стороны задней панели) и назначение контактов приведены на рис. 3.1. Конструктивно возможны два варианта разъема — обычная 5-контактная розетка DIN или малогабаритная розетка mini-DIN (PS/2). На этот же разъем через плавкий предохранитель поступает напряже­ние питания клавиатуры +5 В. Электрически и логически интерфейс клавиатуры PS/2 повторяет AT, поэтому для согласования типа разъема применяют специальные переходники. Предпочтительнее использовать переходники, выполненные в виде мягкого кабеля с разъемами. Монолитный переход­ник, особенно с АТ-кдавиатуры на PS/2-разъем, хуже тем, что малейшее движение кабеля вызывает большой момент силы, выламывающий переходник из маленького гнезда PS/2.

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

Программируемый микроконтроллер i8042 имеет встроенное ПО, которое хранится в масочном внутреннем ПЗУ и обес­печивает вырабатывание запроса прерывания по приему скан-кода от клавиатуры и отработку управляющих команд от ЦП. Кроме управления клавиатурой, через программно-управляемые и программно-читаемые линии внешних портов контроллера формируются сигналы управления венти­лем Gate A20, аппаратного системного сброса, а также считываются сигналы от конфигурационных джамперов системной платы. Контроллер 18242В, кроме интерфейса кла-

виатуры, поддерживает аналогичный интерфейс дополнительного устройства, например PS/2-Mouse. Контроллер имеет два порта, доступ к которым осуществляется через команды контроллера.

Порт ввода, доступный по команде COh, используется для чтения состояния джамперов и ключа:

» Бит 7 — если 0, то клавиатура заблокирована ключом (KeyLock).

« Бит 6 — исходный видеорежим: 0=CGA, 1=MDA. s Бит 5 — системная перемычка: 0=замкнута. « Бит 4 - системное ОЗУ: 0=512 Кбайт и более, 1=256 Кбайт. * Бит 1 — вход данных дополнительного интерфейса. » Бит 0 — вход данных интерфейса клавиатуры.

Порт вывода, доступный для записи и чтения по командам 01 h и DOh соответственно, имеет следующее назначение бит:

я Бит 7 — последовательные данные клавиатуры. s Бит 6 — синхронизация клавиатуры.

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

« Бит 4 — запрос прерывания от клавиатуры (IRQ1). s Бит 3 — синхронизация дополнительного интерфейса.

« Бит 2 — последовательные данные дополнительного интерфейса.

ж Бит 1 — вентиль линии адреса А20 (Gate A20).

s Бит 0 — альтернативный сброс процессора (без формирования общего сигнала сброса).

Контроллер расположен в пространстве ввода/вывода по адресам 60h и 64h, причем по чтению скан-кода клавиату­ры из порта 60h сохраняется совместимость с XT. Назначе­ние регистров контроллера клавиатуры приведено в табл. 3.1. Регистр данных контроллера в режиме записи используется для подачи команд, относящихся к клавиатуре и собственно контроллеру. Признаком готовности контроллера является нулевое значение бита 1 регистра состояния (порт 064h).

Общие команды контроллера i8042:

«s DF разрешить управление линией А20.

и DD запретить управление линией А20.

« D1 — запись в порт вывода i8042.

» DO чтение порта вывода i8042.

« СО — чтение порта ввода i8042.

^

ss АЕ — разрешение клавиатуры. ^

т AD запрещение клавиатуры, а

» AC чтение ОЗУ контроллера.

» АВ — тест синхронизации и данных. '» АА — внутренний тест контроллера. « 60 — запись в контроллер. ss 20 — чтение контроллера. Команды управления клавиатурой AT:

я FFReset сброс и тест клавиатуры. » FEResend повтор последней передачи.

» FB-FDSet Key Types установка автоповтора отдельных клавиш.

я F7-FASet All Keys — установка операции автоповтора клавиатуры.

я F6 — Set Default — сброс в начальное состояние и разрешение сканирования.

« F5 — Default Disable — сброс в начальное состояние и запрет сканирования.

a F4 — Enable KB клавиатура ответит байтом подтверждения АСК и продолжит сканирование.

» F3 — Set Typematic Rate/Delay задание задержки и частоты повтора кодов. Последующий байт данных имеет следующий формат:

Бит 7"0. Биты [6:5] — задержка, мс:

00-250, 01-500,10-750,11-1000. Биты [4:0]=00-lFh — скорость повторов, 1/с:

00h=30,0 05П-18.5 OAh°12,0 12h»6,0 01h=26,7 06h»17,l OCh=10,0 Uh-5,0 02h=24,0 07h=16,0 ODh-9,2 ^-4,0 03h=21,8 08h=15,0 OFh=8,0 lAh=3,0 04h=20,0 09h=13,3 10h=7,5 lFh-2,0

» F2 — Read ID Code запрос на двухбайтный идентификатор.

8 ЕЕ — Echo эхо-диагностика: возвращает ОЕЕЬ.

m EDSet/Reset Mode Indicators управление индикаторами клавиатуры. Последующий байт данных:

Бит 0: 1-включить Scroll Lock.

Бит 1: 1 "включить Num Lock.

Бит 2: 1-включить Caps Lock. » AD запрет сканирования. ж АЕ — разрешение сканирования.

По нажатии клавиши ее скан-код попадает в регистр данных. По отпускании в регистр данных попадает сначала пре­фикс отпускания, затем — скан код. В XT префикса нет, по отпускании передается скан-код с единицей в бите 7.

Из регистра данных контроллера кроме скан-кодов возможно получение ответов на команды, префикса кода отпуска­ния клавиши (FO) или кодов особых случаев:

« FA — АСК — подтверждение приема команды. » АА — Test OK внутренний тест прошел. » FDDiagnostic Failure ошибка внутреннего теста. «si ЕЕ — Echo Response ответ на эхо-команду.

» 00, FF — Buffer Error переполнение буфера или неидентифицированная клавиша.

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