Призначення скану коду в клавіатурах. До питання оцінки пемінів цифрових сигналів. клавіатури. Складання та усунення несправностей

Номер клавіші, який посилається клавіатурним процесором, однозначно залежить від схеми клавіатурної матриці, але не від позначень, нанесених на поверхню клавіш. Цей номер називається скан-кодом (Scan Code). Слово scan ("сканування"), наголошує на тому, що клавіатурний комп'ютер сканує клавіатуру для пошуку натиснутої клавіші.

КодAscii натиснутої клавіші

Зазвичай потрібний програмі не порядковий номер натиснутої клавіші, а код, що відповідає позначенню на цій клавіші (код ASCII).

Код ASCII не пов'язаний безпосередньо зі скан-кодом, тому що одній і тій же клавіші можуть відповідати кілька значень коду ASCII залежно від інших клавіш. Наприклад, клавіша з позначенням "1" використовується ще й для введення символу "!" (якщо вона була натиснута разом із клавішею ).

Тому всі перетворення скан-коду в ASCII код виконуються програмно. Як правило, у операційній системі MS-DOS ці перетворення виконують модулі BIOS. Для використання символів кирилиці ці модулі розширюються клавіатурними драйверами як входять до складу локалізованих версій MS-DOS, так і створеними у вигляді окремих програм.

Режим автоповтору

Якщо натиснути і не відпускати клавішу, клавіатура перейде в режим автоповтору. При цьому в комп'ютер автоматично через деякий період часу, що називається періодом автоповтору, надсилається код натиснутої клавіші. Режим автоповтору полегшує введення великої кількості однакових символів з клавіатури.

Слід зазначити, що клавіатура містить внутрішній буфер, 16-байтовий, через який вона здійснює обмін даними з комп'ютером.

Типи клавіатури

Донедавна існували три різні типи клавіатури. Це клавіатура для комп'ютерів IBM PC/XT, 84-клавіша для IBM PC/AT та 101-клавіша (розширена) клавіатура для IBMPC/AT. Деякі клавіатури мають перемикач режиму роботи (XT/AT), розташований на нижній кришці. Він має бути встановлений у правильне положення.

Після того як операційна система Microsoft Windows набула широкого поширення, спеціально для неї було створено новий тип клавіатури. До звичайної клавіатури типу IBMPC/AT були додані дві кнопки, перша з яких дублює виклик меню Start, який виконується за допомогою лівої клавіші миші, а друга – виклик того ж меню за допомогою правої клавіші миші.

Порти для роботи з клавіатурою

Призначення портів, призначених для роботи з клавіатурою, залежить від типу комп'ютера.

Комп'ютерIbm pc/xt

Для роботи з клавіатурою типу IBM PC/XT використовуються порти з адресами 60h та 61h.

Порт 60h доступний лише для читання. Після виконання цієї операції містить скан-код останньої натиснутої клавіші.

Порт 61h доступний як читання, так запису. Він керує не лише клавіатурою, а й іншими пристроями комп'ютера, наприклад, роботою вбудованого динаміка. Якщо у старшому біті порту 61h записати значення 1, клавіатура буде заблокована, якщо 0 - розблокована.

Оскільки порт 61h управляє як клавіатурою, при зміні вмісту старшого біта необхідно зберегти стан інших бітів цього порту. Для цього можна спочатку виконати читання вмісту порту регістр, змінити стан старшого біта, потім виконати запис нового значення в порт.

  1. У верхній частині вікна Google Play є пошуковий рядок. Саме нею ми й скористаємося. Активуємо та пишемо назву нашої програми. Вводити його до кінця необов'язково. Як тільки в пошуковій видачіз'явиться позначений на скріншоті об'єкт, просто тапайте по ньому.
  1. Ми будемо переадресовані на домашню сторінку програми. Тут є велика зелена кнопка із написом «УСТАНОВИТИ». Натисніть на неї.
  1. Чекаємо на закінчення завантаження програми. Так як воно "важить" трохи менше 5 МБ, процес не займе багато часу.
  1. Готово. Після того, як автоматична інсталяція буде закінчена, ми зможемо запустити програму прямо звідси.
  1. Також на домашньому екрані(якщо активовано в налаштуваннях) з'явиться ярлик запуску.

