Сайт по программированию микроконтроллеров
Download Page

 

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-драйверов.

 

Hosted by uCoz
Место для рекламы

Этот сайт создан при помощи программы Globus SiteBuilder
Этот сайт создан при помощи программы Globus SiteBuilder
Hosted by uCoz