ООО ЭФО
Поиск по складу
Программа поставок 2016
Сегодня
www.powel.ru
источники питания
www.korpusa.ru
конструктивы и корпуса РЭА
www.wless.ru
беспроводные технологии
www.mymcu.ru
микроконтроллеры
altera-plis.ru
микросхемы Altera
www.infiber.ru
волоконно-оптические
компоненты в
промышленности
www.efo-power.ru
силовая электроника
www.efo-electro.ru
электротехническая
продукция
www.efometry.ru
контрольно-измерительные приборы
www.golledge.ru
кварцевые резонаторы и генераторы Golledge
www.sound-power.ru
профессиональные усилители класса D
Поиск по сайту
Подписка на новости

Система менеджмента
качества сертифицирована на соответствие требованиям:
ISO 9001, ГОСТ Р ИСО 9001 и СРПП ВТ - подтверждено сертификатами соответствия в системах сертификации Русского Регистра, ГОСТ Р, международной сети IQNet, "Оборонсертифика" и "Военный Регистр".

ООО "ЭФО" в 2011г. получило Лицензию Федеральной службы по экологическому, технологическому и атомному надзору на изготовление оборудования для ядерных установок.


Rambler s Top100



ChipFind - поисковая система по электронным компонентам
EEN
webmaster
Санкт-Петербург: (812) 327-86-54  zav@efo.ru Москва: (495) 933-07-43  moscow@efo.ru Екатеринбург: (343) 278-71-36  ural@efo.ru Пермь: (342) 220-19-44  perm@efo.ru
Казань: (843) 518-79-20  kazan@efo.ru Ростов-на-Дону: (863) 220-36-79  rostov@efo.ru Н. Новгород: (831) 434-17-84  nnov@efo.ru Новосибирск: (383) 286-84-96  nsib@efo.ru
о нас склад библиотека статьи
 
Специализированные хост-контроллеры USB

Долгушин Сергей
Электронные компоненты, №3 2007

Cypress Хост-контроллеры USB
FTDI Хост-контроллер Vinculum

В сентябре 2006 года компания FTDI представила свою новую микросхему хост-контроллер USB Vinculum. В основу разработки был положен основной принцип всех микросхем FTDI избавить разработчиков от необходимости изучения тонкостей USB интерфейса, создания специализированных драйверов и сложного программного обеспечения.

            Решение хост-контроллера USB от FTDI не является универсальным, но для определенного круга задач оно сможет составить серьезную конкуренцию продукции других производителей, в частности - решениям компаний Cypress и Atmel, также представленным в данном обзоре.

            Про достоинства и недостатки интерфейса USB написано уже достаточно много. Так или иначе, данный интерфейс стал неотъемлемой частью любого компьютера, ноутбука и де-факто большинство мобильных устройств, офисной и бытовой техники в обязательном порядке имеют этот интерфейс. Многие вновь разрабатываемые приборы, чтобы отвечать современным требованиям, оснащаются интерфейсом USB.

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

            Иерархическая структура шины USB накладывает свои особенности и ограничения на использование во встраиваемой технике. Периферийное устройство полностью зависит от хост-контроллера, управляющего всем процессом обмена данными по шине USB. Для ухода от жесткой иерархической структуры в дополнение к спецификации USB был разработан стандарт On-The-Go. Данный стандарт ввел понятие двухролевого устройства (dual-role device), т.е. устройства, которое может выполнять функции хост-контроллера или периферийного устройства с возможностью динамической смены их функциональной роли на шине. Такие устройства могут обладать ограниченными возможностями в режиме USB-хоста, т.е. работать с определенными устройствами, либо классами устройств. При необходимости они могут подключаться к ПК в качестве периферийного устройства.

