Научная статья на тему 'Аппаратные USB-мосты FTDI'

Аппаратные USB-мосты FTDI Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
788
101
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Долгушин Сергей

Запуск в производство новых высокоскоростных мостов FT2232H и FT4232H вызвал новую волну интереса к продукции компании FTDI. В настоящей статье попытаемся удовлетворить этот интерес, рассказав о ключевых особенностях микросхем FTDI, о драйверах и необходимых утилитах для них. В приводимых примерах работы с утилитами показаны некоторые нестандартные настройки драйверов и типовые проблемы, возникающие при работе с USB-мостами. Изложенная информация в первую очередь, будет интересна специалистам, ранее не сталкивавшимся с аппаратными мостами данного производителя.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Аппаратные USB-мосты FTDI»

Аппаратные USB-мосты FTDI

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

Сергей Долгушин

[email protected]

В настоящее время компания FTDI предлагает два основных типа микросхем: одноканальные аппаратные мосты USB-UART/FIFO и многоканальные универсальные ШВ-мосты.

Одноканальные мосты FT232B/R и FT245B/R хорошо известны многим разработчикам и широко применяются в изделиях, выпускаемых в России. На данный момент рекомендуется в новых проектах использовать серию микросхем FT232R и FT245R. Микросхемы серии ‘^” имеют встроенный генератор, EEPROM и некоторые другие пассивные компоненты. Основные различия между сериями В и R приведены в таблице 1.

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

модули в составе разрабатываемого устройства. Наиболее популярными из них являются: модуль UM232R на базе микросхемы FT232R и модуль UM245R, выполненный, соответственно, на базе FT245R. Внешний вид модуля UM232R приведен на рис. 1. UM245R имеет аналогичный форм-фактор. Данные устройства удобны для макетирования. Источником питания модуля может служить шина USB или подходящий по параметрам внешний прибор. Напряжение питания портов ввода/вывода, в зависимости от схемотехнических требований, можно брать от шины USB (5 В), от внутреннего регулятора аппаратного моста (3,3 В) или от внешнего источника (2,5 или 1,8 В).

Многоканальные универсальные USB-мосты имеют два или четыре выходных порта, а их универсальность достигается за счет режима MPSSE (Multi-Protocol Synchronous

Рис. 1. Модуль UM232R

Serial Engine). В режиме MPSSE эти мосты могут эмулировать работу различных последовательных протоколов. Компания FTDI в качестве примера предоставляет готовые библиотеки, позволяющие использовать мосты в режимах USB-SPI, USB-IIC или USB-JTAG. На данный момент такие мосты представлены тремя микросхемами: двухканальные мосты FT2232D и FT2232H, четырехканальный мост FT4232H. Микросхемы FT2232H и FT4232H являются новинками 2009 года. Их основной особенностью является поддержка высокоскоростного режима передачи данных — high speed USB. Функциональное сравнение новых микросхем приведено в таблице 2, сравнительные характеристики FT2232D и FT2232H — в таблице 3.

Обе микросхемы выполнены в 64-вы-водных корпусах типа QFN (обозначается буквой Q, например, FT2232HQ) и LQFP (обозначается буквой L) и рассчитаны на напряжение питания 3,3 В и рабочий температурный диапазон от -40 до +80 °C. Конфигурация микросхем, дескрипторы USB, VID и PID хранятся во внешней EEPROM, в качестве которой может быть использована микросхема AT93C46/56/66 фирмы Atmel. Если питание микросхем осуществляется от шины USB, в схеме требуется использовать регулятор на-

Таблица 1. Краткие сравнительные характеристики микросхем серий B и R

Мосты USB-UART Мосты USB-FIFO

Особенности FT232B FT232R FT245B FT245R

Режим bit-bang Есть Есть Есть Есть

