21732

Клавиатура. Манипуляторы-указатели

Лекция

Коммуникация, связь, радиоэлектроника и цифровые приборы

Вопросы: Общая характеристика клавиатуры. Интерфейс клавиатуры и мыши.Общая характеристика клавиатуры. Емкостные датчики и датчики Холла не имеют подвижных контактов и являются наиболее надежными для клавиатуры.

Русский

2013-08-03

103 KB

11 чел.

Лекция 2. Клавиатура. Манипуляторы-указатели.

Вопросы:

  1.  Общая характеристика клавиатуры.
  2.  Интерфейс клавиатуры и мыши.
  3.  Скан-коды и системная поддержка.
  4.  Манипуляторы-указатели

Литература: [1.] с. 546-562

1.Общая характеристика клавиатуры.

 

 Клавиатура РС представляет собой унифицированное устройство со стандартным разъемом и последовательным интерфейсом связи с системной платой.

Датчики клавиш представляют собой механические контакты (открытые или  герметичные в стеклянных колбах магнитоуправляемые – герконы) или кнопки на основе токопроводящей резины, или емкостные датчики или датчики Холла. Емкостные датчики и датчики Холла не имеют подвижных контактов и являются наиболее надежными для клавиатуры. Независимо от типа применяемых датчиков, все  клавиши объединены в матрицу, рис.2.1.

1      2    3   4   5  6    7   8   9   10  ………

2     А

3

4                                                 С

5                       В

6

7

  Рис. 2.1. Матрица клавиатуры

Место расположение букв А, В, С на данной матрице может быть описано  соответствующим кодом (скан-код):

А – 23d ; В – 55d; С – 410d

Скан-коды передаются в компьютер по факту нажатия и отпускания клавиш:

при нажатии передается ее скан-код, т.е. номер идентифицирующий ее расположение на клавиатуре, после ее отпускания  передаются 2 байта:

1-й байт – содержит признак отпускания – F0;

2-й байт – не модифицированный скан – код.

   1-й байт (F0)   2-й байт

Для клавиш, генерирующих пару кодов (префикс и расширенный код) при отпускании сначала передается префикс (Е0 или Е1- верхний или нижний регистр, например) затем признак отпускания F0, а затем передается расширенный код.

 Е0 (Е1)       F0         расширенный код

Типовая клавиатура имеет внутренний контроллер, выполненный на микросхеме из семейства MCS – 48 фирмы  Intel, осуществляющий контроль клавиш матрицы и управление индикаторами, внутреннюю диагностику и связь с системной платой последовательным интерфейсом по линиям КВ – Data и КВ – Cloсk.

В стандартном исполнении существуют 3 типа клавиатур:

-клавиатура ХТ – 83 клавиши без индикаторов, добавленных на более поздних разработках (Num Lock, Caps Lock);

- клавиатура АТ – 84 клавиши , отличающаяся появлением дополнительной клавиши SysRec и индикаторов Num Lock, Caps Lock, Scroll Lock, а также двунаправленным интерфейсом с системной платой, обеспечивающий программирование параметров клавиатуры и ее диагностику;

- расширенная клавиатура – 101/102 клавиши, используемая для моделей АТ и PS/2 и являющаяся современным стандартом. Другие расширенные клавиатуры могут иметь 104, 105 или 122 клавиши.

Расширенная клавиатура имеет следующие группы клавиш:

- основной клавиатуры;

- цифровые клавиши;

- функциональные клавиши;

- клавиши управления курсором и экраном;

- клавиши управления питанием;

- кнопки быстрого доступа к приложениям.

По электрическому интерфейсу Клавиатуры ХТ и АТ совпадают, а по логическому они не совместимы. Клавиатура PS/2 отличается от АТ только разъемом. В остальном - полное совпадение.  

Современные клавиатуры работают в одном из трех наборов (таблиц) скан-кодов:

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

Подключение клавиатуры к системной плате осуществляется последовательным синхронным интерфейсом, состоящим из двух обязательных сигналов: КВ – Data и КВ – Cloсk. Контроллер интерфейса клавиатуры и его разъем расположены на системной плате. Разъем клавиатуры может быть двух типов:

- обычная 5 контактная розетка DIN, рис. 2.2;

