Управление приборами через USB-порт компьютера на ATmega8. Простое управление приборами с компьютера
Управление устройствами через USB-порт компьютера.
П. ВЫСОЧАНСКИЙ, г. Рыбница, Приднестровье, Молдавия
Устройство компьютерного управления различными приборами, схема которого показана на рис. 1, функционально подобно описанному в , но подключается к USB-порту компьютера, который (в отличие от СОМ-порта) сегодня есть в каждом из них. Единственная микросхема устройства - распространенный микроконтроллер ATmega8. Он необходим для организации связи по шине USB. Хотя в нем и отсутствует специализированный аппаратный модуль, эта функция выполняется программно.
Резистор R1, подключенный между положительным выводом источника питания и линией D-шины USB, переводит ее в низкоскоростной режим LS со скоростью обмена 1,5 Мбит/с, что и позволяет расшифровывать посыпки компьютера программным способом. Резисторы R4 и В5 устраняют переходные процессы, возникающие при обмене информацией, что увеличивает стабильность работы. Конденсатор С1 блокирует импульсные помехи в цепи питания, что также улучшает стабильность работы устройства. Диоды VD1 и VD2 служат для понижения напряжения питания микроконтроллера приблизительно до 3,6 В - это требуетсядля согласования уровнен с шиной USB.
Сигналы управления приборами формируются на выходах РВ0-РВ5 и РСО, РС1 микроконтроллера. Высокий логический уровень - напряжение около 3,4 В.
Напряжение низкого уровня близко к нулю. К выходам можно подключать приборы, потребляющие ток не более 10 мА (от каждого выхода). Если требуются большие значения тока или напряжения, то следует использовать узлы согласования, показанные в на рис. 5 и 6. Устройство собрано на макетной плате, печатная не разрабатывалась Применены резисторы МЛТ, конденсаторы С2 и СЗ - керамические высокочастотные, С1 - К50-35 или аналогичный импортный. Диоды кремниевые с падением напряжения на переходе около 0,7 В. Программа для микроконтроллера разработана в среде Bascom-AVR версии 1.12.0.0. Для работы с шиной USB использована библиотека swusb.LBX, которая выполняет программное декодирование сигналов USB в режиме реального времени. Полученный в результате компиляции код программы из файла с расширением HEX следует загрузить во FLASH-память микроконтроллера. Для этого был использован программатор совместно со встроенной в Bascom-AVR утилитой. Состояние разрядов конфигурации микроконтроллера должно соответствовать показанному на рис.2
При первом подключении устройства к компьютеру операционная система обнаружит новое USB HID совместимое устройство с именем "uniUSB" и установит необходимые драйверы. Через несколько секунд устройство настроено и готово к использованию. Для работы с ним была создана программа UniUSB. Она представлена в двух вариантах: для 32-разрядных (х86) и 64-разрядных (х64) операционных систем семейства Windows. Работа 32-разрядной версии проверена в операционных: Windows 98, Windows XP, Windows 7, а 64-разрядной - только в Windows XP х64. Программа UniUSB написана иа языке PureBasic (версия 4.31) с использованием библиотеки пользовательских функций HID Lib, поддерживающей работу с USB HID устройствами. Внешний вид окна программы показан на Рис.3
В одной папке с ее исполняемым файлом должен находиться файл, называющийся UniUSB_код.txt или UniCOM_код.txt. Последний вариант необходим для совместимости с программой UniCOM, предложенной в . В этом файле хранится сценарий управления внешними приборами. При запуске программы данные из файла загружаются в таблицу, расположенную в главном окне, а при завершении работы сохраняются в файле. Щелчок левой кнопкой мыши по ячейкам таблицы позволяет изменять их состояние: 1 - высокий логический уровень, 0 или пусто - низкий логический уровень. Для добавления или удаления столбца таблицы нужно по ней щелкнуть правой кнопкой мыши и в появившемся меню выбрать требуемое действие. При подключении устройства к USB-порту программа обнаружит его и активирует кнопку, расположенную в верхней части окна на панели инструментов. Нажатием на эту кнопку запускают процесс перебора столбцов таблицы и установки указанных в них состояний выходов. Для большей наглядности слева от таблицы подсвечиваются номера выходов, на которых в данный момент установлен высокий логический уровень. Скорость перебора (время в миллисекундах между переходами от столбца к столбцу) задают в поле "Скорость, мс". Учтите, операционная система Windows -- многозадачная! Это означает, что процессорное время делится между множеством иногда скрытых от пользователя процессов, которые выполняются по очереди с учетом установленных в системе приоритетов. По этому не стоит ожидать большой точности выдерживания интервалов времени менее 100 мс.
Для кратковременной остановки перебора столбцов используйте кнопку, Повторное нажатие на нее продолжит перебор с места остановки. Кнопка полностью прекращает перебор столбцов таблицы. Если в процессе обмена информацией между компьютером и устройством произойдет сбой либо устройство будет отключено от разъема USB компьютера, программа сообщит об ошибке, выведя в строке состояния соответствующее сообщение.
ЛИТЕРАТУРА
1. Носов Т. Управление приборами через СОМ-порт компьютера - Радио, 2007, № 11,с.61,62.
2. Рыжков A. US-программатор микроконтроллеров AVR и AT89S, совместимый с AVR910. - Радио, 2008, № 7, с. 28, 29.
По материалам журнала "Радио 2`2011"
Скачать прошивку микроконтроллера и программу для PC можно
Автор разработал программу и устройство для управления различными электро и радиоприборами с помощью компьютера. Устройство подключают к одному из СОМ-портов, а управлять приборами можно как с помощью экранных клавиш, так и внешних датчиков.
Схема устройства показана на рис.1. Его основа - микросхема 74HC595, представляющая собой 8-разрядный сдвиговый регистр с последовательным вводом и последовательным и параллельным выводами информации. Параллельный вывод осуществляется через буферный регистр с выходами, которые имеют три состояния. Информационный сигнал подают на вход SER (вывод 14), сигнал записи - на вход SCK (вывод 11), а сигнал вывода - на вход RSK (вывод 12). На микросхеме DA1 собран стабилизатор напряжения 5 В для питания регистра DD1.
Рисунок 1. Схема устройства
Устройство подключают к одному из СОМ-портов компьютера. Информационные сигналы поступают на контакт 7 розетки XS1, сигналы завиписи информации - на контакт 4, а сигналы вывода информации - на контакт 3. Сигналы СОМ-порта согнласно стандарту RS-232 имеют уровни около -12 В (лог.1) и около +12 В (лог.0). Сопряжение этих уровней с входными уровнями регистра DD1 выполнено с помощью резисторов R2, R3, R5 и стабилитронов VD1-VD3 с напряжением стабилизации 5,1 В.
Сигналы управления внешними приборами формируются на выходах Q0-Q7 регистра DD1. Высокий уровень равен напряжению питания микросхемы (около 5 В), низкий - менее 0,4 В. Эти сигналы являются статическими и обновляются на момент поступления высокого уровня на вход RSK (вывод 12) регистра DD1. Светодиоды HL1-HL8 предназначены для наблюдения за работой устройства.
Управление устройством осуществляется с помощью разработанной автором программы UmiCOM. Внешний вид главного окна программы показан на рис.2.
Рисунок 2. Внешний вид программы UniCOM
Псоле ее запуска следует выбрать свбодный СОМ-порт и скорость переключения выходов. В строки таблицы вводят состояние каждого из выходов устройства (высокий уроень - 1, низкий - 0 или пусто). Программа "перебирая" в рабочем цикле столбцы таблицы, устанавливает на выходах устройства соответствующие логические уровни. Занесенная в таблицу информация автоматически сохраняется при завершении работы программы и загружается вновь при ее следующем запуске. Для наглядности, в левой части окна программы подсвечены номера выходов, на которых установлен высокий уровень.
Управление приборами можно осуществлять и с помощью внешних контактных датчиков, которые подключают к входам 1-3 и линии +5 В. Они должны работать на замыкание или размыкание контактов. Пример схемы подключения датчиков показан на рис.3.
Рисунок 3. Подключение контактных датчиков
При нажатии на экранную клавишу "Настройка входов" открывается окно "Согласование входов и выходов" (рис.4. ), где выбирают входы, которые будут изменять состояние выходов. Имитировать работу входов можно нажимая на экранные клавиши "1", "2", "3" основного окна программы. В тех случаях, когда приборами нельзя управлять с помощью логических уровней, следует применить реле, схема подключения которого показана на рис.5 , или транзисторную оптопару (рис.6. ).
Рисунок 4. Согласование входов и выходов
Рисунок 5. Схема подключения реле
Рисунок 6. Схема подключения транзисторной оптопары
Большинство деталей монтируют на печатной плате из односторонего фольгированного стеклотекстолита толщиной 1...1,5 мм, чертеж которой показан на рис.7. Резисторы R1-R6 монтируют на выводах розетки XS1.
Рисунок 7. Чертеж печатной платы
В устройстве применены резисторы С2-23. МЛТ, оксидные конденсаторы - К50-35 или импортные, розетка XS1 - DB9F. Помимо указанных на схеме стабилитронов, можно применить BZX55C5V1 или отечественные КС174А, светодиоды - любые. Питают устройство от стабилизированного или нестабилизированного источника питания нпаряжением 12 В и током до 100 мА.
13-01-2014
ATiny2313
Захаров Денис, Украина
Как известно, существует достаточное количество интерфейсов, с помощью которых микроконтроллер (МК) может общаться с внешними устройствами. Если необходимо связать МК с персональным компьютером или ноутбуком, то с уверенностью можно сказать, что лучше всего использовать интерфейс COM-порта RS-232.
Причина такого выбора очевидна - практически все контроллеры имеют аппаратные модули UART, с помощью которых можно передавать информацию при минимальном расходе ресурсов МК. Кроме того, существует множество хорошо зарекомендовавших себя программ, предназначенных для работы с COM-портом. Поскольку сигналы МК имеют уровни TTL, для согласования с интерфейсом RS-232 необходим преобразователь уровней. Часто его выполняют на основе доступной и популярной микросхемы MAX232 .
Рисунок 1. |
Представленное устройство (Рисунок 1) предназначено для управления приборами с помощью любого ПК, имеющего порт USB. Современные компьютеры и ноутбуки имеют по несколько таких портов. С помощью этого комплекса можно производить управление светом, телевизором и другими приборами. Исполняющие устройства не обязательно должны находиться в непосредственной близости от ПК.
Прибор состоит из вполне доступных и распространенных элементов. Обе микросхемы - микроконтроллеры ATtiny2313 семейства . Первый контроллер подключен к USB-порту компьютера и выполняет функцию конвертора форматов USB-COM. Второй подключается к первому и все время сканирует команды, которые посылаются с ПК через терминальную программу Terminal v1.9b.
Подключенный к выводу 2 USB резистор R4 переводит устройство в низкоскоростной режим LS, позволяющий при обмене данными со скоростью 1.5 Мбит/с с помощью программы выпонять расшифровку посылок от ПК.
С помощью резисторов R2 и R3 происходит устранение переходных процессов. Конденсатор С5 блокирует импульсные помехи в цепи питания. Стабилитроны D1 и D2 необходимы для согласования логических уровней МК и USB входа ПК. Для безошибочной передачи данных между контроллерами частоты кварцевых резонаторов должны быть равны 12 и 4 МГц.
К выводам /RESET следует подключить подтягивающие резисторы, чтобы в дальнейшем избежать произвольного сброса МК из-за влияния помех и статических напряжений. В данной схеме все команды отображаются на светодиодах, подключенных к порту В. Чтобы управлять какими-либо устройствами, необходимо подключать выходы контроллера к реле (Рисунок 2).
Собрать устройство можно на макетной плате, хотя лучше, все же, на полноценной печатной плате. Элементы можно разместить, например, так, как показано на Рисунке 3.
Программа для микроконтроллера U1 разработана товарищем GetChiper в среде Bascom-AVR. Для работы с шиной USB использована библиотека swusb.LBX . С ее помощью выполняется программное декодирование USB протокола в режиме реального времени. Для работы устройства с ПК, нужно установить соответствующие драйверы, скопировав их на жесткий диск. При первом подключении устройство опознается и запросит драйвер. Далее нужно указать путь к папке с файлами, и все заработает.
Программа микроконтроллера U2 была написана мною в среде AVRStudio на языке ассемблера. Блок-схема алгоритма работы МК представлена на Рисунке 4. Аппаратный модуль UART следует настроить на прерывание по завершению приема данных. Сам МК не будет выполнять ни одной функции, пока не наступит прерывание. Для снижения энергопотребления можно воспользоваться режимом sleep, но в данной конструкции этого делать не понадобилось. Как только из терминала ПК последуют команды, МК мгновенно перейдет к их сканированию. На данный момент контроллер поддерживает следующую систему команд:
-on1, on2, on3, on4, on5, on6, on7, on8
- команды установки портов в «лог. 1»;
-off1, off2, off3, off4, off5, off6, off7, off8
- команды установки портов в «лог. 0»;
-ser - установить все порты в активное состояние «лог. 1»;
-clr
- сбросить все порты в состояние «лог.0».
После окончания ввода каждой команды необходимо нажимать Enter. Таким образом МК сможет определить конец команды и приступить к ее сканированию. На каждую верную команду контроллер будет отвечать «ok». Если ввести неверные данные, то в терминальную строку вернется «error». Пример выполнения команды показан на Рисунке 5.
Версия прошивки 1.0. Выставлять фьюзы необходимо в соответствии с Рисунком 6. Разрабатывается следующая версия прошивки, где будет происходить самообучение МК и изменение систем команд в терминале.
Программное обеспечение МК, виртуальная модель Proteus и драйвер для ПК -
Протокол передачи данных между МК и ПК- скачать
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться . |
- ....вообще-то хотелось увидеть соопрежение м/у USB-портом одного компьютера с COM-портом второго...или LPT-порта третьего...
- Спасибо! Опечатка исправлена:)
- Зачем использовать 2 МК? Неужели у Attiny2313 мало flash? Или просто не хватает портов I/O? Тогда ладно, видно, что USB висит на INT0/INT1.
- Сопротивление катушек маломощных реле в районе 100-200 Ом, не учитывая насыщенный транзистор (это же не пускатель, и не контактор). Так что 50-200 мА подходящий ключ не испугается. Материал очень интересен в плане привязки МК к USB без всяких интерфейсных микросхем и без присутствия в структуре МК аппаратного USB. Но учитывая цели и задачи первоисточника http://www.recursion.jp/avrcdc/cdc-232.html, из двух МК один выполняет всё же функции преобразователя USB-COM. И весьма дешёвого преобразователя, что безусловно радует.
- Вот интересный гражданин попался с «дворянскими замашками», судя по нику. О каких экстремумах идёт речь? Вроде в материале нет даже упоминания о типе реле или транзисторов. И если реле запитывается от 5В USB то, безусловно, хотелось бы минимизировать потребление со стороны хоста на ПК. Этого можно добиться оптронами и дополнительным питанием реле со стороны нагрузки, что усложняет схему. Или ещё пару вариантов. Разве акцент в статье сделан на оптимизации? Автор добился своего и правильно делает, что не выкладывает конкретную плату. Для того, кто будет повторять, данного узла достаточно.
- Да, статейка еще та... но стоит ли так опситраться? Я тоже хотел кое что прокомментировать сразу как ее прочел, и диод в том числе. Но анонимно тут нельзя. Вот зачем автору AVR-CDC? Я не заметил что где-то в схеме используются сигналы DTR, DTS, RTS, CTS. V-USB не хватило? Про два "кирпича" уже написали выше, - хватило бы и одного. А про диод уже исправлено, слава Будде! Диод нужен для защиты транзистора от импульса напряжения самоиндукции обмотки реле, в момент размыкания тока. Вот, кстати, вспомнил одну реализацию. Статья была в журнале Радио, но и в интернетах нашлась, кому интересно можете глянуть.