От USB до UART — всего один кристалл
Интенсивное развитие информационных технологий подчас вступает в противоречие с существующими традициями, установками и наработками: универсальная последовательная шина (USB — Universal Serial Bus) обеспечивает более высокую скорость обмена данными по сравнению с параллельным или последовательным портами, но протокол обмена данными по USB достаточно сложен и реализовать его до недавнего времени было проблематично. Чтобы устранить такое противоречие и облегчить жизнь разработчику, выпускаются ИС серии FT, преобразующие USB-порт в «виртуальный» последовательный или параллельный порты, обмен данными с которыми ведут привычными отработанными методами.
Гибкая архитектура ИС серии FT (выпускаемых английской компанией Future Technology Devices International) позволяет применять их в различных приложениях: USB-модемах, кабелях-конвертерах RS-232 в USB, считывателях штрих-кода, кабелях USB-интерфейса для КПК и т. д., то есть почти во всем оборудовании, где используется медленный интерфейс RS232.
FT8U232AM — преобразователь USB в последовательный интерфейс (UART) — можно устанавливать практически в любых устройствах, ранее использовавших сравнительно медленные интерфейсы RS-232, RS-422, RS-485. Эта ИС может передавать данные в обе стороны со скоростью до 2000 кбит/с, причем пользователю не требуется никаких знаний об устройстве и работе USB. Поставляемые компанией FTDI программные драйверы создают впечатление, что обмен идет через обычный COM-порт.
Функциональная схема FT8U232AM представлена на рис. 1. Ее основа — приемопередатчики интерфейсов UART и USB. Блок UART снабжен полным набором сигнальных цепей стандарта RS-232, приемопередатчик USB — всего двумя информационными выводами USBDP и USBDM (двунаправленный канал передачи данных). Блок преобразования кодов SIE (Serial Interface Engine) преобразует последовательный код в параллельный и обратно, выполняет процедуры битстаффинга, формирует и проверяет контрольные коды для исходящего и для входящего потоков данных соответственно.

Блок обработки протокола USB отвечает на запросы host-контроллера и управляет режимом работы UART. Для промежуточного хранения данных используются два буфера (FIFO) емкостью 384 байт (на прием) и 128 байт (на передачу). Управление FIFO выполняет соответствующий контроллер.
Задающий генератор микросхемы работает от внешнего кварцевого или керамического резонатора на 6 МГц. Далее его частоту умножают на 8 (до 48 МГц). Тактовую частоту UART получают из 48 МГц в два приема: делением на 16, затем до нужного значения с помощью программируемого делителя. Контроллер UART может работать со скоростью от 300 бод до 2 Мбод, однако реальная максимальная скорость зависит от применяемого преобразователя уровня интерфейсных сигналов.
Выводы ЕЕCS, EESK, EEDATA микросхемы FT8U232AM предназначены для подключения внешней энергонезависимой памяти — микросхемы EEPROM 93С46, в которой хранят идентификаторы изготовителя (VID) и персональный (PID), заводской номер изделия и другие данные. Это необходимо, если по USB с компьютером одновременно связаны несколько устройств на микросхемах FT8U232AM. Если ПЗУ отсутствует, к компьютеру можно подключить только одно устройство, образующее виртуальный COM-порт.
Исходное состояние формируется подачей сигнала низкого уровня на вход RESET FT8U232AM. К выводу RCCLK подключается RC-цепь задержки работы ИС на время, необходимое для запуска кварцевого резонатора (выводы XTIN, XTOUT). Вход TEST используют только в отладочном режиме. При обычной работе он должен быть соединен с общим проводом (GND).
По окончании инициализации микросхемы по USB на выходе USBEN устанавливается высокий уровень. Если в течение некоторого времени обмена данными не происходит, то FT8U232AM автоматически переходит в режим ожидания (низкий уровень на выводе SLEEP). При передаче или приеме данных на выводах TXLED и RXLED формируется соответствующий низкий уровень. Сигнал с вывода TXDEN предназначен для управления приемопередатчиком интерфейса RS-485 (высокий уровень при передаче данных по линии TXD).
Напряжение питания микросхемы FT8U232АМ (VCC) — 4,4…5,25 В, потребляемый ток — не более 50 мА в рабочем и 250 мкА в режиме ожидания. Логические выходы микросхемы рассчитаны на ток до 4 мА (вытекающий) и до 8 мА (втекающий).
ИС FT8U245AM позволяет организовать обмен данными между периферийным устройством и компьютером со скоростью до 1 Мбит/с. Область применения — ISDN и ADSL-модемы, цифровые камеры и MP3-проигрывате-ли, измерительная аппаратура. В отличие от FT8U232AM эта микросхема не содержит блока UART, выдавая принятые по USB данные из буфера (FIFO) или принимая их туда по 8-разрядной параллельной двунаправленной шине данных (D0-D7) (блок-схема на рис. 2). Эта микросхема стыкуется с любыми микропроцессорами и микроконтроллерами, используя их каналы прямого доступа к памяти (DMA) или порты ввода-вывода.