- малогабаритная розетка  mini-DIN, рис 2.3.

        3           1                                                       5

                                                  Ключи        6

          5              4                                    4             3

                2                                                2          1

Рис.2.2.      Рис2.3.

Обозначение клемм на схемах:

Рис2.2.  1 – KB Clock; 2 – KB Data; 3 - КВ – Reset #;

4 – GND (общий – заземление);5 - +5В.

Рис.2.3. 1 - KB Data; 2 – пустой; 3 - GND (общий – заземление);

 4 - +5В; 5 - KB Clock; 6 – Ключ.

Процессор общается с клавиатурой через контроллер интерфейса клавиатуры, используя порт 60h. Прием скан кодов осуществляется чтением этого порта. О необходимости чтения скан-кода контроллер сигнализирует процессору через аппаратное прерывание,  сигнал которого вырабатывается по каждому срабатыванию клавиши. Кроме того, этот же контроллер транслирует команды, посылаемые к клавиатуре.

 С использованием шины USB появились клавиатуры с контроллером 8042. они имеют и встроенный ХАБ для подключения мыши  через USB. При этом со стороны BIOS для такой клавиатуры требуется специальная поддержка.

2.1. Контроллер интерфейса клавиатуры и мыши 8042/8242.

Программируемый микроконтроллер последовательных интерфейсов клавиатуры и мыши расположен в пространстве ввода-вывода CPU по адресам  060 RW и 064 RW через параллельный интерфейс, рис 2.4.

     CPU

                                               060 RW      064 RW

                                             Рег.данных      Рег. состояния     Команды

             и команд

                                                                             контроллер

                                                                             клавиатуры

                    Интерфейс         Интерфейс                     

                                           Мышь                                 

             Клавиатура                                      р1            р2

 Рис. 2.4. Структурная схема взаимосвязи контроллера

    клавиатуры и мыши

Режим работы контроллера (разрешение работы клавиатуры и мыши, прерывания от них, трансляция скан-кодов и др.) задается командным байтом, посылаемым в контроллер по специальной команде и регистра команд. Контроллер имеет 2 внешних порта по которым реализует последовательные интерфейсы связи со всеми устройствами.

Регистр состояния порта 064 R

Биты регистра 064 R

0

1

2

3

4

5

6

7

Полнота  выходного буфера

1 - буфер полный (OBF)

Наполнение входного регистра :

1 –полный

0 –готов к приему

Системный флаг

0 - по вкл питания

1 -  состояние сброса

Признак записи

  1.  команда

0 - данные

Замок клавиатуры

0 – замок вкл

1 - откл

Выходной буфер мыши

Mouse_OBF

Общий перерыв

Ошибка четности при последнем обмене с клавиатурой

2.2. Алгоритм работы контроллера с клавиатурой:

  1.  Скан – коды и системная поддержка.

З.1. Скан – коды

Скан –коды передаются от клавиатуры в компьютер по факткм нажатия и отпускания клавиш.

При нажатии к5лавиши передается ее скан-код, соответствующий номеру расположения клавиши на клавиатуре. Некоторые клавиши передают цепочку кодов, начинающихся с префикса Е0 или Е1, за которыми следуют байты расширенного кода.

 Набор Set#1.  Свойственн первым клавиатурам. При отпускании клавиша клавиатуры передает скан-код с инвертируемым битом 7. При этом префиксы передаются без изменений, а модифицированные расширенные скан-коды передаются в порядке обратном прядку передачи при нажатии. Принятый способ сигнализации отпускания не позволяет использовать скан-коды: 60h, 61h, 5A, 6E и больше 79h и 00.

 Набор Set#2.  Соответствует клавиатурам со 101/102 и более клавиш.

При отпускании передаются два байта:

Признак отпускания F0

Не модифицированный скан-код

 1-й байт     2-й байт

Клавиши, генерирующие пару кодов (префикс и расширенный код) при отпускании передается следующим образом:

Префикс Е0 (Е1)

признак F0

расширенный скан-код

Если клавиша генерирует пару кодов при нажатии, то при отпускании каждая пара кодов дает тройку кодов с обратным порядком их следования.

 Набор Set#3. Существует но практически не используется.

Номер набора клавиатуре и ее контроллеру задается центральным процессором по команде F0. При включении питания у современных клавиатур устанавливается набор 0. Контроллер клавиатуры осуществляет трансляцию принимаемых кодов наборов Set#1 или Set#2 в набор Set#0, коды которого доступны процессору при чтении из порта 60h. Считыванием из порта и интерпретацией скан-кодов занимается программа центрального процессора, выполняемая обработчиком прерываний IRQ.

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

  1.  Системная поддержка.

Системная поддержка клавиатуры осуществляется на уровне BIOS. Коды, принятые от клавиатуры, считываются и обрабатываются обработчиком аппаратного прерывания IRQ1. Результат обработки помещается в клавиатурный буфер, из которого по программному прерыванию Int 16h  этот результат может быть извлечен позже.

Начальное тестирование клавиатуры осуществляется процедурой POST, которая запускает диагностический тест. При обнаружении ошибки выдается сообщение с указанием скан-кода клавиши и для продолжения рекомендуют нажать клавишу F1, чтобы начальная загрузка не останавливалась по ошибке клавиатуры.

Русификация клавиатуры поддерживается на программном уровне с помощью загружаемого драйвера, который замещает обработчик IRQ1 драйвера BIOS, перехватывая вектор прерывания процессора Int 9h  

Прерывания, вызванные приходом кодов нажатия и отпускания клавиш обрабатывает BIOS Int 9h.  

Алгоритм обработки клавиш следующий:

            Нажатие (отпускание) клавиши         Специальные клавиши

           Определение состояния флагов             Модификация флагов

                      клавиатуры

             Результат обработки в ОЗУ

                 

               Клавиатурный буфер

                 (Кольцо на 16 слов)

Буфер полный

Звуковой сигнал

  Записи слова нет

Интерфейс прикладного уровня представляет BIOS Int 16h, основное назначение которого – извлечение слов из клавиатурного буфера

Функция задается в регистре АН при вызове.

Результата помещается в регистр АХ.

4. Манипуляторы-указатели

Устройство ввода мышь передает информацию в систему о своем перемещении по плоскости нажатии кнопок (от двух до трех и более). Обычная конструкция имеет в своем составе шарик, передающих вращение на два координатных диска с фотоэлектрическими датчиками. Датчики для каждой координаты имеют две открытые оптопары (светодиод-фотодиод) в оптический канал которых входит вращающийся диск с прорезями.

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

3D – мышь . Кроме двух координат перемещения на плоскости позволяет задавать третью координату с дополнительного колесика, вращаемого пальцем.

Интерфейсы мыши. Различают несколько видов:

 Bus Mouse – использование специализированной платы адаптера.

 Serial Mouse – использует интерфейс RS 232C  и двух полярный сигнал с уровнями +3В и – 3В.

 PS/2- Mouse – использует однополярный сигнал с напряжением +5В

 USB Mouse – обычный последовательный интерфейс

Совместимости этих интерфейсов нет и поэтому для различного способа подключения мыши имеются специальные переходники, позволяющие выбирать ее способ подключения. Причем эти переходники предназначены только для универсальных мышей, имеющих встроенный контроллер, который распознает к какому интерфейсу подключена мышь.

4.1.  Bus Mouse это один из первых вариантов мыши. Эта мышь содержит только датчики и кнопки, а обработка их сигналов производится на специализированной плате адаптера. Для этой мыши используется 9 проводной кабель со специальным разъемом, внешне погожим на разъем мыши PS/2 Главный недостаток заключается в том, что адаптер занимает разъем системной шины, адреса ввода-вывода и прерывания.

  1.  Serial Mouse - мышь с последовательным интерфейсом, подключаемая через 9- или 25 контактный разъем СОМ-порта. Имеет встроенный контроллер, обрабатывающий сигналы координатных датчиков и кнопок. Каждое перемещении и нажатие кнопок кодируется двоичным сигналом по интерфейсу RS-232. Недостаток Serial Mouse является тол, что она занимает СОМ-порт и требует полного использования его штатной линии прерывания (IRQ4 для СОМ-1 и IRQ3 для СОМ-2).

Две основные разновидности мышей: MS Mouse и PC Mouse требуют различных драйверов и поэтому многие мыши имеют переключатель MS/PC.

