Имя: KBDCntr-1.1 Основан/Завершен: июнь 2001г / февраль 2002г Участники:Роман Савоченко (автор, разработчик) Описание: Проект KBDCntr-1.1 является частью программного проекта Complex2 и предназначен для создания расширенного контроллера технологической клавиатуры. Материалы:SubversionАрхив KBDCntr, Фотогалерея
1 Цели
Необходимость создания нового контроллера технологической клавиатуры возникла в процессе реализации проекта SCADA системы "Complex2". Причиной тому явилось то, что SCADA "Complex2", технологическая клавиатура и говорящая система являются ключевыми элементами Унифицированного Программно-Технического Комплекса (УПТК) "ДIЯ", следовательно существенные ограничения одного узла могут значительно ограничить функции системы в целом.
Старый контроллер (контроллер клавиатуры) имел следующие существенные недостатки:
Генерация только сканкодов нажатия.
Генерация только однобайтных последовательностей сканкода.
Невозможность, и даже опасность для контроллера, одновременного нажатия нескольких клавиш.
Невозможность простой модификации микропрограммы контроллера.
Несогласованность сканкодов данного контроллера со сканкодами стандартной офисной клавиатуры. Как следствие — проблемы с некоторыми современными ОС.
Зависимость яркости отдельного светодиода от общего количества зажженных.
Техническая избыточность.
Исходя из вышеперечисленных ограничений предыдущей разработки формировались цели новой разработки:
Генерация как сканкодов нажатия, так и сканкодов отпускания.
Поддержка многобайтовых последовательностей сканкода.
Поддержка нажатий с удержанием одной или нескольких клавиш.
Доступность простой модификации микропрограммы контроллера.
Согласование сканкодов с офисной клавиатурой и возможность простой смены таблицы последовательностей сканкодов.
Независимость яркости свечения светодиодов от общего количества зажженных.
Поддержка аутентификации ключом.
Устранение технической избыточности.
2 Разработка
Проект разработки нового контроллера технологической клавиатуры основан в июле 2001г.
Первоочередной задачей было получение исходной микропрограммы имеющегося контроллера. Задачу удалось решить благодаря наличию версий контроллера, использующего внешнюю ПЗУ на основе микросхемы КР573РФ2. Дизассемблированная микропрограмма послужила основой для новой разработки. Исходя из принципа открытых исходников (Open Source) исходные тексты модифицированной программы публикуются под открытой лицензией GPL.
Дальнейшая разработка шла в области схемотехники. В рамках проекта контроллера клавиатуры были приняты следующие схемотехнические решения:
В качестве микропроцессорного ядра разработки был выбран однокристальный микроконтроллер фирмы ATMEL AT89C4051. Основанием для выбора данного микропроцессорного контроллера послужило:
совместимость с микропроцессорными контроллерами семейства MCS®51
встроенная флеш память объёмом 4кб;
два порта ввода/вывода (15 бит);
компактность исполнения: 20pin DIP.
Для обвязки микропроцессора использованы отечественные микросхемы серии КР1533.
Для обеспечения возможности одновременного нажатия нескольких клавиш добавлена диодная развязка.
Управление светодиодами выполнено на основе транзисторов КТ817Г в ключевом режиме с подпором прямосмещённым диодом в эмиторе.
Благодаря встроенной (4кб) флеш-памяти, совместно с установкой микропроцессора на панель, удалось достичь простой модификации, а за счёт компактного исполнения исключить избыточность.
Разработка завершена в феврале 2002г. В качестве результатов разработки предоставлен комплект документации и полностью функционирующий опытный образец (рис. 1)
Рис. 1. Опытный образец контроллера клавиатуры.
3 Материалы
Использованные программно-технические средства
Для разработки микропрограммы контроллера использован компилятор из ассемблера процессоров 51 серии: asm51.exe. Компилятор работает в среде DOS или любого DOS-эмулятора, например DosEmu.
Сборка образа микропрограммы выполнялась утилитой: hex2bin.exe. Утилита работает в среде DOS или любого DOS-эмулятора, например DosEmu.
Программирование AT89C4051 выполнялось программатором Unipro с помощью его программы UniPro v4.2. Утилита работает в среде DOS или любого DOS-эмулятора, например DosEmu.
В процессе проектирования печатной платы использовался пакет PCAD8.
В процессе разработки конструкторских чертежей использовано программу QCAD. QCAD является свободным и кроссплатформенным приложением.
Документация по проекту выполнена в офисном пакете OpenOfiice. OpenOfiice является свободным и кроссплатформенным приложением.