Powered by Invision Power Board


  Ответ в темуСоздание новой темыСоздание опроса

> Простая реализация протокола USB для ПК, на базе ATtiny2313
Mentat
Дата Feb 13 2008, 01:22 AM
Цитировать сообщение




Administrator
***


Группа: Admin
Сообщений: 2009
Пользователь №: 133
Регистрация: 5-February 04





Простая реализация протокола USB для ПК


Данная статья может служить примером того, как без особых усилий и затрат можно реализовать интерфейс USB, не используя при этом специализированные микросхемы, а также является дополнением и продолжением [1]. Статья носит информативный характер и может помочь при создании небольших и недорогих проектов с использованием интерфейса USB.


В качестве примера взята идея статьи [1], где на базе микроконтроллера PIC16F84A реализована цветомузыка для ПК под управлением мультимедийного плеера Winamp. Читателям предлагается вариант, в котором альтернативой последовательного протокола СОМ порта служит интерфейс USB.
Реализовать интерфейс USB можно несколькими способами:
• использовать микроконтроллер с аппаратным USB интерфейсом;
• использовать специализированные микросхемы-преобразователи USB - RS-232, USB - TWI и т.д.;
• реализовать протокол USB с помощью программной эмуляции на недорогом микроконтроллере.

Основным недостатком первого способа можно считать необходимость изучения структуры и особенностей данного микроконтроллера и написания программы. Помимо этого придется создать собственный драйвер для персонального компьютера. Такие микроконтроллеры труднодоступны и имеют высокую стоимость. Во втором случае драйвер поставляется вместе с преобразователем, но при этом увеличиваются размеры как самого устройства, так и затраченных материальных средств. Ряд элементов, таких, как FT232, можно приобрести только на заказ. В третьем случае придется изучать сам протокол USB и разрабатывать сложнейшую программу для МК с учетом всех нюансов и подводных камней. Если вы это сделаете, создание драйвера операционной системы для получившегося устройства уже не вызовет серьезных трудностей, но не надо придумывать велосипед, если такие заготовки в виде готовой прошивки, драйвера и библиотеки функций для доступа к устройству уже существуют.
При создании небольших по сложности и функциональности проектов, где необходима связь микроконтроллера с ПК и основные вычисления производит компьютер, можно обратиться на официальный сайт компании Atmel. В разделе с документацией среди прочего можно найти документ AVR309 [3] и прилагаемый к нему архив [2]. В архив входят два исходных файла программ для МК серии AVR ATmega8 и ATtiny2313 с программной реализацией низкоскоростного протокола (1,5 Мбит/с), совместимого со спецификацией USB2.0, драйвер для ОС Windows 98/ME/2000/XP, библиотека функций, тестовая программа и все это с исходными текстами, а также некоторая документация по стандарту USB. Данный архив распространяется бесплатно с правом внесения изменений в исходные тексты программ.
Таким образом, используя эти ресурсы и микроконтроллер AT90S2313 (ATtiny2313) можно изготовить несложное устройство с низкоскоростным интерфейсом совместимым со стандартом USB2.0. Примером такою устройства может служить «Цветомузыка для ПК».
Так же, как и в [1], основные вычисления производит плагин для известного проигрывателя Winamp. Он же выводит через USB данные на устройство, используя имеющиеся в архиве [2] драйвер и библиотеку функций доступа. Данные выводятся на светодиодные индикаторы в виде ритмично мигающих огней.
Принципиальная схема цветому-зыкального устройства приведена на рис. 1.
(IMG:http://www.kayf.ru/avr/USB2PCAVR.gif)
Основные отличия от устройства, описанного в [1]:
• минимальное число элементов;
• питание микросхемы осуществляется непосредственно от шины компьютера;
• благодаря тому, что связь осуществляется через USB, устройство поддерживает стандарт Plug and Play.
Основным элементом конструкции является микросхема DD1 — микроконтроллер семейства AVR AT90S2313-10 от компании Atmel, работающий на частоте кварцевого резонатора ZQ1 12 МГц. Он осуществляет связь по шине USB и выводит данные, полученные от соответствующего плагина визуализации Winamp, на светодиодные индикаторы. Питание микросхемы осуществляется напряжением 3,3 В через стабилизатор DA1. Понижение напряжения до такого уровня необходимо для совместимости со стандартом USВ, где передача информации происходит по двум дифференциальным линиям с высоким уровнем 3,0...3,6 В.
Резистор R1, подтягивающий линию DATA- к источнику питания 3,3 В, служит для детектирования устройства USB как низкоскоростного. Восьмиразрядный порт устройства формируется из свободных линий ввода/вывода двух портов микроконтроллера. Токоограничивающие резисторы отсутствуют, т. к. аналогичные резисторы включаются внутри микроконтроллера при установке направления порта ввода/вывода на выход.
Хотя в документации к AT90S2313-10 сказано, что напряжение питания этой микросхемы 4...6 В, микроконтроллер устойчиво работает при напряжении 3,3 В. Поставляемая прошивка совместима с микроконтроллерами AT90S2313 и ATtiny2313. Размер устройства можно уменьшить, используя корпус SOIC соответствующего микроконтроллера.
Отклонения в номинале резистора должны быть не более 5 % . В качестве стабилизатора можно использовать любые другие аналоги с напряжением стабилизации 3,3...3,5 В.
Устройство собрано на плате из односторонне фольгированного текстолита и соединяется с персональным компьютером четырехжильным экранированным проводом длиной до 5 м. Максимальная длина соединительного кабеля зависит от вида кабеля.
При подключении к компьютеру сразу же начнется обмен данными между ПК и устройством, после чего ПК потребует драйвер, путь к которому следует указать в появившемся диалоговом окне. После установки драйвера в системе появится новое USB устройство — AVR309:USB to UART protocol converter.
Название устройства можно изменить в соответствии с его назначением, изменив перед компиляцией соответствующие строковые константы в исходной программе, там же следует изменить идентификаторы VID (Vendor Identifier) и PID (Product Identifier). Соответственно, необходимо внести изменения в inf-файл драйвера, иначе он не установит сам драйвер. Во избежание конфликтов с другим оборудованием при выборе VID и PID следует ознакомиться сданными на сайте www.usb.org.
Для создания плагина визуализации к программе Winamp, достаточно иметь небольшие навыки программирования на C++. Необходимо посетить официальный сайт проигрывателя www.winamp.com и скопировать архив [4] с набором примеров под все виды плагинов, поддерживаемых Winamp. Готовый модуль при инициализации подключает библиотеку функций управления USB-устройством, проверяет наличие устройства и при его отсутствии выдает сообщение об ошибке. При получении спектра от программы модуль выделяет из него восемь полос в соответствии с основными частотами эквалайзера плеера. Уровень, по которому происходит переключение светодиодов, может быть автоматическим или постоянным, подобранным экспериментально. Плагин отображает режимы моно и стерео (подробности в настройке). Если используется эквалайзер, получаемый от Winamp, спектр тоже будет обработан соответствующими настройками эквалайзера, следовательно изменится и режим переключения светодиодов. Модуль использует только две функции динамической библиотеки — это функция изменения направления порта ввода/вывода и функция записи в порт.
Таким образом, полученное устройство можно использовать совместно с персональным компьютером для ввода/вывода информации через порт USB. Очень удобно применять его в проектах, где основные вычисления производит ПК. Кроме функций работы с портом устройства (чтение, запись) библиотека содержит функции работы с UART микроконтроллера и фактически превращает микроконтроллер в конвертер USB — UART, каким его и представляет в проекте AVR309 компания Atmel. Кроме того, реализованы функции работы с EEPROM (чтение, запись) и очень интересная функция чтения инфракрасного сигнала из буфера МК. Драйвер, прошивка МК AT90S2313 (ATtiny2313) и плагин для Winamp доступны на сайте редакции журнала по адресу www.dian.ru.
ЛИТЕРАТУРА:

1. И. Сошин. Цветомузыка для ПК, — Схемотехника, 2006, № 3, с. 37.
2. http://www.atmel.com/dyn/resources/prod_documents/AVR309.zip.
3. http://www.atmel.com/dyn/resources/prod_do...nts/doc2556.pdf.
4. http://download.nullsoft.com/winamp/client/wa502__sdk.zip.

Сергей Родичкин,
г. Ульяновск

по материалам журнала Схемотехника 05-2007
PM
Top
Mentat
Дата Feb 13 2008, 01:30 AM
Цитировать сообщение




Administrator
***


Группа: Admin
Сообщений: 2009
Пользователь №: 133
Регистрация: 5-February 04





PM
Top
Mentat
Дата Feb 16 2008, 01:25 AM
Цитировать сообщение




Administrator
***


Группа: Admin
Сообщений: 2009
Пользователь №: 133
Регистрация: 5-February 04





Можно попробовать не заморачиваться с программированием USB на контроллерае а использовать драйвер usb->uart
http://kazus.ru/forum/topics/f_67884.html#67884
и цена у нее божеская около 100руб за отсутствие дополнительного гимороя
http://www.efind.ru/icsearch/?search=cp2101
PM
Top
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса