Управление устройствами с помощью компьютера. UniCOM - управление устройствами через COM-порт компьютера

Устройство компьютерного управления
различными приборами, схема которого показана на рис. 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 мА (от каждого выхода).
Если требуются большие значения тока или напряжения, то следует использовать узлы
согласования, показанные в на рис. 5 и 6.

Устройство собрано на макетной плате,
печатная не разрабатывалась. Применены резисторы МЛТ, конденса­торы С2 и С3 -
керамические высоко­частотные, С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 ХР, Windows 7, а 64-разрядной -
только в Windows ХР х64. Программа UniUSB написана на языке PureBasic (версия
4.31) с исполь­зованием библиотеки пользовательс­ких функций HID_lib,
поддерживающей работу с USB HID устройствами. Внеш­ний вид окна программы
показан на рис. 3. В одной папке с ее исполняемым файлом должен находиться
файл, называющийся UniUSB_Код.txt или UniCOM_Код.txt. Последний вариант необходим
для совместимости с про­граммой UniCOM, предложенной в . В этом файле
хранится сценарий управ­ления внешними приборами. При запуске программы данные
из файла загружаются в таблицу, расположенную в главном окне, а при завершении
рабо­ты сохраняются в файле. Щелчок левой кнопкой мыши по ячейкам таблицы поз­воляет
изменять их состояние: 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

Автор разработал программу и устройство для управления различными электро и радиоприборами с помощью компьютера. Устройство подключают к одному из СОМ-портов, а управлять приборами можно как с помощью экранных клавиш, так и внешних датчиков.

Схема устройства показана на рис.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 мА.

Скорость переключения

Выбор COM-порта

Кнопка старт и пауза

(включение порта)

Кнопка стоп

(отключение порта)

Кнопка настройки выходов

Кнопки ручного

управления входами (1, 2, 3)

Кнопка очистки таблицы

Кнопка вызова справки

Кнопка выхода из программы

Индикаторы, имитирующие

работу выходов

Сетка таблицы со значениями

(пустые ячейки
приравниваются к нулю)

Для управления нагрузкой в схемах с постоянным напряжением, например 24В, можно использовать любые мощные составные транзисторы - в нашем случае КТ829.

Для коммутации переменного тока 220В проще всего использовать так называемый полупроводниковый ключ переменного тока, который имеет на входе оптодрайвер с детектором нуля фазы, что обеспечивает гальваническую развязку.

Для увеличения коммутируемого тока симистор устанавливается на радиатор. Обратите внимание - в высоковольтной части использованы сопротивления мощностью 0,5 Вт.

Не забывайте о технике безопасности - во время работы коммутатора не касайтесь оголенных элементов, а при перепайке деталей и проводов отключите коммутатор от сети.

Плата выполнена из одностороннего фольгированного текстолита. Размер платы 30х25мм. На плате под корпусом микросхемы впаяна перемычка. В целях защиты от перегрева микросхемы во время пайки использована 16-контактная панель под микросхему.

Для управления выходами (светодиодами), устройство достаточно соединить с ПК 4х проводным шнуром. Шнур распаивается на стандартный разъем к COM-порту - розетку DB9.

Сигнал +5В для общего провода цифровых входов берётся из схемы устройства. Сопротивления в линиях цифровых входов можно распаять в корпусе розетки DB9.

К цифровым входам можно подключить кнопки, тумблера, микропереключатели.

Справочная информация

Основой устройства является доступная микросхема 74hc595, представляющая собой последовательный регистр сдвига с выходной блокировкой. Для управления этой микросхемой достаточно трёх сигнальных линий. В нашем случае сигналы инициируются в программе управления UniCOM и выдаются через интерфейс RS-232 (COM-порт). В качестве сигнальных линий в этом интерфейсе использованы линии 9-контактного разъема: RTS - 7 контакт, DTR - 4 контакт и TxD - 3 контакт.

Принцип работы микросхемы 74hc595 заключается в последовательной записи логических сигналов высокого и низкого уровней, подаваемых на вход DS (14 ножка). Запись осуществляется задним фронтом (переход из лог. 1 в лог. 0) на входе SH_CP (11 ножка). Вывод записанных данных происходит также задним фронтом, но на входе ST_CP (12 ножка). Таким образом, на ножках 1-7 и 15 появляются уровни последних восьми записанных сигналов.

Высокому уровню сигнала на выходах (ножки 1-7 и 15) соответствует напряжение питания микросхемы - в нашем случае +5 Вольт, а низкому уровню соответствует 0 Вольт. Сигналы на выходах являются статическими, т.е. неизменными до тех пор, пока не придёт очередной импульс на вход ST_CP (12 ножка). Необходимо отметить, что снижение напряжения питания ниже минимального уровня ведет к сбросу сигналов на выходах. Согласно документации на микросхему, минимальное напряжение питания составляет 2 вольта.

Сопряжение интерфейса RS-232 с микросхемой 74hc595 сделано посредством стабилитронов на 5,1В. Согласно спецификации на RS-232 высокий уровень сигнала лежит в диапазоне от +3 до +25В, что позволяет нам организовать обратную связь с программой управления UniCOM.

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 не хватило? Про два "кирпича" уже написали выше, - хватило бы и одного. А про диод уже исправлено, слава Будде! Диод нужен для защиты транзистора от импульса напряжения самоиндукции обмотки реле, в момент размыкания тока. Вот, кстати, вспомнил одну реализацию. Статья была в журнале Радио, но и в интернетах нашлась, кому интересно можете глянуть.