Программируемые линии ввода/вывода - 5 линий CBUS (по умолчанию выполняют функции TXDEN, PWREN#, TXLED#, RXLED#, TX&RXLED#, SLEEP) - -

Количество внешних компонентов 12 12 2

Наличие встроенных EEPROM и генератора - Есть - Есть

Корпуса LQFP32 и QFN32 SSOP28 и QFN32 LQFP32 и QFN32 SSOP28 и QFN32

Температурный диапазон, °С 0...+70 —40...+85 0...+70 -40...+85

Таблица 2. Сравнение микросхем FT2232H и FT4232H

FT2232H FT4232H

Режимы Канал 1 Канал 2 Канал 1 Канал 2 Канал 3 Канал 4

USB-UART Есть Есть Есть Есть Есть Есть

FT245 SYNC FIFO (8-разрядный параллельный синхронный) Есть - - - - -

FT245 ASYNC FIFO (8-разрядный параллельный асинхронный) Есть Есть - - - -

MPSSE (включая SPI, JTAG и IIC) Есть Есть Есть Есть - -

Bit-bang Есть Есть Есть Есть Есть Есть

CPU Style FIFO Interface Есть Есть - - - -

Host Bus Emulation Задействованы оба канала - - - -

Таблица 3. Основные различия микросхем FT2232D и FT2232H

FT2232D FT2232H

USB, режим обмена 12 МГц FULL SPEED 480 МГц HIGH SPEED

Корпус LQFP-48 QFN-64 и LQFP-64

Основные режимы работы UART, асинхронный параллельный, асинхронный и синхронный “bit-bang”, MPSSE UART, асинхронный и синхронный параллельный, асинхронный и синхронный “bit-bang”, MPSSE

Режим UART

Максимальная скорость передачи, Мбод 3 12

Multi Protocol Synchronous Serial Engines

Количество каналов 1 2

Максимальная частота работы, МГц 6 ЗО

Параллельный интерфейс

Максимальная скорость передачи в асинхронном режиме, Мбит/с < 1 > 8

Максимальная скорость передачи в синхронном режиме, Мбит/с - > 25

VCC3V3IN

і '

1.8 Volt

•+V1.80UT — LDO

Regulator

- EECS

- EESK —

- EEDATA

- OSCI

- oseo —

- USBDP ■

- USBDM ■

- RREF ■

EEPROM

Interface

Baud Rate Generator

Dual Port TX Buffer 4 К Bytes

Dual Port RX Buffer 4 К Bytes

USB Protocol Engine And FIFO Control

MPSSE/

Multi-

purpose

UART/FIFO

Controller

- ADBUSO -

- ADBUS1-

- ADBUS2-

- ADBUS3-

- ADBUS4-

- ADBUS5-

- ADBUS6-

- ADBUS7-

- ACBUSO-■ ACBUS1 -

- ACBUS2-

- ACBUS3-

- ACBUS4-

- ACBUS5-

- ACBUS6-

- ACBUS7-

Baud Rate Generator

Dual Port TX Buffer 4 К Bytes

Dual Port RX Buffer 4K Bytes

MPSSE/

Multi-

purpose

UART/FIFO

Controller

■ BDBUSO -

■ BDBUS1 -

■ BDBUS2 -

■ BDBUS3 -BDBUS4 -

■ BDBUS5 -

■ BDBUS6 -

■ BDBUS7-

BCBUSO -BCBUS1-

■ BCBUS2 -BCBUS3 -

■ BCBUS4 -

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

■ BCBUS5 -

■ BCBUS6 -

■ BCBUS7 -

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

пряжения на 3,3 В, например LP38693MP-3.3 производства National Semiconductor.

Микросхема FT2232H представляет собой 2-канальный аппаратный мост (рис. 2). Каждый канал может работать в следующих основных режимах: последовательного (UART), 8-разрядного параллельного интерфейса, или MPSSE. Параллельный интерфейс имеет несколько вариантов конфигурации, основными из которых являются синхронный или асинхронный FIFO, и bit-bang.

В режиме MPSSE могут быть эмулированы различные последовательные интерфейсы, например, SPI, JTAG и I2C, или реализован интерфейс для загрузки конфигурации в ПЛИС Altera или Xilinx. Для интерфейсов SPI, JTAG и IIC компания FTDI предоставляет готовые библиотеки верхнего уровня.

Скорость обмена зависит от выбора выходного интерфейса. В режиме UART скорость каждого канала может достигать 12 Мбод. В режиме MPSSE — до 30 Мбит/с. Для синхронного параллельного интерфейса FIFO можно получить скорость более 25 Мбайт/с, в данном режиме доступен только один канал микросхемы.

При параллельном режиме работы микросхемы FT2232H следует иметь в виду, что в асинхронном режиме микросхема может обеспечивать передачу данных по двум независимым 8-разрядным каналам. Оба канала представляются в операционной системе как два USB-устройства. Каналы не могут быть объединены для получения одного 16-разрядного.

Четырехканальный мост FT4232H, в отличие от FT2232H, менее функционален с точ-

Рис. 3. Внешний вид отладочных модулей

для микросхем FT2232H и FT4232H

ки зрения конфигурации выходных интерфейсов. Все каналы могут работать в режиме UART, два канала из четырех могут работать в режиме MPSSE. Каждый из каналов конфигурируется и работает независимо друг от друга. По скорости обмена микросхема идентична по характеристикам FT2232H в соответствующих режимах работы.

Для тестирования возможностей новых микросхем FTDI предлагает готовые модули FT4232H Mini Module и FT2232H Mini Module (рис. 3). Оба модуля выполнены в одинаковом форм-факторе. Два 26-выводных штыревых разъема модуля предназначены для подключения модуля к целевой плате. Стандартный 5-контактный разъем USB mini B используется для подключения к USB-порту компьютера с помощью стандартного USB-кабеля.

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

Компания FTDI предоставляет для всех своих мостов бесплатные драйверы, утилиты для настройки и примеры приложений верхнего уровня, а также подробную документацию по работе с ними. Руководствуясь примерами, приведенными в документации (например, руководство программиста по работе с драйвером Software Application Development D2XX Programmer’s Guide), достаточно просто освоить интерфейс взаимодействия программы верхнего уровня и аппаратного моста (рис. 4).

Наличие драйверов является одним из ключевых моментов при выборе USB-контроллера того или иного производителя. Компания FTDI предлагает для своих микросхем готовые драйверы двух типов — VCP

D2XX

Application

FTD2XX.DLL

COM Port Application

FTSER2K.SYS

FTDIBUS.SYS

USB Host Controller Driver

Рис. 4. Структура комбинированного драйвера

(виртуальный COM-порт) и D2XX. VCP-драйвер позволяет работать с USB как с обычным COM-портом. Он поддерживает все режимы передачи COM-порта и не требует модификации программного обеспечения, кроме тех случаев, когда обращение к COM-порту осуществлялось на «низком» уровне. В последнем случае программу верхнего уровня придется модифицировать.

D2ХХ-драйвер обеспечивает прямой доступ к микросхемам FTDI посредством API-функций верхнего уровня. С его помощью осуществляется работа в режимах: MPSSE, bitbang, синхронного FIFO, работа с EEPROM.

Оба драйвера входят в единый дистрибутив и устанавливаются одновременно. При использовании VID и PID FTDI самый простой способ установить драйвер — это использовать автоматически устанавливаемый архив CDM x.xx.xx.exe (здесь x.xx.xx обозначает номер версии драйвера). При таком варианте установки драйвер должен инсталлироваться до подключения устройства! Если предполагается работа мостов FTDI

с измененными VID и PID, то для установки драйвера необходимо использовать версию дистрибутива, предоставляемую в обычном архиве. Тогда драйвер устанавливается после подключения USB-моста к компьютеру, например через «мастер» установки нового оборудования. Предварительно новые VID и PID должны быть прописаны в файлах ftdibus.inf и ftdiport.inf в разделах [FtdiHw], [FtdiHw.NTamd64] и [Strings] по аналогии с тем, как в данных разделах прописаны VID и PID производителя. Строка из раздела [FtdiHw] файла ftdiportinf выглядит следующим образом:

%VID_0403&PID_6001.DeviceDesc% = FtdiPort232.NT, FTDIBUS\COMPORT&VID_0403&PID_6001.

В настоящее время FTDI предлагает упростить процесс работы с INF-файлами с помощью утилиты INF File Generator (рис. 5). Данная утилита позволяет заранее, перед установкой драйвера, внести следующие изменения и настройки в inf-файл драйвера: изменение VID и PID производителя, описание устройства, задание нестандартной скорости передачи при использовании VCP-драйверов и привязки нового значения к стандартной, привязка конкретного устройства к одному USB-порту и другие функции.

Рассмотрим работу с данной утилитой на примере изменения стандартной скорости обмена для режима виртуального COM-порта (VCP). Во вкладке Baud Rates приведены три столбца значений (рис. 6): стандартная скорость передачи (Standard Baud Rates); скорость передачи, задаваемая пользователем (Alias); скорость передачи, наиболее близкая к заданной пользователем (Closest Achievable). В первом столбце приведен стан-

!- - Ш

Ни^пЄвігікхі Üuhnfuui

FTDI üuv<*: «wi гї^-iW-d»^ LwjJ іяіп. і ¡сшцямгі? W

Дьз:пЭ І: Tf* ГМ^Ы ‘Mfc* 13Jb:<jd Hf hitfi

tMtd Dhpl 1 ГЕП i И 11 ИУИ> lM

Мм ObHirAchh.

зек- зон Ж

№ Ш CK

1JÍ0 1.ÍÚÜ ВД

гмш ашб. ЖВ

9.Ш) эда *00

пен Ч.г

13 ДМ 1Э.ДМ l*flj

ЗМН MLA BKC

5?*ВД gJW ;

TI123# mm l'SH

ЯОЬВД mm «¡1»

4ЄВОО «ви 4ЛЕ9

mm кі.да

Cid

Рис. 6. Окно утилиты INF File Generator, настройка скорости передачи

дартный набор скоростей, которые могут быть выбраны при использовании стандартных настроек в Windows. Во втором столбце вводится необходимое значение скорости, которое будет назначаться порту при выборе соответствующего стандартного значения в настройках этого порта. На рис. 7 приведен пример привязки нового значения скорости к стандартному. Так, если требуется скорость, равная 126 778 бод, то это значение вводим в поле Alias, а ближайшее доступное значение, определяемое аппаратными характеристиками микросхемы, будет равно 126 984 бод. Теперь при выборе скорости

Рис. 5. Окно утилиты INF File Generator

Рис. 8. Стандартное окно настроек драйвера COM-порта

-!Н*1

Рів ОДО« ИНЬ

ЕИСЙГІ КН? F#4l>

► IV |Lw-i Jh

■+ ІР*ОМ#лмС«ч fV ИЙІІ Etfl РИ? F«Wv г- г» Д»ч*

хтшш

^м#|№&№Г«№ і- фА&*&

