и вдогонку!

Hi, All!

Снова вопрос для тех, кто знаком с ЮСБ. Какой дескриптор даёт возможность кампу определить устройство CDC, как, последовательный порт?

oleg

Reply to
oleg dozhdev
Loading thread data ...

Привет, Oleg!

29 июл 08 16:56, oleg dozhdev -> All:

0 od> Снова вопрос для тех, кто знаком с ЮСБ. Какой дескриптор даёт

0 od> возможность кампу 0 od> определить od> устройство CDC, как, последовательный порт?

То что считываешь по ID SUB

С уважением, Oleg.

formatting link

Reply to
Oleg Primakov

Hi, Oleg!

0 od>> Снова вопрос для тех, кто знаком с ЮСБ. Какой дескриптор 0 od>> даёт возможность кампу определить od>> устройство CDC, как, последовательный порт?

OP> То что считываешь по ID SUB

Это что такое? я в спецификации не нашёл именно такого. поясни, пожалуйста.

oleg

Reply to
oleg dozhdev

Hi, Oleg!

0 od>> Снова вопрос для тех, кто знаком с ЮСБ. Какой дескриптор 0 od>> даёт возможность кампу определить od>> устройство CDC, как, последовательный порт?

OP> То что считываешь по ID SUB

Вот, посмотри, пожалуйста. Я тут синим выделил. Это единственный дескриптор, в котором хоть что-то прописывается. Я пока написал в изготовители Атмел.

Я написал 3 дескриптора: сводный дескриптор устройства, сводный для функции и текстовый с языком устройства и своими данными о производителе и версии. Устройство имеет тип CDC без подклассов и протокола, одна конфигурация и в ней 2 интерфейса. В первом инетефейсе - коммуникационный интерфейс - с одной конечной точкой по прерыванию для извещения. Второй интерфейс - интерфейс данных - две конечные точки для общения массивами.

Вот выжимки:

// Standard Device Descriptor sizeof(S_device_descriptor), DEVICE_DESCRIPTOR_TYPE, USB2_00, COMMUNICATION_DEVICE_CLASS, 0x00, // No device subclass code 0x00, // No device protocol code 0x08, // Maximum packet size for endpoint zero _0x03eb,_ // ATMEL vendor ID _0x6119,_ // Product ID 0x0001, // Device release number 0x04, // Index of manufacturer description 0x1c, // Index of product description 0x28, // Index of serial number description 0x32, // One possible configuration

В функциональном дескрипторе - заголовок, дескриптор абстрактной модели, поддерживающей све запросы, кроме Network_Connection, дескриптор обработки вызовов и объедиения. с вызовами - вопрос.

Кстати, всё подчистую содранно с атмеловского CDC driver.

// Interfaces Numbers #define MASTER_INTERFACE 0x00 // Communication Class Interface (control) #define SLAVE_INTERFACE 0x01 // Data Class Interface (slave)

// Call Management Functional Descriptor sizeof(S_call_management), CS_INTERFACE, CALL_MANAGEMENT_FUNCTIONAL_DESCRIPTOR, 0x01, // Device handles call management itself via Communication // Class Interface _SLAVE_INTERFACE,_ // ТУТ ВОПРОС

Вопрос тут вот где: почему указывается номер интерфейса, через который передаются данные? Почему бы не написать номер интерфейса управления?

Вот, допустим, я всё это залью в микроконтроллер (пока мекетка ещё не готова, да и программить дома нечем). А что должно получиться на выходе? Что будет, если я подключу его к кампу? Он запросит дескрипторы, а потом попросит драйвер? а какой драйвер он попросит? мой собственный или атмеловский? а как мне написать, чтоб камп попросил либо стандартный виндовский драйвер устройства CDC, либо драйвер winusb.sys? что надо для этого сделать? изменить дескриптор Device Desccriptor (в частности ID)? а на что pаменить? А какой ID написать, чтоб камп знал, что тут девайс самопальный? и какие ID можно использовать вообще? ссылка на сайт очень приветствуеццо =)

можно ли посмотреть твои дескрипторы? и чего ты хотел добиться?

oleg

Reply to
oleg dozhdev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.