Цифровая клавиатура
- 1 year ago
- 0
- 0
Клавиатура IBM PC — клавиатура , предназначенная для IBM PC-совместимых компьютеров , работающая по IBM PC-совместимому протоколу обмена и имеющая характерный для IBM PC-совместимых компьютеров набор клавиш . Благодаря популярности IBM PC-совместимых компьютеров стала стандартом де-факто для компьютерных клавиатур, пока не была вытеснена стандартом USB HID . К клавиатурам IBM PC относят две принципиально разные по протоколу обмена клавиатуры: 83-клавишную клавиатуру оригинального IBM PC , известную как XT-клавиатура , и клавиатуру IBM PC/AT или PS/2 , которая в свою очередь изначально предлагалась в 84-клавишном варианте с цифровым блоком , но позже была заменена 101-клавишной клавиатурой . В дальнейшем добавлялись новые клавиши, менялся способ подключения, но основной набор клавиш и скан-кодов оставался неизменным. Также именно PC-раскладка стала использоваться в большинстве USB HID-клавиатур.
Когда разрабатывался компьютер IBM PC , было решено не разрабатывать для него новую клавиатуру, а доработать клавиатуру от моноблока IBM System/23 , известного также как IBM 5322 или Datamaster . Ко времени начала разработки IBM PC он должен был поступить в продажу, но выпуск откладывался из-за задержек в разработке интерпретатора Бейсика . В свою очередь раскладка клавиатуры взята от терминала , но конструкция была переработана для облегчения и удешевления.
Выпущенный в 1981 году IBM PC комплектовался 83-клавишной клавиатурой . Физическая раскладка клавиатуры осталась такой же, как и на System/23, однако назначение многих клавиш было изменено . В буквенно-цифровой области разместились все символы ASCII . Расположение знаков препинания было взято от пишущих машин компании IBM, в целом все знаки ASCII расставлены в том же порядке, как и на терминале VT100 фирмы DEC. 10 клавиш левого кластера определены как функциональные . Цифровой блок использовался также для управления курсором , для переключения режима его работы была введена клавиша Num Lock . Клавиша Ctrl располагалась в среднем ряду слева, как ранее в видеотерминалах , а ⇪ Caps Lock — справа от клавиши пробел . Протокол обмена был односторонним, и режим ввода никак не отображался . Некоторые производители (например, ) выпускали клавиатуры, снабжённые индикаторами режима, однако они не могли адекватно отображать режим ввода, если он в процессе работы менялся программно . Схема клавиатуры тоже была изменена: в System/23 использовался параллельный интерфейс, а для PC был разработан последовательный интерфейс, благодаря чему клавиатура была отделена от системного блока и соединялась с ним витым кабелем через разъём 5-DIN . Опросом матрицы и связью с компьютером занимался микроконтроллер intel 8048 или аналогичный.
Клавиатура вышедшего в 1983 году IBM PC/XT была полностью аналогична, за исключением отсутствия отдельного провода для подачи сигнала сброса контроллера клавиатуры — теперь сброс осуществлялся передачей специальной последовательности на шину данных/синхронизации.
Для вышедшего в ноябре 1983 года домашнего компьютера IBM PCjr была разработана собственная клавиатура, более компактная и дешёвая, чем клавиатуры профессиональных серий IBM PC. На ней было только 62 клавиши, функции недостающих клавиш были достпны через сочетание с клавишей Fn . В этой клавиатуре была применена система подавления фантомных нажатий , а также возможность озвучивать нажатие клавиши через системный динамик . С системным блоком клавиатура связывалась по инфракрасному каналу , наподобие телевизионного пульта — для этого в клавиатуру устанавливались четыре батарейки AA , однако в комплекте имелся кабель для подключения к компьютеру напрямую. У клавиатуры отсутствовал буфер нажатых клавиш, из-за чего прерывание обработки нажатий пришлось сделать немаскируемым . Несмотря на меньшее количество клавиш и другой способ подключения, она генерировала те же самые скан-коды, что и обычная PC/XT-клавиатура .
Первая версия клавиатуры IBM PCjr вызвала множество нареканий: островные кнопки были слишком узкими и неудобными при слепой печати, механизм — тугим и ненадёжным, так как использовалась электропроводящая резина , а обозначения, нанесённые на корпус, а не на саму клавишу — плохо читаемыми, особенно когда клавиатура лежала на столе. Вскоре была выпущена версия клавиатуры более традиционного вида, с привычным профилем кнопок, хотя и с тем же самым механизмом, и IBM даже предлагала бесплатную замену старой клавиатуры на новую . Предлагали специальные клавиатуры для PCjr и сторонние производители. Так как сам IBM PCjr провалился на рынке, раскладка клавиатуры PCjr не получила распространения.
Для вышедшего в 1984 году IBM PC/AT была разработана новая версия клавиатуры, незначительно изменившаяся внешне , но с полностью переработанной схемой. Цифровой блок был выделен в отдельную группу. В клавиатуре использовался микроконтроллер (впоследствии — i8242). Протокол обмена стал двусторонним, чтобы отображать состояние режимов ввода (для чего на клавиатуре появились три светодиода), а также изменять некоторые настройки ввода; кроме того, контроллер клавиатуры на материнской плате взял на себя некоторые дополнительные функции, в том числе выход из защищённого режима процессора. Количество скан-кодов увеличилось, и при отпускании клавиши перед скан-кодом передавался префикс F0h. На клавиатуре появилась кнопка SysRq , которая, однако, так и не использовалась согласно изначальной задумке .
В 1985 году была представлена «усовершенствованная клавиатура IBM», известная также как . С 1985 года этой клавиатурой комплектовался терминал IBM 3161, а с 1986 года — IBM PC . В новой раскладке были учтены многие пожелания клиентов, в частности — длинный левый ⇧ Shift (только для американской раскладки). Общая компоновка, в частности, курсорные клавиши в виде «перевёрнутой Т», была выбрана с оглядкой на клавиатуру терминалов VT220 фирмы DEC . Количество функциональных клавиш было увеличено до 12, они были перенесены в верхний ряд и разбиты на блоки по 4 клавиши. Новая клавиатура имела отдельный блок клавиш курсора и клавиши управления страничным выводом , но, несмотря на это, клавиша и светодиод Num Lock сохранились. Скан-коды новых клавиш соответствовали скан-кодам клавиш на цифровом блоке с аналогичным (при выключенном NumLock) назначением с добавлением префикса E0. Программы, опрашивавшие клавиатуру через BIOS, получали при нажатии клавиш курсорной группы коды, соответствующие клавишам цифрового блока с нажатым Shift, что позволяло полноценно использовать новые клавиши в старом ПО, однако это не касалось программ, опрашивавших клавиатуру напрямую . Клавиша ⇪ Caps Lock была перенесена в средний ряд, как в механических печатных машинках, а клавиша Ctrl — в нижний и была продублирована, так же, как и клавиша Alt . SysRq как отдельная клавиша с клавиатуры была убрана, но её скан-код генерировался при нажатии сочетаний клавиш ⇧ Shift + Print Screen или Ctrl + Print Screen . Именно такая раскладка окончательно стала стандартом, поддерживаемым большинством производителей клавиатур .
В 1987 году для компьютера IBM PS/2 стал использоваться разъём MiniDIN-6 , который в контексте использования для клавиатур и мышей также вскоре стали называть PS/2 . В дальнейшем этот разъём стал основным для PC-клавиатур, вытеснив 5-DIN . Протокол при этом не изменился, подключение PS/2-клавиатуры к компьютеру стандарта AT и наоборот доступно через пассивный переходник . По новой спецификации клавиатура должна была поддерживать, кроме стандартного, альтернативный набор скан-кодов set3 , однако этот набор так и не получил распространения: в частности, была попытка использовать этот набор в ранних версиях Windows NT, но из-за неполной поддержки этого набора производителями клавиатур от этой идеи пришлось отказаться . Контроллер клавиатуры на материнской плате обзавёлся дополнительными командами для поддержки новых возможностей протокола, а также поддержкой мыши . Позже разъём клавиатуры стали окрашивать в сиреневый цвет, чтобы отличить его от разъёма мыши (зелёный).
В 1994 году компания Microsoft выпустила клавиатуру , на которой имелись три дополнительные кнопки: две клавиши Windows , служащие для вызова меню «Пуск» , и клавиша контекстного меню . В дальнейшем эти клавиши стали устанавливаться на большинство PC-совместимых клавиатур.
Основная 101(104)-клавишная раскладка получила неофициальное название ANSI . Кроме неё существовало ещё несколько региональных раскладок, различающихся в основном клавишами буквенно-цифровой группы:
Кроме того, существуют версии с увеличенной клавишей Enter , известной также как Bigass-Enter, берущая начало от 84-клавишной клавиатуры IBM PC/AT. В этих раскладках клавиша обратного слеша располагается в верхнем ряду, в связи с чем клавиша Backspace укорочена — по сути это раскладка KS без дополнительных клавиш в ряду пробела.
С целью экономии места на рабочем столе или чтобы уместить клавиатуру на устройстве, например ноутбуке, на котором полноразмерная клавиатура не может поместиться, производители клавиатур могут располагать клавиши на клавиатуре в нестандартном порядке или удалять клавиши с клавиатуры . Компактные программируемые клавиатуры популярны, например, среди геймеров и системных администраторов , так как такую клавиатуру легче носить с собой. В 1987 году сокращённую версию клавиатуры для PC представила сама компания IBM — это была клавиатура без цифрового блока (TKL), известная также как IBM Space Saving Keyboard. Эта клавиатура продавалась по той же цене, что и полноразмерная, и распространения ни сама SSK, ни такой формат в целом не получали вплоть до « механического ренессанса » 2010-х годов.
Наиболее популярные форматы компактных клавиатур :
Кроме того, производители ноутбуков , если позволяет место, часто стремятся сохранить цифровой блок либо в сокращённом виде (клавиши + , - и ↵ Enter размещаются над цифровым блоком), либо с клавишами уменьшенного размера, сохраняя при этом блок курсорных клавиш. Существуют также и клавиатуры с расширенными функциями: кроме мультимедиа-клавиш, они могут оснащаться клавишами для эмуляции стандартных сочетаний клавиш, программируемыми макроклавишами, на которые можно назначить эмуляцию последовательностей нажатия либо даже целую программу с циклами и условными переходами, а также дополнительными элементами управления: , регулировки громкости, а также встроенными трекболами , тачпадами и экранами. В отличие от ADB , а также более позднего USB HID , подключение PC-клавиатуры и мыши в один разъём не предусмотрено, поэтому такие клавиатуры поставлялись с двумя раздельными разъёмами Mini-DIN для клавиатуры и мыши.
С развитием технологий мультимедиа и бумом доткомов в конце 90-х производители клавиатур в качестве конкурентного преимущества начали добавлять на клавиатуры дополнительные клавиши, призванные облегчить работу с мультимедиа и вебом. В дальнейшем сложился перечень стандартных клавиш для работы с мультимедиа и браузером :
В микрокомпьютерах конца 1970-х — начала 1980-х годов, в частности «троице 77-го» ( Apple II , Commodore PET , TRS-80 ) использовались два подхода: непосредственный опрос клавиатуры процессором (в Commodore PET и TRS-80) или клавиатура стандарта X4.14-1971, формирующая готовые ASCII -коды вводимых символов ( Apple II ). Первый был самым простым с точки зрения технической реализации, но создавал постоянную нагрузку на процессор и требовал соединения клавиатуры многожильным шлейфом, отчего такие клавиатуры чаще всего совмещали с системным блоком. Второй требовал отдельного контроллера клавиатуры и при этом жёстко привязывал клавиши к символам ASCII, не давал возможности получить состояние клавиш-модификаторов ( ⇧ Shift и Ctrl ) отдельно от прочих нажатых клавиш и ограничивал возможность использования сочетаний клавиш .
В IBM PC был выбран другой подход: опросом клавиатуры занимался контроллер, расположенный в её корпусе, но он передавал компьютеру не символ ASCII, а скан-код , причём различный при нажатии и отпускании клавиши. При длительном удержании клавиши код нажатия передаётся повторно через определённый промежуток времени . В компьютер скан-код передавался в виде последовательного кода, а на материнской плате устанавливался аналогичный контроллер, который при получении сигнала от клавиатуры генерировал прерывание INT 09h и передавал полученный скан-код в порт 60h . Впоследствии его функции перешли в Super I/O или LPC -чип, либо в южный мост чипсета . Для случаев, когда процессор не успевает обработать нажатия клавиш, предусмотрен буфер клавиатуры .
С точки зрения схемы контроллера все клавиши клавиатуры равнозначны, включая клавиши-модификаторы и клавиши-переключатели ; каждая имеет свой скан-код, причём дублирующиеся клавиши, например левый и правый ⇧ Shift — разный . Преобразованием скан-кодов в коды символов и управлением вводом с клавиатуры занималась уже BIOS , операционная система или даже прикладное ПО . Такой подход позволил в назначать на любую клавишу любое действие, которое требуется в программе, а также не привязываться к определённой локали .
В клавиатуре первых IBM PC и PC/XT протокол обмена был односторонним, режим ввода никак не отображался, а какие-либо схемы для отображения режима, встроенные в клавиатуру, не могли его адекватно отображать . В IBM PC/AT протокол обмена компьютера с клавиатурой значительно изменился: он стал двусторонним, позволяя вывести три индикатора режима (Caps Lock, Num Lock и Scroll Lock), а также устанавливать период автоповтора и изменять набор скан-кодов. Доступ к этим функциям на PC-совместимых компьютерах также осуществлялся через порт 60h, который теперь работал и на запись . Протоколы клавиатур PC/XT и PC/AT несовместимы, IBM PC/AT и последующие PC-совместимые компьютеры не распознавали клавиатуры от PC/XT. Некоторые производители выпускали клавиатуры на два стандарта, снабжённые переключателем .
Тип | Разъём | Распайка | Протокол | Передача команд контроллеру | Набор скан-кодов |
---|---|---|---|---|---|
PC (Type 1) |
5-pin
DIN
(DIN 41524) |
1 CLK
2 DATA
|
2 стартовых бита,
8 бит данных, бит нажатия/отпускания клавиши, 1 стоповый бит Сброс контроллера — замыканием 3-го контакта на корпус |
Нет | Набор (PC/XT) |
XT (Type 2) |
1 CLK
2 DATA
|
2 стартовых бита,
8 бит данных, бит нажатия/отпускания клавиши, 1 стоповый бит Сброс контроллера — специальной последовательностью на шины данных/синхронизации |
|||
PCjr | ИК-порт, либо проприетарный разъём |
1 ключ
2 N/A
|
2 стартовых бита,
8 бит данных, бит нажатия/отпускания клавиши, 1 стоповый бит Сброс контроллера — не предусмотрен |
||
AT |
5-pin
DIN
(DIN 41524) |
1 CLK
2 DATA
|
1 стартовый бит,
8 бит данных, 1 бит чётности, 1 стоповый бит сброс — посылкой команды контроллеру |
Есть | Набор (PC/AT) |
PS/2 |
6-pin
Mini-DIN
(DIN 45322)
|
1 DATA
2 N/C
|
набор set2 или |
Набор скан-кодов set1 (в других источниках называемый как set#0) — это набор сканкодов оригинального PC. В клавиатуре PC/AT и более поздних моделях этот набор не поддерживается, однако контроллер клавиатуры на материнской плате может производить трансляцию скан-кодов в набор set1. Код отпускания соответствует коду нажатия+
0x
80
. Коды клавиш, отсутствовавших в оригинальной клавиатуре, соответствуют кодам клавиш с соответствующими функциями, но к ним прибавляется префикс
0x
E0
.
Набор set2 (или set#1)— стандартный набор PC/AT. В нём дополнительные клавиши также предваряются префиксом
0x
E0
. Отпускание клавиши предваряется кодом
0x
F0
.
Набор set3 (или set#2) представляет собой оптимизацию набора set2, заключавшуюся в отказе от префиксов и переходе к однобайтным скан-кодам. Однако он не получил распространения и к тому же может отсутствовать в некоторых моделях клавиатур
. Отпускание также предваряется кодом
0x
F0
.
Так как клавиатура при нажатии клавиш генерирует скан-коды, не привязанные напрямую к кодам вводимых символов, а преобразованием нажатой клавиши во вводимый символ занимается либо прерывание BIOS, либо драйвер клавиатуры, любая клавиша на клавиатуре может иметь любое назначение . Однако нанесённые на клавиши обозначения и стандартная работа с этими клавишами BIOS и операционной системы закрепили определённое их поведение.
Начиная с конца 90-х существующий стандарт начал вытесняться стандартом USB HID . Стандарт USB более универсален, позволяет подключать к одной машине несколько клавиатур и мышей, а также подключать и отключать клавиатуру без отключения питания компьютера. В 2000 году компании Intel и Microsoft выпустили спецификацию , в которой объявили PS/2-клавиатуру и мышь устаревшими стандартами, предлагая производителям переходить на USB. Однако в течение последующих двух десятилетий эти стандарты продолжали использоваться наряду с USB по нескольким причинам:
Многие клавиатуры, выпускаемые после появления стандарта USB HID, хотя и не все, поддерживают оба протокола. Такую клавиатуру с разъёмом USB можно подключить к компьютеру, имеющему разъём PS/2 или AT, через пассивный переходник, (и наоборот, PS/2 клавиатуру — к USB). Для подключения клавиатур более старых моделей требуется активный переходник — существуют подобные переходники как промышленно изготавливаемые, так и любительские — например, Soarer’s converter на основе популярного контроллера atmega 32u4 , позволяющий не только подключать к USB любые PC-клавиатуры, в том числе PC/XT, но и произвольно менять назначение клавиш .
Первая 83-клавишная клавиатура получила высокую оценку в первом номере журнала PC Magazine , однако автор обзора удивлялся, «как такой признанный профессионал в изготовлении клавиатур, как IBM, мог разместить левую клавишу ⇧ Shift в столь неудобном месте» . Позже в том же журнале сообщалось, что от читателей было получено множество писем, где они изъявляли желание увидеть в новой модели индикацию режимов Caps Lock, Scroll Lock и NumLock. Критиковалась идея использовать одно и то же поле для курсорных клавиш и цифр, а также путаница, вызванная наличием клавиши Scroll Lock — не знакомые с данной клавиатурой пользователи могли предположить, что эта клавиша нужна для выключения режима Num Lock .
Джерри Пурнель в статье в журнале также критиковал размещение некоторых клавиш, заявляя, что их расположение « может вывести из себя, особенно учитывая, что та же корпорация IBM выпускала печатную машину Selectric с замечательной клавиатурой », и ругал прочих производителей PC-совместимых компьютеров за то, что они повторяют раскладку клавиш IBM, а не ощущение от нажатия, присущее только клавиатурам IBM . Также он писал, что эта раскладка «едва не свела с ума» , издателя фантастических книг, и для того, чтобы нормально ей пользоваться, ему пришлось попросить знакомого программиста написать специальную утилиту, которая переназначала клавиши более удобным образом . В то же время редакция самого журнала BYTE отнеслась к клавиатуре более благосклонно, посчитав эту клавиатуру «возможно, лучшей… среди всех микрокомпьютеров», а короткий левый ⇧ Shift — «мелочью по сравнению с ошибками, которые допускали другие производители компьютеров» .
Защищая выбранную раскладку, Дон Эстридж в 1983 году заявил, что «положение этих клавиш не так уж и плохо» и что «какое бы место ни было выбрано для этих клавиш, кому-то оно не понравится». «Если мы захотим их изменить, мы точно попадём впросак» .
Питер Нортон хорошо отзывался о выбранной схеме обмена данными между компьютером и клавиатурой, называя её «впечатляющей», «простой и элегатной» .
С появлением PC/AT Чарльз Петцольд в одном из номеров PC Magazine заметил, что хотя в IBM и сгладили некоторые недочёты предыдущей модели, всё же новая клавиатура ещё не идеальна, отмечая уменьшившуюся в размерах и отнесённую слишком далеко клавишу ← Backspace а также неудачную компоновку курсорно-цифрового блока . Питер Нортон назвал перемещённую в цифровой блок клавишу Esc «бессмысленным решением» и «неприятностью» для тех, кому предстоит пользоваться клавиатурами обоих типов .
Когда вышла Model M, Чарльз Петцольд сетовал, что раскладка клавиатуры снова изменилась, но в то же время предполагал, что она останется надолго. « У меня такое смутное чувство, будто IBM говорит мне: „Тебе стоит полюбить её, потому что это клавиатура будущего“ » . Главным плюсом новой клавиатуры он назвал отдельные клавиши для стрелок.
Пользователи VIM , emacs и некоторых приложений для UNIX-подобных систем критикуют компанию IBM за размещение клавиш Ctrl , ⇪ Caps Lock и Esc на тех местах, на которых они разместили их в клавиатуре Model M, так как левому мизинцу при работе с сочетаниями клавиш приходится чаще покидать домашний ряд, отчего создаётся излишняя нагрузка на слабый палец .