MS Mouseхарактеризуется 7 битными данными в трехбайтном пакете. Положительное перемещение по координате Х вправо, а по координате У – вниз. Для трехкнопочной мыши добавляется четвертый байт.

PC Mouseхарактеризуется 8 битовыми данными при пяти байтовом пакете. Положительное перемещение по координате Х вправо, а по координате У – вверх.

  1.  PS/2- Mouse эта мышь появилась с компьютерами PS/2. Ее интерфейс и разъем аналогичен клавиатурному и реализуется тем же контроллером, что и клавиатуры. Отличие работы интерфейса мыши от клавиатуры заключается в том, что специальные команды каждого байта записываются в порт 64h, но перед записью каждого байта записывается код  D4 h. 

Мышь работает в трех режимах:

- токовом – посылает данные по любому изменению состояния;

- опросе – передает данные только по запросу процессора;

- диагностики – возврат эхом данных, посылаемым контроллером.

Мышь с этим интерфейсом имеет поддержку BIOS, обеспечивающую ее настройку. Драйвер мыши обеспечивает прерывания по вектору 74h  от запроса IRQ12.

PAGE  4


    
064 RW

Регистр команд

Команда

контроллеру

прием кода

Готов регистр?

Контроллер обработка команды

QBF=?

Да

Нет

Бит1=0

Бит1=1

О

Готов к приему

1

Не готов регистр полон

Запрос прерывания клавиатуры


CPU

считывание

данных клавиатуры Обработчиком аппаратного прерывания IRQ1

   060 RW

Клавиатурный буфер (регистр дванных)

IRQ=1

IRQ=12

Запрос прерываний для мыши


 

А также другие работы, которые могут Вас заинтересовать

4491. Программная модель микропроцессора 47.29 KB
  Программная модель микропроцессора На современном компьютерном рынке наблюдается большое разнообразие различных типов компьютеров. Поэтому возможно предположить возникновение у потребителя вопроса — как оценить возможности конкретного типа (или...
4492. Структура программы на ассемблере 80.09 KB
  Структура программы на ассемблере Программа на ассемблере представляет собой совокупность блоков памяти, называемых сегментами памяти. Программа может состоять из одного или нескольких таких блоков-сегментов. Каждый сегмент содержит совокупность пре...
4493. Описание системы команд микропроцессоров Intel 231.11 KB
  Описание системы команд микропроцессоров Intel Материал, приведенный в данном разделе справочной системы, на котором мы рассматривали формат машинной команды микропроцессора и систему его команд в целом. Выберите тему: Знакомство ...
4494. Типы данных при программировании на языке ассемблера 73.96 KB
  Типы данных при программировании на языке ассемблера При программировании на языке ассемблера используются данные следующих типов: Непосредственные данные, представляющие собой числовые или символьные значения, являющиеся частью команды...
4495. Массивы на языке ассемблера 35.65 KB
  Массивы на языке ассемблера Дадим формальное определение: массив - структурированный тип данных, состоящий из некоторого числа элементов одного типа. Для того чтобы разобраться в возможностях и особенностях обработки массивов в программах на ассембл...
4496. Двухмерные массивы. Типовые операции с массивами на языке ассемблер 33.53 KB
  Двухмерные массивы. Типовые операции с массивами на языке ассемблер С представлением одномерных массивов в программе на ассемблере и организацией их обработки все достаточно просто. А как быть если программа должна обрабатывать двухмерный массив? Вс...
4497. Структуры в языке ассемблер 33.87 KB
  Структуры в языке ассемблер Рассмотренные нами выше массивы представляют собой совокупность однотипных элементов. Но часто в приложениях возникает необходимость рассматривать некоторую совокупность данных разного типа как некоторый единый тип. Это о...
4498. Объединения в языке ассемблер 24.14 KB
  Объединения в языке ассемблер Представим ситуацию, когда мы используем некоторую область памяти для размещения некоторого объекта программы (переменной, массива или структуры). Вдруг после некоторого этапа работы у нас отпала надобность в использова...
4499. Записи в языке ассемблер 40.08 KB
  Записи в языке ассемблер Наша хозяйка-программист становится все более экономной. Она уже хочет работать с продуктами на молекулярном уровне, без любых отходов и напрасных трат. Подумаем, зачем тратить под некоторый программный индикатор со значение...