и вдогонку!

Jul 29, 2008 3 Replies

Hi, All!


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


oleg


Привет, Oleg!

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

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

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

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

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

formatting link

Hi, Oleg!

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

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

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

oleg

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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required