Перейти к содержанию
    

Два фнукциональных устройства в одном физическом

Да любой софт для анализа обмена на шине usb.Я использую последнее время USBAnalyser.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да любой софт для анализа обмена на шине usb.Я использую последнее время USBAnalyser.

а ссылку можно, а то гугл много чего выдает на такой запрос!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а ссылку можно, а то гугл много чего выдает на такой запрос!

Извиняюсь за невеное название софта. Вот список программ для анализа USB трафика:

USBlyzer.1.5.97

SysNucleus USBTrace

Advanced USB Port Monitor 2.3.0.14.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хочу опровергнуть заявление galjoen о невозможности создания составного устройста :biggrin:

Сегодня попробовал сделать составное USB устройство: Mass Storage Device и CDC Ethernet Emulation Model.

Ну, если можно сделать MS+CDC, то это радует. Хотя м.б. эта возможность только начиная с SP1 появилась. И ещё, неизвестно как драйвера встали - по bInterfaceClass или по VID+PID. Попробуйте, как я в своё время, в дескрипторе DEVICE idVendor=idProduct=bcdDevice=0 сделать. Если и в этом случае всё работать будет, то действительно можно радоваться...

 

К списку ПО, анализирующего USB, могу ещё BusHound (не совсем то и платное ;) ) и SnoopyPro (лично мне нравится и бесплатное) добавить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для класса устройства Mass Storage Device описанного в дескрипторе интерфейса №0 драйвера у меня встали автоматически.

Для класса устройства Communication Device Descriptor описанного в дескрипторе интерфейса №1 драйвера автоматически ось не поставила. Чтобы установить стандартный драйвер usbser.sys для интерфейса №1, необходимо создать INF-файл. Образец я выложил.

 

Основная его фишка в этой строке: :biggrin:

%USBtoSerialConverter%=USBtoSer.Install,USB\VID_DC99&PID_C906&MI_01

Здесь идентификатор устройства включает Vendor ID, Product ID и "MI_01" означает номер интерфейса USB устройства для которого нужно поставить драйвер.

 

Как вы заметили, я не применял дескриптор Interface Association Descriptor (IAD). Я описал интерфейс CDC с тремя конечными точками. Я не стал отдельно создавать интерфейс данных и коммуникационный интерфейс. Кроме того, я не описал следующие дескрипторы:

- заголовочный (Header Functional Descriptor);

- режима команд (Call Management Functional Descriptor);

- абстракции устройства (Abstract Control Management Functional Descriptor);

- группирования (Union Functional Descriptor).

 

Работу девайса по второму интерфейсу я пока не проверял. На днях протестирую. :smile3009:

post-21706-1259154078_thumb.jpg

csmmc_inf.txt

Composite_USB_device_MSD_CDC.html

Изменено пользователем DiMonstr

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для класса устройства Communication Device Descriptor описанного в дескрипторе интерфейса №1 драйвера автоматически ось не поставила.

И у меня так было. Поэтому и дальнейшие попытки не предпринимал т.к. мне нужно было чтобы программа со встроенного диска без установки на комп работала.

А вот если в дескрипторе DEVICE bDeviceClass=CDC установить, то драйвера автоматически ставятся в т.ч. и при VID=PID=0, но устройство уже будет без MassStorage. Хотя я, к сожалению, не попробовал при этом устройство составным, в т.ч. и с интерфейсом MassStorage, делать. А вдруг прокатило бы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 DiMonstr Ну и чем опыты закончились?

На этом всё и закончилось:)

Сейчас другим делом занят. Разбираюсь со спецификацией Remote NDIS. Хочу забацать типа адаптера USB-Ethernet

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

народ, а кто нить писал композитное устройство на основе cy7c68013? Хочу сделать Mass Storage плюс свой девайс, чтобы драйвера и софт на него таскать вместе с ним и ставить прямо с него. Я там понимаю проблема далеко не нова и повсеместно применяется в мобильных usb девайсах, модемах и пр. Мож есть какие примеры на эту тему? Вообще мне нужно корректно поставить задачу для проектирования и разводки ПП для устройтва. А как программировать его можно разобраться и позже. То есть необходимо составить что то вроде функциональной схемы. Пока в голову приходит вот что:

 

CY7c16013 (Cypress, usb fx2) связан с FPGA (она все равно будет в девайсе для реализации его основного функционала), на FPGA заведена FLASH память какая-нить (для mass storage девайса). Вооот... Все остальное достигается за счет программирования CY7c16013 и FPGA.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

