Устройство компьютерного управления
различными приборами, схема которого показана на рис. 1, функционально подобно
описанному в [1], но подключается к USB-порту компьютера, который (в отличие
от СОМ-порта) сегодня есть в каждом из них. Единственная микросхема устройства
— распространенный микроконтроллер ATmega8. Он необходим для организации
связи по шине USB. Хотя в нем и отсутствует специализированный аппаратный
модуль, эта функция выполняется программно. Резистор R1, подключенный между
положительным выводом источника питания и линией D-шины USB, переводит ее в низкоскоростной
режим LS со скоростью обмена 1,5 Мбит/с, что и позволяет расшифровывать посылки
компьютера программным способом. Резисторы R4 и R5 устраняют переходные
процессы, возникающие при обмене информацией, что увеличивает стабильность работы.
Конденсатор С1 блокирует импульсные помехи в цепи питания, что также улучшает
стабильность работы устройства. Диоды VD1 и VD2 служат для понижения напряжения
питания микроконтроллера приблизительно до 3,6 В — это требуется для
согласования уровней с шиной USB. Сигналы управления приборами формируются на
выходах РВ0—РВ5 и РС0, РС1 микроконтроллера. Высокий логический уровень —
напряжение около 3,4 В. Напряжение низкого уровня близко к нулю. К выходам
можно подключать приборы, потребляющие ток не более 10 мА (от каждого выхода).
Если требуются большие значения тока или напряжения, то следует использовать узлы
согласования, показанные в [1] на рис. 5 и 6.
Устройство собрано на макетной плате,
печатная не разрабатывалась. Применены резисторы МЛТ, конденсаторы С2 и С3 —
керамические высокочастотные, С1 — К50-35 или аналогичный импортный. Диоды
кремниевые с падением напряжения на переходе около 0,7 В. Программа для микроконтроллера
разработана в среде Bascom-AVR версии 1.12.0.0. Для работы с шиной USB
использована библиотека swusb.LBX, которая выполняет программное декодирование сигналов
USB в режиме реального времени. Полученный в результате компиляции код программы
из файла с расширением HEX следует загрузить во FLASH-память микроконтроллера.
Для этого был использован программатор [2] совместно со встроенной в Bascom-AVR
утилитой. Состояние разрядов конфигурации микроконтроллера должно соответствовать
показанному на рис. 2. При первом подключении устройства к компьютеру операционная
система обнаружит новое USB HID совместимое устройство с именем
"uniUSB" и установит необходимые драйверы. Через несколько секунд
устройство настроено и готово к использованию.
Для работы с ним была создана программа
UniUSB. Она представлена в двух вариантах: для 32-разрядных (х86) и 64-разрядных
(х64) операционных систем семейства Windows. Работа 32-разрядной версии проверена
в операционных системах Windows 98, Windows ХР, Windows 7, а 64-разрядной —
только в Windows ХР х64. Программа UniUSB написана на языке PureBasic (версия
4.31) с использованием библиотеки пользовательских функций HID_lib,
поддерживающей работу с USB HID устройствами. Внешний вид окна программы
показан на рис. 3. В одной папке с ее исполняемым файлом должен находиться
файл, называющийся UniUSB_Код.txt или UniCOM_Код.txt. Последний вариант необходим
для совместимости с программой UniCOM, предложенной в [1]. В этом файле
хранится сценарий управления внешними приборами. При запуске программы данные
из файла загружаются в таблицу, расположенную в главном окне, а при завершении
работы сохраняются в файле. Щелчок левой кнопкой мыши по ячейкам таблицы позволяет
изменять их состояние: 1 — высокий логический уровень, 0 или пусто — низкий
логический уровень. Для добавления или удаления столбца таблицы нужно по ней
щелкнуть правой кнопкой мыши и в появившемся меню выбрать требуемое действие.
При подключении устройства к USB-порту
программа обнаружит его и активирует кнопку , расположенную в верхней части
окна на панели инструментов. Нажатием на эту кнопку запускают процесс
перебора столбцов таблицы и установки указанных в них состояний выходов. Для
большей наглядности слева от таблицы подсвечиваются номера выходов, на
которых в данный момент установлен высокий логический уровень. Скорость
перебора (время в миллисекундах между переходами от столбца к столбцу) задают
в поле "Скорость, мс".
Учтите, операционная система Windows
— многозадачная! Это означает, что процессорное время делится между множеством
иногда скрытых от пользователя процессов, которые выполняются по очереди с
учетом установленных в системе приоритетов. Поэтому не стоит ожидать большой
точности выдерживания интервалов времени менее 100 мс. Для кратковременной
остановки перебора столбцов используйте кнопку Повторное нажатие на нее
продолжит перебор с места остановки. Кнопка полностью прекращает перебор столбцов
таблицы. Если в процессе обмена информацией между компьютером и устройством
произойдет сбой либо устройство будет отключено от разъема USB компьютера,
программа сообщит об ошибке, выведя в строке состояния соответствующее
сообщение.
ЛИТЕРАТУРА
1. Носов Т. Управление приборами
через СОМ-порт компьютера. — Радио, 2007, № 11,0.61,62.
2. Рыжков А. US-программатор
микроконтроллеров AVR и AT89S, совместимый с AVR910. — Радио, 2008, № 7, с.
28, 29.
От редакции. Программы для микроконтроллера и компьютера находятся
на нашем FTP-сервере по адресу ftp:// ftp.radio.ru/pub/2011/02/uniUSB.zip
Источник: Радио. №2. 2011 |
Категория: Примочки для компьютера | Добавлен: 04.04.2011
| Автор: П. ВЫСОЧАНСКИЙ
| Просмотров: 7649
|