Считывание данных происходит до тех пор, пока не освободится буфер передачи емкостью 384 байт. После заполнения буфера новые данные не будут приниматься, пока содержимое буфера не будет переправлено по USB-шине в компьютер. Таймер на 16 мс позволяет решить проблему с задержкой обмена: если в течение этого времени буфер передачи не заполнен до конца и новые данные не поступают, то содержимое буфера автоматически пересылается в компьютер (аналогично FT8U232AM).
Продолжением этой серии преобразователей USB-UART стала ИС FT8U100AX, представляющая собой USB-контроллер на 7 входов с программным обеспечением во внешнем ПЗУ (OTP ROM) для максимальной адаптации к различным приложениям. В состав этой БИС входят модернизированный хаб-контроллер USB, микроконтроллерное ядро EMCU и комплект встроенных портов, что позволяет подключать через USB различные виды периферийных устройств (от клавиатуры и мыши до ИК-устройств) (блок-схема на рис. 3). Помимо этого имеются схемы включения-отключения питания и определения перегрузки по току для каждого из 7 нисходящих (downstream) портов, а также выводы для подключения двух светодиодов подключения и диагностики состояния каждого порта.
Для беспроблемной работы FTDI поставляет широкий диапазон протестированного программного обеспечения, включая решения для 4- и 7-портовых хабов с поддержкой стандартной клавиатуры и мыши, а также периферийных устройств, подключаемых через RS-232.
Встроенный 8-разрядный микроконтроллер EMCU, упрощающий программирование, по гарвардской архитектуре с 256 байтами памяти данных. Коды операций оптимизированы для работы с USB-приложениями. В составе EMCU — поддержка последовательного ввода-вывода для управления модемом, интерфейс шины ISA и интерфейс PS/2 для клавиатуры и мыши.
Дальнейшим развитием преобразователей USB-UART стала микросхема третьего поколения FT2232C, соединяющая в себе функциональность двух ИС второго поколения (рис. 4). Нисходящий USB-порт преобразуется в два канала ввода-вывода, каждый из которых конфигурируется отдельно как FT232BM
UART или как FT245BM FIFO, причем необходимости в USB-хабе нет.
FT2232C включает все особенности преобразователей второго поколения FT232BM и FT245BM:
- два канала ввода-вывода (конфигурируются отдельно);
- встроенная схема сброса по включению питания;
- встроенный тактовый генератор RC;
- встроенный преобразователь уровня
UART/FIFO;
- модернизированная система управления питанием;
- поддержка изохронной передачи;
- вывод немедленной передачи, выход из состояния ожидания для каждого канала;
- низкий ток потребления в режиме пониженного энергопотребления (100 мкА);
- программируемое время задержки приемного буфера данных;
- делитель формирователя скорости передачи с предварительной установкой;
- поддержка внешней памяти;
- поддержка протокола USB 2.0.
Но эта микросхема не относилась бы к третьему поколению, если бы не имела существенных нововведений. О них мы и расскажем.
Многопротокольный синхронный последовательный интерфейс (MPSSE — MultiProtocol Synchronous Serial Engine) разработан для поддержки синхронных последовательных интерфейсов, таких, как JTAG и SPI Bus. Интерфейс MPSSE может быть сконфигурирован для различных промышленных стандартов или собственных протоколов. Например, один из каналов FT2232C подключается к вентильной матрице FPGA Altera или Xilinx, которая обычно не имеет определенной функции при подаче питания. Программное обеспечение, установленное на компьютере, может использовать интерфейс MPSSE для загрузки в вентильную матрицу через порт USB данных конфигурации, определяющих аппаратную функцию FPGA. Второй канал будет доступен для других устройств. Такой подход позволяет создавать «родовую» USB-периферию, аппаратная функция которой может устанавливаться программно. При этом «железная» составляющая вентильной матрицы легко модифицируется или полностью изменяется простым изменением конфигурационного файла.

