Главная Новости Прайс-лист О магазине Как купить? Оплата/Доставка Корзина Контакты  
  Авторизация  
 
Логин
Пароль

Регистрация   |   Мой пароль?
 
     
  Покупателю шин  
  Новости  
Banwar

Наша сеть партнеров Banwar. Новое казино "Пари Матч" приглашает всех азартных игроков в мир больших выигрышей и захватывающих развлечений.

  Опрос  
 
Летние шины какого производителя Вы предпочитаете использовать?
 Michelin
 Continental
 GoodYear
 Dunlop
 Nokian
 Fulda
 Bridgestone
 Hankook
 Kumho
 Другие

Всего ответов: 1035
 
     
  Добро пожаловать в наш новый всеукраинский интернет-магазин!  

Віртуальний USB-порт в лабораторній практиці

Наша сеть партнеров Banwar

Кухтецкій С.В., [email protected]

Підключення вимірювального і контролюючого обладнання до комп'ютера є невід'ємним атрибутом будь-якого сучасного фізико-хімічного експерименту. Віртуальний USB-порт - один з дуже простих і ефективних способів вирішення такого завдання. У статті розглянуті способи реалізації таких портів на базі недорогих мікроконтролерів AVR, аналізуються особливості апаратного виконання і програмного забезпечення. Наводяться практичні приклади рішень кількох типових задач автоматизації експерименту за допомогою віртуальних USB-портів. У тому числі - до сих пір ще актуальне завдання заміни паперових самописців в старих, морально застарілих, але ще функціонують лабораторних приладах.

Вступ

В даний час універсальні мікроконтролери часто використовуються при розробці «інтелектуальних» датчиків, лабораторних приладів та контролерів збору даних. Такі мікроконтролери мають досить багатим арсеналом вбудованих периферійних пристроїв, швидкодією і пам'яттю, щоб забезпечити управління, оцифровку, попередню обробку і накопичення інформації з датчиків. Однак, все добре, поки призначений для користувача інтерфейс обмежений лише алфавітно-цифровою індикацією і декількома кнопками управління. Як тільки потрібно запрограмувати більш складний режим збору інформації або візуалізувати великий масив даних, то без користувальницького інтерфейсу, реалізованого на персональних комп'ютерах (PC), обійтися важко. Тому завдання ефективного обміну даними між мікроконтролером і PC досі залишається актуальною.

Більшість сучасних мікроконтролерів має набір послідовних інтерфейсів для зв'язку із зовнішнім світом (наприклад, USART). З іншого боку, послідовний інтерфейс на основі стандарту RS-232 вже давно не задовольняє розробників через порівняно низьких швидкостей передачі даних, неможливістю підключення пристроїв «на льоту», недостатньою кількістю (а часто просто відсутністю) відповідних портів в сучасних ноутбуках і «нетбуках» . Рішенням є використання інтерфейсу USB, вільного від перерахованих вище недоліків [1] .

Можливі наступні варіанти реалізації USB для зв'язку мікроконтролера з PC.
1. Застосування окремого спеціалізованого контролера шини USB, пов'язаного з універсальним мікро контролером по одному з доступних йому каналів.
2. Використання універсального мікроконтролера з вбудованим USB-портом.
3. Емуляція USB на звичайних універсальних мікроконтролерів. При цьому для фізичної зв'язку з шиною USB використовуються дві цифрові лінії мікроконтролера (на одній повинна бути можливість апаратного переривання), а сам USB-протокол реалізується програмно на цьому ж мікроконтролері.

Недолік першого підходу полягає в подорожчанні і ускладненні апаратної частини пристрою і необхідності організації внутрішнього обміну даними між контролером USB-шини і універсальним мікро контролером. Слабким місцем другого варіанту є те, що мікроконтролери з вбудованим портом USB ще відносно дорогі і дефіцитні. Крім цього, вони часто мають більш обмежений набір периферії, і тому доводиться застосовувати додаткові мікросхеми для її розширення. Третій варіант цікавий тим, що застосуємо для широкого класу недорогих мікроконтролерів, що володіють необхідним швидкодією і програмної пам'яттю. Наприклад, для мікроконтролерів AVR - це старші моделі MEGA і частина TINY з FLASH-пам'яттю не менше 2K. Недоліком такого підходу є те, що швидкодія універсальних мікроконтролерів дозволяє програмно реалізувати лише низкоскоростной варіант стандарту USB-2 «Low speed», тобто швидкість - до 1.5 Мбіт / сек. Необхідно також виділити близько 1.6 Кбайт FLASH-пам'яті мікроконтролера для розміщення драйвера шини. Проте, для багатьох завдань автоматизації лабораторних фізико-хімічних експериментів ця швидкість виявляється цілком достатньою.

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

Віртуальні USB-порти на мікроконтролерах AVR

Технічні деталі реалізації віртуальних портів USB на мікроконтролерах AVR досить докладно описані на сайтах компаній Atmel [2] і Objective Development [3] . Віртуалізація USB передбачає фізичне підключення двох цифрових висновків мікроконтролера до сигнальних провідників шини D + і D- і програмну реалізацію самого протоколу. Один з сигнальних провідників повинен бути підключений до висновку, через який можна організувати апаратне переривання мікроконтролера, а другий може бути підключений до будь-якого висновку цього ж порту. Найпростіша схема підключення (на прикладі мікроконтролера ATMega16) до шини USB показана на Ріc.1. Для низькошвидкісних пристроїв на лінію D- необхідно підключити підтягаючий резистор R3, оскільки визначення підключення / відключення USB пристрою базується на контролі опору лінії.

Рис
Рис.1. Найпростіший варіант підключення мікроконтролера до шини USB.

Однак, не всі контролери USB-шини будуть працювати з пристроєм, підключеним так, як показано на Рис.1, через невідповідність високих рівнів сигналів мікроконтролера стандарту USB. За стандартом USB високий рівень сигналу повинен складати 3.0-3.6В, а високий рівень сигналів мікроконтролера наближається до напруги його живлення. Наприклад, для мікроконтролера ATMega16 рекомендоване напруга живлення складає 4.5-5.5В. Існують два підходи узгодження рівнів. Перший варіант - зниження напруги живлення мікроконтролера до такого значення, щоб напруга вихідних сигналів мікроконтролера вкладалося в стандарт USB. Цей підхід незручний з двох причин. По-перше, крім самого мікроконтролера в системі можуть використовуватися додаткові мікросхеми з 5-вольта харчуванням (наприклад, додаткові АЦП). По-друге, зниження напруги живлення мікроконтролера призводить до необхідності зниження тактової частоти процесора, що часто небажано. Тому зазвичай використовується інший варіант, а саме, безпосереднє обмеження напруги самих сигналів мікроконтролера, що подаються на шину USB. Найпростіше рішення c використанням стабилитронов [4] показано на Рис.2.

Рис
Рис.2. Узгодження рівнів сигналів мікроконтролера з шиною USB.

Основний недолік цієї схеми - підвищений струм з відповідних виходів порту мікроконтролера при високих рівнях сигналу. Але це цілком компенсується простотою і низькою вартістю рішення.

Для усунення помилкових переривань INT0 в схемі зі стабілітронами рекомендується включити також додатковий резистор 1M між «землею» і сигналом D +.

Програмна реалізація протоколу USB докладно описана в документі [2] і в вихідних текстах програм, доступних на сайтах [2,3] . У зв'язку з високою швидкістю передачі даних по шині USB вимоги до модулів програмної реалізації протоколу USB дуже жорсткі. Тому розробники драйверів були змушені піти на деякі спрощення, які зменшують перешкодозахищеність каналу зв'язку. Зокрема, спрощена перевірка помилок при передачі даних. Крім цього, при прийомі опитується тільки одна лінія, тобто використовується недіфференціальний приймач. Проте, приблизно річна експлуатація пристроїв з такими віртуальними USB портами в звичайних лабораторних умовах показала їх стабільну роботу.

На зазначених вище сайтах [2,3] вільно доступні вихідні тексти драйверів для реалізації декількох класів USB-пристроїв. Зокрема, Custom class device, Standard HID class device, Custom HID class device і CDC class device. Також є численні приклади радіоаматорських конструкцій, побудованих на основі віртуальних USB-портів.

Приклади використання віртуального USB-порту в лабораторній практиці

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

Перша типова задача це реєстрація порівняно повільних аналогових або цифрових сигналів. Частота відліків тут зазвичай не перевищує сотень герц, а найчастіше вона істотно менше. Клас, приладів, для яких потрібно така реєстрація, надзвичайно широкий - від сучасних цифрових датчиків до старих, цілком працездатних, але морально застарілих приладів з самописами як реєстраторів. Заміна самописця на реєстратор з віртуальним USB-портом на базі недорогого універсального мікроконтролера з вбудованим АЦП надає цим приладам зовсім іншу якість. Завдання спрощується ще більше, якщо в приладі передбачені кошти для підключення цифрового реєстратора. Незважаючи на різноманіття стандартів, сигнали з виходу роз'єму цифрового реєстратора можуть бути подані безпосередньо на цифрові порти мікроконтролера, програмним способом легко приведені до сучасних стандартним уявленням і передані по USB в персональний комп'ютер.

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

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

Часто обидві ці задачі зустрічаються разом в тому чи іншому поєднанні. Останній, четвертий приклад, ілюструє саме цей випадок.

Пристрої, описані в цих прикладах, розроблені і виготовлені автором для ілюстрації різних варіантів рішення на базі віртуальних USB-портів. Тим не менш, вони використовуються в реальному експериментальній роботі і можуть бути легко модифіковані для інших аналогічних завдань. Тому докладні описи цих пристроїв, схеми і вихідні тексти програм розміщені в мережі Інтернет і вільно доступні за адресами [5-7] .

Реєстрація цифрових сигналів

Даний приклад ілюструє найпростіший варіант використання мікроконтролера з віртуальним USB-портом в якості реєстратора цифрових сигналів. Такий реєстратор підключений до старого, але ще цілком працездатного вітчизняному рідинний хроматограф Міліхром (випуску 1985 року). Загальний вигляд приладу представлений на рис.3. На задній стінці приладу (Рис.3, праворуч зверху) є роз'єм для підключення реєстратора. На роз'єм виведені 15 двійкових розрядів сигналу ультрафіолетового детектора, знак сигналу, ознака переповнення і два строба (кінець перетворення АЦП і кінець циклу розгортки спектрометра). Крім цього, на роз'єм виведено напруга живлення (+ 5В) і «земля». Рівні сигналів відповідають TTL. Тому ніяких проблем у фізичному підключенні і програмному перетворенні даних не виникає.

Рис
Рис.3. Хроматограф Міліхром. Цифровий реєстратор на базі віртуального USB-порту.

В якості контролера USB-шини використовується універсальний мікроконтролер ATMega16, включений за схемою, наведеною на Рис.2. Плата з відповідним роз'ємом представлена ​​на рис.3 внизу зліва. Строб «Кінець перетворення» викликає апаратне переривання INT1, за яким дані, виставлені блоком управління «замикаються» в пам'яті мікроконтролера. Після цього дані передаються в PC по віртуальному USB-порту. Частота відліків встановлюється блоком управління хроматографа.

Детальний опис цієї розробки, схеми і вихідні тексти програм наведені в [5] .

Реєструючий pH-метр

Даний приклад ілюструє комплексне використання ресурсів універсального мікроконтролера ATMega16. Тут мікроконтролер виконує наступні функції.
1. Контролер шини USB для зв'язку з персональним комп'ютером.
2. Контролер шини 1-Wire для зв'язку з датчиком температури DS18B20. Тобто фактично тут мікроконтролер виступає як реєстратор цифрових сигналів.
3. Аналого-цифровий перетворювач для оцифровки сигналу скляного електрода. Тобто пристрій використовується в якості реєстратора аналогових сигналів.

Загальний вигляд пристрою представлений на Рис.4. В якості основи стенду використаний стандартний штатив від портативного іономіра І-102 зі скляним електродом ЕСЛ-43-11 і електродом порівняння ЕВЛ-1М4. Для контролю температури застосований датчик температури DS18B20, поміщений в скляну трубку відповідного діаметру, заповнену маслом для поліпшення теплового контакту датчика з розчином. Перетворення температури в цифровий код відбувається в самому датчику. Ідентифікація датчиків, запуск перетворення і зчитування коду відбувається по шині 1-Wire. В якості віртуального контролера цієї шини виступає мікроконтролер ATMega16.

Рис
Рис.4. Реєструючий pH-метр. Аналоговий і цифровий реєстратор на базі віртуального USB-порту.

Для узгодження високого вихідного опору скляного електрода з АЦП мікроконтролера використовується узгоджувальний підсилювач (Рис.4 вгорі праворуч). На платі підсилювача також знаходиться реле, що відключає вхід підсилювача від скляного електрода в неробочому стані, що керується по USB одній цифровій лінією мікроконтролера ATMega16.

Програмне забезпечення дозволяє реєструвати зміну pH і температури розчинів протягом довільного часу. Частота відліків - 1 Гц. Також передбачені кошти для оперативної калібрування приладу по довільній кількості буферних розчинів і в різних температурних діапазонах.

Детальний опис цієї розробки, схеми і вихідні тексти програм наведені в [6] .

Мікродозатори

В даному прикладі універсальний мікроконтролер ATMega16 використовується для виведення даних з PC через віртуальний USB-порт, зокрема, для управління кроковим двигуном. Як виконавчий пристрій використовується шприцевий насос від хроматографа. У насосі встановлені кроковий двигун ДШМ-200, кінцевий вимикач, що спрацьовує при досягненні поршнем нижньої межі, і датчик тиску, який видає логічний сигнал при перевищенні заданого тиску або досягнення поршнем верхнього положення. На роз'єм насоса також подаються напруги живлення для датчика тиску і «земля». У поєднанні з універсальним мікро контролером і невеликим силовим модулем цей насос легко перетворюється в Мікродозатори рідин, керований персональним комп'ютером через віртуальний USB-порт (Рис.5).

Рис
Рис.5. Макет Мікродозатори. Управління кроковим двигуном через віртуальний USB-порт.

Для управління кроковим двигуном насоса можуть бути використані будь-які чотири цифрових виходу мікроконтролера, які не задіяні для шини USB. Сигнали з цих висновків подаються на бази складових транзисторів BD677 силового модуля і потім на обмотки двигуна. Для харчування силового модуля використовується окремий блок живлення (Рис.5, праворуч зверху). Сигнали з кінцевого вимикача і датчика тиску подаються на дві вхідних цифрових лінії мікроконтролера і використовуються програмою управління для блокування кроків двигуна.

Таким чином, в даному прикладі універсальний мікроконтролер ATMega16 виконує дві основні функції, повністю замінюючи відповідні спеціалізовані контролери.
1. Контролер шини USB для зв'язку з персональним комп'ютером.
2. Контролер крокового двигуна.

Пристрій дозволяє дозувати рідини в довільних режимах, обмежених тільки конструкцією насоса (максимальний разовий обсяг - 2.5 мл і максимальна швидкість подачі - близько 1 мл / хв). У даній версії програмного забезпечення реалізовані наступні режими.
1. Подача рідини з програмованої швидкістю, в тому числі і змінюється в часі.
2. Подача заданого об'єму рідини з накопиченням або без нього. При цьому швидкість подачі теж може контролюватися персональним комп'ютером.

Детальний опис цієї розробки, схеми і вихідні тексти програм наведені в [7] .

Програмована водяна баня

Останній приклад також ілюструє комплексне використання ресурсів універсального мікроконтролера для задач реєстрації та контролю температури. Тут мікроконтролер ATMega16 виконує наступні функції.
1. Контролер шини USB для зв'язку з персональним комп'ютером.
2. Контролер шини 1-Wire для роботи з датчиками температури DS18B20.
3. Контролер силового модуля регулювання потужності нагрівача.

Завдання реалізована у виде невеликого стенду, Загальний вигляд которого уявлень на Рис.6. ВІН містіть макет водяній лазні, что складається зі склянки з водою, нагрівача, датчика температури DS18B20 и магнітної мішалкі. Другий температурний датчик DS18B20 вимірює температуру навколишнього середовища і розташований безпосередньо на платі мікроконтролера. Значення цієї температури необхідно для роботи компенсатора теплових втрат термостата в одному з алгоритмів регулювання температури [8] .

Рис
Рис.6. Макет водяній лазні. Реєстрація та управління температурою через віртуальний USB-порт.

Ще один компонент стенду - силовий модуль. Він призначений для регулювання потужності нагрівача. Принцип роботи - регулювання кількості напівперіодів, пропущених в навантаження. Модуль виконаний на сімісторов BT137-600 з оптичною розв'язкою у вигляді оптосімістори MOC3061, який оснащений детектором переходу напруги через нуль (Zero Crossing). Це істотно спрощує схему модуля і управління ним.

Для управління силовим модулем використовується ШІМ (широтно-імпульсна модуляція) сигнал таймера TIMER1 мікроконтролера ATMega16, причому частота імпульсів і шпаруватість можна програмувати. Ці параметри визначають потужність нагрівача і можуть бути встановлені через віртуальний USB-порт з програми на PC. Через цей же USB порт в персональний комп'ютер надходять дані з двох температурних датчиків. Це дає можливість реалізувати практично будь-який закон зміни температури лазні (природно, в рамках динамічних характеристик самої лазні).

Детальний опис цієї розробки, схеми і вихідні тексти програм наведені в [8] . Там же наведені результати експериментів з різними алгоритмами регулювання температури і приклади різних режимів нагріву / охолодження лазні.

Висновки

У даній статті розглянута можливість використання віртуальних USB-портів для задач автоматизації лабораторного експерименту. Наведені приклади показують, що реалізація таких портів на основі універсальних мікроконтролерів дає недорогі, швидкі і, як правило, ефективні рішення типових експериментальних завдань. Застосування цього підходу до застарілих приладів (приклад з Міліхромом) або працездатним вузлів таких приладів (приклад з pH-метром і Мікродозатори) здатне дати «друге життя» цього обладнання, причому, - зовсім в іншому, цілком сучасному якості.

література

  1. J. Axelson. USB Complete: Everything You Need to Develop USB Peripherals, Lakeview Research, 2005, 572pp.
  2. AVR309: ​​Software Universal Serial Bus (USB).
    http://www.atmel.com/dyn/resources/prod_documents/doc2556.pdf .
  3. Virtual USB port for AVR microcontrollers.
    http://www.obdev.at/products/vusb/ .
  4. A Firmware-Only USB Driver for the AVR. Hardware Considerations.
    http://vusb.wikidot.com/hardware .
  5. С.В.Кухтецкій. AVR-USB-MEGA16: Нове життя старого Міліхрома.
    http://microsin.ru/content/view/773/44/ .
  6. С.В.Кухтецкій. AVR-USB-MEGA16: Простий реєструючий pH-метр з USB інтерфейсом.
    http://microsin.ru/content/view/903/44/ .
  7. С.В.Кухтецкій. AVR-USB-MEGA16: Управління кроковим двигуном по USB.
    http://microsin.ru/content/view/826/44/ .
  8. С.В.Кухтецкій. AVR-USB-MEGA16: Вимірюємо і контролюємо температуру.
    http://microsin.ru/content/view/803/44/ .

 
  Обзор категорий  
 
Шины
 
     
 
  Специальное предложение  
   
     
     
Доставка осуществляется в города:
Александрия, Белая Церковь, Белгород-Днестровский, Бердичев, Бердянск, Борисполь, Боярка, Бровары, Бердичев, Васильков, Винница, Вознесенск, Горловка, Днепродзержинск, Днепропетровск, Донецк, Житомир, Запорожье, Евпатория, Ивано-Франковск, Измаил, Изюм, Каменец-Подольский, Керч, Кировоград, Ковель, Комсомольск, Конотоп, Краматорск, Кривой Рог, Кременчуг, Ильичевск, Луганск, Лубны, Луцк, Львов, Павлоград, Мариуполь, Миргород, Мелитополь, Мукачево, Николаев, Нежин, Никополь, Новая Каховка, Новоград - Волынский, Нововолынск, Одесса, Обухов, Павлоград, Пирятин, Прилуки, Полтава, Первомайск, Ровно, Славянск, Симферополь, Смела, Стрий, Сумы, Севастополь, Северодонецк, Тернополь, Ужгород, Умань, Харьков, Хмельницкий, Херсон, Феодосия, Чернигов, Черновцы, Южноукраинск, Ялта.

© 2009 - 2010 Интернет-магазин автотоваров и запчастей авто34

Каталог украинских интернет-магазинов