Hi, All!
Снова вопрос для тех, кто знаком с ЮСБ. Какой дескриптор даёт возможность кампу определить устройство CDC, как, последовательный порт?
oleg
Hi, All!
Снова вопрос для тех, кто знаком с ЮСБ. Какой дескриптор даёт возможность кампу определить устройство CDC, как, последовательный порт?
oleg
Привет, Oleg!
29 июл 08 16:56, oleg dozhdev -> All:0 od> Снова вопрос для тех, кто знаком с ЮСБ. Какой дескриптор даёт
0 od> возможность кампу 0 od> определить od> устройство CDC, как, последовательный порт?То что считываешь по ID SUB
С уважением, Oleg.
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
Have something to add? Share your thoughts — no account required.
Ask the community — no account required