Аппаратные мосты FTDI для интерфейса USB
Сегодня уже никого не удивишь наличием USB-интерфейса у персональных компьютеров. Во многих случаях он становится практически единственным проводным коммуникационным интерфейсом, позволяющим подключать к компьютеру различные внешние устройства — цифровые видеокамеры и фотоаппараты, принтеры и сканеры, внешние устройства хранения данных. Благодаря своей простоте использования шина USB практически вытеснила своих предшественников — параллельную шину (LPT) и последовательный интерфейс (COM-порт).
Большинство современных персональных компьютеров обязательно оснащается интерфейсом USB, а некоторые могут уже не иметь порта COM или LPT. Такая ситуация отрицательно сказывается на производителях приборов и систем, разработанных ранее и не имеющих возможности подключения к современным компьютерам по USB. То же самое можно сказать и о конечных пользователях, покупающих, например, ноутбук и не имеющих возможности подключить к нему проверенную временем аппаратуру, которая не оснащена интерфейсом USB.
Очевидный выход из данной ситуации оснащение выпускаемой техники новым интерфейсом. Конечный потребитель для этого может использовать специально выпускаемые переходные кабели USB–RS-232 или USB–LPT (рис. 1), а производителю техники придется затратить куда больше усилий для разработки нового изделия. Причем изменения коснутся не только аппаратной части изделия, но и программной — как верхнего (хост), так и нижнего (микроконтроллер) уровня. Для многих задач «камнем преткновения» может стать задача написания драйвера устройства для хост-машины. Так, например, можно использовать стандартные драйверы, входящие в операционную систему, — драйверы устройств класса 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 независимых линий ввода-вывода. В таком режиме мост может, например, управлять работой реле без дополнительного микроконтроллера. Кроме того, была изменена схемотехника кристалла — в него был интегрирован супервизор питания.
2006 год был ознаменован появлением нового поколения микросхем — FT232R (рис. 2) и FT245R, в котором были реализованы пожелания многих разработчиков: интегрированные на кристалл энергонезависимая память для хранения настроек режима работы и идентификаторов USB, встроенный тактовый генератор и некоторые пассивные компоненты.
Дополнительно каждая микросхема получила уникальный идентификатор FTDIChipID, «прошиваемый» на производстве. Встроенная EEPROM с выделенной областью для записи пользовательской информации и уникальный идентификатор в сумме дают возможность создавать на базе новых микросхем FTDI аппаратные ключи для защиты от несанкционированного доступа. Для работы с новой функцией была создана новая библиотека, которая работает совместно с драйвером D2xx (см. ниже).
В новой версии мостов претерпел кардинальные изменения встроенный преобразователь напряжения 3,3 В. Теперь его нагрузочная способность достигла 50 мА, что в 10 раз больше, чем у предшественников. Внесены усовершенствования и в режим Bit Bang. Теперь изменение состояния линий ввода-вывода может сопровождаться контрольными сигналами чтения или записи. Новое поколение микросхем рассчитано на работу в индустриальном температурном диапазоне от –40 до +85 ºС. Новые микросхемы выпускаются в двух типах корпусов — 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–RS-232 на базе микросхемы FT232BM (рис. 3) и на базе микросхемы FT232R (рис. 4). При их сравнении видно, насколько упростилась схема включения нового кристалла.
В ряду продукции фирмы FTDI также стоит отметить микросхему FT2232C. На ее базе можно реализовать два независимых канала USB–UART или USB–FIFO. Выходные интерфейсы выбираются независимо друг от друга. Кроме основных функций, микросхемы данной серии могут производить загрузку конфигурации в микросхемы FPGA производства компании Altera или эмулировать последовательные интерфейсы IIC, SPI или JTAG.
Несколько слов хотелось бы сказать и о выборе выходного интерфейса. Решение данной задачи зависит от требуемой скорости передачи и наличия свободных линий ввода-вывода микроконтроллера, установленного в целевом приборе. Максимальной скорости передачи в 8 Мбит/с можно достичь при использовании микросхемы FT245 USB–FIFO. Подключение к внешнему контроллеру обеспечивают 8 линий данных, 2 линии для передачи управляющих сигналов чтения или записи и 2 линии статуса приемного и передающего буферов. Для микросхем FT232 USB–UART максимально возможной является скорость 3 Мбит/c. Обмен между контроллером и микросхемой происходит по интерфейсу UART. В этом случае 2 линии используются для передачи данных, и еще 6 линий — для обеспечения аппаратного контроля обмена. Линии аппаратного контроля могут не использоваться.
Итак, использование специализированных микросхем 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 или новой технологии FTDIChipID для микросхем серий FT232R и FT245R, которые могут быть реализованы только с помощью драйверов D2xx. Драйверы D2xx позволяют достичь максимальных заявленных скоростей обмена данными — 8 Мбит/с для каналов, образующих параллельный интерфейс с микропроцессорной системой, и 3 Мбит/c при использовании последовательной связи с микроконтроллером.
На данный момент драйверы разработаны для таких операционных систем, как Windows (98, ME, 2000, CE, server 2003, XP и XP x64), Mac OS (8, 9, X) и Linux. Драйверы VCP для Windows XP имеют сертификат WHQL, в ближайших планах компании FTDI — получение сертификата WHQL для драйверов D2xx.
Продолжающийся рост количества конечных устройств с интерфейсом USB, в том числе и с функцией хоста, не остался незамеченным компанией FTDI. В планах компании на 2006 год — запуск в производство аппаратных хост-контроллеров с программируемым интерфейсом пользователя. По предварительной информации, в устройство будет заложена возможность выбора типа интерфейса — разработчик сможет выбрать один из последовательных интерфейсов (SPI, IIC, UART), либо параллельный. В разработке также находится контроллер с поддержкой высокоскоростного режима (480 Мбит/с). Выходной интерфейс здесь предполагается сделать аналогичным интерфейсу хост-контроллера.
Особо отметим, что, по заявлению, FTDI ни одна из ранее разработанных микросхем USB, будь то концентратор FT8U100AX или мосты USB–UART/FIFO FT8U232AM/245AM не планируются к снятию с производства.