Вы находитесь на странице: 1из 6

ПРЕОБРАЗОВАТЕЛИ ИНТЕРФЕЙСА USB НА МИКРОСХЕМАХ FT8U232AM, FT8U245AM

А. ЛЫСЕНКО, Р. НАЗМУТДИНОВ, И. МАЛЫГИН, г. Екатеринбург

http://www.institute-rt.ru/articles

Возможностью подключения к компьютеру USB-устройств сейчас никого не удивишь. По сравнению с


традиционными портами ввода-вывода компьютера (последовательный - COM, параллельный - LPT)
универсальная последовательная шина (Universal Serial Bus) обеспечивает более высокую скорость обмена
данными. Максимальная пропускная способность USB версии 1.1 - 12 Мбит/с, более современной версии 2.0 -
480 Мбит/с. Для низкоскоростных устройств предусмотрена скорость 1,5 Мбит/с. Однако протокол обмена
данными по USB сложен и реализовать его до недавнего времени было не под силу не только радиолюбителям,
но и многим специалистам. Сегодня, установив в разрабатываемом приборе микросхему FT8U232AM или
FT8U245AM, можно преобразовать USB в "виртуальный" последовательный или параллельный порт, обмен
данными с которым ведут привычными хорошо известными методами.

Соединять компьютер с периферийными устройствами с помощью USB очень просто. Разрешено


состыковывать и расстыковывать соединители, не выключеная компьютер, предусмотрено автоматическое
распознавание устройства немедленно после его подключения с последующей установкой необходимых
драйверов. Разветвленная топология шины (рис. 1) предусматривает использование концентраторов, чаще
называемых "хабами" (англ. hub).

В системном блоке компьютера имеется корневой хаб (root hub), снабженный двумя или четырьмя USB-
розетками, к которым непосредственно или через хабы подключают периферийные устройства. Иногда сами
USB-устройства (чаще всего - монитор и клавиатуру) оборудуют встроенными хабами, в других случаях для
ветвления шины применяют хабы, оформленные как самостоятельные изделия.

Пример подключения к компьютеру обычного комплекта периферийных USB-устройств показан на рис. 2. Их


общее число может достигать 127 - более чем достаточно для всех мыслимых приложений. До недавнего
времени "хозяин" (host) этой сети (в отличие от обычной локальной) мог быть только один - сам компьютер.
Однако опубликованное в конце 2001 г. под названием OTG 1.0 дополнение к стандарту USB 2.0 разрешило и
периферийным устройствам выполнять некоторые host-функции. Это позволяет, например, соединить USB-
сканер непосредственно с USB-принтером, минуя компьютер.
Каждому подключенному к USB устройству операционная система компьютера присваивает уникальный
идентификационный номер, необходимый для конфигурирования системы, управления и обмена данными.
Сеансы связи происходят в пакетном режиме.

Все компоненты USB-сети соединяют с помощью кабелей, состоящих из двух витых пар проводов. По одной из
них идет двусторонний обмен данными, по другой - постоянное напряжение 5 В, благодаря чему экономичные
периферийные устройства могут не содержать собственных источников питания. USB-кабели снабжены
соединителями двух несовместимых типов: А (рис. 3) - со стороны, обращеной компьютеру и В (рис. 4) - со
стороны, обращенной к периферийному устройству. Это предотвращет ошибочное подключение. Согласно
упомянутому выше дополнению OTG 1.0 введено еще два вида соединителей уменьшенных габаритов: mini-A и
mini-B, а также универсальная розетка mini-AB, совместимая с вилками обеих типов. Все USB-соединители
рассчитаны на быстрое и удобное многократное подключение и отключение.

Область применения USB не ограничена мультимедийными приложениями. Этот скоростной, рассчитанный на


обслуживание большого числа устройств интерфейс удобен для аппаратуры связи, сбора и хранения
информации, которую традиционно подключают к портам COM и LPT компьютеров. К сожалению, замена
интерфейса в существующем устройстве довольно сложна. Один из способов решения проблемы - применение
преобразователей различных интерфейсов в USB. На российском рынке уже появляются подобные устройства
на основе микросхем английской компании FTDI (Future Technology Devices International). В настоящее время
компания выпускает три многофункциональные микросхемы: FT8U100AX, FT8U232AM и FT8U245AM. Первая из
них позволяет создать семипортовый USB-хаб. Две другие (их внешний вид и назначение выводов показаны
на рис. 5) предназначены для сопряжения различных устройств с шиной USB. Размеры корпуса QFP-32 - 7,7 мм,
шаг выводов - 0,8 мм.