Одной из стандартных задач становится сбор информации с каких-либо объектов и перенос ее на компьютер для последующей обработки или хранения. Во многих приложениях для сбора информации используются дополнительные устройства или КПК (PDA) с последующим подключением их к персональному компьютеру. Такие решения достаточно громоздки, причем даже не с точки зрения массогабаритных показателей, а с точки зрения удобства пользования. Самым простым решением для данной задачи может быть USB Flash drive, в просторечии флэшка. Эти носители прочно заняли свое место в нашей жизни. Они используются для переноса файлов с одного ПК на другой без необходимости проверять совместимость с разными ПК (с ОС Windows XP) или приобретать специальные устройства для их чтения. Небольшие габариты самого устройства, стандартные драйвера для основных операционных систем, большая емкость памяти все это идеально подходит для описываемой задачи. Эти устройства относятся к стандартному классу USB-устройств Mass Storage Class (MSC). Разработка приложений, которые смогут работать с данным классом, осложняется необходимостью иметь представление о шине USB и о файловых системах.    

В данной статье мы остановимся на решениях, предлагаемых компаниями Atmel, Cypress и FTDI. Описанные ниже контроллеры выбраны с учетом аппаратно-программной поддержки производителем разработчика. Каждое из представленных решений представляет собой не только аппаратное, но и программное обеспечение для работы с приложениями MSC, т.е. с возможностью записи информации на USB Flash drive или любой другой носитель класса MSC. На данный момент и Cypress, и Atmel предоставляют библиотеки драйверов MSC в исходных кодах, компания FTDI предлагает готовый загрузочный файл. В этом году FTDI также планирует выпуск компилятора для работы со своим хост-контроллером.

Из рекомендованной для новых разработок продукции Atmel можно выделить микроконтроллер AVR AT90USB с поддержкой спецификации OTG. К сожалению, для этого контроллера пока нет готовых библиотек для работы с классом MSC-устройств. Библиотека, предлагаемая Atmel, позволяет сконфигурировать AT90USB для работы в режиме хоста с сокращенными функциями (reduced host Ц работа только с одним устройством, хабы не поддерживаются), устройства или двухролевого устройства. Режим OTG (протоколы SRP/HNP) также пока не реализован в данной библиотеке.        

Рис. 1 Отладочная плата для контроллера AT90USB

Тем не менее, в статье мы подробнее остановимся на микросхеме AT43USB380. Обратить внимание на этот кристалл стоит в первую очередь из-за готовых библиотек драйверов USB, в том числе и для класса MSC. Эти библиотеки доступны в исходных кодах и могут служить в качестве примера для других разработок. (Отметим, что на момент выхода статьи эта микросхема отнесена производителем к группе нерентабельной продукции, которая будет поддерживаться для существующих проектов, но развиваться далее не будет).

Рис.2 Структурная схема AT43USB380

AT43USB380 представляет собой OTG-контроллер, полностью совместимый со специфика-цией USB 2.0. Контроллер может выполнять функции хоста, периферийного устройства или двух-ролевого устройства, т.е поддержка спецификации OTG. В режиме хост-контроллера встроенное программное обеспечение состоит из двух основных час-тей - Host USB Controller Driver stack (HUSBCD) и Host System Interface Controller Driver (HSICD), каждая из которых выполняется на своем ядре. HUSBCD реализует протокол USB, включая энумерацию USB-устройств, управление транзакциями и другими операциями, связанными с работой шины USB. HSICD служит интерфейсом между HUSBCD и приложениями управляющего процессора и обрабатывает весь высокоуровневый обмен данными в течение USB-транзакции.

В периферийном режиме программное обеспечение состоит из Device USB Controller Driver (DUSBCD) и System Interface Controller Driver (DSICD). DUSBCD отвечает за протокол USB, DSICD - за "общение" AT43USB380 и хост-процессора.

Рис.2 Структура программного обеспечения

В режиме OTG контроллер выступает в качестве двухролевого устройства, что обеспечено полной поддержкой дополнительных протоколов USB OTG - SRP (session request protocol) и HNP (host negotiation protocol). Программное обеспечение контроллера управляет всеми состояниями двухролевого устройства и поддерживает динамическую смену текущей функции устройства. С точки зрения включения, полная поддержка спецификации OTG достигается добавлением микросхемы генератора подкачки (charge pump).

