Компью́терная клавиату́ра — устройство, позволяющее пользователю вводить информацию в компьютер (устройство ввода). Представляет собой набор клавиш (кнопок), расположенных в определённом порядке.
Видеотерминал ADM-3A — таким пользовался Билл Джой, когда разрабатывал текстовый редактор vi
Первые компьютеры клавиатуры не имели: данные вводились в компьютер либо установкой механических переключателей и проводов, либо с помощью перфокарт (пример — ENIAC). По мере повышения производительности электронно-вычислительных машин (ЭВМ), а особенно с появлением режима разделения времени появилась необходимость вводить команды, не прерывая работу машины. Одним из первых экспериментов по непосредственному взаимодействию с компьютером с помощью клавиатуры был проведён в 1956 году в Массачусетском технологическом институте. Дуглас Росс предложил подключить к компьютеру «Whirlwind» электрическую пишущую машинку «Flexowriter[en]», эксперимент сочли удачным[1].
Первоначально для ввода текстовых данных в компьютер использовались электромеханические телетайпы, позже их сменили специализированные видеотерминалы. В таком терминале клавиатура являлась его частью, даже если выполнялась в отдельном корпусе. Никаких стандартов как по электрической части, так и по составу и расположению кнопок не было. Такие терминалы могли иметь отдельные клавиши для управления курсором, прокрутки текста на экране или подачи управляющих сигналов.
С появлением мини- и микрокомпьютеров клавиатура могла подключаться непосредственно к компьютеру. Однако эти клавиатуры также не были законченными универсальными устройствами: они подключались, напрямую или через согласующие устройства, к портам компьютера, на нажатие клавиш либо генерировалось прерывание, либо загруженная в компьютер программа периодически производила опрос матрицы клавиш. Компьютеры разных архитектур использовали уникальные, несовместимые друг с другом клавиатуры. У некоторых компьютеров, преимущественно одноплатных, таких как ZX80, клавиатура располагалась на корпусе, у других — соединялась многожильным кабелем с системным блоком. Некоторые клавиатуры содержали минимум клавиш — алфавитно-цифровые, Enter и несколько управляющих. Другие, как space-cadet для лисп-машинMIT, содержали большое количество управляющих клавиш, специфичных для данной архитектуры. Также стали появляться функциональные клавиши, не имевшие предопределённого назначения. Проводились эксперименты по использованию аккордных клавиатур.
83-клавишная «XT»-клавиатура
Единый стандарт клавиатуры, как и многие другие стандарты компьютерного оборудования, связан с компьютером IBM PC. Первая версия клавиатуры для IBM PC, так называемая «XT-клавиатура» заметно отличалась от последующих как по раскладке, так и по протоколу обмена с компьютером: на ней было 83 клавиши (из них 10 — функциональных), отсутствовали индикаторы режимов ввода. В 1984 году вместе с компьютером IBM PC/AT появился и новый, получивший в дальнейшем широкое распространение стандарт клавиатуры — протокол обмена стал двусторонним, что позволило разместить над цифровым блоком три светодиодных индикатора режима ввода. Однако раскладка изменилась незначительно: была добавлена клавиша SysRq, цифровой блок был отделён от основного буквенно-цифрового, некоторые клавиши были перенесены на другие места. Несмотря на внешнее сходство и использование одинакового разъёма DIN, новая клавиатура была несовместима с прежними моделями компьютеров IBM PC и IBM PC/XT — для подключения к ним у некоторых клавиатур был специальный переключатель. Следующее поколение клавиатур началось с представления в 1986 году клавиатуры «Model M», имевшей в зависимости от локализации от 101 (в американской раскладке) до 106 (в японской) клавиш, и ставшей стандартом. Дальнейшее развитие клавиатур шло от модели «Model M»: порт подключения был заменён на PS/2 и USB, были добавлены клавиши Windows и меню, на некоторых — мультимедийные клавиши. В ноутбуках и на компактных клавиатурах расположение клавиш может отличаться; некоторые клавиши могут быть доступны с помощью модификатора Fn, но большинство компьютеров использует клавиатуру, произошедшую от компьютеров IBM PC, за исключением клавиатур от Apple и клавиатур от специализированных рабочих станций, наподобие терминалов Блумберга.
В большинстве компьютерных клавиатур контакты клавиш соединены в матрицу. Контроллер клавиатуры последовательно подаёт потенциал на ряды клавиш и по появлению сигнала на выходном шлейфе распознаёт, какая клавиша нажата. Нажатие трёх клавиш, одна из которых находится на пересечении дорожек, ведущих к двум другим клавишам, приводит к регистрации фантомного нажатия четвёртой. В недорогих клавиатурах производится оптимизация разводки с целью не допустить подобных случаев для наиболее распространённых сочетаний, а в неоднозначных случаях нажатие третьей клавиши игнорируется. Более дорогие клавиатуры могут иметь на каждой клавише диод[2].
Наиболее распространённый тип клавиатур — мембранные с резиновыми толкателями, служащими одновременно и для создания усилия нажатия на мембрану и возврата после отпускания клавиши. Более дорогие модели могут использовать подпружиненные металлические контакты, герконы или ёмкостные сенсоры.
Непосредственное подключение матрицы к процессору — применялось в микрокомпьютерах 1970-80-х. Опросом матрицы занимался процессор, периодически прерывая работу текущей программы. Достоинства такого подхода — дешевизна и максимальная гибкость, возможно например опрашивать не всю матрицу. Недостатки: трата процессорного времени на опрос клавиатуры; необходимость подключения клавиатуры многопроводным шлейфом; несовместимость клавиатур разных моделей компьютеров. Примеры компьютеров с такой клавиатурой: ZX-Spectrum, Commodore PET.
Передача ASCII-символа — применялась в терминалах и некоторых компьютерах 1970-80-х. Процессор освобождён от опроса клавиатуры, этим занимается специальный контроллер. Этот контроллер возвращает ASCII-код символа исходя из нажатой клавиши и положения клавиш-модификаторов. Такой способ требует меньше нагрузки на процессор, чем предыдущий, но нет возможности считывать состояние клавиш-модификаторов, определить, нажата ли та или иная клавиша в текущий момент, а также ограничивает использование сочетаний клавиш. Кроме того, раскладка такой клавиатуры задана жёстко, для переключения раскладки требуется внесение изменений в схему контроллера. Примеры компьютеров с такой клавиатурой: Apple II, БК-0010.
Передача скан-кода — наиболее распространённый способ с появлением IBM PC. В этом случае опросом также занимается контроллер клавиатуры, например для PC (PS/2)-клавиатур аналогичный Intel 8042[3]. Однако каждой клавише, в том числе клавишам-модификаторам, присваивается собственный скан-код, не соотносящийся напрямую с кодом символа ASCII. При нажатии или отпускании клавиши передаётся этот скан-код и признак нажатия/отпускания. Сопоставление скан-кода с кодом символа производится программным обеспечением самого компьютера. Данный подход совмещает достоинства двух предыдущих.
Некоторое количество (в PC/AT-клавиатуре — двенадцать) функциональных клавиш расположено в верхнем ряду клавиатуры. Ниже располагается блок алфавитно-цифровых клавиш. Правее этого блока находятся клавиши управления курсором, а у самого правого края клавиатуры — цифровая панель, которая может выполняться съёмной.
Буквенно-цифровые клавиши также именуются алфавитно-цифровыми клавишами, клавишами данных, клавишами для ввода данных. Основу этого блока составляет набор символов, аналогичный набору символов пишущей машинки. Обычно к одной клавише данных привязано несколько букв, цифр, знаков препинания и символов. Какая будет введена буква, определяется заданным регистром клавиатуры — режимом работы клавиатуры, установленным клавишами управления или клавишами переключения регистра.[4][5]
К алфавитно-цифровому блоку относятся клавиши для ввода букв, цифр, знаков пунктуации и символов основных арифметических операций, а также специальных символов. В стандартной клавиатуре PC/AT этот блок включает в себя 47 клавиш. Для некоторых языков, где число букв в алфавите больше 26, производители клавиатур выпускают клавиатуры с дополнительными клавишами в алфавитно-цифровом блоке — например, на клавиатурах для украинского языка (33 буквы) их уже 48 (см.: Украинская раскладка клавиатуры). Для русского алфавита с его 33 буквами специальные клавиатуры не производятся — все буквы русского алфавита размещены на клавишах стандартной клавиатуры PC/AT.
Клавиши алфавитно-цифрового блока делятся по рядам и по зонам.[источник не указан 3910 дней] Нижний ряд блока находится над клавишей «пробел» и клавишами-модификаторами Ctrl, Alt, AltGr. Он считается первым. Выше — второй, в методе слепой десятипальцевой печатитакже называемый «домашним» рядом[источник не указан 3910 дней]. Ещё выше — третий. Самый верхний ряд клавиш блока — четвёртый — в латинской раскладке QWERTY не содержит клавиш для ввода букв, но включает все клавиши ввода цифр. По этой причине его часто называют цифровым рядом[источник не указан 3910 дней].
Для большего удобства набора текста поверхность клавиш может располагаться не в одной плоскости, а по дуге. В некоторых клавиатурах, например «IBM Model M», или некоторых клавиатурах с раздельными зонами левой и правой руки, используется изогнутая плата, но гораздо чаще используются клавиши разной высоты. Наиболее распространённая разновидность профиля клавиш известна также, как OEM-профиль. Недостаток такого подхода в том, что клавиши из разных рядов невзаимозаменяемы. Кроме того, обе технологии невозможно применять в ноутбуках и низкопрофильных ножничных клавиатурах.
Зоной называется совокупность клавиш, закреплённых в методе слепой десятипальцевой печати за пальцами каждой из рук. Нумерация зон идёт слева направо.[источник не указан 3910 дней]
Результат действия алфавитно-цифровых клавиш зависит от регистра (нижний или верхний) и уровня (первый или второй), в котором осуществляется нажатие этих клавиш.
Клавиши управления (англ.control keys) предназначены для выполнения определённых действий, могут использоваться отдельно или в сочетании с другими клавишами[4], включают следующие клавиши: Esc, Tab ↹, Ctrl, Alt, ← Backspace, ↵ Enter, PrtSc, Ins, Num Lock, Del, Scroll Lock, Break[6], ⊞ Win[4].
Нажатие одновременно нескольких клавиш, при котором результат (вводимый символ или выполняемая команда) отличается от суммарного значения нажатых клавиш, называется сочетанием клавиш или комбинацией клавиш. Как правило, сочетания клавиш используют клавиши-модификаторы — клавиши, предназначенные для использования именно в составе сочетаний: ⇧ Shift, Ctrl, Alt, AltGr (правая Alt) и ⊞ Win. Включение верхнего регистра клавиш (при отключённом ⇪ Caps Lock) осуществляется нажатием и удержанием клавиши ⇧ Shift. Нажатие и удержание клавиши AltGr используется для перехода на второй уровень клавиатуры.
Клавиши системных команд
К клавишам системных команд относятся следующие клавиши: SysRq, Esc, PrtSc, Pause, Break, ≣ Menu.
В верхней части клавиатуры стандарта PC/AT располагается блок так называемых функциональных клавиш — клавиши от F1 до F12. На клавиатурах компьютеров PC/XT было 10 функциональных клавиш (от F1 до F10), расположенных в два столбца в левой части клавиатуры. Назначение (функции) функциональных клавиш определяется в зависимости от системного или прикладногоПО: после включения компьютера — программой конфигурации материнской платы (Setup BIOS), а в последующем — запущенной операционной системой.
Назначение (функции) отдельных функциональных клавиш, комбинации функциональных клавиш с клавишами ⇧ Shift, Ctrl и Alt и «обычными» клавишами составляют часть интерфейса пользователя и, как правило, являются постоянными для отдельно взятого вида ПО. Существует ряд универсальных назначений, применяемых наиболее широко: зачастую при нажатии клавиши F1 на экран выводится встроенный справочник по программе (часто уже открытый на странице, соответствующей режиму программы, в котором она находится), а нажатие клавиши ESC приводит к прерыванию текущей операции.
Цифровой блок клавиатуры содержит 17 клавиш, аналогичных применяемым в калькуляторах, кассовых аппаратах и тому подобном. Основное назначение клавиш блока цифровой клавиатуры — дублирование функций клавиш алфавитно-цифрового блока в части ввода цифр и символов основных арифметических операций. Считается, что клавиши цифрового блока более удобны для ввода цифр и знаков арифметических операций, нежели клавиши алфавитно-цифрового блока. При отключённом Num Lock клавиши цифрового блока дублируют клавиши управления курсором.
Мультимедийная компьютерная клавиатура, оснащённая клавишами для изменения громкости звука и для выполнения других действий
Многие современные компьютерные клавиатуры помимо стандартного набора из 104 клавиш снабжаются дополнительными клавишами (как правило, другого размера и формы), которые предназначены для управления некоторыми основными функциями компьютера:
для управления громкостью звука: громче, тише, включить или выключить звук;
для управления лотком в приводе для компакт-дисков: извлечь диск, принять диск;
для управления проигрывателем: воспроизводить, поставить на паузу, остановить воспроизведение, промотать запись вперёд или назад, перейти к следующей или предыдущей записи;
для управления сетевыми возможностями компьютера: открыть почтовую программу, открыть браузер, показать домашнюю страницу, двигаться вперёд или назад по истории посещённых страниц, открыть поисковую систему;
для запуска часто используемых программ: открыть калькулятор, открыть файловый менеджер;
для управления состоянием оконоперационной системы: свернуть окно, закрыть окно, перейти к следующему или к предыдущему окну;
для управления состоянием компьютера: перевести в ждущий режим, перевести в спящий режим, пробудить компьютер, выключить компьютер.
Так как многие из этих функций (управление звуком и воспроизведением звукозаписей, управление компакт-дисками и т. п.) относятся к сфере мультимедиа, то такие клавиатуры часто называются «мультимедийными клавиатурами».
Фирменные драйверы таких клавиатур, как правило, не предоставляют пользователям возможности управлять назначением большинства дополнительных клавиш (кроме, возможно, специальной группы «пользовательских клавиш»), а также не дают возможности определять дополнительные сочетания, состоящие из нескольких клавиш (с участием мультимедийных) и назначать им новые специальные функции. Однако эта проблема может быть решена при помощи независимых универсальных драйверов от сторонних разработчиков.
Существуют клавиатуры, для которых можно переназначить любую клавишу произвольным образом: не только поставить в соответствие любой клавише тот или иной скан-код, но и назначить макросы[7], и даже динамически изменять обозначение на клавише, для чего в такие клавиши встраиваются миниатюрные дисплеи — OLED или жидкокристаллические[8]. Большинство подобных клавиатур позиционируются как игровые.
С целью экономии места на рабочем столе или для того, чтобы уместить клавиатуру на устройстве, на котором полноразмерная клавиатура не может поместиться, производители клавиатур могут располагать клавиши на клавиатуре в не стандартном порядке или удалять клавиши с клавиатуры. Компактные программируемые клавиатуры популярны, например, среди геймеров и системных администраторов, так как такую клавиатуру легче носить с собой. Наиболее популярные форматы компактных клавиатур:
80 % или TKL (от англ.tenkeyless — буквально «без десяти клавиш») — клавиатура стандартной раскладки без цифрового блока. Цифровой блок также может эмулироваться в пределах основной буквенно-цифровой клавиатуры при включении режима NumLock;
75 % — распространённый на ноутбуках формат, при котором клавиши Home, End, PgUp и PgDown могут либо располагаться в один столбец по правому краю клавиатуры, либо эмулироваться через клавишу Fn совместно с курсорными клавишами. Малоиспользуемые клавиши (Scroll Lock, Pause, Insert), как правило, тоже эмулируются;
60 % — формат, при котором клавиатуры состоят исключительно из буквенно-цифрового блока, клавиш-модификаторов, клавиш Esc, ↵ Enter и ← Backspace. Все остальные клавиши (F1-F12, стрелки и другие) эмулируются с помощью клавиши Fn. Наиболее известный представитель — Happy Hacking Keyboard.
Клавиатура «IBM Model M Space Saving» без цифрового блока