Управління навантаженням через usb схему. Управління навантаженням через usb. Корисні функції програми USBDeview

Пристрій комп'ютерного керування
різними приладами, схема якого показано на рис. 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

Утиліта для контролю над підключеними та відображення раніше використовуваних USB-пристроїв. USBDeviewпокаже детальну інформацію про кожен складовий пристрій. Дозволяє керувати активними USB-портами та діагностувати швидкість передачі даних.

USBDeview огляд

Програма виводить відомості для кожного USB-пристрою з можливістю протестувати його:

  • Назва пристрою
  • Опис
  • Тип пристрою
  • Серійний номер (для пристроїв зберігання даних)
  • Дата та час додавання пристрою
  • VendorID, ProductID та багато іншого

Повне керування над підключеним через порт USB обладнанням:

  • Видалити із системи, які раніше використовували USB-пристрої
  • Від'єднати, підключений на даний момент пристрій
  • Вимкнення та увімкнення USB-пристроїв

USBDeview включає кілька корисних інструментів. Наприклад Speed ​​Test для USB Flash Drives, який проводить діагностику швидкості читання – запис підключеного флеш-накопичувача. Майте на увазі вам потрібно, щонайменше 100 Мб вільного дискового простору для того, щоб успішно зробити цей тест швидкості.

За допомогою USBDeview, ви можете керувати властивостями автозапуску для пристроїв зберігання даних USB. Існує можливість роботи на віддаленому комп'ютері, але для цього необхідно увійти в систему з правами адміністратора.

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

В наш час у кожній майстерні з ремонту електротехніки, так, втім, і у кожного радіоаматора робочий день починається з включення ПК, а потім і допоміжного електрообладнання. Втім з включення ПК робочий день починається не тільки у радіоаматорів, а й у багатьох користувачів цього «девайсу», що щільно увійшло в наше життя. А ось щодня вмикати вранці і вимикати ввечері, ну, припустимо, принтер, активні колонки, настільну лампу та мало чого можна зустріти у пересічного користувача, трохи набридає. Виходячи з обумовлених завдань була мета створити комутатор навантаження, призначений для включення-вимкнення всіх супутніх пристроїв. Погоджуся можна піти шляхом найменшого опору і поставити на звичайний вимикач, але, схоже, це не шлях для радіоаматора.Ми будемо робити набагато зручніше - вбудуємо автомат у мережевий фільтр:

Так як пристрій відстежує факт увімкнення-вимкнення пристрою за принципом «відомий-ведучий» найпростіший спосіб – використовувати USB порт. Позначу відразу, при використанні USB порту пристрій працює в ноутбуках та комп'ютерах із блоком живлення, що вимикає всі джерела живлення. Наприклад, в останніх моделяхблоків живлення +5 вольт USB порту є як чергове навіть при вимкненому блоці. З ними пристрій не працюватиме, точніше буде, але постійно ввімкнено. Тут необхідно як джерело сигналу використовувати якийсь інший порт, і, відповідно, узгоджувати сигнал джерела та виконавчого механізму.

В даному пристроївиконавчим механізмом служить реле, з контактами, розрахованими на 16 ампер та з котушкою на 5 вольт. Використання реле виконує гальванічну розв'язку джерела сигналу та мережі 220 вольт.

Після проведення низки експериментів було встановлено, що при живленні, згідно з паспортними даними, +5 вольт реле споживає 150 мА струму. Якщо використовувати стаціонарний комп'ютер - немає жодних проблем, тому що +5 вольт USB порту йдуть безпосередньо з блоку живлення і не сильно навантажують його. Якщо все вищесказане влаштовує на цьому - можна зупинитися і зробити свій варіант за наведеною нижче схемою.

Але якщо планується використовувати ноутбук, то як би проганяти додаткові 150 мА через комп'ютер не бажано, у такому випадку необхідно використовувати додатковий блок живлення 5 вольт. В даному варіанті було використано імпульсне джерело живлення від зарядного пристроювід мобільного телефона. Можна використовувати будь-яке нестабілізоване джерело живлення за умови, що він може забезпечити напругу 5 вольт і струм близько 250 мА з урахуванням запасу. Також можна використовувати й іншу напругу, але в такому разі необхідно буде взяти реле з відповідним напругою живлення.Для узгодження джерела сигналу з реле та джерелом живлення необхідно встановити транзисторний ключ типу:

Транзистор обраний типу КТ815 з будь-якою літерою та резистор 1 кОм, діод - КД522. За такої схеми включення струм споживання показав 4 мА, що не настільки суттєво для ноутбука. Світлодіод LED1 та LED2 позначають стан ланцюга. За бажанням разом із резисторами їх можна виключити зі схеми.