Для подключения контроллера к внешнему процессору предназначен 32/16/8-разрядный интерфейс (host processor interface). Использование DMA и 2 кбайт FIFO позволяет максимально использовать возможности этого интерфейса. Обращение внешнего процессора к контроллеру AT43USB380 представляется как работа с набором регистров. Процессор использует этот набор регистров для передачи данных между собственной памятью и внутренней памятью FIFO AT43USB380.

Функциональное назначение контроллера определяется загруженным в него программным обеспечением: хост, периферийное устройство или OTG. Рабочая программа может быть загружена с помощью внешнего процессора или из внешней EEPROM (например, AT25256A) по интерфейсу SPI. Драйверы классов USB-устройств размещаются во внешнем процессоре.

Общая структура всего комплекса программного обеспечения представлена на рисунке 3. Для работы с устройствами хранения данных (MSC) Atmel предоставляет готовую библиотеку в исходных кодах. Библиотека позволяет работать с накопителями на уровне файловых систем FAT32 и FAT16, а также на уровне секторов, что позволяет работать с нестандартными файловыми системами. Она поддерживает ASCII-символы (английский язык) и Unicode (для остальных). Минимальные требования к свободной памяти: 40 Kбайт ROM и 64 Кбайт RAM.

Для освоения USB хост-контроллера выпускается отладочный набор AT43DK380, который поставляется в нескольких комплектациях. В зависимости от комплектации можно выбирать тип хост-процессора. Это может быть AT91R40008 ARM7 производства Atmel или S3C4510 ARM7 производства Samsung. Хост-процессоры установлены на мезонинных модулях, которые подключаются к основной плате на базе USB контроллера AT43DK380.

Компания Cypress, один из мировых лидеров в производстве специализированных контроллеров USB, имеет в перечне продукции две микросхемы с поддержкой спецификации OTG - CY7C67300 и CY7C67200. Контроллер CY7C67300 имеет четыре USB-порта, а CY7C67200 - два. Каждый из портов может быть сконфигурирован как хост или периферийное устройство. Каждый контроллер имеет только один порт, имеющий возможность работать в режиме OTG. В отличие от AT43USB380, оба контроллера Cypress имеют встроенный генератор подкачки (charge pump) необходимый для питания и управления линией VBUS в режиме OTG. Для его работы требуется 4 внешних элемента: два диода Шоттки и два конденсатора. Контроллеры могут работать в двух ре-жимах. Режим сопроцессора - в случае, когда внешний процессор является ведущим, подключение может осуществляться по параллельному интерфейсу(Host Port Interface) со скоростью до 16 Мбайт/с, по последовательным SPI или HSS (High-Speed Serial) со скоростью до 2 Мбит/с. Второй режим - под управлением собственного встроенного 16-разрядного ядра.

Рис.4 Структурная схема CY7C67300 и CY7C67200

Контроллеры CY7C67300 и CY7C67200 отличаются количеством реализуемых внешних интерфейсов, количеством USB-портов и типом корпуса, TQFP100 - CY7C67300 и FBGA48 - у кон-троллера CY7C67200 (см. рис. 4).

Программные средства разработки, включающие в себя С-компилятор, ассемблер, компоновщик, отладчик и дополнительные утилиты, распространяются свободно и их можно скачать с сайта www.cypress.com. Для ускорения разработки приложения на базе данных контроллеров Cypress предлагает использовать готовые шаблоны, с помощью которых можно быстро разработать собственное приложение. Для приложений, предназначенных для работы с устройствами класса MSC, выпускается специальный набор CY4640, отладочная плата изображена на рисунке 5. В данный набор входят библиотеки в исходных кодах и примеры программ для работы с USB - накопителями.

Рис.5 Отладочная плата набора CY4640

На рисунке 6 изображена структура программного обеспечения набора, в которую входят следующие блоки:

USB - реализация протокола USB для хост-контроллера, которая включает в себя энумерацию, управляющий обмен (Control transfer), передачу данных в режиме bulk (in, out) и сброс устройства.

UMCS - драйвер устройств MSC. Работает только в режиме хоста и предоставляет интерфейс высокого уровня для доступа к USB-носителям, соответствующим классу MSC.

IDE - поддержка прямого подключения жесткого диска к хост-контроллеру (только для CY7C67300)

