Сделай Сам Свою Работу на 5

Клавиатура. Аппаратное и программное обеспечение.





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

Стандартная клавиатура ПЭВМ имеет несколько групп клавиш:

1) алфавитно-цифровые и знаковые клавиши ESC, TAB, ENTER, BackSp;

2) Функциональные клавиши (F1…F10);

3) Служебные клавиши для управления перемещением курсора (стрелки Up, Down, Left, Right, Home, End, PgDn, PgUp и клавиша, обозначенная [] );

4) Служебные клавиши для управления редактированием (Ins, Del)

5) Служебные клавиши для фиксации регистров (CapsLock, ScrollLock, NumLock);

6) Разные вспомогательные клавиши (PrtSc)

 

Можно выделить 3 уровня представления и обработки сигналов, поступающих с клавиатуры – физический, логический и функциональный.

Физический уровень имеет дело с сигналами, которые поступают в системный блок при нажатии и отпускании клавиш. На электронном уровне клавиатура IBM/PC представляет собой небольшой самостоятельный компьютер. Внутри блока клавиатуры размещается микропроцессор, который выполняет задачу слежения за нажатиями и отпусканиями клавиш и передачи их состояния. Микропроцессор выполняет следующие функции:



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

Клавиатура имеет встроенный буфер — промежуточную память малого размера, куда помещаются введённые скан-коды символов. В случае переполнения буфера нажатие клавиши будет сопровождаться звуковым сигналом — это означает, что символ не введён (отвергнут). Работу клавиатуры поддерживают специальные программы, "зашитые" в BIOS, а также драйвер клавиатуры, который обеспечивает возможность ввода русских букв (кириллица и латиница), управление скоростью работы клавиатуры и др. Часть задачи обслуживания клавиатуры со стороны системы BIOS заключается в отслеживании, нажата ли в текущий момент триггерная клавиша (клавиша управления регистрами, например, CAPS LOCK).



 

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

Фирма IBM выпускает емкостные клавиатуры. Нижняя часть такой клавиатуры является одной большой обкладкой конденсатора. Клавиша нажимает на пружину, которая в свою очередь нажимает на толкатель. Толкатель передает усилие на емкостную ячейку. Емкостная ячейка посылает сигнал, который интерпретируется микропроцессом, установленным в клавиатуре. Он пересылает идентификатор клавиши, называемый скан-кодом в ПК, который определяет, какая клавиша была нажата.



 

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

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

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

 

В основе кодирования поступающих от клавиатуры сигналов лежит обычная нумерация клавиш по порядку от 1 до N, где N – общее число клавиш на клавиатуре (102-104).

 

Клавиатура представляет собой совокупность датчиков, воспринимающих давление на клавиши и замыкающих определенную электрическую цепь, со стандартным разъемом (PS/2, USB) и интерфейсом для подключения к системной плате компьютера. Длительное время выпускались клавиатуры с механическими датчиками. Современные клавиатуры – мембранного типа. Переключатель представляет собой набор мембран: активная – верхняя, пассивная – нижняя, разделяющая. Внутри корпуса клавиатуры помимо датчиков расположены электронные платы дешифрации сигнала. Обмен данными между клавиатурой и системной платой осуществляется 11-битовыми блоками (8 разрядов плюс служебная информация) по 2-проводному кабелю (сигнал и земля). Клавиатура содержит внутренний контроллер, позволяющий производить самотестирование в момент подключения (одновременная индикация светодиодов «NumLock», «CapsLock», «ScrollLock»), управляющий индикаторами и обеспечивающий связь с системной платой ПК посредством последовательного интерфейса. Принцип работы. Принцип работы клавиатуры заключается в сканировании переключателей клавиш. Замыканию и размыканию любого из переключателей соответствует уникальный цифровой код (scan code) размером 1 байт. На системной плате прием и обработку сигналов от клавиатуры выполняет специальная микросхема – контроллер клавиатуры.Внутренний микропроцессор клавиатуры обрабатывает специальный сигнал, поступающий к нему после нажатия любой клавиши и, преобразуя его, последовательно передает центральному процессору сканируемый код. Каждое нажатие клавиши формирует два кода: один по нажатию, другой – по освобождению клавиши.

На логическом уровне, реализуемом базовой системой ввода - вывода, происходит трансляция поступающего с клавиатуры скан-кода в 2-байтовый код. Скан-коды передаются от клавиатуры в компьютер по фактам нажатия и отпускания клавиш. При нажатии клавиши передается ее скан-код - номер, идентифицирующий ее расположение на клавиатуре. При отпускании клавиши клавиатура передает 2 байта: младший из двух байтов содержит ASCII-код, соответствующий изображенному на клавише знаку. Это байт называют главным. Старший байт – вспомогательный - содержит исходный скан-код нажатой клавиши. Генерируемый код определяется тем, к какой группе относится клавиша и нажата ли одна клавиша или комбинация из нескольких. При нажатии функциональной или служебной клавиши или одновременном нажатии некоторых клавиш главный байт содержит не ASCII-код, а 0, что позволяет проверить важный факт, что нажатая клавиша не относится к алфавитно-цифровой группе. Вспомогательный байт при этом содержит уникальный номер, совпадающий со скан-кодом нажатой клавиши или он соответствует определенной комбинации одновременно нажатых клавиш. Сочетание главного и вспомогательного кода, когда первый из них равен 0, называют расширенным ASCII-кодом. Когда микропроцессор клавиатуры посылает сигнал компьютеру, он лишь сообщает расположение нажатой клавиши. Чтобы обработать сигнал, компьютер должен перевести его код в смысловое значение, соответствующее данной клавише. В специальном электронном списке - таблице перекодировки - каждому коду, описывающему расположение клавиши, поставлено в соответствие двоичное число, служащее кодом определенного символа, например буквы или цифры. В дальнейшем в процессе обработки данных используется именно это двоичное число. Таблица перекодировки может храниться в постоянной памяти компьютера. Обычно она определяет значения клавиш согласно стандартным функциям большинства компьютеров: например, вводу числовых данных или обработке текстов с использованием определенного алфавита. Блок клавиатуры не связывает с клавишами никаких конкретных значений. Вместо этого, блок клавиатуры идентифицирует по ее номеру или коду сканирования. При нажатии клавиши блок клавиатуры передает ее код сканирования центральному процессору. Когда клавиша отпускается, клавиатура снова передает ее код, но увеличенный на 128 (или шестнадцатиричное значение 80). Таким образом, имеются различные коды для нажатия и освобождения клавиш. Клавиатура IBM/PC передает сигналы не только о нажатии, но и об освобождении клавиши.

