Работа аппаратного USB-моста FTDI FT2232H в режиме синхронного FIFO
Микросхема FT2232HL представляет собой двухканальный аппаратный USB-мост, работающий в высоко- скоростном режиме USB. Он способен работать в нескольких конфигурациях, основные из которых следующие: UART, асинхронное FIFO, MPSSE и синхронное FIFO. Первые три режима уже известны тем, кто знаком с микросхемами предыдущих серий — FT232, FT245 и FT2232D, и схожи с ними по принципу работы. Отличием аппаратного моста FT2232H от остальных USB-мостов FTDI является новый режим работы — синхронное FIFO. Назначение этого режима — передача данных между компьютером или любым другим USB-хостом и оконечным устройством, если требуется обеспечить скорость обмена более 8 Мбайт/с. По документации производителя, скорость обмена может быть более 25 Мбайт/с. Теоретически пиковые значения скорости передачи могут достигать 52 Мбайт/с, аппаратные возможности микросхемы позволяют обеспечить такую скорость. Для справки: значение 52 Мбайт/с представляет собой максимальную пропускную способность шины USB для режима передачи Bulk. Именно Bulk-режим используется в микросхемах FTDI.
Мост FT2232H не является новинкой в данном сегменте, многим разработчикам давно знакомы микросхемы компаний Cypress и NXP (Philips), которые могут быть использованы для решения аналогичных задач. Далее кратко сравним возможности новой микросхемы FTDI и микросхем Cypress.
Микросхемы FTDI, проигрывая по некоторым техническим и функциональным характеристикам, например, микросхемам Cypress серий CY7C6801xA и CY7C68001, существенно выигрывают у них в цене. Основным преимуществом USB-контроллеров Cypress является поддержка всех режимов передачи по USB — Isochronous, Interrupt и Bulk. Это позволяет использовать их в любых USB-приложениях, где требуется гарантированное время доставки (Isochronous) или гарантированная целостность передаваемых данных (Bulk). Мост FT2232H поддерживает передачу только в режиме Bulk.
Следующим пунктом можно выделить энергопотребление. Контроллеры Cypress семейства CY7C6801xA имеют типовое значние потребляемого тока порядка 50 мА (исключая серию CY7C68001, для нее типовое значение составляет 200 мА), для FTDI — порядка 100 мА (значения приводятся на основе информации производителя).
Отметим также более универсальный ин- терфейс взаимодействия микросхем Cypress с внешним устройством (ПЛИС, ЦСП и т. п.). Сюда относится и возможность выбора разрядности шины данных, она может быть 8-разрядной и 16-разрядной. В целом на пропускную способность это не влияет, но в некоторых случаях упрощает сопряжение с внешним устройством. USB-мост FTDI работает только с 8-разрядной шиной данных. Наличие у микросхем Cypress программируемых порогов наполнения буфера FIFO позволяет более гибко отслеживать состояние последнего. FT2232H дает возможность отслеживать только два статуса: FIFO заполнено и FIFO пустое. Подробнее о работе микросхем CY7C6801xA в режиме Slave FIFO можно прочитать в статье [1].
Дополнительно отметим, что CY7C6801xA имеют встроенное процессорное ядро. Но для режима скоростной передачи данных в режиме Slave FIFO оно не используется, но требует написания программы (firmware). Итогом является усложнение процесса освоения этих контроллеров. Для простых приложений будет предпочтительнее выбрать серию CY7C68001, микросхемы которой не имеют встроенного процессора, и, соответственно, не требуется программирования. Но в последнее время производитель эту серию не развивает. Таким образом, для приложений, где будет достаточно режима Bulk, 8-разрядной шины данных и нет жестких требований по энергопотреблению, аппаратный мост FTDI FT2232H будет разумным выбором.
Оба производителя предоставляют драйверы для работы с их микросхемами. FTDI предлагает их для ОС Windows, MAC и Linux, Cypress — только для Windows (это касается фирменных продуктов).
Аппаратная реализация схожа при использовании микросхем FTDI и Cypress. Схемы включения для указанных микросхем требуют установки EEPROM, преобразователя напряжения 5 В –> 3,3 В при использовании питания от шины USB и кварцевого генератора.
Преимуществами рассматриваемого моста FTDI можно назвать цену: она существенно меньше, чем у Cypress, и наличие недорогих отладочных модулей FT2232HQ Mini Module (рис. 1), в отличие от дорогостоящих отладочных наборов Cypress. Причем модули FTDI могут быть использованы не только для ознакомительных и отладочных целей, а также для интеграции в существующие приборы и устройства в качестве мезонинных.
Рис. 1. FT2232HQ Mini Module
Покажем на базе примера работы с микросхемой FT2232H в режиме синхронного FIFO весь процесс разработки приложений верхнего и нижнего уровней, чтобы дать возможность читателям самостоятельно оценить простоту освоения мостов FTDI.
Рис. 2. Выбор режима FT245 FIFO для канала A
Работа микросхемы в режиме синхронного FIFO осуществляется под управлением драйвера D2xx в установленном для канала А режиме FT245 FIFO. Cкриншот окна программы FTProg показывает указанную настройку режима работы (рис. 2). Далее, с помощью той же программы FTProg параметры новой конфигурации записываются во внешнюю EEPROM, откуда они будут загружены при новом включении моста. Все ресурсы канала B используются совместно с ресурсами канала A и недоступны для приложения; его настройка не влияет на работу канала А. Других специальных аппаратных настроек в общем случае не требуется. Дальнейшая настройка режима синхронного FIFO осуществляется программно, с помощью команды FT_SetBitMode (ftHandle, 0x40). Подробнее данный вопрос рассмотрим в примере программы ниже. Завершение установки режима можно проконтролировать визуально, с помощью осциллографа, наблюдая тактовый сигнал с частотой 60 МГц на выводе 32 (CLKOUT) микросхемы. При использовании синхронного FIFO размеры приемного и передающего буферов составляют 2×512 байт для каждого, а не 4 кбайт, доступные в других конфигурациях. Размер буферов привязан к максимальному размеру пакета в режиме передачи Bulk USB 2.0, равному 512 байт. Этого вполне достаточно для обеспечения максимальной пропускной способности.
Таблица. Список выводов и их функциональное назначение в режиме синхронного FIFO
- Если USB находится в режиме Suspend, что индицируется установкой PWREN# = 1, подача короткого импульса с низким активным уровнем приводит к возобновлению обмена по USB.
- Если USB находится в обычном режиме (PWREN# = 0), подача короткого импульса с низким активным уровнем приводит к немедленной передаче данных в следующей транзакции, независимо от количества данных в буфере. В обычной ситуации данные будут передаваться только после приема всех 512 байт в буфер
В таблице приведены все используемые выводы микросхемы FT2232H и их функциональное назначение, на рис. 3 и 4 приведены диаграммы обмена между мостом и сопрягаемым устройством (ПЛИС, МК и т. п.).
Рис. 3. Режим чтения данных из моста FT2232H
Рис. 4. Режим передачи данных в FT2232H
В качестве иллюстрации работы микросхемы FT2232H в режиме синхронного FIFO покажем реализацию тестовой схемы на базе отладочных модулей FT2232HQ Mini Module и Morph IC (рис. 5). Как комментарий к приведенному примеру необходимо сказать, что используемая отладочная плата Morph IC в настоящее время не производится. В качестве функционального аналога можно использовать модуль DLP-FPGA, реализованный на базе ПЛИС Xilinx (рис. 6). Также в ближайшие планы FTDI входит запуск в производство нового модуля на базе ПЛИС Altera — Morph-IC-II. На модуле будет установлена ПЛИС EP2C5F256C8N семейства Cyclone 2 и мост FT2232H.
Рис. 5. Тестовая блок-схема
Рис. 6. Отладочный модуль DLP-FPGA
На базе ПЛИС Altera ACEX реализована схема, состоящая из блока управления и FIFO. Блок управления контролирует состояние входных и выходных буферов аппаратного моста FT2232H и формирует сигналы чтения RD, OE и записи WR. Также он осуществляет управление блоком FIFO, реализованным в ПЛИС. Данное приложение выполняет запись данных из ПК в FIFO ПЛИС и передачу их обратно при заполнении данного FIFO, размер которого выбран равным 1024 байт. Рассматриваемый пример показывает все необходимые операции для передачи и приема данных мостом FT2232H в режиме синхронного FIFO.
Рис. 7. Отладочный модуль Morph-IC-II
Программа для ПК была написана в среде Microsoft Visual Studio 6.0, для ПЛИС — в САПР Quartus II 9.0 sp 2. В статье приведены только основные фрагменты проектов, которые показывают все необходимые аспекты работы. Исходные проекты приведенных примеров можно получить по запросу у автора статьи.
Программа верхнего уровня включает три основных блока: инициализация и настройка моста, передача данных и прием данных.
Блок инициализации и настройки:
// Определение подключенных устройств FTDI, выбор тре буемого (в данном примере — канал А модуля FT2232H Mini Module) и установление с ним обмена
При завершении работы данного блока мост FT2232HQ переводится в режим синхронного FIFO, что можно проконтролировать по появлению тактового сигнала CLKOUT частотой 60 МГц на выводе разъема CN2-24 модуля FT2232H Mini Module или выводе 32 микросхемы.
Следующий фрагмент кода показывает блоки программы, в которых выполняется чтение данных из устройства и передача данных:
Далее приведем исходный код для блока управления, реализованного на ПЛИС. Его функциональным назначением является формирование сигналов управления OE, RD и WR в соответствии с диаграммами, приведенными на рис. 3 и 4. Также этот блок формирует все внутренние сигналы управления для работы FIFO и двунаправленного порта ввода/вывода. Вопросы реализации блока FIFO и двунаправленного порта ввода/вывода ПЛИС не представляют большого интереса с точки зрения организации обмена между ПЛИС и FT2232H. Кроме того, их реализация и логика работы могут различаться в зависимости от выбранной элементной базы. Основная цель данного примера — показать один из возможных вариантов реализации требуемой диаграммы обмена, что выполняет приведенная ниже программа:
architecture rtl of control is
— вспомогательные внутренние сигналы signal RD_CONTROL: sr_length; signal direction : std_logic; signal wr_control : std_logic;
end process WRITE_STR;
Новый высокоскоростной USB-мост FT2232H расширил возможности применения микросхем FTDI. Благодаря новому режиму работы — синхронному FIFO, а также своей цене и простоте в освоении, он может конкурировать в ряде приложений с микросхемами других производителей.