10

#

# Тема 10. Клавиатура. Мышь.

Цель: Рассмотреть устройство и принцип работы клавиатуры и мыши.

План:

1. Принцип работы клавиатуры.

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

3. Подключение клавиатуры

4. Принцип работы мыши.

5. Типы мышей (Bus, Serial, PS/2, USB).

6. Форматы передачи данных от мыши

1. Принцип работы клавиатуры

Клавиатура является одним из важнейших устройств, определяющим условия комфортабельной работы на PC. Главным элементом в клавиатуре являются клавиши. При покупке клавиатуры следует тщательно опробовать их работу, чтобы определить, удовлетворяет ли "механика" клавиатуры вашим индивидуальным требованиям.

Принцип действия клавиатуры представлен на рис. 12.1. Независимо от того, как механически реализован процесс нажатия клавиш, сигнал при нажатии клавиши регистрируется контроллером клавиатуры (например, 8049) и передается в виде так называемого скэн-кода на материнскую плату. Скэн-код - это однобайтовое число, младшие 7 бит которого представляют идентификационный номер, присвоенный каждой клавише (табл. 12.1—12.5). На материнской плате PC для подключения клавиатуры также используется специальный контроллер. Для PC типа AT обычно применяется микросхема универсального периферийного интерфейса UPI (Universal Peripheral Interface) 8042.

Когда скан-код поступает в контроллер клавиатуры (8042), то инициализируется аппаратное прерывание (IRQ1), процессор прекращает свою работу и выполняет процедуру, анализирующую скэн-код. Данное прерывание обслуживается специальной программой, входящей в состав ROM BIOS. При поступлении скэн-кода от клавиш сдвига (<Alt>, <Ctrl>) или переключателя (<Shift>, <CapsLock>) изменение статуса записывается в RAM. Во всех остальных случаях скэн-код трансформируется в код символа (так называемые коды ASCII или расширенные коды). При этом обрабатывающая процедура сначала определяет установку клавиш и переключателей, чтобы правильно получить вводимый код ("а" или "А"). Затем введенный код помещается в буфер клавиатуры, представляющий собой область памяти, способную запомнить до 15 вводимых символов, пока прикладная программа не может их обработать. Буфер организован по принципу FIFO (первый вошел — первый вышел).

Рис 3.2.1. Принцип действия клавиатуры

Каждая клавиша генерирует два типа скэн-кодов: "код нажатия", когда клавиша нажимается, и "код освобождения", когда клавиша отпускается. Для PC класса AT используется одна и та же цепочка битов для "кодов нажатия" и "кодов освобождения", но коды освобождения состоят из двух байтов, первый из которых всегда равен OFOH. Для PC XT-генерации "код освобождения" на 128 больше "кода нажатия" (бит 7=1). Например, 7-битовь1й скэн-код клавиши В равен 48 или 110000 в двоичной системе счисления. Когда клавишу нажимают, на контроллер клавиатуры поступает код 10110000, а когда отпускают — код 00110000.

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

Контроллер 8049 отвечает не только за генерирование скэн-кодов, но и необходим для выполнения функций самоконтроля и проверки нажатых клавиш в процессе загрузки системы. Процесс самоконтроля отображается однократным миганием трех индикаторов LED клавиатуры во время выполнения программы POST. Таким образом, неисправность клавиатуры выявляется уже на стадии загрузки PC.

Подключение клавиатуры

Обычно для подключения клавиатуры используется спиралевидный кабель длиной около 1 м, имеющий DIN-разъем, вероятно, уже известный вам из техники Hi-Fi.

Рис 3.2.1. 5-контактный DIN-разъем для подключения клавиатуры

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

Кабель обычно заканчивается 5-контактным разъемом. Так как данные передаются последовательно от клавиатуры к PC и наоборот, то, естественно, необходимы канал передачи данных и тактовый канал. Рабочее напряжение питания клавиатуры +5 В. Канал RESET (сброс) предназначен для передачи сигнала на перезагрузку PC, но обычно он не используется.

Обычно у компьютеров типа laptop и notebook (а также некоторых других моделей PC) на клавиатуре имеется 6-контактный разъем, а на материнской плате 6-полюсное гнездо. Эти разъемы называются разъемами Mini DIN или разъемами PS/2. Назначение контактов такого разъема представлено в табл. 3.2.1.

Таблица 3.2.1. Сигналы 6-контактного разъема клавиатуры

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

2. Устройство «мышь» (Bus, Serial, PS/2, USB).

Устройство ввода "мышь" (mouse) передает в систему информацию о своем перемещении и нажатии-отпускании кнопок. Обычная конструкция имеет свободно вращающийся массивный обрезиненный шарик, передающий вращение на два координатных диска с фотоэлектрическими датчиками - две открытые оптопары (светодиод - фотодиод), в оптический канал которых входит вращающийся диск с прорезями. По интерфейсу с компьютером различают три основных вида мышей: Bus Mouse, Serial Mouse н PS/2-Mouse. Появились мыши с интерфейсом USB.

Bus Mouse (шинная мышь) - вариант, применявшийся в первых мышах. Содержит только датчики и кнопки; обработка их сигналов производится на специализированной плате адаптера. Мультипортовые карты (СОМ-, LPT- и GAME-порты), на которых установлен и адаптер Bus Mouse, встречаются редко. Кабель 9-проводный, разъем специальный (табл. 3.2.1) хотя на первый взгляд напоминает разъем PS/2-Mouse.

Таблица 3.2.2. Разъем Bus Mouse

