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.

Приложение виртуальный com-порт
Рисунок 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.

Нумерация CDC
Рисунок 4-1. Нумерация CDC

Нижеприведенный рисунок показывает использование STK525 в качестве демонстрации (вы можете использовать другой набор AT90USBKey, STK526, в зависимости от того, с каким из AVR USB микроконтроллеров вы работаете).

STK525
Рисунок 4-2. STK525

4.1 Демонстрация виртуального com-порта

Назначение демонстрации виртуального com-порта — связь с приложением ПК для RS232 без изменения программного обеспечения.

Следуйте нижеприведенным инструкциям для запуска демонстрации:

  • Запустите приложение HyperTerminal и выберете правильный com-порт, согласно диспетчеру устройств.

Выбор com-порта
Рисунок 4-3. Выбор com-порта

  • Нажмите на джойстик и вы увидите статус джойстика и направление в окне HyperTerminal

Демонстрация виртуального com-порта
Рисунок 4-4. Демонстрация виртуального com-порта

4.2 Мост USB-UART

Цель моста USB-UART — передавать данные в полнодуплексном режиме между интерфейсами UART и USB. Приложение может быть использовано для подключения любого устройства с интерфейсом RS232 к ПК, который не имеет интерфейса RS232.

Следуйте нижеприведенным инструкциям для запуска демонстрации:

  • Подключите RS232-порт STK 525 к RS232-порту ПК.

Замечание: Если у ПК нет интерфейса RS232, вы можете использовать другой STK525: соедините две платы с помощью кабеля RS232 и подключите каждую из плат к USB-порту ПК.

  • Запустите два приложения HyperTerminal (один для порта RS232 и другой для виртуального com-порта) с одинаковой конфигурацией (скорость передачи данных, количество бит данных, честность, стоп биты и контроль потока).
  • Напишите что-нибудь в окне одного из терминалов, это появится в окне другого.

Мост USB-UART
Рисунок 4-5. Мост USB-UART

5. Обзор приложения

Приложение CDC позволяет пользователю симулировать порт RS232 используя аппаратное обеспечение USB. Устройство отображается в диспетчере устройств как com-порт вместо USB устройства. Это позволяет пользователю использовать его RS232 приложение без изменения программного обеспечения на ПК.

С точки зрения внутреннего обеспечения драйвер UART замещается драйвером UART-USB. Пользователь должен использовать функции UART-USB вместо функций UART для связи с ПК.

Когда устройство прошло нумерацию, приложение обеспечивает полнодуплексный обмен данными между ПК и периферией. Нижеприведенный рисунок показывает структуру:

Переход от UART к USB
Рисунок 5-1. Переход от UART к USB

6. Программное обеспечение

Как объяснено в программной библиотеке USB для микроконтроллеров AT90USBxxx, все программное обеспечение для USB основано на одной и той же архитектуре (для более подробной информации обратитесь к этому документу ).

Архитектура программного обеспечения USB CDC
Рисунок 6-1. Архитектура программного обеспечения USB CDC

Этот раздел посвящен только модулю CDC. Изменение файлов, описанных ниже, позволяют пользователю разработать собственное приложение CDC.

6.1 cdc_task.c

Этот файл содержит функции для инициализации аппаратного обеспечения, которое используется приложением, сбора и отправки данных.

Приложение CDC
Рисунок 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, но поддержка зависит от конфигурации.

Связанные документы

Телекоммуникации
AVR272 (668.5 Кб), 30.11.2009
Демонстрация USB CDC моста UART-USB
AVR276 (223.7 Кб), 30.11.2009
Программная библиотека USB для микроконтроллеров
Интерфейсы
AVR276 (80.7 Кб), 30.11.2009
Программная библиотека USB для микроконтроллеров

Ссылки по теме

 
Автор документа: Мария Дата публикации: 30.08.2009
Дата редактирования: 30.11.2009
Кол-во просмотров 4983
 
 Все новости одной лентой