CY7c16013 (Cypress, usb fx2) связан с FPGA (она все равно будет в девайсе для реализации его основного функционала), на FPGA заведена FLASH память какая-нить (для mass storage девайса). Вооот... Все остальное достигается за счет программирования CY7c16013 и FPGA.

Пардон, не CY7c16013 , а CY7C68013

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

CY7c16013 (Cypress, usb fx2) связан с FPGA (она все равно будет в девайсе для реализации его основного функционала), на FPGA заведена FLASH память какая-нить (для mass storage девайса). Вооот... Все остальное достигается за счет программирования CY7c16013 и FPGA.

Чтобы сделать составное устойство нужно чтобы кол-во EndPoint (EP) было достаточным. Вот например для HID+MassStorage нужно 3 EP (не считая 0й) - 1. HID-овская InterruptIn, 2. MassStorage Bulk IN, 2. MassStorage Bulk OUT. Можно обойтись и без InterruptIn EP - сделать HID только с Get(Set)Feature через контрольный канал (0-я EP). Но у CY7C68013 кол-во EP для всех случаев вполне достаточное.

 

Не знаю какие требования к скорости и объёму передаваемых данных (кроме MassStorage) в вашем случае, поэтому рекомендовать ничего не могу. Но хочу заметить, что м.б. всё можно сделать и вообще без CY7C68013? На самой FPGA.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы сделать составное устойство нужно чтобы кол-во EndPoint (EP) было достаточным. Вот например для HID+MassStorage нужно 3 EP (не считая 0й) - 1. HID-овская InterruptIn, 2. MassStorage Bulk IN, 2. MassStorage Bulk OUT. Можно обойтись и без InterruptIn EP - сделать HID только с Get(Set)Feature через контрольный канал (0-я EP). Но у CY7C68013 кол-во EP для всех случаев вполне достаточное.

 

Не знаю какие требования к скорости и объёму передаваемых данных (кроме MassStorage) в вашем случае, поэтому рекомендовать ничего не могу. Но хочу заметить, что м.б. всё можно сделать и вообще без CY7C68013? На самой FPGA.

 

Честно говоря, у меня есть опыт работы с cy7c68013, а на FPGA я usb никогда не реализовывал. Думаю есть готовые ядра, но я их пока не смотрел. Кстати FPGA скорее всего будет EP3C55 (Altera Cyclone III). Для моего девайса вполне достаточно будет двух Bulk EP (одна на вход, одна на выход), скорости там небольшие - если 15 мегабит на проходе через девайс получится, буднет очень Здорово. FPGA как вы наверняка поняли, будет определенную обработку входных данных проводить и гнать их обратно.

 

То есть создание композитного девайса заключается в написании драйвера и прошивки для CY7C680013, данные получать из FLASH через FPGA... Интерфейс для mass storage сложен в реализации? Мост между ним и FPGA с флеш-памятью придется на CY7C68013 реализовывать, я правильно понимаю?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для моего девайса вполне достаточно будет двух Bulk EP (одна на вход, одна на выход), скорости там небольшие - если 15 мегабит на проходе через девайс получится, буднет очень Здорово.

 

FPGA как вы наверняка поняли, будет определенную обработку входных данных проводить и гнать их обратно.

 

Интерфейс для mass storage сложен в реализации?

Тогда вам вообще составное устройство не нужно. Можно одним MassStorage обойтись. Например, опишите его как устройство с 2-мя логическими дисками и всё. На одном, защищённом от записи, все программы для работы с вашим девайсом, а на другой, фиктивный, будет для приёма-передачи данных использоваться. Работать с ним придётся через запись/чтение сектора (иначе винда закэширует), но зато никаких драйверов не нужно. И две bulk EP нужны всего.

 

Так что, вам никакого общения с внешним миром не нужно? Что же это такое будет? Защита от копирования?

 

MassStorage в реализации не сложен, но требуется аккуратность. И виндовсие глюки обойти, иначе виндой отформатировать невозможно будет.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так что, вам никакого общения с внешним миром не нужно? Что же это такое будет? Защита от копирования?

 

Да, типа того, защита от копирования, реинженеринга и все такое, плюс шифрованный конфиг прям на девайсе - получается все свое ношу с собой )

 

А может есть где в открытом доступе примеры реализации композитных девайсов под CY7C68013? А примеры драйверов для композитных девайсов?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...