От USB до UART — всего один кристалл

№ 5’2004
Интенсивное развитие информационных технологий подчас вступает в противоречие с существующими традициями, установками и наработками: универсальная последовательная шина (USB — Universal Serial Bus) обеспечивает более высокую скорость обмена данными по сравнению с параллельным или последовательным портами, но протокол обмена данными по USB достаточно сложен и реализовать его до недавнего времени было проблематично. Чтобы устранить такое противоречие и облегчить жизнь разработчику, выпускаются ИС серии FT, преобразующие USB-порт в «виртуальный» последовательный или параллельный порты, обмен данными с которыми ведут привычными отработанными методами.

Интенсивное развитие информационных технологий подчас вступает в противоречие с существующими традициями, установками и наработками: универсальная последовательная шина (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) преобразует последовательный код в параллельный и обратно, выполняет процедуры битстаффинга, формирует и проверяет контрольные коды для исходящего и для входящего потоков данных соответственно.

Рис. 1. Блок-схема FT8U232AM
Рис. 1. Блок-схема FT8U232AM

Блок обработки протокола 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) или порты ввода-вывода.

Рис. 2. Блок-схема FT8U245AM
Рис. 2. Блок-схема FT8U245AM

Считывание данных происходит до тех пор, пока не освободится буфер передачи емкостью 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-периферию, аппаратная функция которой может устанавливаться программно. При этом «железная» составляющая вентильной матрицы легко модифицируется или полностью изменяется простым изменением конфигурационного файла.

Рис. 3. Блок-схема FT8U100AX
Рис. 3. Блок-схема FT8U100AX

Эмуляция шины микроконтроллера. В этом режиме эмулируется шина стандартных микроконтроллеров 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 позволяют его использовать в контрольно-измерительном оборудовании, средствах связи и других прикладных областях, где гибкость и встроенная возможность модификации являются первостепенными.

Рис. 4. Блок-схема FT2232C
Рис. 4. Блок-схема FT2232C

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

Рис. 5. Внешний вид модуля MORPH-IC
Рис. 5. Внешний вид модуля MORPH-IC

(включая исходный код на 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С тоже входит в состав модуля.

Рис. 6. Блок-схема модуля MORPH-IC
Рис. 6. Блок-схема модуля MORPH-IC
Рис. 7. Внешний вид модуля DLP-2232M
Рис. 7. Внешний вид модуля DLP-2232M

Для программирования вентильной матрицы «на лету» используется 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-хаба.

Рис. 8. Блок-схема модуля DLP-2232M
Рис. 8. Блок-схема модуля DLP-2232M

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *