Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Garcian
9 / 9 / 6
Регистрация: 13.11.2012
Сообщений: 168
Завершенные тесты: 5
#1

Распознать как одно USB устройство как другое - Микроконтроллер

22.03.2017, 16:40. Просмотров 204. Ответов 12
Метки нет (Все метки)

Доброго времени суток!

Скажите, пожалуйста, возможно ли, имея драйвер для одного МК (допустим, от Atmela) распознать устройство от другого производителя, будто он и является этим МК. Достаточно ли для этого подогнать содержимое дескриптора должным образом?

Если да, то какие именно поля отвечают за идентификацию?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2017, 16:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Распознать как одно USB устройство как другое (Микроконтроллер):

Почему одно прерывание блокирует другое?
Не могу понять, что не так. В программе два прерывания. Одно прерывание по...

USB-устройство
Всем здарова) У меня вопрос касательно usb-устройств и связи их с пк. Пытаюсь...

V-USB, hid-устройство
Доброго времени суток. Собрал схему для работы с V-USB. Делаю все по данному...

USB-устройство ввода/вывода всякой всячины
Первоначально, задумывалось как девайс, позволяющий управлять MPD с компьютера,...

Как переделать USB/COM кабель от APC в полнофункциональный USB/COM?
Добрый день. прошу помощи у гуру в опознании девайса. Это USB-COM...

USB-HID библиотека с st.com STM32f105 "Устройство USB не .."
Товарищи. Взял USB библиотеку с st.som (On-The-Go host omd divice library), для...

12
Voland_
1476 / 986 / 93
Регистрация: 04.01.2010
Сообщений: 3,253
22.03.2017, 17:26 #2
VID/PID подогнать можно, но этого конечно не достаточно.
0
Garcian
9 / 9 / 6
Регистрация: 13.11.2012
Сообщений: 168
Завершенные тесты: 5
23.03.2017, 09:05  [ТС] #3
Voland_, пожалуйста, продолжите Вашу мысль
0
ValeryS
Модератор
7134 / 5402 / 669
Регистрация: 14.02.2011
Сообщений: 18,227
23.03.2017, 10:55 #4
Цитата Сообщение от Garcian Посмотреть сообщение
пожалуйста, продолжите Вашу мысль
а че там продолжать
по Виду\Пиду определятся драйвера и даже скорее всего встанут
а вот дальше
есть ли дескрипторы строк,конфигурация, сколько конечных точек, каков наконец протокол обмена
в общем дело не быстрое
0
Garcian
9 / 9 / 6
Регистрация: 13.11.2012
Сообщений: 168
Завершенные тесты: 5
23.03.2017, 15:21  [ТС] #5
Странно, вроде все так и сделал. Неужели по виду/пиду допустил ошибку.

Вот эталон:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
/* DEVICE DESCRIPTOR */
#define USB_SPECIFICATION     0x1001
#define DEVICE_CLASS          0xFF
#define DEVICE_SUB_CLASS      0xFF
#define DEVICE_PROTOCOL       0xFF
#define EP_CONTROL_LENGTH     32
#define VENDOR_ID             0x7629        /* Atmel vendor ID = 03EBh */
#define PRODUCT_ID            0x0300        /* Product ID: 2003h = HID keyboard */
#define RELEASE_NUMBER        0x0001
#define MAN_INDEX             0x01
#define PROD_INDEX            0x02
#define SN_INDEX              0x03
#define NB_CONFIGURATION      1
Вот как я изменил дескриптор своего МК:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
0x12,   // *bLength
0x01,   // *bDescriptorType
0x00,   // *bcdUSB
0x10,   // *bcdUSB
0x0FF,  // bDeviceClass
0xFF,   // bDeviceSubClass
0x0FF,  // bDeviceProtocol
0x08,   // *bMaxPacketSize0
0x76,   // idVendor
0x29,   // idVendor
0x03,   // idProduct
0x00,   // idProduct
0x00,   // bcdDevice
0x01,   // bcdDevice
0x01,   // iManufacturer
0x02,   // iProduct
0x03,   // iSerialNumber
0x01,   // *bNumConfigurations
Было бы приятно, если бы для начала просто опозналось. Настройки всех конечных точек и прочего я также редактировал.
0
ValeryS
Модератор
7134 / 5402 / 669
Регистрация: 14.02.2011
Сообщений: 18,227
23.03.2017, 15:50 #6
Цитата Сообщение от Garcian Посмотреть сообщение
0x00, // bcdUSB
0x10, // bcdUSB
и
Цитата Сообщение от Garcian Посмотреть сообщение
USB_SPECIFICATION 0x1001
есть разница?

и я не помню спецификацию USB( а искать лень) "тупоконечники"там или "остроконечники"
попробуй
C
1
2
3
4
5
6
0x29,   // idVendor
0x76,   // idVendor
0x00,   // idProduct
0x03,   // idProduct
0x01,   // bcdDevice
0x00,   // bcdDevice
что снифер то говорит?