Контакт | Сигналы | Контакт | Сигналы
1 | Vcc | 6 | Lb - левая кнопка
2 | Xa – датчик X | 7 | Mb - средняя кнопка
3 | Xb – датчик X | 8 | Rb – правая кнопка
4 | Xa – датчик Y | 9 | GND
5 | Xb – датчик Y | - | -

Serial Mouse - мышь с последовательным интерфейсом, подключаемая через 25 или 9-штырьковый разъем СОМ-порта (табл. 3.2.2). Имеет встроенный микроконтроллер, который обрабатывает сигналы от координатных датчиков и кнопок. Каждое событие кодируется двоичной посылкой по интерфейсу RS-232C, а питание производится от интерфейса. Мышь с последовательным интерфейсом - Serial Mouse - может подключаться к любому исправному порту. Для согласования разъемов порта и мыши возможно применение переходника DB-9S-DB-25P или DR25S-DB-9P. Для мыши требуется прерывание, для порти COM1 - IRQ4, для COM2 - IRQ3. Жесткая привязка номера IRQ к номеру порта обусловлена свойствами драйверов. Каждое событие - перемещение мыши или нажатие-отпускание кнопки - кодируется двоичной посылкой по интерфейсу RS-232C. Применяется асинхронная передача; двуполярное питание обеспечивается от управляющих линий интерфейса (табл. 3.2.3).

Таблица 3.2.3. Разъемы Serial Mouse

Сигнал | Контакт | -
- | DB-9 | DB-25
Data | 2 | 3
GND | 5 | 7
+V (питание) | 4,7 | 4,20
-V (питание) | 3 | 9

Разновидности Serial Mouse

Две разновидности Serial Mouse - MS-Mouse и РС-Mouse (Mouse Systems Mouse) - требуют соответствующих драйверов, многие мыши имеют переключатель MS/PC. Мышь с «чужим» драйвером либо не отзывается, либо «скачет» загадочным образом. Эти разновидности используют различные форматы посылок при одинаковой скорости 1200 бит/с, одном стоп-бите и отсутствии контроля четности Microsoft-Mouse использует 7 бит данных, а PC-Mouse - 8 бит. Мышь посылает пакет при каждом изменении состояния: перемещении, нажатии или отпускании кнопки. Пакет, передаваемый MS-Mouse, состоит из трех байт (табл. 3.2.4). РС-Mouse передает 5 байт (табл. 3.2.5). Здесь LB (Left Buttom), MB (Middle Buttom) и RВ (Right Buttom) означают состояние левой, средней и правой кнопок, Х[7:0] и Y[7:0] - биты относительного перемещения мыши с момента предыдущей посылки по координатам X и Y. Положительным значениям соответствует перемещение по координате X вправо, а по координате Y - вниз для MS-Mouse и вверх для РС-Mouse. Отсюда становятся понятными беспорядочные перемещения курсора на экране при несоответствии драйвера типу мыши.

Форматы передачи данных от мыши

Таблица 3.2.4. Формат пакета MS-Mouse.

Биты | D6 | D5 | D4 | D3 | D2 | D1 | D0
1-й байт | 1 | LB | RB | Y7 | Y6 | Y7 | Y6
2-й байт | 0 | X5 | X4 | X3 | X2 | X1 | X0
3-й байт | 0 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0

Таблица 3.2.5. Формат пакета РС-Mouse (Mouse Systems Mouse).

Биты | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0
1-й байт | 1 | 0 | 0 | 0 | 0 | LB | MB | RB
2-й байт | X7 | X6 | X5 | X4 | X3 | X2 | X1 | X0
3-й байт | Y7 | Y6 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0
4-й байт | Совпадает со 2-м байтом
5-й байт | Совпадает со 3-м байтом

PS/2-Mouse - мышь, появившаяся с компьютерами PS/2. Ее интерфейс и 6-штырьковый DIN мини-разъем аналогичны клавиатурному. Адаптер и разъем PS/2-Mouse устанавливается на современных системных платах brand-namе. Контроллер такой мыши может входить и в контроллер клавиатуры или занимать дополнительные адреса в пространстве ввода/вывода. Для PS/2-Mullse используется прерывание IRQI2.

С интерфейсами Serial Mouse и PS/2-Mouse иногда возникают недоразумения. Оба они последовательны, но имеют принципиальные различия в уровнях сигналов, способе синхронизации, частоте и формате посылок:

· Интерфейс PS/2 использует однополярный сигнал с уровнями ТТЛ, питание мыши - однополярное с напряжением +5 В относительно шины GND. Интерфейс RS-232C, применяемый в Serial Mouse, использует двухполярный сигнал (см. таблицу 2) с уровнями срабатывания 3 B и -3 В, требует двухполярного питания.

· Синхронный интерфейс PS/2-Mouse использует две раздельные сигнальные линии. Одну - для передачи данных, другую - для сигналов синхронизации. Serial Mouse использует асинхронный способ передачи данных по одной линии.

Литература: 5, стр. 12-45; 6, стр. 15- 58

Контрольные вопросы

1. Объясните принцип действия клавиатуры?

2. Чем отличается скан-код от ASCII-кода?

3. Через какие разъемы подключается клавиатура?

4. Какие сигналы используются в 6-контактном разъеме клавиатуры?

5. Что представляет собой кострукция мыши?

6. Какие типы мышей вы знаете?

7. Объясните принцип действия последовательной мыши?

8. Какие форматы имеют пакеты передачи данных?

9. В чем отличие PS/2-мыши от COM-мыши?