При нажатии любой клавиши в системный блок посылается код, соответствующий её порядковому номеру, который называется также скан-кодом. При отпускании клавиши также генерируется её номер, увеличенный на 128 (дополнительный скан-код).

На функциональном уровне отдельным клавишам программным путем сопоставляются определенные функции, которые реализуются при нажатии этих клавиш. Клавишам могут приписываться последовательности символов или команды смены режимов, смены дисплейных окон и т.д. Для работы с клавиатурой используются порты и системы прерывания. Когда выполняется какое-либо действие с клавишей (нажатие или освобождение), процессор клавиатуры обнаруживает его и запоминает в своем буфере. Затем, процессор клавиатуры формирует аппаратное прерывание. В ответ на прерывание служебная процедура системы BIOS считывает код сканирования клавиши из порта клавиатуры и затем пересылает в порт клавиатуры команду очистить буфер процессора клавиатуры. Если системный блок не реагирует на прерывания клавиатуры, то коды сканирования накапливаются в буфере процессора клавиатуры, хотя при нормальной работе этого не должно происходить. Специальный код сканирования 255, шестнадцатиричное значение FF, используется блоком клавиатуры, для сообщения, что его буфер заполнен. Поскольку информация о нажатии клавиши поступает в системный блок от клавиатуры через порт, любая программа, имеющая доступ к порту, может непосредственно общаться с клавиатурой. На практике, однако, это неприменимо, так как блок клавиатуры вырабатывает еще и прерывания, которые обрабатываются системой BIOS в ПЗУ.

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

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

Когда процедура обслуживания клавиатуры обрабатывает коды, принимаемые от клавиатуры, она постоянно проверяет появление одной из четырех особых комбинаций, которые обслуживаются специальным образом. Фактически, эти четыре комбинации рассматриваются как команды, по которым должно начинаться выполнение определенных служебных процедур. Эти четыре комбинации: Ctrl-NumLock, PrtSc, Ctrl-Alt-Del и Ctrl-Break. Ctrl-NumLock - эта комбинация используется системой BIOS для управления состоянием захвата, которое программам обнаружить трудно, поскольку в этом состоянии программы не выполняются. В состоянии захвата система BIOS выполняет короткий цикл, ожидая нажатия клавиши, которое выводит систему из этого состояния. В этом состоянии распознаются и обслуживаются все прерывания.Команда распечатки экрана или PrtSc предназначена для вывода содержимого экрана на устройство печати. Комбинация клавиш Ctrl-Alt-Del используется для перезапуска или для перезагрузки системы. Когда встречается такая комбинация, процедура обслуживания клавиатуры передает управление программе проверки системы и запуска работы операционной системы. Эту комбинацию клавиш можно использовать в любой момент времени для перезапуска системы, если произошло какое-либо отклонение от нормального функционирования. В некоторых случаях IBM/PC необходимо бывает выключить, а затем снова включить и уже после этого пытаться ее перезапустить. Комбинация Ctrl-Break предназначена для прерывания текущей операции. В отличие от остальных трех специальных комбинаций она может отрабатываться программно. Процедуры системы BIOS в ПЗУ могут распознавать отличие повторных нажатий клавиши от повторения сигнала удерживаемой в нажатом состоянии клавиши, путем анализа кодов сканирования освобожденной клавиши. Если для одной и той же клавиши получены два кода нажатой клавиши и между ними не было кода освобожденной клавиши, значит клавиша удерживается процедурами системы BIOS для подавления функции повторения тех клавиш, которым она не нужна, таких как, например, клавиша смещения (shift). Блок клавиатуры сообщает, что происходит с клавиатурой: какие клавиши нажимаются, какие освобождаются и, через определенный промежуток времени, какие удерживаются в нажатом состоянии. Система BIOS в ПЗУ интерпретирует получаемую от блока клавиатуры информацию, придавая ей определенный смысл. Блок клавиатуры занимается физической стороной, механизмом функционирования клавиатуры, а программы системы BIOS в системном блоке выполняют все логические операции по интерпретации действий клавиатуры.

Список используемых источников информации:

1) Брябрин «Программное обеспечение персональных ЭВМ»

2) http://www.codenet.ru/progr/asm/norton/10.php

3) http://book.kbsu.ru/theory/chapter2/1_2_13.html

4) http://chernykh.net/content/view/88/143/

5) http://www.did.ru/interes/7.html#%D0%A1%D0%98%D0%A1%D0%A2%D0%95%D0%9C%D0%9D%D0%90%D0%AF

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.