Пристрій управління 220 зібрано у вільному місці корпусу розетки - мережевого фільтра.Файл схеми в спланізнаходиться

Пристрій комп'ютерного управління різними приладами, схема якого показано на рис. 1, підключається до порту USB комп'ютера, який сьогодні є в кожному з них. Єдина мікросхема пристрою – поширений мікроконтролер ATmega8. Він необхідний організації зв'язку по шині USB. Хоча у ньому немає спеціалізований апаратний модуль, ця функція виконується програмно.

Малюнок 1

Резистор R1, підключений між позитивним виведенням джерела живлення та лінією D-шини USB, переводить її в низькошвидкісний режим LS зі швидкістю обміну 1,5 Мбіт/с, що дозволяє розшифровувати посилки комп'ютера програмним способом. Резистори R4 та R5 усувають перехідні процеси, що виникають при обміні інформацією, що збільшує стабільність роботи. Конденсатор С1 блокує імпульсні перешкоди в ланцюзі живлення, що також покращує стабільність роботи пристрою Діоди VD1 і VD2 служать для зниження напруги живлення мікроконтролера приблизно до 3,6 - це потрібно для узгодження рівнів з шиною USB.

Сигнали управління приладами формуються на виходах РВ0-РВ5 та РС0, РС1 мікроконтролера. Високий логічний рівень – напруга близько 3,4 В. Напруга низького рівня близько до нуля. До виходів можна підключати прилади, що споживають струм трохи більше 10 мА (від кожного виходу). Якщо потрібні великі значення струму або напруги, слід використовувати вузли узгодження.

Пристрій зібрано на макетній платі, друкована не розроблялася. Застосовані резистори МЛТ, конденсатори С2 та СЗ – керамічні високочастотні, С1 – К50-35 або аналогічний імпортний. Діоди кремнієві з падінням напруги на переході близько 0,7 Ст.

Програма для мікроконтролера розроблена у середовищі Bascom-AVRверсії 1.12.0.0. Для роботи з шиною USB використано бібліотеку swusb.LBX, яка виконує програмне декодування сигналів USB у режимі реального часу. Отриманий у результаті компіляції код програми з файлу з розширенням HEX слід завантажити до FLASH-пам'яті мікроконтролера. Стан розрядів конфігурації мікроконтролера має відповідати показаному на рис. 2.

Малюнок 2

При першому підключенні пристрою до комп'ютера операційна система виявить нове USB НIDсумісний пристрій з ім'ям " 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.

Малюнок 3

В одній папці з її виконуваним файлом повинен бути файл, що називається UniUSB_KOfl.txt. У цьому файлі зберігається сценарій керування зовнішніми приладами. Під час запуску програми дані з файлу завантажуються в таблицю, розташовану у головному вікні, а при завершенні роботи зберігаються у файлі. Клацніть лівою кнопкою миші по осередках таблиці дозволяє змінювати їхній стан: 1 - високий логічний рівень, 0 або порожньо - низький логічний рівень.

Для додавання або видалення стовпця таблиці потрібно по ній клацнути правою кнопкою миші і в меню вибрати необхідну дію. При підключенні пристрою до порту USB програма виявить його і активує кнопку "Пуск" , розташовану у верхній частині вікна на панелі інструментів. Натисканням на цю кнопку запускають процес перебору стовпців таблиці та встановлення зазначених у них станів виходів. Для більшої наочності ліворуч від таблиці підсвічуються номери виходів, у яких зараз встановлено високий логічний рівень. Швидкість перебору (час у мілісекундах між переходами від стовпця до стовпця) задають у полі "Швидкість, мс".

Врахуйте, операційна система Windows – багатозадачна! Це означає, що процесорний час ділиться між безліччю прихованих від користувача процесів, які виконуються по черзі з урахуванням встановлених у системі пріоритетів. Тому не варто очікувати на велику точність витримування інтервалів часу менше 100 мс.

Для короткочасного зупинення перебору стовпців використовуйте кнопку "Пауза". Повторне натискання продовжить перебір з місця зупинки. Кнопка "Стоп" повністю зупиняє перебір стовпців таблиці. Якщо в процесі обміну інформацією між комп'ютером і пристроєм відбудеться збій або пристрій буде відключено від роз'єму USB комп'ютера, програма повідомить про помилку, вивівши у рядку стану відповідне повідомлення.

Джерело: Радіо №2, 2011 р.