Как сделать свою микросхему

Еще не так давно считалось, что протокол обмена данными по USB настолько сложен, что его реализовать под силу только далеко не рядовым специалистам. Но спрос рождает предложение. Вероятно, самое удобное на сегодняшний день решение для эмуляции последовательного порта через USB предлагает английская (точнее шотландская) фирма Future Technology Devices International Ltd — FTDI. К ее устройствам (см. также приложение 4) прилагаются бесплатные и свободно распространяемые драйверы под все основные ОС, в том числе и под Windows семейств NT и 9л\ Разновидностей таких драйверов две — это VCP- и 02ХХ-драйверы.

VCP на самом деле означает Virtual Communication Port— этот драйвер просто-напросто транслирует все стандартные функции Win32 API, которые мы использовали ранее, в необходимые команды для USB и через микросхему FT232BM (или аналогичные ей, находящиеся в устройстве) опять преобразует их в битовые последовательности UART. При подключении устройства в системе возникает новый СОМ-порт, и все описанные ранее программы без переделок будут работать через него. Это касается и случая, когда используется фирменный "шнурок" USB/RS-232, и когда вы сами нечто подобное изобрели (см. приложение 4). Мало того, в Windows ХР подобный драйвер уже есть, и там ничего вообще устанавливать не надо — единственная разница в том, что виртуальный СОМ, в отличие от реального, не будет виден в системе, пока вы свое устройство не подключите к USB.

Единственный серьезный аопрос, который может возникнуть в случае использования VCP-драйверов, касается скорости передачи — если уж USB, то хочется использовать хоть малую долю возможностей этой шипы, между тем стандартно СОМ-порт через структуру dcb может устанавливать скорость в 256 ООО бод. Есть и приемы установки для СОМ-порта нестандартной скорости обмена, но вопрос о том, насколько это корректно для данного случая, лично для меня, ввиду новизны ситуации, пока открыт (официальная документация не слишком уверенно утверждает, что можно использовать только стандартные скорости). Второй— менее серьезный— недостаток VCP заключается в том, что вы не можете через него работать с встроенной в FT- устройство EEPROM, в которой записан идентификатор устройства и прочие необходимые для USB "прибамбасы".

В этих случаях следует использовать 1)2ХХ-драйвер. работа с которым не сложнее, чем с разобранным ранее компонентом TAf ComPort, но программы, конечно, придется переписывать. С установкой D2XX-,apaiinepa связана одна совершенно глупая трудность (так и хочется написать — "характерная для продуктов MS")— как указывалось ранее, в Windows ХР VCP-драйиер уже есть, и для установки 02ХХ-драйвера нужно устраиват ь некоторые "пляски с бубном", цитирую из русского переложения фирменных рекомендаций по этому поводу (http://www.efo.ru/doe/Ftdi/Ftdi.pI71046):

"Немного сложнее обстоит дело в случае использования операционной системы Windows ХР, которая уже имеет в своем составе сертифицированные VCP-драйверы FTD1. При попытках присоединить к компьютеру новое USB- устройство со стандартными идентификаторами FTDI (например, любой D LP-модуль) система по умолчанию, не спрашивая пользователя, самостоятельно установит VCP-драйверы. Пользователю, желающему работать с D2XX-dpaueepauu, необходимо в этот момент вспомнить, что очень полезно воспитывать в себе терпение и воспользоваться утилитой ftxprcvr.exe, входящей в состав дистрибутива D2XX-dpaueepoe для Windows ХР. Утилита ftxprcvr.exe, используя установившиеся по умолчанию VCP-драйверы, перепрограммирует внешнюю EEPROM. используемую в присоединенном устройстве, и задаст новые значения идентификаторов (VID=0403 и РЮ-6006). После этого необходимо повторить процедуру установки D2.XX-dpaimepoe сначала, т. е. отключить и снова присоединить устройство. Теперь система даст возможность пользователю указать директорию для установки D2XX- драйверов."

Перепрограммировать EEPROM в устройстве USB на основе микросхем FT232BM через свою программу не обязательно, для этого есть фирменная утилита EditEEPROM (http://www.efo.ru/doc/Ftdi/Ftdi.pl7798). Приводить примеры программ для работы с Э2ХХ-драйвером я не вижу никакого смысла — работающего устройства под рукой и у меня, и у вас нет, а просто переписывать фирменную документацию — только бумагу переводить, она уже не однажды переписана и переведена на русский, см., например, цитированную ранее статью или книгу [29]. На микросхему сайте екатеринбургской фирмы "Институт радиотехники" есть, в том числе, работающий пример проекта на Delphi (http://www.institute-rt.ru/ftdi/d2xxappl.zip) — а вот сами драйверы с данного сайта скачивать не следует, на момент написания этих строк там лежит устаревший вариант, лучше обратиться к первоисточнику (http:// www.ftdichip.com) или на упоминавшийся сайт компании "Эфо" (http:// www.efo.ru/doc/Ftdi/Ftdi.pl7784).

О некоторых особенностях обработки поступающих через последовательный порт данных мы поговорим в следующей главе.

Источник: Ревнч Ю. В.  Нестандартные приемы программирования на Delphi. — СПб.: БХВ-Петербург, 2005. — 560 е.: ил.

Tags: windows, использовать, работать, только, установки, устройства, устройство


Источник: http://src-code.net/emulyaciya-som-porta-cherez-shinu-usb/


Поделись с друзьями



Рекомендуем посмотреть ещё:


Закрыть ... [X]

Электрическая схема ультразвукового отпугивателя Шуточный стих на годовщину свадьбы

Как сделать свою микросхему Как сделать свою микросхему Как сделать свою микросхему Как сделать свою микросхему Как сделать свою микросхему Как сделать свою микросхему

ШОКИРУЮЩИЕ НОВОСТИ