Эмуляция шины микроконтроллера. В этом режиме эмулируется шина стандартных микроконтроллеров 8048/8051, что позволяет периферийным устройствам на основе этих микроконтроллеров напрямую подключаться к FT2232C (на базе MPSSE, естественно).
Быстродействующий оптоизолированный последовательный интерфейс — новый собственный протокол FTDI, разработанный для подключения приборов с гальванической развязкой к FT2232C с использованием всего четырех сигнальных проводов (для двух сдвоенных оптопар) и двух проводов питания. Соответствующая схема управляет скоростью передачи данных в обоих направлениях при сохранении целостности данных (в этом случае можно получить максимальную скорость передачи данных для USB).
При необходимости оба канала могут подключаться по этому же 4-проводному интерфейсу.
Для упрощения применения FT2232C компанией FTDI разработан компактный, готовый к использованию модуль MORPH-IC, который соединяет гибкость FT2232C с возможностями программируемой пользователем вентильной матрицы (FPGA) серии Altera ACEX 1k (EP1K10TC100-3) (общий вид на рис. 5, блок-схема — на рис. 6). Выводы модуля разведены 2×20 с шагом 2,5 мм, возможно также подключение через соответствующие разъемы. В состав модуля входят два стабилизатора напряжения на 3,3 и 2,5 В для питания FPGA и тактовый генератор на 50 МГц. Управление питанием осуществляется FT2232C через MOSFET-транзистор.
В модуле MORPH-IC используется интерфейс MPSSE, реализованный в FT2232C для перепрограммирования вентильной матрицы через USB за доли секунды: содержимое матрицы может быть перезагружено (переопределено) почти в реальном времени (менее 0,2 с). Это позволяет эффективно применять модуль при различных вариантах «железа» (программное управление через USB) для конкретного применения. Второй канал FT2232C подключен к выводам входов-выходов FPGA, что может быть использовано FPGA для связи с прикладным программным обеспечением через USB-порт со скоростью передачи данных до 1 Мбайт/с. Эти особенности модуля MORPH-IC позволяют его использовать в контрольно-измерительном оборудовании, средствах связи и других прикладных областях, где гибкость и встроенная возможность модификации являются первостепенными.

В комплекте с модулем идут драйверы для USB-порта для Windows 98/ME/2000/XP, примеры VHDL-кодов, загрузчик FPGA

(включая исходный код на Delphi), а также Windows DLL, используемый для поддержки наиболее распространенных языков программирования для Windows (Visual C++, Visual Basic, Borland Delphi). На втором компакт-диске находится полный комплект для приборов программируемой логики, включая введение в основы проектирования, синтез HDL, средства для размещения элементов и трассировки соединений ИС, проверки и моделирования. Все это работает под Windows NT/2000/XP и может использоваться для программирования установленной на модуле вентильной матрицы. Стоимость и гибкая система скидок на модули MORPH-IC делает их наиболее предпочтительными при мало- и среднебюджетных разработках. Кроме того, учитывая полный программный комплект для FPGA, модули MORPH-IC — отличное учебное пособие как для студентов, так и для разработчиков, начинающих работать с программируемыми вентильными матрицами.
Подключение MORPH-IC к USB-порту компьютера осуществляется кабелем через USB-разъем, установленный на плате модуля. При установке перемычки на JP1 (по умолчанию) питание на модуль подается от USB-порта. В случае необходимости внешнее питание +5 В подается на вывод 1 JP1, а перемычка удаляется. Для корректной работы модуля MORPH-IC все установки по умолчанию записываются в EEPROM 93С56 еще на заводе. Перепрограммирование этих установок с помощью утилиты MPROG следует выполнять очень аккуратно, чтобы после этого модуль остался в рабочем состоянии. Два стабилизатора напряжения в составе MORPH-IC обеспечивают питание логического ядра +2,5 В и элементов ввода-вывода FPGA +3,3 В. Выход стабилизатора +3,3 В подключается на выводы разъемов J1 и J2 для питания внешней логики с током потребления до 250 мА. При переходе USB в режим пониженного энергопотребления стабилизатор +3,3 В выключается. Тактовый генератор 50 МГц подключен на вывод 90 матрицы ЕР1К10ТС-100. В тех случаях, когда требуется другая тактовая частота, используется вывод 39 вентильной матрицы, разведенный на вывод 14 разъема J2. Тактовый генератор 6 МГц для работы FT2232С тоже входит в состав модуля.


Для программирования вентильной матрицы «на лету» используется MPSSE канала А FT2232C. FPGA можно программировать/ перепрограммировать быстрее, чем за 0,2 с, с использованием нескольких различных файлов конфигурации для разных режимов работы. Это позволяет проектировать такие устройства, которые обычно не попадают «в размер» вентильной матрицы. Файлы конфигурации поставляются в комплекте программного обеспечения Altera Quartus и могут быть загружены в FPGA либо вручную программой загрузки (из вышеупомянутого комплекта), либо под управлением прикладного программного обеспечения с применением DLL.
Двунаправленная передача данных по 8-разрядной шине между FT2232C и ЕР1К10ТС-100 выполняется в режиме FIFO каналом В FT2232Q что позволяет вентильной матрице работать с ПК через порт USB.
Законченные модули с ИС FT2232С производит не только фирма FTDI. Модули с разъемом USB, FT2232C, EEPROM 93С56 и стандартным 40-выводным разъемом выпускает DLP Design (внешний вид модуля показан на рис. 7, а блок-схема — рис. 8). Отдельный USB-порт преобразуется в два канала ввода-вывода, каждый из которых может быть сконфигурирован как интерфейс DLP-USB232M UART или интерфейс DLP-USB245M FIFO без дополнительного USB-хаба.

С подробностями можно ознакомиться на сайте производителя www.ftdichip.com.