AVR272
Демонстрация USB CDC моста UART-USB
Свойства:
- поддержка Windows 2000 и старше
- не требуется установки драйверов
- энумерация виртуального COM-порта
- мост USB - RS232 с динамической настройкой скорости передачи
- питание от шины
1. Введение
Интерфейс RS232 исчезает из ПК нового поколения, его заменяет интерфейс USB. Для соответствия этому изменению приложения на базе интерфейса UART должны переходить на USB. Переход на USB может привести к сложным разработкам как на стороне устройства, так и на стороне ПК. Для того, чтобы избежать этих сложностей, Atmel предлагает Вам решение на базе класса CDC (Communication Device Class) со следующими преимуществами:
- не требуется изменение программного обеспечения для ПК
- немного изменений со стороны устройства
Цель этого документа — описание начала реализации и разработки CDC приложения (виртуальный COM-порт и мост UART USB) с использованием отладочного набора STK525 и внутрисистемного программирования с помощью Flip.
Предполагается, что разработчик знаком с программной библиотекой USB для AT90USBxxx микроконтроллеров Application Note AVR276 "Программная библиотека USB для AT90USBxxx" ) и спецификацией CDC (http://www.usb.org).
Рисунок 1-1. Приложение виртуальный com-порт
2. Требования к аппаратному обеспечению
USB CDC приложение требует следующего аппаратного обеспечения:
- AVR USB демонстрационная плата (STK525, AT90USBKey, STK526...или ваша собственная плата);
- AVR USB-микроконтроллер
- USB-кабель (стандартный A в мини B);
- RS232 кабель (DB9 розетка и DB9 вилка)
- ПК с операционной системой Windows (2000, XP) с USB хостом 1.1 или 2.0.
Замечание: если в ПК нет порта RS232, то требуется дополнительный STK 52x и USB порт.
3. Внутрисистемное программирование и обновление программного обеспечения
Для программирования устройства вы можете использовать несколько методов:
- JTAG-интерфейс с использованием JTAGICE MKII
- SPI-интерфейс с использованием AVRISP MKII
- USB-интерфейс благодаря фабричному DFU загрузчику (bootloader) и программному обеспечению Flip;
- Параллельное программирование с помощью STK500 или STK600.
Пожалуйста, обратитесь к руководству пользователя используемой вами платы (если вы используете стартовые наборы Atmel) для понимания как программировать устройства этими разными методами.
Пожалуйста, обратитесь к разделу помощи Flip, чтобы понять как устанавливать USB-драйвер и программировать устройство через USB-интерфейс.
Замечание. Flip — это программное обеспечение, поставляемое фирмой Atmel, для предоставления пользователям возможности программирования USB AVR-устройств через USB-интерфейс (для этого не требуется внешнего аппаратного обеспечения) благодаря заводскому DFU-загрузчику.
4. Быстрый старт
Когда ваше устройство запрограммировано файлом usb_cdc.a90, нажмите кнопку «Start Application» в FLIP или нажмите кнопку сброса на плате STK525 для начала работы демонстрации CDC. Появится мастер обнаружения новых устройств, укажите мастеру на папку Int, включенную в набор программ для CDC. Проверьте, что ваше устройство нумеруется как виртуальный com-порт (см. Рис. 4-1), после чего вы можете использовать STK525 в качестве виртуального com-порта или моста USB-UART.
Рисунок 4-1. Нумерация CDC
Нижеприведенный рисунок показывает использование STK525 в качестве демонстрации (вы можете использовать другой набор AT90USBKey, STK526, в зависимости от того, с каким из AVR USB микроконтроллеров вы работаете).
Рисунок 4-2. STK525
4.1 Демонстрация виртуального com-порта
Назначение демонстрации виртуального com-порта — связь с приложением ПК для RS232 без изменения программного обеспечения.
Следуйте нижеприведенным инструкциям для запуска демонстрации:
- Запустите приложение HyperTerminal и выберете правильный com-порт, согласно диспетчеру устройств.
Рисунок 4-3. Выбор com-порта
- Нажмите на джойстик и вы увидите статус джойстика и направление в окне HyperTerminal
Рисунок 4-4. Демонстрация виртуального com-порта
4.2 Мост USB-UART
Цель моста USB-UART — передавать данные в полнодуплексном режиме между интерфейсами UART и USB. Приложение может быть использовано для подключения любого устройства с интерфейсом RS232 к ПК, который не имеет интерфейса RS232.
Следуйте нижеприведенным инструкциям для запуска демонстрации:
- Подключите RS232-порт STK 525 к RS232-порту ПК.
Замечание: Если у ПК нет интерфейса RS232, вы можете использовать другой STK525: соедините две платы с помощью кабеля RS232 и подключите каждую из плат к USB-порту ПК.
- Запустите два приложения HyperTerminal (один для порта RS232 и другой для виртуального com-порта) с одинаковой конфигурацией (скорость передачи данных, количество бит данных, честность, стоп биты и контроль потока).
- Напишите что-нибудь в окне одного из терминалов, это появится в окне другого.
Рисунок 4-5. Мост USB-UART
5. Обзор приложения
Приложение CDC позволяет пользователю симулировать порт RS232 используя аппаратное обеспечение USB. Устройство отображается в диспетчере устройств как com-порт вместо USB устройства. Это позволяет пользователю использовать его RS232 приложение без изменения программного обеспечения на ПК.
С точки зрения внутреннего обеспечения драйвер UART замещается драйвером UART-USB. Пользователь должен использовать функции UART-USB вместо функций UART для связи с ПК.
Когда устройство прошло нумерацию, приложение обеспечивает полнодуплексный обмен данными между ПК и периферией. Нижеприведенный рисунок показывает структуру:
Рисунок 5-1. Переход от UART к USB
6. Программное обеспечение
Как объяснено в программной библиотеке USB для микроконтроллеров AT90USBxxx, все программное обеспечение для USB основано на одной и той же архитектуре (для более подробной информации обратитесь к этому документу ).
Рисунок 6-1. Архитектура программного обеспечения USB CDC
Этот раздел посвящен только модулю CDC. Изменение файлов, описанных ниже, позволяют пользователю разработать собственное приложение CDC.
6.1 cdc_task.c
Этот файл содержит функции для инициализации аппаратного обеспечения, которое используется приложением, сбора и отправки данных.
Рисунок 6-2. Приложение CDC
6.1.1 cdc_task_init
Эта функция производит инициализацию параметров CDC и аппаратных ресурсов (джойстик…).
6.1.2 cdc_task
Эта функция обеспечивает передачу данных для двух демонстраций (виртуальный com-порт и мост UART-USB).
6.2 uart_usb_lib
6.2.1 uart_usb_test_hlt
Эта функция проверяет, был ли получен хоть один символ по USB.
6.2.2 uart_usb_getchar
Эта функция возвращает байт, полученный FIFO OUT конечной точкой.
6.2.3 uart_usb_putchar
Эта функция записывает байт для передачи в FIFO USB IN конечной точки. Она также заменяет функцию putchar из библиотеки UART. Например, printf будет реализовываться на основе функции uart_usb_putchar вместо putchar.
6.2.4 uart_usb_tx_ready
Эта функция проверяет, может ли байт быть записан в FIFO IN конечной точки.
6.2.5 uart_usb_flush
Эта функция посылает данные, сохраненные в IN конечной точке.
6.3 stk_525.c.
Этот файл содержит все функции для использования ресурсов платы STK 525 (джойстик, потенциометр, датчик температуры, светодиоды, …).
7. Программное обеспечение для ПК
Приложение CDC использует встроенные драйверы Windows. Оно требует только inf файл, расположенный в папке Inf в наборе программ CDC.
8. Ограничения
Это приложение не работает с Windows 98 и ME (в этих ОС нет встроенных драйверов для CDC устройств).
Это приложение может работать с Linux OS, но поддержка зависит от конфигурации.
9. Связанные документы:
- AVR USB Datasheet
- Спецификация класса CDC
Документация
|