базовая идя взята отсюда: http://www.moddcom.net/index.php?modul=stati&tip=4&id=79
неудобство контсрукции в том, что от клавиатуры идет достаточно толстый провод (я например, люблю работать в кресле, с клавиатурой на коленях). Вдобавок, занимается ценный LPT-разъем.
Возникла идея объединить подключение в один интерфейс. Самый простой вариант - поставить USB hub в клавиатуру и подключить к нему и клавиатуру и LCD. Недостатки метода: цена, нехватка места в клавиатуре.
Следующая идея - подключить клавиатуру к контроллеру USB LCD. Идея показалась мне интересной и я зарылся в документацию. Оказалось, во-первых, что в одном интерфейсе можно объединить несколько устройств, во-вторых - что если эти устройства относятся к стандартным типам, их поддержкой будет заниматься система, в третьих - что драйвера стандартным устройствам тоже не требуются.
Далее идет мой рабочий документ по проекту (с некоторыми комментариями). Как говорится - задавайте вопросы.
HID-device: multimedia keyboard+LCD
- назначение.
[list]Предполагается добавление LCD к клавиатуре для индикации результатов мониторинга, дополнительной
информации и прочих вещей, которые обычно выводятся на LCD. Кроме того, туда же можно выводить
дополнительную информацию по режимам клавиатуры и не только (средняя скорость набора

то, что получается, видится со стороны PC, как стандартная USB клавиатура с multimedia и
power клавишами. + стандартное HID устройство.[list]
- отличия от аналогов.
[list]устройство подключается по одному USB проводу.
не требуются драйвера (даже dlportio)[list]
- элементная база
[list]окончательная схема будет после того, как будет дописана программная часть
планируется связка из ATmega32+PDIUSBD12, MT-12232B, 8 светодиодов, кварц 6MHz,
десятка два резисторов и конденсаторов. Себестоимость - порядка $10, не считая индикатора.
Встраивать планируется в клавиатуру Logiteck Internet Navigator
Если особо не увлекаться фонтами, должно хватить и ATmega16. (Я сейчас отлаживаюсь на
своей тестовой конструкции из ATmega16, PDIUSBD12 и PSE12864URT). [list]
- программная поддержка
[list]в начальном варианте планируется работа с любой программой, которая поддерживает HD44470 на
LPT в режиме эмуляции 20x2 или 20x4. Далее - планируется дописать собственную программу.[list]
- дополнительные применения
[list]на базе данной программно-аппаратной конструкции легко делать всяческие пульты и выносные консоли,
не требующиен дополнительных драйверов и плагинов, т.к. все команды транслируются в стандартные
нажатия клавиш/системные события. Например, можно сделать ИК-приемник, который не требует
плагинов, действует на все программы, которые понимают стандартные multimedia-клавиши и
может включать компьютер.[list]
- готовность прошивки покомпонентно и недоделанные места
[list]
отсуствует power management, требуется легкое переписывание обработки принятых пакетов
USB (реализация HID) - 40%
реализовать полный набор команд HID
USB (keyboard HID) - 90%
обработать HID_SetProtocol
обработать получаемые HID_Report (зажечь соответствующие светодиоды)
USB (multimedia&power HID) - 30%
составить список клавиш, которые должны выводиться и соответствие их клавишам клавиатуры
сделать операции, аналогичные keyboard HID
USB (LCD HID) - 0%
проверить работу нескольких HID на одном интерфейсе
адаптировать имеющийся протокол
реализовать протокол обмена
PS/2 - 75%
переписать посылку байта, чтобы она работала по прерыванию
сделать запрос на перепосылку некорректно принятого байта
keyboard - 98%
добавить мультимедийные клавиши
LCD (минимальный набор) - 80%
пакованные форматы данных
еще раз пройтись по коду и вычистить все, то не нужно
*LCD (графика) - 0%
вывод произвольной точки, линии, окружности (а нужно ли это?)
*LCD (фонты) - 25%
дорисовать фонт 5x7 (совместимый с MT-162)
нарисовать фонт 8x8 и 8x16, псевдографику
*автономная работа - 0%
написать список функций, которые устройство должно поддерживать автономно
*bootloader - 20%
выделить необходимую для работы бутлоадера часть прошивки, ужать ее в 2К[list]
план работ по приоритетам:
[list]
f/w - реализация HID
f/w - keyboard HID
f/w - keyboard
f/w - LCD HID
s/w - модуль для работы с HID
s/w - переделка перехватчика DLportIO для работы с HID
*milestone 1* - имеем работающее устройство на макетке
h/w - паяется окончательная версия схемы
f/w - bootloader
h/w - встраиваем индикатор в клавиатуру
*milestone 2* - имеется окончатальная версия железа
f/w - LCD фонты
f/w - multimedia&power HID
*milestone 3* - программа-минимум выполнена.
далее формулируется список того, что хотелось бы видеть в программной части[list]