FT8U232AM - преобразователь USB в традиционный последовательный интерфейс - можно устанавливать в


USB-модемах, переходниках COM-USB, сканерах штрих-кода, измерительной аппаратуре - фактически в любых
устройствах, ранее использовавших сравнительно медленные интерфейсы RS-232, RS-422, RS-485. Она
способна передавать данные в обе стороны со скоростью до 2000 кбит/с, причем пользователю не требуется
никаких знаний об устройстве и работе USB. Поставляемые компанией FTDI программные драйверы создают
впечатление, что обмен идет через обычный COM-портом.

Функциональная схема FT8U232AM представлена на рис. 6. Ее основа - приемопередатчики обоих


интерфейсов. Блок UART снабжен полным набором сигнальных цепей стандарта RS-232, приемопередатчик
USB - всего двумя информационными выводами USBDP и USBDM, образующими двунаправленный канал
передачи данных. Блок SIE преобразует последовательный код в параллельный и обратно, выполняет
процедуры битстаффинга, генерирует (для исходящего потока данных) и проверяет (для входящего)
контрольные коды.
Обработчик протокола USB нижнего уровня формирует ответы на запросы host-контроллера (компьютера).
Через него же управляют режимом работы UART. Предусмотрены два буфера промежуточного хранения данных
(FIFO) емкостью 384 байта (на прием) и 128 байт (на передачу). Управление FIFO возложено на
соответствующий контроллер.

Задающий генератор микросхемы работает от внешнего кварцевого или керамического резонатора на 6 МГц.
Далее его частоту умножают на 8 (до 48 МГц). Тактовую частоту UART получают из 48 МГц в два приема:
делением на 16, затем - до нужного значения с помощью программируемого делителя. Контроллер UART может
работать со скоростью от 300 Бод до 2 МБод, однако фактически достижимая максимальная скорость зависит от
применяемой совместно с FT8U232AM микросхемы-преобразователя уровней интерфейсных сигналов.

Выводы ЕЕCS, EESK, EEDATA микросхемы FT8U232AM предназначены для подключения внешней
энергонезависимой памяти - микросхемы ЭСППЗУ АТ93С46, в которой хранят идентификаторы изготовителя
(VID) и персональный (PID), заводской номер изделия и другие данные. Это необходимо, если по USB с
компьютером одновременно связаны несколько устройств на микросхемах FT8U232AM. Особенно важен
серийный номер, так как программный драйвер полагается на его уникальность, ассоциируя тот или иной
виртуальный COM-порт с конкретным устройством. Если ПЗУ отсутствует, к компьютеру можно подключить
только одно образующее виртуальный COM-порт устройство.

Низким уровнем на входе RESET микросхему FT8U232AM приводят в исходное состояние. К выводу RCCLK
должна быть присоединена RC-цепь, задерживающая начало работы микросхемы на время, достаточное
для"раскачки" кварцевого резонатора, подключенного к выводам XTIN, XTOUT. Вход TEST используют только в
отладочном режиме. При обычной работе он должен быть соединен с общим проводом (GND).

Имеется несколько вспомогательных выходов. Высокий уровень на выходе USBEN сигнализирует о завершении
процесса инициализации микросхемы по USB. Если некоторое время обмена данными не происходит,
микросхема автоматически переходит в "спящий режим", о чем свидетельствует низкий уровень на выходе
SLEEP. Аналогичные уровни на выходах TXLED и RXLED показывают, что идет соответственно передача или
прием данных. Сигнал с выхода TXDEN предназначен для управления приемопередатчиком интерфейса RS-
485. Его уровень - высокий, когда по линии TXD идет передача данных.