На цьому налаштування програми завершено, і ми можемо переходити до огляду роботи з нею.

На скріншоті нижче ви бачите програмний інтерфейс. Тут він поділений на три основні вкладки. Також є іконка налаштувань, виконана у вигляді шестерні. На головній вкладці «SCAN» знаходяться 4 основні інструменти:

  • Scan Barcode. Це і є сканер QR, який працює за допомогою камери;
  • Manual Key-in. Функція ручного введення даних про код;
  • Decode from File. Декодування із файлу. Звідси можна відкрити раніше завантажений QR-код і рахувати його;
  • Decode from Url. Сканування за посиланням.

Внизу знаходяться кілька кнопок, що не несуть корисного функціоналу. На них не слід звертати увагу.

Розглянемо налаштування програми. Їх тут чимало. На ваших екранах будуть скріншоти різних областей конфігурації, ми ж просто озвучимо деякі найцікавіші моменти.

Наприклад, на першому екрані можна увімкнути або вимкнути звук програми. Те ж саме вдасться зробити і з вібровідгуком. Ви можете встановити режим роботи, коли програма почне запускатися відразу зі сканера, оминаючи головне меню. Ще однією важливою особливістю є автоматичне копіювання даних у буфер обміну.

Як тільки ми захочемо розпочати сканування та запустимо сам сканер, програма запросить доступ до потрібних системних ресурсів. Звичайно, його потрібно дозволити. Тиснемо кнопку, зазначену на скріншоті.

Далі наводимо рамку сканера так, щоб горизонтальна смужка потрапила прямо на QR. Намагайтеся, щоб ваші руки не тремтіли і водночас слідкуйте за фокусуванням. Без нормальної різкості сканування не вдасться.

Для роботи QR BARCODE SCANNER в умовах недостатнього освітлення є підсвічування.

Як тільки код розпізнається, ви побачите інформацію, наведену на скріншоті нижче.

Крім сканування QR тут можна також створювати їх. Для цього переходимо до третьої вкладки. Ми відзначили її на скріншоті. У списку наведено всі типи даних, які можна зашифрувати. Підтримується таке:

  • контакт телефонної книги;
  • номер телефону;
  • URL-адреса;
  • Email;
  • додаток;
  • місцезнаходження;
  • будь-який текст;
  • закладка;
  • подія календаря.

Виглядає все це так:

Коли тип даних буде обраний і заданий, нам залишається лише натиснути кнопку Encode. В даному випадкуми зашифрували посилання.

Спробуємо зашифрувати також довільний текст. Для цього вибираємо потрібний пункт.

Вводимо фразу в поле і тиснемо кнопку «Encode».

Результат виглядає чудово. Давайте ще змінимо його колір. Тиснемо кнопку, призначену для цього.

Вибираємо потрібний відтінок із палітри.

І милуємось отриманим QR.

Переходимо до наступної програми, яка теж має значний функціонал.

QR Droid Code Scanner

Ще одна програма, знайти яку можна в Google Play. Також ви можете завантажити його за прямим посиланням на сайті Google. Ми ж поки що розглянемо саму програму.

Так виглядає ярлик запуску QR Droid Code Scanner - тиснемо по ньому.

Цей додаток, на відміну від попереднього, виконаний російською мовою і, як тільки він запуститься, нам знадобиться натиснути кнопку з написом: «ПОЧАТОК РОБОТИ».

Відразу ж видно сканер, але спочатку давайте розберемося з його налаштуваннями. Тапаємо по кнопці, розташованій у верхньому правому кутку.

У головному меню видно 6 плиток-кнопок, які переадресують користувача до потрібного розділу. Ось вони:

Отже, для того, щоб скористатися сканером, потрібно активувати його в головному меню і, навівши QR-код, натиснути кнопку «Рахувати».

Тут вибирається стартовий екран, задається адреса для резервного копіюваннята настроюється мова програмного інтерфейсу.

Далі ми можемо встановити механізм сканування. Використовується один із фірмових алгоритмів: Zapper або ZXing. Нижче вдасться увімкнути або вимкнути перехрестя, настроїти автоматичну дію після сканування та ввімкнути відображення підказок або копіювання посилання у буфер обміну.