•fii LP»n]B»«<W«*i + РЫЭдНЫпиСип •$» ьмП| ЗМ№й ;ЮІ? F*+|L Р 4» ifkdHjfa

4 IFWijhg^aCton

-"Ї- |F*lflNiiJ«TiHiCi»T

•¡¡r w*mi raw кн? f**|l

Г vy FkvfJj

*r [^IlHefftffwCaw-it- PviaDtiiH№n№ ^№9№M№ -fr Fff«lM(i4F*iG«4 -fr

■+ |M4 №>№*&■■

IVrtStn timer i?lirr

Ыкт*1свйпЬС.*а-з bOewioel'iotocot:

ЬЛтеІ'АтїічІЛ.ьір . ї'ІЯєЯрЬг

iJlamreil-ifti LirD4 L'f «ТНИ* iT№hcli

6x0 IS* -ПІЇМВДЦ

DMi«» 'HLilJB-m aieE-злІважЬчя-г

рир*« ’птакгаг

" E - T±.r ( L i cr.i

ОнйІйО

QhQD

am

ChQD

йийм ¡III

CmQIQi !Fm4ms# Т*:Ь*оісііт Вчкіс** [пшгміиіші и-м-ІЗ 0*9999 ІиСІОв спої

Dh02

H

C>U1

IL£nSLa.L>ja. Е*уІЄвСйшшЄ*аЛ gmmt Cwfip Ті Іи: fa 00 I*r¥SCn &rS 5$r»rH Fu I I.

і^»'.ґи ¿Лгітлч.*. CmOJ

T^jcti F.j-n P

Z0*i LlVTS-l ІОЬ ІЧ-КЗ LptCI

»Tulta. LpWJ-tb. ІІяййв'и

bffohlfrteTlfe-?-« ПиОІ

L-O-niL i>j«rwL ійпТмЛйаг СnGІ.

15пЕ ІТ+Г+с ii>-> faOP

ІлиЧ! С-іМЬчііУі СнЕШ Бия

■нфота Unit? ¡IP На і

Jjsfc*ri*^ Cxrccj-Lpicj

Lin1*1 ChOD

ЬЦЦдИ «ІИІ iW! faOO

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

ЬРаЕн&оійіч CiHOZ

b.'nlRriiaCtut D*FF

Ьївї»г£#с*5ч*£Ііаії r.uFt

bin*:«rfflcaFj-DLocQL: С siFF

:ltt*rfK4 faOi

ОкОДО ■ІШІИ-ЗН' йкйДО ’TTU' I .'У-J'J j ‘

ИлЗро.хЛ C^BrhyLer bErfpOibiilddJ.»*: CuSl

Тгшіог № Buik

GhQDID ! ь* i ОшЙО

EiJjiu.al E>n. x L 7' і ся bfcr»iro j ч ^ il t ГЗ і tiPi

Тг«ш»Іаіг Ттргг E-j I k

i-iii* fa00«0 I til

ЬІ»ї*Г**« CuOQ

I ________11Ы

jOnjnCvniAKi 1 HiLvGpmiNrl С

в 300 бод реальная скорость передачи будет соответствовать 126 984 бод (рис. 8).

Напомним, что все настройки, которые можно вносить с помощью утилиты INF File Generator, могут быть также внесены вручную в соответствующие INF-файлы драйвера. Применительно к назначению скорости передачи это означает, что придется самостоятельно рассчитывать все необходимые значения делителей и вносить их в необходимом формате в INF-файл. Предлагаемая утилита существенно упрощает проведение данных процедур. Для тех, кто в первый раз сталкивается с необходимостью внесения изменений в INF-файлы драйверов, этот метод будет наиболее удобным и простым.

Не следует забывать, что при внесении любых изменений в INF-файлы автоматически теряется сертификат WHQL. Сертификация драйвера в таком случае должна осуществляться производителем конечного продукта.

Для установки режимов работы USB-мостов, изменения USB-дескрипторов и записи их во внутреннюю (FT232R/FT245R) или внешнюю EEPROM производитель предлагает использовать новую версию утилиты MProg-FTProg. В новую версию (дополнительно к возможности настройки USB-мостов) включена возможность программирования хост-контроллера Vinculum. Интерфейс программы и работа с ней просты. Встроенная подробная справка по работе с утилитой поможет уточнить назначение того или иного параметра. На рис. 9 показан внешний вид утилиты на примере работы с микросхемой FT2232H. Четыре окна программы предоставляют пользователю следующую информацию: левое окно — дерево всех настраиваемых функций, режимов работы и дескрипторов; правое верхнее — выбор необходимой функции, режима или дескриптора; правое среднее — краткую справку о выбранном для редактирования пункте; в нижнем правом окне выводится служебная информация и данные, считанные из EEPROM.

Доступ ко всей области EEPROM — служебной (куда записываются настройки и дескрипторы) и пользовательской (по умолчанию свободная область памяти) — может осуществляться из конечного приложения с помощью API-функций драйвера D2XX. При первом знакомстве с USB-мостами FTDI данный режим рекомендуем использовать только для работы с пользовательской областью памяти EEPROM, а настройку осуществлять с помощью стандартной утилиты FTProg. Это поможет избежать недоразумений, которые, например, для микросхем FT232R могут привести к отключению встроенного генератора. Дальнейшая работа с таким мостом будет возможна только после подключения внешнего генератора. Диагностирование причины неработоспособности в таком случае также представляется затруднительным.

Рис. 9. Окно утилиты FT Prog

Рис. 10. Утилита USBView

Записанные в память ШВ-мостов дескрипторы могут быть проверены с помощью бесплатно распространяемой утилиты

USBView. Данную программу можно найти и скачать с сайта FTDI. На рис. 10 показана ситуация проверки причины неправильно-

интерфейсы

го определения устройства. В окне утилиты USBView можно видеть, что PID подключенной микросхемы определяется неправильно. В данном случае, например, ошибку вызывает одновременное подключение двух устройств с одинаковыми VID и PID и серийным номером. При подключении нескольких устройств они должны иметь хотя бы разные серийные номера.

Если значения дескрипторов отображаются в виде 0x000, причины могут быть следующие:

• По мнению FTDI, 99% таких случаев вызваны прямым подключением экрана разъема к «земле» — в соответствии с рис. 10 это означает, что выводы разъема USB 5 и 6 соединены с выводом 4 этого же разъема. Такое соединение является некорректным.

Один из вариантов развязки сигнальной и приборной «земель» приведен в качестве примера на рис. 11.

• Иногда такую проблему вызывает включение дополнительных оконечных резисторов в линии DP и DM, что не требуется для всех новых микросхем серий R и Н. В данных микросхемах эти резисторы интегрированы на кристалле.

• Использование ШВ-кабелей, не соответствующих спецификации, может приводить к эффектам неправильного определения устройства или нестабильной связи. Качество кабеля особенно принципиально при работе с высокоскоростными ШВ-мостами.

С помощью данной утилиты, не используя специализированное оборудование, легко обнаружить и устранить такого рода проблемы.

Заключение

Среди разработчиков существуют разные, как положительные, так и отрицательные, мнения о продукции FTDI. Бесспорным, однако, является обстоятельство, что каждый случай следует рассматривать исходя из требований конкретной задачи. Использование законченных аппаратных решений существенно ускоряет разработку и внедрение того или иного узла прибора. Аппаратные мосты FTDI являются хорошим выбором и проверенным решением для реализации интерфейса ШВ. ■

i Надоели баннеры? Вы всегда можете отключить рекламу.