USB - это просто!
...с аппаратными мостами FTDI.
Долгушин Сергей
Журнал "Компоненты и технологии" N4'2006
Сегодня уже никого не
удивишь наличием USB-интерфейса у персональных компьютеров (ноутбуков). Во
многих случаях он становится практически единственным проводным
коммуни-кационным интерфейсом, позволяющим подключать к компьютеру различные
внешние устрой-ства - цифровые видеокамеры и фотоаппараты, принтеры и сканеры,
внешние устройства хране-ния данных. Простая в использовании, шина USB
практически вытеснила своих предшественни-ков - параллельную шину (LPT) и
последовательный интерфейс (COM - порт).
Большинство
современных персональных компьютеров обязательно оснащается интер-фейсом USB и
может уже не иметь COM или LPT порта. Такая ситуация отрицательно сказы-вается
на производителях приборов и систем, разработанных ранее и не имеющих
возможности подключения к современным компьютерам по USB. То же самое можно
сказать и о конечных пользователях, покупающих, например, ноутбук и не имеющих
возможности подключить к нему проверенную временем аппаратуру, которая не
оснащена интерфейсом USB.
Очевидный выход из
данной ситуации - оснащение выпускаемой техники новым интер-фейсом. В такой
ситуации присутствуют отрицательные стороны как для производителя, так и для
конечного потребителя, т.е. для нас с Вами. И если конечный потребитель может
использо-вать специально выпускаемые переходные кабели USB-RS232 или USB-LPT,
то производителю техники придется затратить куда больше усилий для разработки
нового изделия. Причем измене-ния коснутся не только аппаратной части изделия,
но и программной, как верхнего (хост), так и нижнего (микроконтроллер) уровня.
Для многих задач "камнем преткновения" может стать зада-ча написания
драйвера устройства для хост-машины. Так, например, можно использовать
стан-дартные драйверы, входящие в операционную систему - драйверы устройств
класса HID, mass storage devices. Но использование драйверов стандартных
классов не всегда может быть удовле-творительным с точки зрения передачи
данных. Например, использование драйверов HID-устройств существенно ограничит
скорость обмена, но обеспечит надежную передачу данных. С другой стороны,
использование драйверов аудио-устройств обеспечит высокую скорость обмена, но
не гарантирует доставку всех переданных данных конечному приложению.
Что же делать, если в
случае серийно выпускаемого устройства возникает потребность в короткие сроки
оснастить его интерфейсом USB? Как, не вникая в подробности протокола USB, не
затрачивая уйму времени на изучение драйверов различных классов и пытаясь
приспособить их под собственные задачи, реализовать такой простой для конечного
потребителя интерфейс?
В таких случаях самым
очевидным выходом является использование аппаратных мостов USB.
Одной из ведущих
компаний по разработке и производству таких специализированных микросхем
является фирма FTDI. Компания была основана в 1992 году в Шотландии. Основной
сферой деятельности являлась разработка чипсетов для материнских плат
персональных компь-ютеров IBM. В 1996 году, после принятия первой спецификации
USB 1.0, основной сферой дея-тельности FTDI стала разработка аппаратных мостов
USB и драйверов для них. Практика компа-нии показала, что наиболее популярными
были и остаются аппаратные мосты с интерфейсом UART и параллельным интерфейсом
FIFO. Именно аппаратные мосты "USB-UART" и "USB-FIFO"
являются основной продукцией компании. Тем не менее, кроме них также
выпускаются концентраторы USB, готовятся к производству хост-контроллеры,
разрабатываются микросхемы нового аппаратного моста с поддержкой
высокоскоростного режима передачи.
Серийное производство
аппаратных мостов компания FTDI начала с выпуска микросхем FT8U232 "USB -
UART" и FT8U245 "USB - FIFO", которые оказались достаточно
удачным ре-шением, востребованным на зарождающемся рынке микросхем с
интерфейсом USB. Эти микро-схемы имели только один режим работы, т.е. непосредственное
преобразование "USB - UART" и "USB - FIFO", большое число
внешних компонентов, включая кварцевый резонатор и энергоне-зависимую память
для хранения идентификаторов USB и настроек режима работы.
Возможности
следующего поколения микросхем FT232B "USB - UART" и FT245B "USB
- FIFO" были расширены путем добавления нового режима работы Bit Bang. В
данном ре-жиме выходной интерфейс микросхем реализует 8 независимых линий ввода/вывода.
В таком режиме мост может, например, управлять работой реле без дополнительного
микроконтроллера. Кроме того, была изменена схемотехника кристалла. В него был
интегрирован контур "power-on-reset". В остальном никаких
дополнительных доработок не было.
2006 год был
ознаменован появлением нового поколения микросхем - FT232R и FT245R, в которых
были воплощены пожелания многих разработчиков: интегрированные на кристалл
энер-гонезависимая память для хранения настроек режима работы и идентификаторов
USB, встроенный тактовый генератор и некоторые пассивные компоненты.
Дополнительно каждая
микросхема имеет уникальный идентификатор FTDIChipIDTM, "прошиваемый"
при производстве на фабрике.
Встроенная EEPROM с
выделенной областью для записи пользовательской информации и уникальный
идентификатор в сумме дают возможность создавать на базе новых микросхем FTDI
аппаратные ключи для защиты от несанкционированного доступа. Для работы с новой
функцией была разработана новая библиотека, которая работает совместно с
драйвером D2XX.
По сравнению с
предыдущими версиями претерпел кардинальные изменения встроенный
преобразователь напряжения 3.3 В. В новых версиях микросхем его нагрузочная
способность достигла 50 мА, что в 10 раз больше, чем у предыдущих версий.
Внесены усовершенствования и в режим Bit Bang. Теперь изменение состояния линий
ввода/вывода может сопровождаться кон-трольными сигналами чтения или записи.
Новое поколение микросхем рассчитано на работу в индустриальном температурном
диапазоне от -400С до +850С. Новые микросхемы выпускаются в двух типах корпусов
- SSOP 28 и QFN 32. Оба типа корпуса отвечают требованиям стандарта RoHS.
Микросхемы серии
FT232R имеют дополнительные возможности по сравнению с микро-схемами FT245R.
Изменилось
функциональное назначение выводов TXLED, RXLED, TXDEN, PWREN, SLEEP. В новой
модификации эти выводы носят название CBUS. Настройка выводов CBUS хра-нится в
EEPROM и выбирается индивидуально для каждого из выводов. По умолчанию их
функ-циональное назначение соответствует перечисленным выше сигналам. Другими
возможными конфигурациями шины CBUS могут быть режим Bit Bang или возможность
транслирования так-тового сигнала от встроенного генератора.
В режиме Bit Bang
могут работать 4 из 5 линий CBUS. Они могут служить дополнитель-ными линиями
ввода/вывода. На скорость обмена по линиям CBUS будет влиять загрузка
основ-ного канала USB - UART.
Для передачи тактовых
сигналов от встроенного генератора на внешние устройства могут быть
задействованы все 5 выводов шины CBUS. Частота выходного сигнала на любом из
выво-дов может быть задана равной 6, 12, 24 или 48 МГц независимо от конфигурации
других выво-дов. Такая возможность позволяет отказаться от использования в
схеме дополнительных элемен-тов, таких как, например, тактовые генераторы и
распределители тактовых сигналов.
Следует отметить, что
новые версии микросхем FT232R и FT245R несовместимы по вы-водам с микросхемами
предыдущей серии "B".
В качестве
иллюстрации приведем две схемы преобразователя USB - RS232 на базе мик-росхемы
FT232BM (рис.1) и на базе микросхемы FT232R (рис.2). Видно, насколько
упростилась схема включения нового кристалла.
Рисунок 1
Рисунок 2
В ряду продукции
фирмы FTDI также стоит отметить микросхему FT2232C. На ее базе можно
реализовать два независимых канала "USB - UART" или "USB -
FIFO". Выходные ин-терфейсы выбираются независимо друг от друга. Кроме
основных функций, микросхемы данной серии могут быть использованы для загрузки
конфигурации в микросхемы FPGA производства компании Altera или для эмуляции
последовательных интерфейсов IIC, SPI или JTAG.
Несколько слов
хотелось бы сказать и о выборе выходного интерфейса. Решение данной задачи
зависит от требуемой скорости передачи и наличия свободных линий ввода/вывода
мик-роконтроллера, установленного в целевом приборе. Максимальной скорости
передачи в 8 Мбит/с можно достичь при использовании микросхемы FT245 "USB
- FIFO". Подключение к внешнему контроллеру обеспечивают 8 линий данных, 2
линии для передачи управляющих сигналов чтения или записи и 2 линии статуса
приемного и передающего буферов. Для микросхем FT232 "USB - UART"
FT232 максимально возможной скоростью будет 3 МБода. Обмен между контроллером и
микросхемой происходит по интерфейсу UART. В этом случае используются 2 линии
для пере-дачи данных и 6 линий для обеспечения аппаратного контроля обмена.
Линии аппаратного кон-троля могут не использоваться.
Следует учитывать,
что в реальных системах достичь максимальной скорости обмена в 8 Мбит/с удается
далеко не всегда. Одним из ограничивающих факторов во многих случаях явля-ется
скорость работы операционной системы компьютера. По результатам проведенных
испыта-ний при работе с ОС Windows XP от микросхем FT245 можно с уверенностью
ожидать скоростей порядка 6 Мбит/с.
Если прибор оснащен
интерфейсом RS-232, либо имеющиеся ресурсы контроллера не по-зволяют выделить
12 линий ввода/вывода, а возникла необходимость обеспечить связь по USB, то
самый простой выход - аппаратный мост FT232 "USB - UART". В общем
случае, в целевом приборе придется заменить аппаратный драйвер RS232 на FT232 и
установить драйвер виртуаль-ного COM-порта на компьютере.
Итак, использование
специализированных микросхем FTDI решает аппаратную проблему реализации
интерфейса USB в целевом приборе. Но остается открытым вопрос разработки
драй-вера. Компания FTDI дает решение и этой задачи. Для работы с мостами
разработаны и свободно распространяются два типа драйверов: VCP (виртуальный
COM-порт) и D2xx. Разработчику ос-тается выбрать подходящий драйвер.
В общем случае,
преимущество драйвера VCP заключается в том, что для обмена данными по USB
можно использовать ранее созданное программное обеспечение, работающее с
COM-портом, при условии, что эти программы осуществляли корректный доступ к
последовательному порту через стандартные WIN32 API-функции. В этом случае
модификация программы будет за-ключаться лишь в замене номера последовательного
порта. Отметим, что драйвер VCP поддер-живает работу со всеми микросхемами FTDI
независимо от того, какой способ связи с микрокон-троллером они используют:
последовательный ("USB - UART") или параллельный ("USB -
FIFO").
Драйверы D2xx включают
драйвер WDM, который осуществляет связь с устройством че-рез Windows USB Stack
и библиотеку DLL, которая связывает прикладное программное обеспе-чение
(написанное на VC++, Borland C++ Builder, Delphi, VB и т.п.) с драйвером WDM. В
общем случае, они являются альтернативой драйверам VCP. Исключением будет
использование после-довательных каналов IIC, SPI или JTAG для микросхем FT2232
или новой технологии FTDI-ChipIDTM для микросхем серий FT232R и FT245R, которые
могут быть реализованы только с по-мощью драйверов D2xx. Драйверы D2XX
позволяют достичь максимальных заявленных скоро-стей обмена данными - 8 Мбит/с
для каналов, образующих параллельный интерфейс с микро-процессорной системой, и
3 Мбит/c при использовании последовательной связи с микроконтрол-лером.
На данный момент
драйверы разработаны для таких операционных систем, как Windows (98, ME, 2000,
CE, server 2003, XP и XP x64), Mac OS (8, 9, X) и Linux. Драйверы VCP для
Win-dows XP имеют сертификат WHQL, в ближайших планах компании FTDI - получение
сертифи-ката WHQL для драйверов D2xx.
Продолжающийся рост
количества конечных устройств с интерфейсом USB, в том числе и с функцией
хоста, не остался незамеченным компанией FTDI. На 2006 год в планах компании
за-пуск в производство аппаратных хост-контроллеров с программируемым
интерфейсом пользова-теля. По предварительной информации, в устройство будет
заложена возможность выбора типа интерфейса - разработчик сможет выбрать один
из последовательных интерфейсов (SPI, IIC, UART), либо параллельный интерфейс.
В разработке также находится контроллер с поддержкой высокоскоростного режима
(480 Мбит/с). Выходной интерфейс здесь предполагается сделать аналогичным
интерфейсу хост-контроллера.
Особо отметим, что по
заявлению FTDI ни одна из ранее разработанных микросхем USB, будь то
концентратор FT8U100AX или мосты "USB - UART/FIFO" FT8U232AM/245AM не
пла-нируются к снятию с производства.
Использование
продукции компании FTDI позволит забыть о необходимости "дотошно"
изучать спецификацию USB. Реализация интерфейса USB в целевом приборе теперь
становится делом не месяцев, а недель, подтверждая заголовок статьи "USB -
это просто"!
Использование и установка D2xx-драйверов
фирмы FTDI
Использование D2xx -драйверов
D2xx-драйверы фирмы
FTDI являются альтернативой VCP-драйверам. Они включают драйвер WDM, который
осуществляет связь с устройством через Windows USB Stack, и библиотеку DLL,
которая связывает прикладное программное обеспечение (написанное на VC++,
Borland C++ Builder, Delphi, VB и т.п.) с WDM драйвером.
D2XX-драйверы
позволяют получать максимальные заявленные скорости обмена данными (8 Мбит/с
для каналов, образующих параллельный интерфейс с микропроцессорной системой, и
3 Мбит/c при использовании последовательной связи с микроконтроллером).
Установка
D2XX-драйверов
Драйверы многих
фирм-производителей USB-устройств сертифицированы и интегрированы в
опeрационную систему Windows. При подключении к компьютеру нового
USB-устройства операционная система опрашивает его идентификаторы: VID (Vendor
Identifier) и PID (Product Identifier). Если драйвер, соответствующий этим
идентификаторам, имеется в составе операционной системы, то начинается его
установка. Если система не находит самостоятельно соответствующего драйвера, то
она предоставляет возможность пользователю указать путь к каталогу, в котором
находится необходимый дистрибутив.
Oперационные системы
Windows 98/ME/2000 не содержат в своем составе сертифицированных драйверов
FTDI. Поэтому при подключении USB-устройств со стандартными для FTDI
идентификаторами (VID=0403 и PID=6001) пользователь имеет возможность выбрать
тип необходимого драйвера, VCP или D2XX, указав соответствующую директорию для
установки.
Немного сложнее
обстоит дело в случае использования операционной системы Windows XP, которая
уже имеет в своем составе сертифицированные VCP-драйверы FTDI. При попытках
присоединить к компьютеру новое USB-устройство со стандартными идентификаторами
FTDI (например, любой DLP-модуль) система по умолчанию, не спрашивая пользователя,
самостоятельно установит VCP-драйверы. Пользователю, желающему работать с
D2XX-драйверами, необходимо в этот момент вспомнить, что очень полезно
воспитывать в себе терпение и воспользоваться утилитой ftxprcvr.exe,
входящей в состав дистрибутива D2XX-драйверов для Windows XP. Утилита ftxprcvr.exe,
используя установившиеся по умолчанию VCP-драйверы, перепрограммирует внешнюю
EEPROM, используемую в присоединенном устройстве, и задаст новые значения
идентификаторов (VID=0403 и PID=6006). После этого необходимо повторить
процедуру установки D2XX-драйверов сначала, т.е отключить и снова присоединить
устройство. Теперь система даст возможность пользователю указать директорию для
установки D2XX-драйверов.