В даному розділіналаштовується звуковий супровід, включається та вимикається вібро. Також конфігурується процес запису дій у журнал та взаємодія з розумним годинником Android Wear.

Потім у нас вдасться експортувати чи імпортувати резервну копіюабо встановити дату.

Дозволити надсилання анонімних даних (краще вимкнути), активувати перевірку посилання на безпеку, що отримується при скануванні, або налаштувати пакетне сканування. Нижче наведено такі функції, як масштабування або підсвічування.

Але на цьому наші налаштування не закінчуються. Крім наведених вище функцій, ми маємо таке:

  • настроювання орієнтації екрана;
  • робота з фронтальною камерою;
  • парсинг посилань;
  • показ магазинів.
  • функція розширеного опису;
  • заборона деяких спецсимволів;
  • активація WEB-передбачення;
  • пошук збережених зображень.

Останній екран налаштувань містить такі цікаві функції, як: налаштування максимальної кількості позицій, конфігурація користувацьких CSV, струшування «розумного» годинника і збереження позицій, що повторюються.

Крім налаштувань у меню QR Droid Code Scanner є пункт під назвою «Ще». Розглянемо його функціонал.

Тут є такі можливості:

Розглянемо останній, але від цього не менш функціональний, додаток у нашому списку.

NeoReader QR & Barcode Scanner

Дану програму, як і інші, ви можете завантажити та встановити через Google playабо за прямим посиланням . Коли це буде зроблено, можна переходити безпосередньо до роботи із нею.

При першому запуску нам потрібно буде задовольнити запит доступу. Тиснемо «ДОЗВОЛИТИ».

З'явиться вікно з налаштуваннями. Тут вдасться вибрати мову, вказати свою країну, стать та вік. Дві галочки, розміщені нижче, дозволяють увімкнути або вимкнути доступ програми до геоданих.

Можна, власне, приступати до сканування. Наведіть камеру на QR-код і NeoReader QR & Barcode Scanner автоматично розпізнає його вміст.

Ми думаємо, що цих трьох програм цілком вистачить для будь-якої людини. Виберіть найбільш зручну для вас і використовуйте на власний розсуд. Ми ж поговоримо про деякі особливості китайських девайсів.

Стандартний функціонал

У деяких смартфонах та планшетах (залежно від марки) є функціонал сканування QR-кодів у штатному виконанні і зробити все можна без застосування. Не будемо перераховувати їх усі, торкнемося лише моделі від Xiaomi.

Підбиваємо підсумки

В результаті ми з вами дізналися, як сканувати QR-код на Андроїд. різними способами. Сподіваємося, стаття виявилася для вас корисною. Якщо питання все ж таки залишилися, ставте їх у коментарях. Ми намагатимемося допомогти кожному.

Якщо навіть цього не станеться, хтось із користувачів, що знаходяться на сайті, обов'язково підкаже як вийти із ситуації та дасть слушна порада. Вам залишиться лише втілити його у життя.

Відеоінструкція

У книзі зібрані та узагальнені поради щодо рішення різних проблемякі рано чи пізно виникають при експлуатації як економічних нетбуків, так і сучасних настільних моделей. Всі наведені рецепти випробувані на практиці та розбиті на теми: апаратні засоби персональних комп'ютерів, комп'ютерні мережіта підключення до Інтернету, встановлення, налаштування та ремонт ОС Windows, робота в Інтернеті, захист від вірусів. Розглянуті не тільки готові рішення проблем, що раптово виникають, але й відповіді на багато питань, які виникають ще до покупки комп'ютера. Наведено необхідний мінімум технічних відомостей, що дозволяє ухвалити усвідомлене рішення.

Компакт-диск додається лише до друкованого видання книги.

Книга:

Розділи на цій сторінці:

На клавіатурі є багато клавіш, якими ви ніколи не користуєтеся. Одна з найнабридливіших – клавіша , що збереглася з часів програмістських мов типу Фортрана, де все писалося великими літерами. Рідко хто користується і системними клавішами Windows(і основний, і для виклику контекстного меню) – це зручніше робити мишею. Тим часом випадкове натискання цих кнопок гальмує всю роботу. Ті, кого це дратує, можуть відключити їх або перепризначити інші функції – наприклад, на сусідні клавіші.

