просмотров 64 801

Мини KVM для USB клавиатуры.

SAMSUNGВозникла необходимость переключать клавиатуру с мышкой между компьютером и СмартТВ на Андроиде. Мне не было необходимости переключать видеовыход с компьютера, а также требовалось переключать получатель сигналов по команде с клавиатуры, а такая возможность отсутствует в дешевых моделях KVM для USB клавиатур, имеющихся в продаже. Поэтому пришлось разработать такое устройство самому. Цена вопроса около 250 рублей, причем больше половины стоит корпус.Для анализа нажатий клавиш был был взят за основу алгоритм, описанный в статье USB Keylogger на AVR. Программа была переписана для микроконтроллера ATTiny 45, чтобы упростить схему и использовать дешевый микроконтроллер (также можно использовать и ATTiny 25, ATTiny 85). Принципиальная схема создана в программе SPlan 7.0 печатная плата в Sprint-Layout 5.0.

KVMcircuit  KVMpsb

 

Номиналы деталей указаны на принципиальной схеме. USB разъемы: розетки тип В — 2 шт. и тип А — 1 шт. Микроконтроллер использовался в корпусе  SOIC для поверхностного монтажа, поэтому он паяется на плату со стороны дорожек. Рядом с микроконтроллером имеются посадочные места для штырьков для подключения программатора, чтобы запрограммировать его уже после установки на плату. Для платы я использовал односторонний фольгированный текстолит, а вместо дорожек второго слоя используются проволочные перемычки. Корпус G431 90х50х24 мм от фирмы GAINTA.

G431

Переключение между каналами осуществляется двойным нажатием правой или левой клавиши Ctrl. Фююзы для ATTiny45 LOW FUSE BYTE: 0xCE, HIGH FUSE BYTE: 0xDF.

Готовое устройство представлено на фото. К нему подключены два кабеля со штекерами А-В, идущие к компьютеру и телевизору и USB приемник от беспроводного комплекта Клавиатура+Мышь.

SAMSUNG

Предупреждение: устройство не будет работать если попытаться подключить раздельные мышь и клавиатуру через USB хаб, т.к. я использовал комбинированный комплект с одним приемником, то этот вариант меня устроил. А выяснять, как меняется сигнал от клавиатуры, проходя через хаб, и переделывать модуль захвата USB сигнала, написанный на ассемблере, мне было лень :(. Кстати, также не будут работать клавиатуры у которых на корпусе есть USB разъемы для подключения дополнительных устройств, т.к. по сути они подключаются к компьютеру через встроенный в них хаб.

Предупреждение 2: Устройство работает только с клавиатурами работающими по протоколу USB 1.1 Low Speed. К сожалению оно не работает если клавиатура использует USB 1.1 High Speed.

PS. Если добавить к схеме дополнительные мультиплексоры, то можно сделать полноценный KVM с переключением видео сигнала VGA или HDMI.

[Ссылки]

  1. Исходные коды, принципиальная схема и макет печатной платы.
  2. USB Keylogger на AVR. Перехват нажатий клавиш USB клавиатуры.

Добавить комментарий