20 марта 2012
О лаборатории специальных исследований
Часть 14
К вопросу оценки ПЭМИН цифровых сигналов (продолжение)
Следующим типовым устройством ПЭВМ, вроде бы и несложным, но доставляющим, порою, хлопоты исследователю, является клавиатура.
В общем-то устройство несложное. Особенно ноне уже устаревшие модели, подключаемые к порту PS/2. Как показывают многочисленные экспериментальные данные микросхема управления «клавы» сканирует нажатия клавиш и передаёт в последовательном коде в порт. Тактовая частота этой передачи кратна (в подавляющем числе случаев) » 6,3 или 10 кГц. Хотя автору попались в самые последние года пара экземпляров, тактовая частота которых лежала в районе 20 кГц.
Все клавиатуры при нажатии и удерживании любой клавиши начинают (после некоторой паузы) повторять передачу кода клавиши «до бесконечности». В обычном режиме это, как правило, через несколько секунд приводит к переполнению буфера контроллера и нарушению работы. Появляется звуковой сигнал системного «динамика» - «писк». Суть тест-режима (самого общепринятого) заключается в блокировании команды переполнения буфера, что позволяет, при нажатой клавише, обеспечить бесконечную передачу по кабелю «клавы» выбранного символа.
Как и всегда, для правильного последующего расчёта результата, необходимо создать постоянное чередование импульсов в кодовом пакете. Для кодов клавиатуры таких комбинаций может существовать две:
10101010 (55) клавиша « +; = »
01010101 (АА) в типовых таблицах – не применяется
Общая таблица скан-кодов приведена в таблице 14.1
Таблица 14.1 - Скан-коды клавиатуры
| Клавиша |
Скан-код |
Клавиша |
Скан-код |
Клавиша |
Скан-код |
Клавиша |
Скан-код |
1 |
16 |
2 |
1E |
3 |
26 |
4 |
25 |
5 |
2E |
6 |
36 |
7 |
3D |
8 |
3E |
9 |
46 |
0 |
45 |
- |
4E |
+ |
55 |
Backspace |
66 |
Tab |
0D |
Q |
15 |
W |
1D |
E |
24 |
R |
2D |
T |
2C |
Y |
35 |
U |
3C |
I |
43 |
O |
44 |
P |
4d |
[ |
54 |
] |
5B |
Enter |
5A |
Ctrl(L) |
14 |
A |
1C |
S |
1B |
D |
23 |
F |
2B |
G |
34 |
H |
33 |
J |
3B |
K |
42 |
L |
4B |
; |
4C |
' |
52 |
` |
0E |
Shift(L) |
12 |
\ |
61 |
Z |
1A |
X |
22 |
C |
21 |
V |
2A |
B |
32 |
N |
31 |
M |
3A |
, |
41 |
. |
49 |
/ |
4A |
Shift(R) |
59 |
Alt(L) |
11 |
Space |
29 |
Caps Lock |
58 |
Esc |
76 |
F1 |
05 |
F2 |
06 |
F3 |
04 |
F4 |
0C |
F5 |
03 |
F6 |
0B |
F7 |
83 |
F8 |
0A |
F9 |
01 |
F10 |
09 |
F11 |
78 |
F12 |
07 |
Scroll Lock |
7E |
*[numpad] |
7C |
Num Lock |
77 |
7[numpad] |
6C |
8[numpad] |
75 |
9[numpad] |
7D |
-[numpad] |
7B |
4[numpad] |
6B |
5[numpad] |
73 |
6[numpad] |
74 |
+[numpad] |
5A |
1[numpad] |
69 |
2[numpad] |
72 |
3[numpad] |
7A |
0[numpad] |
70 |
.[numpad] |
71 |
Alr(R) |
E0-11 |
Ctrl(R) |
E0-14 |
Print Screen |
E0-12-E0-7C |
Insert |
E0-70 |
Delete |
E0-71 |
Left |
E0-6B |
Home |
E0-6C |
End |
E0-69 |
Up |
E0-75 |
Down |
E0-72 |
PageUp |
E0-7D |
PageDown |
E0-7A |
Right |
E0-74 |
Enter[numpad] |
E0-5A |
/[numpad] |
E0-4A |
Таким образом, при реализации тест-режима и, например, положенном на клавишу «+» грузике в кабеле «клавы» будет присутствовать бесконечная последовательность пакетов импульсов. При этом период следования импульсов в пакете (то есть тактовая частота), будет равна 6,10 или 20 кГц, а частота следования пакетов будет много ниже. Формат данных приведён на рисунке 14.1
Для обмена данными в кабеле клавиатуры служат две линии – KBData и KBSync. При передаче скан-кодов клавиатура выставляет очередной разряд данных на линии KBData и подтверждает передачу переводом из «1» в «0» сигнала на линии KBSync.
Контроллер может сигнализировать о своей неготовности передавать/принимать данные низким уровнем на линии KBSync. Все остальное время, когда нет данных для передачи, обе линии имеют высокий уровень сигнала.
Рисунок 14.1 – Формат данных в кабеле PS/2. Общий вид передачи данных от клавиатуры
(S1 – стартовый бит; S2 – стоповый бит; D0-D7 – данные; P – бит четности;
W – обработка принятых данных)
Рисунок 14.2 – Осциллограммы данных в кабеле PS/2.
Период повторения пакетов скан-кода (устанавливается в системе)
Рисунок 14.3 – Осциллограммы данных в кабеле PS/2.
Символ «=» (55). Вверху – сигналы в линии синхронизации
Как следует из вышеприведённого, в спектре ПЭМИН кабеля клавиатуры следует ожидать частотных составляющих с тактовой частотой 1/76,04·10-6=13,15 кГц. Причём из-за наличия двух, сдвинутых по фазе, сигналов с разными (но кратными!) периодами, чётные и нечётные частотные составляющие будут отличаться по амплитуде.
Как и следует ожидать, ПЭМИН линии синхроданных неинформативен, в принципе. Но отличить один ПЭМИН от другого совсем непросто. Кабель один, сигналы синхронны…
Практически единственный способ – подобрать скан-код с минимальным числом логических «1» в посылке. Таковыми являются клавиши «F3» и F9» (03 и 01 в hex-коде). Код «00» не используется.
Осциллограмма скан-кода «F3» приведена ниже.
Рисунок 14.4 – Осциллограммы данных в кабеле PS/2. Символ «F3» (04)
Строго «по энергетике», если измерить все частотные составляющие ПЭМИН с кодом «=» и, например, кодом «F9», то разность в показаниях приёмника на КАЖДОЙ из частотных составляющих и есть истинно информационная часть энергии ПЭМИН. Причём это максимум максиморум. Работа достаточно сложная и утомительная, если нет возможности поручить её «автомату». Сами-то составляющие ПЭМИН для столь низких частот выявляются не без труда. Так ещё и разности «ловить»…
Рисунок 14.5 – Осциллограммы данных в кабеле PS/2. Символ «F9»
Рисунок 14.6 – Спектр сканкода «=». Спектры построены
цифровым осциллографом по сигналу в линии «DATA»
Рисунок 14.7 – Спектр сканкода «F9». «Линейчатая часть спектра,
практически, отсутствует, энергия заметно меньше
В практике СИ, в подавляющем числе случаев, просто измеряют уровни ПЭМИН (ничего не вычитая) и считают параметр защищённости. Можно и так, «с запасом», но знать истинное положение дел специалист обязан.
В заключение рассмотрения - «распиновка» разъемов AT- и PS/2-клавиатуры.

|
|
AT, «папа» |
PS/2, «папа» |
Сигнал |
AT |
PS/2 |
KBSync
KBData
-KBReset
GND
+5V |
1
2
3
4
5 |
5
1
-
3
4 |
|
Рисунок 14.7 – Распиновка разъёма
«Картинки» на приёмнике выглядит далеко не так «классически», однако и он вполне узнаваем. Вот примеры
Рисунок 14.8 – Пакет скан-кода на экране системы «Сигурд»
(во временнoм представлении). Полоса пропускания слишком узкая,
чтобы разрешить пакет на отдельные импульсы. Символ «=»
Рисунок 14.9 – Участок спектра ПЭМИН «клавы» 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.10 – Осциллограммы линии «data +».
Совмещены две осциллограммы, выделена переменная часть
Эти две осциллограммы меняют друг друга с неустановленной (хаотической) периодичностью, причём «картинки» сигналов не зависят от нажатой клавиши клавиатуры (или ненажатой никакой). Никаких иных изменений в «переменной» части пакета (фрейма) выявить не удалось.
Периодичность следования этих пакетов жёстко стабилизирована (рис. 14.11), а длительность каждого составляет (видно на осциллограммах) около 34 ±1 мкс.
Рисунок 14.11 – Осциллограммы линии «data +» с другим, бoльшим, периодом
Пакеты следуют каждые 4 мс. Однако необходимо отметить, что окончание каждого пакета всё время «дрожит», причём заметно, классический «джиттер». Поэтому спектральная картинка несколько размыта и становится чёткой лишь при достаточно длительном усреднении.
Рисунок 14.12 – Часть спектра сигналов USB в линии
Кроме того, следует учитывать, что из-за разных периодов следования импульсов и разной их длительности спектр носит характер некоторой смеси из спектра сплошного и линейчаатого. Тем не менее лепестковый характер спектра, естественный для бесконечной последовательности пакетов и кратный в своих «лепестках» средней длительности пакета, сохраняется весьма наглядно. Только «нули» функции сглажены джиттером и неременным периодом следования отдельных импульсов. Однако сама картинка вполне характерна. При более тонком частотном разрешении спектр начинает разрешаться на «линии», обусловленные частотой следования пакетов (250 Гц) (рис. 14.13)
Рисунок 14.13 – Спектры с различным разрешением по частоте
Таким образом, при простейшем и незасинхронизованном с истинной передачей скан-кода просмотре осциллограмм, выявить и визуализовать участки фрейма (пакета), отвечающий за передачу данных, не удалось. Тем не менее, можно утверждать, что ПЭМИН кабеля клавиатуры всё равно будет вот такой и никакой другой. Понятно, на каких частотах его искать, понятно, что он будет носить характер сплошного (во всяком случае, при частотном разрешении приёмника более 0,3 кГц). И понятно, какую величину подставлять при расчётах в качестве тактовой (минимальный период импульсов в пакете в эксперименте составил 1,322 мкс). Измерить это, при любых СИ, имея осциллограф, хотя бы с 200 МГц полосой – задача тривиальная. Тест-режим, по сути – любой, можно нажимать клавиши (любые), можно не нажимать ничего. Пакеты по интерфейсу передаются всё равно. И, в первом приближении, считаем их информативными (пока не доказано обратное).
Приведённые осциллограммы и спектры получены с помощью осциллографа АКИП-4108/2, подключённому к тому же компьютеру, на котором выполнялись измерения (надо заметить – весьма функциональный повтор разработки фирмы «PICO Technology» нашими. Не хуже китайцев :) ) .
Спектр явно уходит далеко за 1 МГц (больше не позволил осциллограф, а подключать анализатор большого смысла не было). Остальное обусловлено уже кабелем, как случайной антенной и степенью его экранирования.
Для иных режимов интерфейса USB нужен уже осциллограф с полосою в многие ГГц.
Как именно считать сплошной спектр и, при этом, остаться в рамках действующих НМД – разговор отдельный и не для открытого обсуждения, увы… Однако в последующих публикациях придётся к нему вернуться, деваться некуда. Попытаюсь «остаться в рамках дозволенного»…