Напряжение питания микросхемы FT8U232АМ (VCC) - 4,4...5,25 В, потребляемый ток - не более 50 мА в рабочем
и 250 мкА в спящем режиме. Если микросхему питают напряжением, поступающим по USB, ее вывод 14
(PWRCTL необходимо соединить с общим проводом (GND), если устройство имеет собственный источник
питания - с цепью VCC. Логические выходы микросхемы рассчитаны на ток до 4 мА (вытекающий) и до 8 мА
(втекающий).

Микросхема FT8U245AM позволяет организовать обмен данными между периферийным устройством и


компьютером со скоростью до 1 Мбит/с. Ее можно применять в ISDN и ADSL модемах, в цифровых камерах и
MP3-проигрывателях, в измерительной аппаратуре. В отличие от FT8U245AM она не содержит блока UART,
выдавая принятые по USB данные из буфера (FIFO) или принимая их туда по восьмиразрядной параллельной
двунаправленной шине данных (D0-D7). Эта микросхема удобно стыкуется с любыми микропроцессорами и
микроконтроллерами, используя их каналы прямого доступа к памяти (DMA) или порты ввода-вывода.
Временные диаграммы чтения и записи байта представлены на рис.7 О наличии полученных по USB данных
(объем буфера приема - 128 байт) свидетельствует низкий уровень сигнала RXF. Данные считывают, пока буфер
не опустеет и уровень RXF не останется высоким. После заполнения всех 384 байт буфера передачи остается
высоким уровень сигнала TXE и микросхема перестает воспринимать новые данные, пока содержимое буфера
не будет переправлено по USB в компьютер. Чтобы не задерживать обмен, предусмотрен таймер на 16 мс. Если
в течение этого интервала буфер передачи не заполнен до конца и новые данные не поступают, содержимое
буфера автоматически пересылается в компьютер. Аналогичным свойством обладает и микросхема
FT8U232AM.

Разработчикам аппаратуры, осваивающим микросхемы FT8U232АМ и FT8U245АМ, компания


GIGATECHNOLOGY предлагает отладочные модули, один из которых изображен на рис. 8. Кроме микросхемы
на плате установлены все необходимые для ее работы пассивные элементы, кварцевый резонатор и розетка
USB типа В. Модуль устанавливают в стандартную 32-контактную "широкую" DIP- панель. Питание модуля - от
USB, что позволяет обойтись без дополнительного источника.

Схема законченного преобразователя интерфейса USB-RS-232 показана на рис. 9. С его помощью многие
устройства, снабженные интерфейсом RS-232, можно соединить с компьютером по USB. Преобразователь
подключают к компьютеру (или хабу) с помощью USB-вилки типа A (CN1), снабженной соединительным кабелем
длиной 1,5 м. Увеличивать длину сверх названной не следует, это приведет к сбоям в работе USB.
Микросхема U3 FT8U232AM включена по стандартной схеме, рекомендованной изготовителем. Узел на
транзисторе Q1 в момент подачи питания (подключения преобразователя к сети USB) формирует импульс,
приводящий микросхему U3 в исходное состояние. Напряжение питания поступает на узлы преобразователя
через фильтры FB1 и FB2 - обычные провода с надетыми на них ферритовыми шайбами.

Цепь R5C10 создает задержку на время запуска генератора на резонаторе Y1, в качестве которого можно
применять импортный HC49U, отечественный РК415 и другие. Если резонатор двухвыводный и не содержит
встроенных конденсаторов, для надежного запуска генератора возможно придется установить внешние
конденсаторы емкостью 10...20 пФ.

Микросхема U1 содержит приемники и передатчики интерфейсных сигналов, отвечающие стандарту RS-232, а


также преобразователи напряжения 5 В в +10 и -10 В, необходимые для их работы. Указанная на схеме
микросхема SP213EНCA (Sipex) обеспечивает скорость обмена данными до 460 кБод. Если достаточно скорости
115 кБод, указанную микросхему можно заменить на SP213ECA той же фирмы, MAX213CAI (Maxim) или
ADM213EARS (Analog Devices).

Микросхема U1 93C46, как уже было сказано, не обязательна. Если ее решено установить, то необходимо
предварительно запрограммировать, воспользовавшись рекомендациями, имеющимися в приложении к
описанию микросхемы FT8U245. Этот документ и много другой полезной технической и справочной информации
можно найти на Интернет-сайте компании FTDI.

Внешний вид преобразователя показан на рис. 10. Его печатная плата размещена внутри кожуха вилки DB-9M.
Следует отметить, что разработанная плата, чертежи слоев которй показанны на рис. 11, - четырехслойная
(внутренние слои служат экраном между внешними). Она рассчитана на установку элементов с обеих сторон, в
том числе - резисторов и конденсаторов типоразмера 0603 (1,6?0,8 мм) для поверхностного монтажа (SMD).
Учитывая, что оба внутренних слоя идентичны, в любительских условиях подобную плату можно изготовить из
двух двусторонних, склеенных вместе. Вся документация, необходимая для изготовления платы в заводских
условиях размещена на FTP-сервере редакции по адресу ftp://ftp.paguo.ru/pub/2002/07/usb-rs232.

Если применять SMD-элементы и делать многослойную плату не представляется возможным, придется


самостоятельно разработать обычную под стандартные элементы.

УСТАНОВКА ДРАЙВЕРОВ ВИРТУАЛЬНОГО COM-ПОРТА


Драйвер виртуального COM-порта (VCP - Virtual COM Port) для любой интересующей операционной системы
можно найти на официальном Интернет-сайте компании FTDI - www.ftdichip.com в тематическом разделе Drivers
and Utilities.

VCP-драйверы представлены в двух вариантах: для устройств, подключаемых через преобразователь


интерфейса и поддерживающих технологию PnP (Plug and Play) и аналогичных устройств без такой поддержки
(non-PnP). Ошибка в выборе драйвера приводит к задержке загрузки операционной системы на 20...30 с.

Процедура установки VCP-драйвера в Windows ничем не отличается от установки драйвера любого другого
устройства. Все файлы из архива, в котором поставляется драйвер, необходимо переписать на дискету или в
специально созданную папку на жестком диске. Далее, подключив к USB преобразователь интерфейса (или
другое устройство на микросхемах FT8U232AM, FT8U245AM), откройте окно "Установка/Удаление
оборудования" ("Add/Remove Hardware") и следуйте указаниям "Мастера установки".

Чтобы убедиться в успешной установке драйверов, откройте закладку "Менеджер устройств" ("Device Manager")
в окне "Свойства системы" ("System Properties") и найдите в списке USB High Speed Serial Converter. Если ничего
похожего там нет, процедуру инсталляции стоит повторить еще раз.

После успешной установки драйверов в пункте USB High Speed Serial Converter появится устройство USB Serial
port (COMx), где х - номер виртуального последовательного порта.

Основные параметры COMx идентичны параметрам и настройкам стандартного последовательного порта.


Можно изменить скорость работы UART, число бит в слове, режим проверки четности, длину стоп-бита, способ
управления потоком. Единственное отличие - возможность выбрать или изменить номер порта x в окне
"Дополнительные настройки порта" ("Advanced Port Settings").

В качестве инструмента программирования виртуального COM-порта для Windows 98 можно использовать


семейство стандартных функций VCOMM API. Документация и другая полезная информация по их применению
содержится в MSDN (Microsoft Developer Network).

Компания FTDI предлагает еще одно решение, не требующее драйверов, эмулирующих последовательный порт.
Архитектура, названная ее авторами D2XX, основана на технологии WDM. Программирование устройства
ведется через стек USB и динамическую библиотеку драйвера. На сайте компании имеются примеры исходных
текстов на некоторых популярных языках программирования, а также руководство по программированию D2XX
Programmers Manual.

УСТАНОВКА СКОРОСТИ ОБМЕНА ДАННЫХ

Информация о значениях коэффициента деления тактовой частоты программируемым делителем микросхемы


FT8U245AM, необходимых для получения той или иной скорости обмена данными, содержится в файле
ftdiport.inf, сопровождающем драйвер. Изменяя эти значения, можно достичь нестандартных значений скорости
работы UART. Однако чаще их приходится изменять, чтобы учесть, например, отклонение частоты кварцевого
резонатора от номинальных 6 МГц.

Чтобы рассчитать нужное значение коэффициента деления, число, вдвое меньшее частоты кварцевого
резонатора (Гц), делят на требуемую скорость передачи (Бод). Частное округляют до ближайшего числа с
дробной частью 0,125, 0,25, 0,5 или до целого числа. Полученное значение необходимо преобразовать в 16-
разрядный двоичный код. В 14 младших разрядов кода (D0-D13) заносят целую часть коэффициента, а в
старшие (D14, D15) - дробную в соответствии с таблицей. Этот код затем преобразуют в двухбайтное
шестнадцатиричное число.

Работая в системе Windows 98, в разделе [FtdiPort232.HW.AddReg] упомянутого выше файла ftdiport.inf найдите
строку

HKR,,ConfigData,1,01,00,3F,3F,10,27,88,13,C4,09,E2,04,71,02,38,41,9c,80,4E,C0,34,00,1A,
00,0D,00,06,40,03,80,00,00,00,00

Учтите, что она разбита на несколько условно, а в файле должна быть записана единой строкой без пробелов.
Значения коэффициентов, которые могут быть изменены, для удобства здесь выделены полужирным шрифтом
и курсивом поочередно. В файле никакие выделения недопустимы. Младший байт каждого коэффициента
записан первым, за ним следует старший. Например, последовательность E2,04 соответствуют числу 4E2H.
Внеся нужные изменения, отредактированным файлом заменяют исходный.

Работая в системе Windows 2000, аналогичным образом редактируют такую же строку в разделе
[FtdiPort232.NT.HW.AddReg] того же файла.