Volume Manager - обеспечивает работу с логическими разделами устройства хранения данных.

FAT - обеспечивают распознавание и работу с файловой системой (FAT12, 16, 32). Длинные имена не поддерживаются.

File System - связующее звено между верхними уровнями приложения и текущей файловой системой.

File I/O layer - интерфейс для работы с данными - open(), read(), rmdir() и др.

Demo - два примера приложений работы с дисками. Одно из них демонстрирует работу на уровне низкоуровневых команд SCSI API, работающими напрямую с Volume manager. Другое - на базе высокоуровневых команд File I/O layer.

UI - предоставляет разработчику интерфейс для связи с приложением (например HyperTerminal) на компьютере и предназначен для демонстрации работы всей системы.


Рис.6 Структура библиотеки MSC

Контроллеры CY7C67200 и CY7С67300 не требуют специализированных средств программирования, они могут программироваться через интерфейс USB во время отладки приложения. В готовом приборе программа загружается из внешней EEPROM, подключаемой по интерфейсу IIC. Программные средства разработки распространяются свободно и доступны любому (в настоящее время библиотека MSC распространяется под NDA или в составе отладочного набора CY4640).

Компания FTDI предлагает законченное аппаратно-программное решение для реализации хост-контроллера: USB - микросхему "Vinculum". Данный кристалл может выполнять функции хост-контроллера и периферийного устройства с поддержкой режимов full- и low-speed. Он не поддерживает спецификацию OTG, т.е. не может динамически менять свою функциональную роль на шине.

Рис.7 Структурная схема контроллера "Vinculum"

Функциональное назначение двух портов USB микросхемы и поддерживаемые классы USB - устройств задаются программой центрального процессора на кристалле. Центральное ядро пред-ставляет собой 8-разрядный процессор, построенный по гарвардской архитектуре. Для выполнения сложных вычислений, необходимых, например, для работы с FAT-таблицами, микросхема содер-жит дополнительный 32-разрядный сопроцессор. Обмен с внешним миром может осуществляться с помощью четырех портов ввода/вывода. Порт ADBUS может работать в одном из трех режимов - UART, SPI или параллельного FIFO. В существующих версиях программного обеспечения хост-контроллера конфигурация данного порта определяется состоянием двух управляющих линий микросхемы (см. рис. 8, 9).

Рис.8 Пример схемы включения контроллера "Vinculum

Конструктивно Vinculum выполнен в 48-выводном корпусе LQFP. Рабочий температурный диапазон составляет от 0°С до +70°С. Напряжение питания микросхемы 3.3В, порты ввода/вывода могут работать и с 5В логикой, ток потребления в рабочем режиме составляет 25 мА.

Рис.9 Структурная схема аппаратной и программной частей контроллера "Vinculum"

На данный момент компания FTDI предлагает варианты программного обеспечения, ориентированные на работу с классом устройств USB mass storage class device, в частности с USB Flash Drive. Для подключения таких устройств используется порт 2 USB. Порт 1 может быть ис-пользован для подключения HID устройств, принтеров или устройств на базе аппаратных мостов FTDI для версии программного обеспечения VDAP. В перечень поддерживаемых мостов входят микросхемы FT232B/R, FT245B/R и FT2232. Из стандартных устройств хост-контроллер с данной версией firmware может выводить данные на стандартные USB-принтеры. Производитель утверждает, что была протестирована работа с принтерами Hewlett-Packard. Данные на печать мо-гут быть отправлены в виде ASCII символов (direct text mode) или в виде файла, созданного с помощью функции Windows "print to file".

Кроме того, в настоящий момент ведется работа по добавлению в хост-контроллер функции концентратора (HUB).

Для управления и обмена данными между Vinculum и внешними устройствами, подключенными к портам USB, служит порт ADBUS - так называемый "command monitor port". Кроме того, состояние неиспользуемых портов ввода/вывода или отдельных их выводов может контролироваться с помощью специальных команд чтения/записи неиспользуемых портов.

