Jump to content

Сканкод

(Перенаправлено с кода сканирования )

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

Варианты

[ редактировать ]

Сопоставление ключевых позиций по строкам и столбцам требует менее сложного компьютерного оборудования ; поэтому в прошлом использование программного обеспечения или встроенного ПО для преобразования сканкодов в текстовые символы было дешевле, чем подключение клавиатуры по текстовым символам. [1] Эта разница в стоимости не так велика, как раньше. Однако многие типы компьютеров по-прежнему используют традиционные сканкоды для обеспечения обратной совместимости .

Некоторые стандарты клавиатуры включают скан-код для каждой нажимаемой клавиши и отдельный код для каждой отпускаемой клавиши. Кроме того, многие стандарты клавиатуры (например, стандарты, совместимые с IBM PC ) позволяют самой клавиатуре генерировать « печатные » повторяющиеся клавиши, заставляя саму клавиатуру многократно генерировать скан-код нажатой клавиши, пока клавиша удерживается нажатой, с отправкой скан-кода отпускания. один раз, когда клавиша отпущена.

Наборы сканкодов

[ редактировать ]

В некоторых операционных системах можно обнаружить скан-код нажатия клавиши, удерживая клавишу нажатой во время загрузки компьютера. Если повезет, скан-код (или некоторая его часть) будет указан в полученном сообщении об ошибке «застрявший ключ». [Примечание. В Windows 7 отображается только один байт скан-кода.]

Совместимость с ПК

[ редактировать ]

Сканкоды на совместимых с IBM PC, компьютерных клавиатурах, представляют собой наборы длиной от 1 до 3 байтов , которые отправляются с клавиатуры. Большинство символьных клавиш имеют однобайтовый скан-код; клавиши, выполняющие специальные функции, имеют 2-байтовые или 3-байтовые скан-коды, обычно начинающиеся с байта (в шестнадцатеричном формате). E0, E1, или E2. Кроме того, несколько клавиш отправляют более длинные скан-коды, эффективно имитируя серию клавиш, что упрощает обработку различных типов программного обеспечения.

Клавиатуры ПК, поскольку клавиатура PS/2 поддерживает до трех наборов скан-кодов. Чаще всего встречаются скан-коды «XT» («набор 1»), основанные на 83-клавишной клавиатуре, используемой в IBM PC XT и более ранних версиях. В основном они состоят из одного байта; младшие 7 бит идентифицируют клавишу, а самый старший бит сбрасывается при нажатии клавиши или устанавливается при отпускании клавиши. Некоторые дополнительные клавиши имеют E0 (или редко, E1 или E2) префикс. Изначально они были назначены таким образом, что игнорирование E0 префикс (который находится в диапазоне клавиш и, следовательно, не окажет никакого влияния на операционную систему, которая их не понимает) даст разумные результаты. Например, клавиша Enter на цифровой клавиатуре создает скан-код E0 1C, что соответствует скан-коду клавиши возврата 1C.

ПК IBM 3270 представил собственный набор сканкодов («набор 3») с другой нумерацией ключей и где освобождение ключа обозначается значком. F0 префикс. Для обеспечения обратной совместимости ПК 3270 преобразовал их в сканкоды XT (набор 1) с помощью дополнительной карты и расширения BIOS. Этот набор используется Linux по умолчанию, когда он обнаруживает клавиатуру PS/2, которая может правильно поддерживать набор кодов сканирования 3. [2]

IBM PC AT представил сканкоды «AT» («набор 2»). На 84-клавишной клавиатуре AT они в основном представляли собой подмножество набора 3 с некоторыми отличиями, вызванными измененной раскладкой (например, изменились положение и скан-коды функциональных клавиш ). Добавлены ключи, поскольку ПК АТ часто имеют разные скан-коды в наборе 2 и наборе 3, а в наборе 2 часто имеются E0 или E1 префикс. Опять же, освобождение ключа обозначается F0 префикс.

Для компьютеров, начиная с IBM PC AT, контроллер клавиатуры на материнской плате преобразует скан-коды AT (набор 2) в скан-коды XT (набор 1) в так называемом режиме трансляции . [3] Этот перевод можно отключить в режиме сквозной передачи , что позволит видеть необработанные сканкоды. [4] Таким образом, то, встретит ли разработчик программного обеспечения скан-коды AT или скан-коды XT на современном ПК, совместимом, зависит от того, как осуществляется доступ к клавиатуре.

Совместимой клавиатуре PS/2 можно указать отправлять сканкоды в наборе 1, 2 или 3.

Примеры скан-кодов, совместимых с ПК (IBM PS/2)
ключ комплект 1 ( IBM PC XT ) комплект 2 ( IBM PC AT ) комплект 3 ( ПК IBM 3270 )
нажимать выпускать нажимать выпускать нажимать выпускать
A (простое письмо) 1E9E1CF0 1C1CF0 1C
↵ Enter (основная клавиатура) 1C9C5AF0 5A5AF0 5A
↵ Enter ( цифровая клавиатура ) E0 1CE0 9CE0 5AE0 F0 5A79F0 79
Левый ⊞ Win ( ключ Windows ) E0 5BE0 DBE0 1FE0 F0 1F8BF0 8B
Верно ⊞ WinE0 5CE0 DCE0 27E0 F0 278CF0 8C

USB -клавиатуры используют новый набор сканкодов, в основном указанный в стандарте USB. Все компьютеры, распознающие USB-клавиатуры, распознают эти новые скан-коды. [5]

См. также

[ редактировать ]
  1. ^ Например, традиционная 12-клавишная цифровая клавиатура сканируется как 3 столбца по 4 строки, что требует в общей сложности 7 подключений. Для сканирования каждого ключа отдельно потребуется 12 подключений.
  2. ^ Павлик, Войтех (18 февраля 2022 г.), «Драйвер клавиатуры AT и PS/2 (atkbd.c)» , Torvalds/Linux – через GitHub
  3. ^ Брауэр, Андриес (20 мая 2004 г.), «Раздел 10, «Внутренние скан-коды клавиатуры» » , Скан-коды клавиатуры (изд. версии 1.2e) , получено 15 ноября 2006 г.
  4. ^ Брауэр, Андриес (7 июля 2009 г.), «Раздел 11, «Контроллер клавиатуры AT» » , Скан-коды клавиатуры (редактор версии 1.2g) , получено 18 июля 2010 г.
  5. ^ Корпорация Microsoft (16 марта 2000 г.), «Приложение C, «Страница USB-клавиатуры/клавиатуры (0x07)» », Спецификация кода сканирования клавиатуры Microsoft (редакция 1.3a) , получено 13 октября 2018 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 970c83f1cc940da1a0d7658a98a9ce21__1717876860
URL1:https://arc.ask3.ru/arc/aa/97/21/970c83f1cc940da1a0d7658a98a9ce21.html
Заголовок, (Title) документа по адресу, URL1:
Scancode - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)