Добавлено через 3 минуты
Цитата Сообщение от Garcian Посмотреть сообщение
#define EP_CONTROL_LENGTH 32
и
Цитата Сообщение от Garcian Посмотреть сообщение
0x08, // bMaxPacketSize0
тоже не совпадают
0
Garcian
9 / 9 / 6
Регистрация: 13.11.2012
Сообщений: 168
Завершенные тесты: 5
23.03.2017, 15:51  [ТС] #7
Хорошо, попробую. Правда, то что я пометил звездочкой, в даташите оговаривалось как "обязательное" значение. Снифер пишет устройство не опознано, красный крест, все дела.
0
ValeryS
Модератор
7134 / 5402 / 669
Регистрация: 14.02.2011
Сообщений: 18,227
23.03.2017, 16:04 #8
Цитата Сообщение от Garcian Посмотреть сообщение
Снифер пишет устройство не опознано, красный крест,
ну а вид/пид какой выдает?
и что за снифер у тебя? у меня например USBLyzer
1
Garcian
9 / 9 / 6
Регистрация: 13.11.2012
Сообщений: 168
Завершенные тесты: 5
23.03.2017, 16:08  [ТС] #9
ValeryS, а, прошу прощения за свою некомпетентность, у меня "никакой". Я думал то что винда перехватывает. Я воспользуюсь им и посмотрю, что выдаст. Спасибо за совет.

Хотя, если я правильно понял, винда должна устройство хотя бы увидеть в диспетчере устройств, а не писать отказ. Иначе от снифера не будет толку.
0
ValeryS
Модератор
7134 / 5402 / 669
Регистрация: 14.02.2011
Сообщений: 18,227
23.03.2017, 16:12 #10
Цитата Сообщение от Garcian Посмотреть сообщение
у меня "никакой"
Надо заиметь без него трудно усб устройства делать
0
Garcian
9 / 9 / 6
Регистрация: 13.11.2012
Сообщений: 168
Завершенные тесты: 5
30.03.2017, 09:25  [ТС] #11
Посмотрел эталонное устройство через снифер и немного впал в ступор.
Код
0	bLength	1	12h	
1	bDescriptorType	1	01h	Device
2	bcdUSB	2	0110h	USB Spec 1.1
4	bDeviceClass	1	FEh	Application-Specific
5	bDeviceSubClass	1	01h	Device Firmware Upgrade
6	bDeviceProtocol	1	00h	
7	bMaxPacketSize0	1	20h	32 bytes
8	idVendor	2	03EBh	
10	idProduct	2	2FFDh	
12	bcdDevice	2	0000h	0.00
14	iManufacturer	1	00h	
15	iProduct	1	00h	
16	iSerialNumber	1	00h	
17	bNumConfigurations	1	01h
К тому же я знаю, что программа использует 3 конечные точки помимо нулевой. Снифер показал, что их нет. В общем, я в замешательстве.
0
ValeryS
Модератор
7134 / 5402 / 669
Регистрация: 14.02.2011
Сообщений: 18,227
30.03.2017, 09:46 #12
Цитата Сообщение от Garcian Посмотреть сообщение
3 конечные точки помимо нулевой. Снифер показал, что их нет.
А где он показал это дескриптор девайса в нем нет информации о конечных точках
нужен дескриптор конфигурации и дескриптор интерфейса
почитай книги Агурова для понимания что и как в УСБ
0
Garcian
9 / 9 / 6
Регистрация: 13.11.2012
Сообщений: 168
Завершенные тесты: 5
30.03.2017, 09:51  [ТС] #13
ValeryS, пожалуйста
Код
Interface Descriptor 0/0 Application-Specific, 0 Endpoints
Offset	Field	              Size	Value	Description
0	bLength	                1	09h	
1	bDescriptorType	        1	04h	Interface
2	bInterfaceNumber	1	00h	
3	bAlternateSetting	1	00h	
4	bNumEndpoints	        1   	00h	
5	bInterfaceClass	        1	FEh	Application-Specific
6	bInterfaceSubClass	1	01h	Device Firmware Upgrade
7	bInterfaceProtocol	1	00h	
8	iInterface              1	00h
Я скинул лишь дескриптор девайса, чтобы показать что он отличается от того, что прописан в коде проги. Как это
C
1
#define PRODUCT_ID            0x0300
превратилось в это?
Код
idProduct	2	2FFDh
0
30.03.2017, 09:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2017, 09:51
Привет! Вот еще темы с решениями:

USB-устройство не опознано
Есть плата с камнем stm32f105 и нужно подключить её по usb к компу. Для этого...

USB - Составное устройство.. STM32.
Всем привет. Есть задача - подключить к STM32F4 принтер HP, причем принтер не...

Ни один USB порт не работает, любая флешка,либо другое устройство отображалось,как неизвестное.
ни один порт не работает.. сначала я подумала,что слетели драйвера,но обновив...

Беспроводной USB удлинитель на одно устройство.
Ищу из серии дёшево, но сердито.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru