Цифровая схемотехника Подключение микроконтроллера к компьютеру по USB
Цифровая
схемотехника
Почтовая рассылка
Выпуск N 27 от 16.05.2008 г.
Добрый день, уважаемый подписчик!
Сегодня я хотел бы затронуть вопрос подключения микропроцессорного устройства к компьютеру. Судя по почте, этот вопрос волнует многих начинающих конструкторов микропроцессорных систем. В общих чертах я уже описал достоинства и недостатки всех известных способов подключения на сайте рассылки (см. по ссылке http://www.mirmk.net/content/view/87/29/). В данной же рассылке я хочу предложить один из возможных вариантов решения.
И так представьте, что вы собираетесь создать некое устройство на основе микроконтроллера. По вашей задумке это устройство должно каким то образом подключаться к компьютеру и обмениваться с ним информацией. Ну, к примеру, вы желаете создать некое измерительное устройство, которое будет измерять, скажем, ряд параметров внешней среды (температуру воздуха, влажность, освещенность) и по мере необходимости передавать измеренные значения в компьютер, который будет отображать их на экране, вести статистику,
строить графики и т.п. При этом компьютер так же должен управлять вашим устройством. Менять режимы его работы, тестировать его исправность и т.д. Что вам для этого нужно. Главная задача – создать канал передачи данных от микроконтроллера к компьютеру и обратно. Как уже отмечалось в упомянутой выше статье, удобнее всего использовать один из уже имеющихся внешних интерфейсов компьютера. То есть, порты LPT, COM, USB. Какой бы из каналов вы не выбрали, далее вам нужно будет создать комплект программ, которые
будут обмениваться информацией посредством выбранного канала. Одна из этих программ для микроконтроллера, вторая для компьютера. Конечно, желательно иметь готовые опробованные программные модули, причем такие, которые было бы не трудно включить в состав собственной программы. В настоящий момент мне трудно предложить вам простое и универсальное решение этой проблемы. Но я хочу рассказать об одном из вариантов решения, предложенном и активно развиваемом итальянскими энтузиастами.
Речь идет о специальном проекте, который был разработан итальянскими любителями и в настоящее время получил распространение уже далеко за пределами Италии. Этот проект получил название «Ардуино» ( Arduino). Как сказано на официальном сайте проекта, он предназначен для самого широкого круга пользователей: художников, дизайнеров, конструкторов – любителей. То есть, для всех, кто желает самостоятельно разрабатывать простые интерактивные электронные конструкции. Ардуино – это свободно
распространяемый набор, состоящий из небольшого электронного модуля, и комплекта программного обеспечения к нему. Модуль имеет несколько модификаций, отличающихся по конструкции размеру и возможностям. Но все они имеют очень простую и легко повторяемую схему и полностью совместимы между собой. Программная же часть рассчитана на работу с любой модификацией модуля. Основная идея проекта состоит в следующем: за небольшую цену вы покупаете этот комплект (в стоимость модуля входит лишь цена всех его комплектующих).
Затем вы просто подключаете этот модуль к своему компьютеру через COM либо USB порт, запускаете на компьютере прилагаемую программу (она даже не требует установки и кроме выбора нужного COM порта не требует ни какой настройки) и сразу начинаете программировать! Для этого к программе прилагается подробная документация. Кроме того программа имеет подробное меню помощи.
Главное достоинство конструкции модуля – его предельная простота. Первые варианты модулей Ардуино содержали практически всего одну микросхему – микроконтроллер ATmega8, с небольшим количеством элементов обвязки. Подключался такой модуль к компьютеру посредством COM порта. С самого начала и по сегодняшний день проект распространялся по открытой лицензии.
Это значит, что всю информацию (схемы, рисунок печатного монтажа, прошивку микроконтроллера и саму управляющую программу) вы можете в любой момент получить бесплатно. Просто скачать с сайта проекта http ://www .arduino .cc (если вы не сильны в Английском, скачайте то же самое с сайта рассылки http://www.mirmk.net). Все это вы имеете право использовать по своему усмотрению. Вы можете собрать все устройство самостоятельно.
Существуют так же множество фирм (правда пока не у нас), продающих комплекты Ардуино как в виде набора из платы и всех деталей, так и в виде готовой отлаженной платы. Самый простой из вариантов платы легко поддается изготовлению в домашних условиях. Единственная проблема – микроконтроллер должен содержать в своей программной памяти небольшую программу (начальный загрузчик). При покупке набора деталей или готового устройства программа уже зашита производителем. При самостоятельном изготовлении вам необходимо
прошить программу самому. Текст и прошивка программы-загрузчика для всех вариантов модуля содержится в стандартном пакете программ, о котором говорилось чуть выше. Записывать программу загрузчика вам придется сделать всего один раз. Можно просто попросить об этом знакомого радиолюбителя, у которого есть программатор. В дальнейшем микроконтроллер под управлением этой самой программы-загрузчика самостоятельно будет получать разработанные вами программы из вашего компьютера, и прошивать их в свою собственную программную
память. При этом сама программа загрузчика стираться не будет и даже если разработанная вами программа не заработает, вы легко сможете переписать ее заново. Такая организация обмена программ стала возможной благодаря новым особенностям архитектуры микроконтроллеров. Все микроконтроллеры семейства ATmega имеют режим самопрограммирования. Для этого в систему команд микроконтроллера включены команды записи данных в программную память. Кроме того, программная память этих микросхем разделена на две не равные по величине
области. Область загрузчика и область основной программы. После записи программы-загрузчика в предназначенную для нее область программной памяти можно запретить запись-стирание этой области. Для этого микросхемы имеют дополнительные биты защиты от записи. Защитив, таким образом, область загрузчика вы можете не бояться, что из-за ошибки в основной, разрабатываемой вами программе программа загрузчика будет испорчена.
Кроме простого варианта Ардуино, работающего через COM порт существуют и более продвинутые варианты. Как известно, последовательный порт постепенно выходит из употребления. Более сложные варианты Ардуино подключаются через порт USB. Для этого в схему устройства введена всего одна специализированная микросхема FT232 RL, которая представляет собой преобразователь USB- RS232. ( RS232 – это протокол передачи данных, который используется в частности
в COM порте компьютера). При подключении такой микросхемы к USB порту компьютера он распознает дополнительное USB устройство и в нем автоматически появляется еще один виртуальный COM-порт. Поэтому как управляющая программа в компьютере, так и загрузчик в микроконтроллере даже не замечают каких либо изменений. Они, как и раньше, обмениваются информацией теперь уже через этот новый виртуальный COM порт. В результате такого подхода, ни какого изменения программ при переходе от одного канала связи к другому не потребовалось.
Нужно просто правильно выбрать порт в настройках управляющей программы на компьютере. Дополнительным удобством такого решения является тот факт, что канал RS232 микросхемы FT232 RL имеет не стандартные для этого протокола уровни сигналов. Например, CJV-порт компьютера работает с сигналами, изменяющимися в пределах от -12 до +12В. Микроконтроллер же работает с сигналом, изменяющимся от 0 до +5В. Для подключения COM порта к микроконтроллеру приходится ставить схемы согласования уровней. Микросхема же FT232 RL
работает так же с сигналами 0…+5В. Поэтому при подключении ее к микроконтроллеру согласование уровней не требуется. Кроме наличия USB адаптера, новые модули Ардуино имеют и еще одно отличие. В них применяется более новая модель микроконтроллера ATmega168, более совершенная и поэтому имеющая больше возможностей.
Теперь о том, как пользоваться Ардуино. Программирование ведется на языке специально разработанном для Ардуино. Это стандартный язык СИ для микроконтроллеров, дополненный специальными командами, специфичными именно для этого проекта. Существует множество пособий по этому языку (конкретно по языку Ардуино). В том числе и прекрасно оформленный буклет для «Чайников». В пакет программ, который вы получаете вместе с управляющей программой, входит целый ряд простых отлаженных примеров программ,
снабженных подробными комментариями. Пакет включает себя несколько программ иллюстрирующих цифровой ввод-вывод, несколько программ иллюстрирующих аналоговый ввод вывод и несколько программ иллюстрирующих взаимодействие с компьютером по COM (или USB- COM) каналу. Тому же самому каналу, по которому происходит загрузка программ. Этих примеров вполне достаточно для того, что бы понять основные принципы программирования. Ну а потом все зависит от вашей фантазии. Если фантазии не хватает, то к вашим услугам Интернет.
В сети существует множество сайтов любителей Ардуино, различные форумы и клубы по интересам. Там бесплатно выкладывается множество готовых решений программ для Ардуино. Единственный недостаток, что все это пока только на английском языке. Но если вас заинтересует этот проект, то я планирую создать серию рассылок с подробным описанием всех аспектов изготовления, подключения к компьютеру и программирования для этой системы. Я так же планирую завести специальный раздел на сайте «Мир микроконтроллеров»
www .mirmk .net. Уже сейчас можно прочитать о всех существующих типах модулей Арудино по адресу http://www.mirmk.net/content/view/93/1/
На правах рекламы.
Предлагаю посетить один из сайтов, которые я делал просто для души:
"Посмотри на мир из космоса". http://googlemap.by.ru Сборник ссылок на интересные объекты на земле (вид из космоса в системе Googlemaps). Все ссылки сам находил и эту коллекцию собрал по крупинкам.
"Симферополь вчера и сегодня". http://simfion.narod.ru Сайт по истории моего родного города Симферополя. История в фотографиях. Фото одного и того же места 200 лет назад и сегодня (в сравнении). С того же места в том же ракурсе и масштабе. И много другой фото и видео информации о Симферополе. Карта города разных лет. WEB-камеры Симферополя.
Если у вас в этом письме не открываются картинки, и
вы не знаете, что делать, перейдите по ссылке
и прочитайте подробную инструкцию о том, как добиться появления картинок.