Розглянемо на прикладах ці дії, а потім розповімо, як це здійснюється у загальному випадку – для будь-якої клавіші.

Спочатку потрібно в розділі реєстру HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ControlKeyboard Layout (не плутати з Keyboard Layouts!) створити новий двійковий параметр (в меню так і буде написано – двійковий параметр), назвавши його Scancode Map (з пробілом!), і привласнити йому значення за слідом:

00 00 00 00 00 00 00 00

03 00 00 00 00 00 5C E0

00 00 5D E0 00 00 00 00

Цей рядок відключить клавішу з прапорцем Windows та сусідню клавішу виклику спливаючого меню. Розберемося в тому, що тут написано.

Спочатку має йти 8 пар нулів поспіль. Потім йде число (з провідним нулем) – в даному випадку 03, яке означає кількість клавіш, що відстежуються, плюс одиниця (тобто в цьому прикладі відстежуємо дві клавіші). Після нього завжди має йти три пари нулів (доповнюючи до 4 пар цифр). Закінчуватися запис повинен завжди четвіркою пар нулів. А ось між ними ми повинні записати стільки четвірок парних чисел, скільки ми передбачили клавіші для відстеження – у цьому випадку дві. Вони записуються так звані скан-коди клавіш, які бажаємо відключити. У табл. 12.2 наведено коди тих клавіш, які доцільно розглядати у плані кандидатів на відключення чи заміну (див. далі).

Ці коди записуються в останні дві пари кожної четвірки пар чисел, перші дві пари знову ж таки нулі – як ви і бачите у зразку. Таким чином, наведений як приклад рядок відключить нам праву клавішу (з прапорцем Windows) (00 00 5C E0) та сусідню клавішу Виклик спливаючого меню (00 00 5D E0).

Таблиця 12.2. Скан-коди клавіш


Що таке скан-коди та де їх взяти

Скан-код – це число, яке видає клавіатура під час натискання певної клавіші. Скан-коди не слід плутати з віртуальними кодами клавіш - останні формуються вже на рівні BIOS і Windows і надалі визначають коди символів, ті, що, наприклад, утворюють вміст текстових документів. Найчастіше вони ніяк між собою не пов'язані. Наприклад, віртуальний код клавіші "пробіл" - 32 (збігається з кодом символу "пробіл" в однобайтних кодуваннях), а скан-код її - 57 (в HEX-формі це буде 20 і 39 відповідно). Зауважте, що віртуальні коди не еквівалентні символьним – щоб перетворити віртуальний код на код символу, треба ще врахувати мовну розкладку, стан клавіш , і, між іншим, використовувана система кодувань – однобайтна або Unicode. Все це робить системний драйвер клавіатури ще до того, як подія натискання потрапляє в чергу Windows-повідомлень. Деякі клавіші ( або ) взагалі ні з якими символами не пов'язані та у зазначену чергу не потрапляють. Тому для повної заміни функціональності якоїсь клавіші замінити віртуальні коди (що взагалі-то може зробити будь-хто, хто володіє навичками програмування в Delphi або Visual C++) недостатньо - треба діяти на більш глибокому рівні, маніпулюючи саме скан-кодами. Це дозволяє здійснити параметр Scancode Map в реєстрі Windows.

Для наших цілей скан-коди, як ви можете здогадатися по таблиці, повинні бути представлені в шістнадцятковій (HEX), а не десятковій формі. Таблиці віртуальних кодів та кодів символів зазвичай додається до будь-якого посібника з Windows-програмування, а ось повну таблицю скан-кодів розшукати непросто. Одна з таких таблиць знаходиться на сайті "Електронна бібліотека" за посиланням http://ntlib.chat.ru/ware/tables/scan.htm. Вона трохи невдало складена – так звані розширені клавіші (це ті, у яких другий байт у нашій таблиці дорівнює E0) там показано додаванням зайвого розряду, що дорівнює 1. Тобто вибравши з колонки HEX скан-код, наприклад, 11С (клавіша на цифровій клавіатурі), його треба для наших цілей переписати як 1С E0. Офіційний повний набірскан-кодів, включаючи клавіші керування живленням (але виключаючи додаткові медіаклавіші), можна завантажити з сайту Microsoft. Посилання на документ дуже довге, тому просто наберіть у пошуку на microsoft.com слова «Keyboard Scan Code Specification», і отримайте шукане – щоправда, англійською. Під час вивчення цього документа врахуйте, що нас цікавить лише один набір кодів: Scan Code Set 1.

