Є
Компоненты и технологии, № 5'2004
От USB до UART -
всего один кристалл
Интенсивное развитие информационных технологий подчас вступает в противоречие с существующими традициями, установками и наработками: универсальная последовательная шина (USB — Universal Serial Bus) обеспечивает более высокую скорость обмена данными по сравнению с параллельным или последовательным портами, но протокол обмена данными по USB достаточно сложен и реализовать его до недавнего времени было проблематично. Чтобы устранить такое противоречие и облегчить жизнь разработчику, выпускаются ИС серии FT, преобразующие USB-порт в «виртуальный» последовательный или параллельный порты, обмен данными с которыми ведут привычными отработанными методами.
Николай Ракович
Id
ибкая архитектура ИС серии 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
о
Є
Компоненты и технологии, № 5'2004
ряет контрольные коды для исходящего и для входящего потоков данных соответственно.
Блок обработки протокола USB отвечает на запросы host-контроллера и управляет режимом работы UART. Для промежуточного хранения данных используются два буфера (FIFO) емкостью 384 байт (на прием) и 128 байт (на передачу). Управление FIFO выполняет соответствующий контроллер.
Задающий генератор микросхемы работает от внешнего кварцевого или керамического резонатора на 6 МГц. Далее его частоту умножают на 8 (до 48 МГц). Тактовую частоту UART получают из 48 МГц в два приема: делением на 16, затем до нужного значения с помощью программируемого делителя. Контроллер UART может работать со скоростью от 300 бод до 2 Мбод, однако реальная максимальная скорость зависит от применяемого преобразователя уровня интерфейсных сигналов.
Выводы EECS, 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) или принимая их туда
Рис. 2. Блок-схема FT8U245AM
по 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) разрабо-
Є
Компоненты и технологии, № 5'2004
External ROM Bus Internal Data Bas
RAO - RAI 4
RDO-RD7
ROE#, RCE#
MCLK, KCLK i i
^MD^J<DA^
SCL, SDA < i
INT
EMCU
MICROCONTROLLER
CORE
ADDR
ж. ж.
,DATA
CTL
FTDI
SERIAL INTERFACE ENGINE (SIE)
ENDPOINT DATA BUFFER 256 bytes
PS/2 KEYBOARD l/F PS/2 MOUSE l/F
MASTER/SLAVE 2-WIRE SERIAL BUS
NOTE: SOME OF THE PARALLEL PORT IO PINS ARE MULTIPLEXED WITH OTHER SIGNALS (SEE PINOUT DIAGRAM FOR DETAILS)
III
DATA SRAM 256 bytes
USB HUB REPEATER EOF LOCKAND BABBLE ERROR DETECT
HUB PORT POWER CONTROL AND OVERCURRENT DETECT
SERIAL PORT 1 SERIAL PORT 2 (IrDA SIR) SERIAL PORT 3 (CIR)
PARALLEL I/O PORTS 1-5
FIR
Ir REMOTE CONTROL PORT
USB
DOWNSTREAM
PORTS
DN1+, DNl-to DN7+, DN7-
USB
UPSTREAM
PORTS
UP1+,UP1-
PWR1# - PWR7#
OVL1# - OVL7#
SPTX, IRTX, CRTX
SPRX, IRRX, CRTXL/H
PI DO to PI D7, P2D0 to P2D6, P3D0 to P3D6, P4D0 to P4D6, P5D0 to P5D5
FIR
Рис. 3. Блок-схема FT8U100AX
Є~
тан для поддержки синхронных последовательных интерфейсов, таких, как JTAG и SPI Bus. Интерфейс MPSSE может быть сконфигурирован для различных промышленных стандартов или собственных протоколов. Например, один из каналов FT2232C подключается к вентильной матрице FPGA Altera или Xilinx, которая обычно не имеет определенной функции при подаче питания. Программное обеспечение, установленное на компьютере, может использовать интерфейс MPSSE для загрузки в вентильную матрицу через порт USB данных конфигурации, определяющих аппаратную функцию FPGA. Второй канал будет доступен для других устройств. Такой подход позволяет создавать «родовую» USB-периферию, аппаратная функция которой может устанавливаться программно. При этом «железная» составляющая вентильной матрицы легко модифици-
руется или полностью изменяется простым изменением конфигурационного файла.
Эмуляция шины микроконтроллера. В этом режиме эмулируется шина стандартных микроконтроллеров 8048/8051, что позволяет периферийным устройствам на основе этих микроконтроллеров напрямую подключаться к ЕТ2232С (на базе МР88Е, естественно).
Быстродействующий оптоизолированный последовательный интерфейс — новый собственный протокол ЕТБ1, разработанный для подключения приборов с гальванической развязкой к ЕТ2232С с использованием всего четырех сигнальных проводов (для двух сдвоенных оптопар) и двух проводов питания. Соответствующая схема управляет скоростью передачи данных в обоих направлениях при сохранении целостности данных (в этом случае можно получить максимальную скорость передачи данных для ШВ).
При необходимости оба канала могут подключаться по этому же 4-проводному интерфейсу.
Для упрощения применения FT2232C компанией FTDI разработан компактный, готовый к использованию модуль MORPH-IC, который соединяет гибкость FT2232C с возможностями программируемой пользователем вентильной матрицы (FPGA) серии Altera ACEX 1k (EP1K10TC100-3) (общий вид на рис. 5, блок-схема — на рис. 6). Выводы модуля разведены 2x20 с шагом 2,5 мм, возможно также подключение через соответствующие разъемы. В состав модуля входят два стабилизатора напряжения на 3,3 и 2,5 В для питания FPGA и тактовый генератор на 50 МГц. Управление питанием осуществляется FT2232C через MOSFET-транзистор.
В модуле MORPH-IC используется интерфейс MPSSE, реализованный в FT2232C для
е
Компоненты и технологии, № 5'2004
vcc
3V30UT^-
PWRCTL ■
3,3 Volt LDO Regulator
PWREN#
48 MHz -
Baud Rate Generator
Dual Port IX Buffer 128 bytes
USBDP4----►
Serial Interface Enqine (SIE)
Dual PortTX Buffer 384 bytes
USB Protocol Engine
Channel A
Multi-
Purpose
UART/FIFO
Controller
<--------►AD BUSO
ADBUS 1 ADBUS2
Dual PortTX Buffer 128 bytes
Dual PortTX Buffer 384 bytes
► 48 MHz
► 12 MHz
48 MHz -
Baud Rate Generator
Channel В
Multi-
Purpose
UART/FIFO
Controller
► ADBUS7 -► ACBUSO
-► ACBUS1
-► ACBUS2 -► ACBUS3
— SI/WUA
-►BDBUSO —►BDBUS1 -► BDBUS2 -► BDBUS3 -► BDBUS4 -►BDBUS5 -► BDBUS6 -► BDBUS7 -►BCBUSO -►BCBUS1
BCBUS2 -► BCBUS3
SI/WUB
TEST-GND -
Рис. 4. Блок-схема FT2232C
► EECS
EEPROM EESK
Interface
< ► EEDATA
3V30UT
_L_
RESET#------►
RESET
GENERATOR
-► RSTOUT#
перепрограммирования вентильной матрицы через ШВ за доли секунды: содержимое матрицы может быть перезагружено (переопределено) почти в реальном времени (менее 0,2 с). Это позволяет эффективно применять модуль при различных вариантах «железа» (программное управление через ШВ) для конкретного применения. Второй канал ЕТ2232С подключен к выводам входов-выходов ЕРОЛ, что может быть использовано ЕРОЛ для связи с прикладным программным обеспечением через ШВ-порт со скоростью передачи данных до 1 Мбайт/с. Эти особенности модуля МОИРН-ГС позволяют его использовать в контрольно-измерительном оборудовании, средствах связи и других прикладных областях, где гибкость и встроенная возможность модификации являются первостепенными.
В комплекте с модулем идут драйверы для ШВ-порта для Windows 98/МЕ/2000/ХР, примеры УНБЬ-кодов, загрузчик ЕРОЛ
(включая исходный код на Delphi), а также Windows DLL, используемый для поддержки наиболее распространенных языков программирования для Windows (Visual C++, Visual Basic, Borland Delphi). На втором компакт-диске находится полный комплект для приборов программируемой логики, включая введение в основы проектирования, синтез HDL, средства для размещения элементов и трассировки соединений ИС, проверки и моделирования. Все это работает под Windows NT/2000/XP и может использоваться для программирования установленной на модуле вентильной матрицы. Стоимость и гибкая система скидок на модули MORPH-IC делает их наиболее предпочтительными при мало- и среднебюджетных разработках. Кроме того, учитывая полный программный комплект для FPGA, модули MORPH-IC —
отличное учебное пособие как для студентов, так и для разработчиков, начинающих работать с программируемыми вентильными матрицами.
Подключение МОИРН-ІС к ШВ-порту компьютера осуществляется кабелем через ШВ-разъем, установленный на плате модуля. При установке перемычки на ІР1 (по умолчанию) питание на модуль подается от ШВ-порта. В случае необходимости внешнее питание +5 В подается на вывод 1 ІР1, а перемычка удаляется. Для корректной работы модуля МОИРН-ІС все установки по умолчанию записываются в ББРИОМ 93С56 еще на заводе. Перепрограммирование этих установок с помощью утилиты МРИОО следует выполнять очень аккуратно, чтобы после этого модуль остался в рабочем состоянии. Два стабилизатора напряжения в составе МОИРН-ІС обес-
Vcc(USB)
о-----
CN1
MOSFET POWER SWITCH
1АГ
USB
CONNECTOR
_GND I-------
6 MHzXTAL/ RESONATOR
c(5V) -O—
3 3V REGULATOR
с (3,3 V)
-o
FT2232C USB INTERFACE
I.C.
2,5 V REGULATOR
PROGRAMMING
INTERFACE
<-------—--------H
VCORE
IO CONNECTORS
DATA TRANSFER INTERFACE
n
93C56 USB CONFIGURATION EE PROM
ALTERA ACEX EPI K10TC-10Û FPGA
I NT CLOCK (PIN 90)
EXT CLOCK [PIN 39)
50 MHz OSCILLATOR
Рис. 6. Блок-схема модуля MORPH-IC
Рис. 5. Внешний вид модуля MORPH-IC
Компоненты и технологии, № 5'2004
печивают питание логического ядра +2,5 В и элементов ввода-вывода БРОЛ +3,3 В. Выход стабилизатора +3,3 В подключается на выводы разъемов 11 и 12 для питания внешней логики с током потребления до 250 мА. При переходе ШВ в режим пониженного энергопотребления стабилизатор +3,3 В выключается. Тактовый генератор 50 МГц подключен на вывод 90 матрицы ЕР1К10ТС-100. В тех случаях, когда требуется другая тактовая частота, используется вывод 39 вентильной матрицы, разведенный на вывод 14 разъема 12. Тактовый генератор 6 МГц для работы БТ2232С тоже входит в состав модуля.
Для программирования вентильной матрицы «на лету» используется МРввЕ канала А БТ2232С. БРОЛ можно программировать/ перепрограммировать быстрее, чем за 0,2 с,
с использованием нескольких различных файлов конфигурации для разных режимов работы. Это позволяет проектировать такие устройства, которые обычно не попадают «в размер» вентильной матрицы. Файлы конфигурации поставляются в комплекте программного обеспечения Altera Quartus и могут быть загружены в FPGA либо вручную программой загрузки (из вышеупомянутого комплекта), либо под управлением прикладного программного обеспечения с применением DLL.
Двунаправленная передача данных по 8-разрядной шине между FT2232C и ЕР1К10ТС-100 выполняется в режиме FIFO каналом В FT2232C, что позволяет вентильной матрице работать с ПК через порт USB.
Законченные модули с ИС FT2232C производит не только фирма FTDI. Модули с разъемом USB, FT2232C, EEPROM 93С56 и стандартным 40-выводным разъемом выпускает DLP Design (внешний вид модуля показан на рис. 7, а блок-схема — рис. 8). Отдельный USB-порт преобразуется в два канала ввода-вывода, каждый из которых может быть сконфигурирован как интерфейс DLP-USB232M UART или интерфейс DLP-USB245M FIFO без дополнительного USB-хаба.
С подробностями можно ознакомиться на сайте производителя www.ftdichip.com.
USB Туре ’В’ connector to Host PC/Mac
6 MHz Resonator
Рис. 8. Блок-схема модуля DLP-2232M
PWREN# DP, DM
3,3 Volt LDO
FT2232C
Channel A Multi-purpose UART/ FIFO Controller 40 Pin, .6 inch Header
Channel B Multi-purpose UART/ FIFO Controller
I
Рис. 7. Внешний вид модуля DLP-2232M
е