ТЕРМОМЕТР НА ОСНОВЕ МИКРОКОНТРОЛЛЕРА AVR С ПЕРЕДАЧЕЙ ДАННЫХ НА ПК
Блинов З.Н.1, Устюгов В.А.2
1Магистрант, 2Кандидат физико-математических наук, Сыктывкарский государственный университет имени Питирима Сорокина
ТЕРМОМЕТР НА ОСНОВЕ МИКРОКОНТРОЛЛЕРА AVR С ПЕРЕДАЧЕЙ ДАННЫХ НА ПК
Аннотация
В статье рассмотрена методика автоматизации сбора данных. Представлены этапы разработки измерительного прибора на основе USB интерфейса, включая реализацию программного обеспечения для компьютера. Описанное измерительное устройство можно применять для проведения физических исследований.
Ключевые слова: автоматизация эксперимента, сопряжение измерительных приборов с ПК, разработка программного интерфейса.
Blinov Z.N.1, Ustyugov V.A.2
1Candidate for a master’s degree, 2PhD in Physics and mathematics, Syktyvkar State University
AVR MICROCONTROLLER BASED THERMOMETER WITH DATA REPORTING TO PC
Abstract
This paper discusses methods for automating data capturing. Designing phases of measurement device based on USB interface including development of computer software are shown. The measurement device is intended to be useful for physical research.
Keywords: automation, metering equipment, microcontrollers.
Техническое оснащение современных лабораторий, объектов промышленности и сельского хозяйства позволяют автоматизировать многие технологические процессы. Важную роль в автоматизации играет сбор данных о состоянии объектов регулирования, получаемых от различных датчиков, измерительных приборов и т.д. Целью настоящей работы является создание измерительного устройства (термометра), сопряженного с компьютером.
Роль центрального процессорного устройства в описываемом приборе выполняет восьмибитный микроконтроллер AT90USB162 [2], имеющий аппаратный интерфейс USB, а также 16 килобайт Flash-памяти. Для регистрации температуры среды используется цифровой термометр фирмы Maxim DS18B20 [1], осуществляющим преобразование сигнала, пропорционального температуре в цифровой код, благодаря чему не требуется применение дополнительных аналого-цифровых преобразователей. Измерительный прибор оснащен жидкокристаллический дисплеем, необходимым для контроля правильности передачи данных на персональный компьютер, а также обеспечения автономности устройства. Принципиальная схема USB-термометра представлена на Рис. 1.
Рис. 1 – Принципиальная схема USB термометра
Измерительный прибор при подключении к персональному компьютеру определяется как устройство класса USB HID. Чтобы обеспечить требуемые для USB электрические характеристики, выводы интерфейса USB (D+ и D-) должны получать питание в диапазоне от 3,0В до 3,6В. При этом микроконтроллер AT90USB162 может питаться от напряжения до 5,5В благодаря наличию встроенного внутреннего регулятора напряжения на 3,3В. Резисторы, включаемые последовательно в цепи сигналов D+ и D-, должны иметь номинал 22 Ом. Проводники на печатной плате от разъема USB до ножек USB микроконтроллера должны быть максимально короткими, и подчиняться правилам разводки дифференциальных сигналов. Для правильной работы внешний фильтрующий конденсатор Ucap должен иметь емкость 1 мкФ.
Программное обеспечение термометра.
Реализация передачи данных между USB-термометром и персональным компьютером с точки зрения программной части представлена на Рис. 2.
Рис. 2 – Блок-схема реализации USB устройства
В микроконтроллер записано программное обеспечение, в котором реализованы основная программа и стек USB. Алгоритм работы управляющей программы микроконтроллера включает следующие этапы:
- Подключение библиотек для работы с температурным датчиком, дисплеем аппаратным модулем USB.
- Конфигурация параметров USB интерфейса.
- Инициализация жидкокристаллического дисплея и вывод названия устройства.
- Инициализация температурного датчика.
- Инициализация устройства класса USB HID и конфигурация USB стека.
- Считывание с цифрового термометра двух байт, содержащих значение температуры и формирование пакета данных для передачи.
- Формирование репортов передачи и приема данных. Пересылка репортов между персональным компьютером и термометром.
Стек USB реализован с использованием свободного набора библиотек LUFA.
Программное обеспечение компьютера
Программное обеспечение ПК разработано на основе кроссплатформенной библиотеки HID API с открытым исходным кодом. Проект приложения разработан в IDE QT Creator [3].
Программное обеспечение выполняет две функции: обнаружение термометра на шине USB и вывод результатов измерения. Обнаружение устройства на шине происходит по следующему алгоритму. Любое USB устройство обладает уникальными идентификационными данными: код разработчика VID и код продукта PID. При нажатии кнопки «Подключение» начинается поиск HID устройств и сравнение их идентификационных данных с требуемыми.
При считывании температуры микроконтроллер как ведущее устройство формирует специальные сигналы управления цифровым термометром, а именно с помощью определенной последовательности команд инициализирует датчик, считывает два байта данных и конвертирует измеренную температуру в необходимый для передачи на ПК формат.
Таким образом, вывод результата измерения на монитор персонального компьютера происходит согласно следующему алгоритму:
- проверка присутствия устройства на шине USB;
- формирование пакетов передачи данных в USB устройстве;
- проверка готовности хоста к приему данных;
- в случае готовности хоста происходит считывание информации и вывод результата измерения на монитор компьютера посредством программного обеспечения взаимодействия с USB термометром.
Литература
- Чернов, Г. Датчик DS18B20. – Днепропетровск. – 2009. – 32 с.
- Atmel Corporation, AT90USB82/162 Complete. – San Jose. – 2010. – 307 c.
- Бланшет, Ж., Саммерфилд, М. Qt 4: программирование GUI на C++. – М.: Издательский дом «КУДИЦ-Пресс», 2008. – 718 с.
References
- Chernov, G. Datchik DS18B20. – Dnepropetrovsk. – 2009. – 32 s.
- Atmel Corporation, AT90USB82/162 Complete. – San Jose. – 2010. – 307 c.
- Blanshet, Zh., Sammerfild, M. Qt 4: programmirovanie GUI na C++. – M.: Izdatel'skij dom «KUDIC-Press», 2008. – 718 s.