Зрозуміло, готувати такий рядок чисел слід заздалегідь і уважно перерахувати всі пари, перш ніж вводити їх у реєстр. Але при введенні ви побачите, що допоможуть вам не наробити помилок. Введення значення двійкового числа здійснюється вручну (мал. 12.11), але незважаючи на незвичний вигляд цього редактора, ви швидко переконаєтесь, що працювати з ним дуже зручно. Зокрема, не виникає проблем при підрахунку пар, що вводяться – вони автоматично групуються по вісім у рядку. Не забудьте перезавантажити комп'ютер після остаточного введення значень параметра.


Рис. 12.11. Введення значень бінарного параметра

Для не просто скасування, а ще й перепризначення, доведеться трохи ускладнити запис - перші дві пари нулів у тих четвірках, що містять коди клавіш, замінити на ті коди, які повинні, на вашу думку, працювати. Наприклад, значення параметра Scancode Map, що дорівнює

00 00 00 00 00 00 00 00

03 00 00 00 00 00 5C E0

1D E0 5D E0 00 00 00 00

зробить так, що права клавіша з прапорцем Windows відключиться, а Буде дублювати правий , Т. е. найближчу до неї клавішу. Саме це значення Scancode Map наведено як приклад на рис. 12.11.

Покажемо, як впоратися з . Експерименти показують, що з нею не все однозначно – зокрема спроба простого відключення може не дати результатів. Але я наведу значення параметра Scancode Map, яке гарантовано відключає - її функція змінюється на функцію (правого, але на практиці це не має значення), а Тут, як і раніше, дублює правий :

00 00 00 00 00 00 00 00

03 00 00 00 1D E0 5D E0

2A 00 3A 00 00 00 00 00

На диску в папці Registry знаходиться файл key.reg, при запуску якого і підтвердження того, що ви дійсно хочете внести зміни до реєстру, автоматично створиться параметр Scancode Map з таким значенням. Якщо не хочете чіпати нічого, крім , то відредагуйте це значення так: 03 замініть на 02 і замініть чотири байти з ненульовим значенням у другому рядку нулями.

Нічого фатального в результаті цих ваших експериментів статися не повинно - якщо ви в чомусь помилилися або вирішили залишити все як є, просто видаліть параметр Scancode Map з реєстру і перезавантажте комп'ютер. Або поверніть систему в вихідний станза допомогою точок відновлення.

Вимкнення клавіші як входу в меню

На жаль, подолати клавішу як системної для Windows (виклику головного меню), зберігши її функціональність як клавіші-модифікатора, через реєстр не вийде - вона взагалі перестане реагувати на натискання. Тому, якщо ми зайнялися клавішами, заодно вкажу засіб з нею впоратися, хоча воно і не має відношення до реєстру. На диску до книги є папка AltSpy, в якій розміщено програму того ж імені. Скопіюйте всю папку (вона містить три файли) на жорсткий дискта запустіть файл із розширенням js (сценарій мовою Java Script). Щоб не запускати руками щоразу, його слід увімкнути в автозавантаження (див. розд. 10.1.3 «Автозавантаження»). Через 10 секунд після запуску сценарію AltSpy створить в області повідомлень каракулий значок, у якого виявиться єдиний пункт контекстного меню - Закрити. Пауза потрібна для того, щоб AltSpy гарантовано виявився останнім при запуску і перекрив інші служби. Після цього перестане викликати головне меню, проте збереже свою основну функціональність. Можливість викликати головне меню у вас при цьому не пропадає - цю функцію, як і раніше, виконує клавіша , Зате тепер важче викликати його випадково і цим збити фокус введення з потрібного елемента.

Швидше за все на вашому телефоні вже встановлений за замовчуваннямсканер QR-коду, ви можете легко за допомогою його просканувати перший QR-код. Зробити це дуже просто. Просто дотримуйтесь нашої інструкції.

1. Відкрийте пристрій читання QR-коду на своєму телефоні.

2. Тримайте пристрій над QR-кодом так, щоб його було добре видно на екрані вашого смартфона.

Якщо ви правильно тримаєте смартфон над QR-кодом, то в такому разі станеться таке:

  • Телефон автоматично сканує код.
  • У деяких програмах для сканування коду ви повинні натиснути на зображення, а не на кнопку як створити фото на вашому смартфоні.

3. Натисніть вказану кнопку, якщо потрібно.

Супер! Ваш смартфон зчитує код та переходити за заданим посиланням, що не завжди відбувається миттєво. На більшості пристроїв це може тривати кілька секунд.

Ви почнете бачити QR-коди усюди. Вони використовуються для навчання, інформування, пояснення та для багатьох інших речей. Знаходьте їх та скануєте! QR-коди заощадять вам багато часу та зусиль.

Як сканувати QR-коди на Android

А тепер ми розповімо вам, як використовувати програму сканування для QR-кодів на Android.

Коротко:
1. Відкрийте Play Маркет .
2. Пошук зчитувача QR-коду .
3. Виберіть QR Code Reader(через Scan).
4. Натисніть « Встановити».
5. Відкрийте програму читання QR-коду.
7. Направте камеру на QR-код.
8. Натисніть « ОК».

Крок 1. Відкрийте Play Маркет на Android.Це піктограма у програмі або на головному екрані.

Крок 2 Введіть зчитувач QR-коду у пошуковій системі.З'явиться список програм для читання QR-коду.

  • Ця стаття пояснює, як використовувати QR-код Reader, але ви можете вибрати ту програму, яка вам сподобається. Просто не забудьте прочитати про програму перед завантаженням.
  • Кроки повинні бути однаковими для всіх програм читання QR-коду.

Крок 3Натисніть на QR Code Reader, розроблений Scan.Ім'я розробника вказано нижче за кожну програму. Можливо, вам доведеться прокрутити сторінку вниз, щоб знайти програму, зроблену Scan.

Крок 4Натисніть "Встановити" .З'явиться спливаюче вікно з проханням надати дозвіл на доступ до інформації на вашому Android.

Крок 5.Натисніть "Прийняти" . QR-код Reader тепер буде встановлений на Android-пристрої.

    • Коли програма буде завантажена, кнопка «Встановити» зміниться на «Відкрити», і у вас з'явиться новий значок у програмі.

Крок 6.Відкрийте QR Code Reader.Це значок, який схожий на QR-код в додатку. Відкриється програма, яка виглядає як стандартний екран камери.

Крок 7.Вирівняйте QR-код у кадрі камери.Дещо схоже на те, як ви робите фотографії, за винятком того, що вам не потрібно натискати будь-які кнопки. Коли сканер штрих-кодів прочитає код, з'явиться спливаюче вікно з URL-адресою в коді.


Крок 8.Натисніть OK, щоб відкрити веб-сайт.Це запускає ваш веб-браузер за промовчанням і переміщується за URL-адресою в QR-коді.

Наступним типовим пристроєм ПЕОМ, як і нескладним, але що доставляє, часом, турботи досліднику, є клавіатура.

Загалом пристрій нескладний. Особливо ноне вже застарілі моделі, що підключаються до порту PS/2. Як показують численні експериментальні дані, мікросхема управління «клави» сканує натискання клавіш і передає в послідовному коді в порт. Тактова частота цієї передачі кратна (переважно випадків) » 6,3 або 10 кГц. Хоча автору попалися в останні роки пара екземплярів, тактова частота яких лежала в районі 20 кГц.

Всі клавіатури при натисканні та утриманні будь-якої клавіші починають (після деякої паузи) повторювати передачу коду клавіші «до нескінченності». У звичайному режимі це зазвичай через кілька секунд призводить до переповнення буфера контролера і порушення роботи. З'являється звуковий сигналсистемного «динаміка» – «писк». Суть тест-режиму (найзагальнішого) полягає в блокуванні команди переповнення буфера, що дозволяє, при натиснутій клавіші, забезпечити нескінченну передачу по кабелю «клави» обраного символу.