Команды управления могут быть в двух представлениях - в шестнадцатеричном или в ASCII. Например, команда "Delete", предназначенная для удаления файла с внешнего USB накопителя:
В ASCII представлении: 'DLD'
В шестнадцатеричном: $05,$20,, $0D
В ответ контроллер передает посылку в виде: $0D

Компания FTDI предлагает несколько отладочных модулей, с помощью которых можно протестировать возможности нового кристалла. Базовый и наиболее функциональный вариант с точки зрения доступа к выводам контроллера - модуль VDIP1. Он выполнен в стандартном для производителя формате DIP24. Разработчик имеет возможность выбрать любой режим шины ADBUS - SPI/UART/FIFO с помощью джамперов на модуле.

Рис.10 Модуль VDIP1        Рис.11 Отладочный модуль VF2F   Рис.12 Модуль VDRIVE

Разъем USB подключен к порту 2 контроллера, что позволяет работать с USB - накопителями. Дополнительный разъем USB к порту 1 контроллера можно подключить через внешние выводы модуля.

Отладочный модуль VDRIVE обладает меньшими функциональными возможностями по сравнению с VDIP1. 6-контактный внешний разъем позволяет реализовать только интерфейсы UART или SPI без дополнительных возможностей подключения дополнительного порта USB или работы со свободными выводами хост-контроллера.

Модуль VF2F выполнен в виде законченного дизайна приложения для копирования информации с цифровых фотокамер (или устройств класса Mass Storage Device) на внешний USB Flash Drive. Управление процессом переноса данных осуществляется с помощью кнопок на плате, их функциональное значение определяется программой хост-контроллера. На плате предусмотрен разъем последовательного интерфейса для программирования хост-контроллера.

Рис.13 Модуль VDRIVE2        Рис.14 Отладочный модуль VMUSIC2   Рис.15 Модуль VDIP2

На момент выхода статьи компания FTDI заменила модули VDRIVE и VMUSIC на модули VDRIVE2 и VMUSIC2 соответственно. Модули отличаются конструктивным исполнением, новые модули поставляются в пластиковых корпусах, приспособленных для интегрирования в готовые приборы (см. рис. 13 и 14).

В дополнение к модулю VDIP1 разработчикам предлагается модуль VDIP2, выполненный в виде мезонниной платы в формате DIP40 (рис.15). На модуле установлены два разъема USB-A.

В заключение отметим еще раз, что одной из ключевых трудностей в разработке приложений на базе встраиваемых хост-контроллеров USB является разработка драйверов устройств, с которыми хост-контроллер должен будет работать в проектируемом приборе. Это могут быть устройства стандартных классов, например описанный выше класс MSC, или же устройства собственной разработки. Микросхемы со встроенными хост-контроллерами USB выпускают многие производители, но готовые библиотеки стандартных классов предоставляют лишь единицы. В статье представлены три варианта решения, каждое из которых имеет свои достоинства и недостатки.

Как показывает практика, задача переноса информации с одного прибора или ПК на другой является актуальной у многих производителей аппаратуры. Функции OTG пока не востребованы в той же мере. Наличие готового программного обеспечения для работы со стандартными устройст-вами хранения данных (накопители на жестких дисках, различные виды флэш-карт, в том чиcле и USB) является для многих разработчиков одним из основных критериев выбора той или иной мик-росхемы. Хост-контроллер FTDI "Vinculum" является уникальным решением на данный момент при разработке приложений, в которых требуется использовать USB Flash Drive - это самое простое решение с точки зрения программной и аппаратной реализации. Его дополнительные возможности по работе с мостами FT232/245 могут заинтересовать тех производителей, кто уже использует эти микросхемы в своих устройствах.

Литература:
1. Долгушин С.А. "Аппаратные мосты FTDI для интерфейса USB". "Компоненты и технологии" ©4 2006.
2. Долгушин С.А. "Высокоскоростные контроллеры USB производства компании Cypress". "Компоненты и технологии" ©6 2006
3. www.atmel.com
4. www.cypress.com
5. www.ftdichip.com

© 1999-2016 All Right Reserved. EFO Ltd. При использовании материалов ссылка на источник обязательна.
Контактная информация