Як і завжди, для правильного подальшого розрахунку результату, необхідно створити постійне чергування імпульсів кодового пакета. Для кодів клавіатури таких комбінацій може бути дві:

10101010 (55) клавіша +; = »

01010101 (АА) у типових таблицях - не застосовується

Загальна таблиця скан-кодів наведена у таблиці 14.1

Таблиця 14.1- Скан-коди клавіатури

Клавіша

Скан-код

Клавіша

Скан-код

Клавіша

Скан-код

Клавіша

Скан-код

Таким чином, при реалізації тест-режиму і, наприклад, покладеному на клавішу "+" вантажівці в кабелі "клави" буде присутня нескінченна послідовність пакетів імпульсів. При цьому період проходження імпульсів у пакеті (тобто тактова частота), дорівнюватиме 6,10 або 20 кГц, а частота проходження пакетів буде багато нижче. Формат даних наведено на малюнку 14.1

Для обміну даними в кабелі клавіатури служать дві лінії – KBData та KBSync. Під час передачі скан-кодів клавіатура виставляє черговий розряд даних на лінії KBData і підтверджує передачу перекладом з 1 до 0 сигналу на лінії KBSync.

Контролер може сигналізувати про свою неготовність передавати/приймати дані низьким рівнем лінії KBSync. Решта часу, коли немає даних передачі, обидві лінії мають високий рівень сигналу.



Як випливає з вищенаведеного, у спектрі ПЕМІН кабелю клавіатури слід очікувати частотних складових з тактовою частотою 1/76,04 · 10 -6 = 13,15 кГц. Причому через наявність двох, зрушених по фазі, сигналів з різними (але кратними!) періодами, парні та непарні частотні складові будуть відрізнятися за амплітудою.

Як і слід очікувати, ПЕМІН лінії синхронних неінформативний, в принципі. Але відрізнити один ПЕМІН від іншого зовсім непросто. Кабель один, сигнали синхронні.

Практично єдиний спосіб – підібрати скан-код із мінімальним числом логічних «1» у посилці. Такими є клавіші F3 і F9 (03 і 01 в hex-коді). Код 00 не використовується.

Осцилограма скан-коду «F3» наведена нижче.


Строго «по енергетиці», якщо виміряти всі частотні складові ПЕМІН з кодом «=» і, наприклад, кодом «F9», то різниця у показаннях приймача на КОЖНІЙ із частотних складових і є істинно інформаційна частина енергії ПЕМІН. І це максимум максиморум. Робота досить складна та втомлива, якщо немає можливості доручити її "автомату". Самі складові ПЕМІН для таких низьких частот виявляються не без праці. Так ще й різниці «ловити»…



У практиці СІ, переважно випадків, просто вимірюють рівні ПЕМІН (нічого не віднімаючи) і вважають параметр захищеності. Можна і так, «із запасом», але знати справжній стан справ фахівець зобов'язаний.

На закінчення розгляду - "розпинування" роз'ємів AT-і PS/2-клавіатури.


«Картинки» на приймачі виглядає далеко не так «класично», однак і він цілком впізнаваний. Ось приклади



На спектрі добре видно зростання амплітуди компонент із зменшенням частоти.

Є ще особливості вимірів «клави» у цій частотній області (від десятків кГц і далі). Справа в тому, що клавіатура, у звичайному розміщенні, знаходиться неподалік системного блоку. А у верхній частині СБ знаходиться імпульсний блокхарчування – найпотужніший джерело ПЕМІН і з «Е», і з «Н» компонентам. У «світлі» такого театрального софіту, тьмяне «світло» клавіатури побачити – особливе мистецтво! Тому пропоную наступний прийом. Відсуньте «клаву» від СБ якнайдалі. Найкраще – на подовжувачі PS/2. Так метра на 2-2,5.

Розмістіть антену так, щоб на неї наводилося якнайменше від СБ (сигнал, при смузі приймача більше 10 кГц – суцільний спектр). І ось біля так зорієнтованої, нерухомої антени, починайте крутити «клаву» та її кабель (не навпаки!). Тоді у Вас буде багато більше шансів виявити сигнали ПЕМІН саме клавіатури, побачити компоненти ПЕМІН на екрані аналізатора на власні очі.

Все вищевикладене належало до клавіатури з інтерфейсом PS/2. Але зараз їх масово замінюють клавіатури з USB-інтерфейсом.

Взагалі цей інтерфейс досить докладно розглядався разом із принтерами. Однак буде не зайвим дати деяке «цілковказ» і щодо клавіатури.

Згадаймо побудова пакетів для інтерфейсу USB, враховуючи, що клавіатура підключається, строго, з low-speed (тобто фактично по інтерфейсу USB 1.0).

Максимальний розмір корисного навантаження DATA (payload) для low-speed пристроїв становить 8 байт. Тобто це саме те, що вимагає скан-код клавіатури.

Побачити сигнал (саме дані) в лінії USB виявилося не таким простим завданням. Тим не менш - ось що виявилося саме в кабелі типової USB "клави" моделі GENIUS KB-06XE, саме в лінії (проводі) "data +" (рис. 14.10)


Ці дві осцилограми змінюють одна одну з невстановленою (хаотичною) періодичністю, причому «картинки» сигналів не залежать від натиснутої клавіші клавіатури (або ніякої ненатиснутої). Жодних інших змін у «змінній» частині пакета (фрейму) виявити не вдалося.

Періодичність цих пакетів жорстко стабілізована (рис. 14.11), а тривалість кожного становить (видно на осцилограмах) близько 34 ±1 мкс.


Пакети слідують кожні 4 мс. Однак необхідно відзначити, що закінчення кожного пакета постійно «тремтить», причому помітно, класичний «джиттер». Тому спектральна картинка дещо розмита і стає чіткою лише за досить тривалого усереднення.


Крім того, слід враховувати, що через різні періоди проходження імпульсів і різної їх тривалості спектр носить характер деякої суміші зі спектра суцільного і лінійного. Проте пелюстковий характер спектру, природний для нескінченної послідовності пакетів і кратний у своїх «пелюстках» середньої тривалості пакета, зберігається дуже наочно. Тільки «нулі» функції згладжені джиттером та неременним періодом проходження окремих імпульсів. Проте сама картинка цілком характерна. При більш тонкій частотній роздільній здатності спектр починає вирішуватися на «лінії», зумовлені частотою проходження пакетів (250 Гц) (рис. 14.13). , який відповідає за передачу даних, не вдалося. Тим не менш, можна стверджувати, що ПЕМІН кабелю клавіатури все одно буде ось такою і жодною іншою. Зрозуміло, яких частотах його шукати, відомо, що він матиме характер суцільного (у разі, при частотному дозволі приймача понад 0,3 кГц). І зрозуміло, яку величину підставляти при розрахунках як тактову (мінімальний період імпульсів у пакеті в експерименті становив 1,322 мкс). Виміряти це, за будь-яких СІ, маючи осцилограф, хоча б із 200 МГц смугою – завдання тривіальне. Тест-режим, по суті, будь-який, можна натискати клавіші (будь-які), можна не натискати нічого. Пакети по інтерфейсу передаються однаково. І, у першому наближенні, вважаємо їх інформативними (поки що не доведено протилежне).

Наведені осцилограми та спектри отримані за допомогою осцилографа АКИП-4108/2, підключеного до того ж комп'ютера, на якому вимірювалися (треба помітити – функціональний повтор розробки фірми «PICO Technology» нашими. Не гірше китайців:)) .

Спектр явно йде далеко за 1 МГц (більше не дозволив осцилограф, а підключати аналізатор не було великого сенсу). Решту обумовлено вже кабелем, як випадковою антеною та ступенем його екранування.

Для інших режимів інтерфейсу USB потрібен вже осцилограф зі смугою в багато ГГц.

Як саме вважати суцільний спектр і, при цьому, залишитися в рамках діючих НМД – розмова окрема і не для відкритого обговорення, на жаль… Однак у наступних публікаціях доведеться повернутися, діватися нікуди. Спробую «залишитися в рамках дозволеного».