|
Посоветуйте по изучению USB, каким путём лучше идти |
|
|
|
Feb 5 2013, 08:12
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593

|
Всем ДВС! Хотел бы спросить у уважаемого сообщества совета по изучению USB, так сказать чтобы указали направление, а дальше сам. Сейчас на столе лежит некое устройство, скажем, телеметрии. Оно должно собирать инфо с сенсоров в кучу и отправлять всё это дело в ПК + возможность настройки устройства через оболочку на ПК. В связи с тем, что стандартного HID класса ввиду ограниченности размера посылки может не хватить, хочу забацать свой собственный. И вот тут начинаются вопросы и трудности. Сам я после чтения Агурова и ресурсов, посвященных сабжу, изучения библ от STM более-менее разобрался и как я понял главное это правильный дескриптор и настройка ендпоинтов. Как я понял, для моих задач потребуется тип передачи interrupt, 4 ендпоинта (EP0, control EP, TxEP, RxEP), т.е. концепция более-менее понятна. В какую сторону дальше копать и какой контроллер лучше взять для того, чтобы пощупать работу USB? Правильно ли я понимаю, что потребуется custom class? Сейчас имеется stm32f417, но судя по многочисленным обсуждениям его движок USB очень тяжёл для начала. Делать USB-COM не хочу принципиально  Что посоветуете, опытные гуру?
|
|
|
|
|
 |
Ответов
|
Feb 7 2013, 09:18
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593

|
Итак, за сутки неплохо продвинулся вперед, детально изучил дескрипторы и вообще что к чему. Многие вопросы отпали сами собой. Вот, наваял файлик с дескрипторами будущего девайса. Всего 4 рабочих эндпоинта. Остались вопросы по-мелочи: обязательно ли делать строковые дескрипторы и правильно ли я инициализировал порядок работы vendor specific? Никак не могу найти где прочитать про interface protocol, он ведь тоже определен для классов? Код typedef unsigned char BYTE;
const BYTE DEVICE_DESCRIPTOR [] = { 0x12, //0 0-17 (18) размер в байтах 0x01, //1 дескриптор устр-ва 0x02, 0x00, //2 USB 2.0 0x00, //4 см. дескриптор интерфеса 0x00, //5 см. дескриптор интерфеса 0x00, //6 см. дескриптор интерфеса 0x20, //7 размер EP 0 32 байта 0x12, 0xab, //8 VID с потолка 0x00, 0x01, //10 PID с потолка 0x00, 0x01, //12 Version 1.0 0x00, //14 нет 0x00, //15 нет 0x00, //16 нет 0x01 //17 1 конф-ия };
const BYTE CONFIG_DESCRIPTOR [] = { 0x09, // 9 байт 0x02, // дескр-р конф-ии 0x00,0x2e, // всего байт возвращает - 4x7 (EP) + 2x9 = 46 0x01, // 1 интерфес 0x01, // "1" 0x00, // нет 0xc0, // self-powered 0x96 // 300mA };
const BYTE INTERFACE_DESCRIPTOR [] = { 0x09, // 9 байт 0x04, // дескр-р инт-са 0x00, // интерфес "0" 0x00, // альт. интерфейс "0" 0x04, // 4 ендпоинта: EP1 DIN interrupt, EP1 DOUT interrupt, EP2 DOUT interrupt, EP2 DIN control 0xff, // vendor specific class 0x01, // subclass "1" 0xff, // vendor specific protocol 0x00 // нет };
const BYTE ENDPOINT1_IN_DESCRIPTOR [] = { 0x07, // 7 байт 0x05, // дескр-р ендпоинта 0x81, // EP1 IN, основный данные 0x03, // interrupt 0x00, 0x40, // размер 64 байта 0x64 // каждые 100 мс };
const BYTE ENDPOINT1_OUT_DESCRIPTOR [] = { 0x07, // 7 байт 0x05, // дескр-р ендпоинта 0x01, // EP1 OUT, запись данных в ус-во 0x03, // interrupt 0x00, 0x40, // размер 64 байта 0x64 // каждые 100 мс };
const BYTE ENDPOINT2_IN_DESCRIPTOR [] = { 0x07, // 7 байт 0x05, // дескр-р ендпоинта 0x82, // EP2 IN, прочие данные 0x03, // interrupt 0x00, 0x40, // размер 64 байта 0x64 // каждые 100 мс }; const BYTE ENDPOINT2_OUT_DESCRIPTOR [] = { 0x07, // 7 байт 0x05, // дескр-р ендпоинта 0x02, // EP2 OUT, команды 0x00, // control type 0x00, 0x40, // размер 64 байта 0x32 // каждые 40 мс }; Нижайше прошу кинуть помидором в то место, где я накосячил
|
|
|
|
Сообщений в этой теме
NaughtyFreak Посоветуйте по изучению USB Feb 5 2013, 08:12 kovigor Цитата(NaughtyFreak @ Feb 5 2013, 12:12) ... Feb 5 2013, 08:52 Herz Цитата(NaughtyFreak @ Feb 5 2013, 10:12) ... Feb 5 2013, 09:02 NaughtyFreak Цитата(Herz @ Feb 5 2013, 13:02) Двигател... Feb 5 2013, 09:52  kovigor Цитата(NaughtyFreak @ Feb 5 2013, 13:52) ... Feb 5 2013, 09:57  toweroff Цитата(NaughtyFreak @ Feb 5 2013, 13:52) ... Feb 5 2013, 10:02  shreck Цитата(NaughtyFreak @ Feb 5 2013, 16:52) ... Feb 5 2013, 10:36   NaughtyFreak Цитата(shreck @ Feb 5 2013, 14:36) Вы дум... Feb 5 2013, 10:52    kovigor Цитата(NaughtyFreak @ Feb 5 2013, 13:52) ... Feb 5 2013, 11:15     shreck Цитата(kovigor @ Feb 5 2013, 18:15) Нет, ... Feb 5 2013, 12:18      kovigor Цитата(shreck @ Feb 5 2013, 15:18) Не пут... Feb 5 2013, 12:31 telix Если Вы хотите копать USB то вот этот вариант наи... Feb 5 2013, 09:30 toweroff Цитата(telix @ Feb 5 2013, 13:30) или их ... Feb 5 2013, 09:47 NaughtyFreak Нет-нет, супернадёжности не требуется, более того ... Feb 5 2013, 10:23 toweroff Цитата(NaughtyFreak @ Feb 5 2013, 14:23) ... Feb 5 2013, 10:29 kovigor Цитата(NaughtyFreak @ Feb 5 2013, 13:23) ... Feb 5 2013, 10:35  SyncLair Цитата(kovigor @ Feb 5 2013, 14:35) Для а... Feb 12 2013, 16:35   NaughtyFreak Еще одна непонятка с STM: их бит ENUMDNEM, сигнали... Feb 13 2013, 10:46 NaughtyFreak Понял, буду изучать!
Скачал refernce manual на... Feb 5 2013, 11:37 kovigor Цитата(NaughtyFreak @ Feb 5 2013, 14:37) ... Feb 5 2013, 11:45  NaughtyFreak Цитата(kovigor @ Feb 5 2013, 15:45) Качай... Feb 5 2013, 17:44   kovigor Цитата(NaughtyFreak @ Feb 5 2013, 20:44) ... Feb 5 2013, 19:40   toweroff Цитата(NaughtyFreak @ Feb 5 2013, 21:44) ... Feb 5 2013, 20:53    NaughtyFreak Цитата(toweroff @ Feb 6 2013, 00:53) при ... Feb 6 2013, 09:18     kovigor Цитата(NaughtyFreak @ Feb 6 2013, 12:18) ... Feb 6 2013, 09:51 andrewlekar ЦитатаО какой ограниченности посылки вы говорите. ... Feb 6 2013, 05:00 shreck Цитата(andrewlekar @ Feb 6 2013, 12:00) Г... Feb 6 2013, 07:37 toweroff kovigor, там в примерах для LPC, в общем-то, все п... Feb 6 2013, 09:56 kovigor Цитата(toweroff @ Feb 6 2013, 12:56) kovi... Feb 6 2013, 10:06  toweroff Цитата(kovigor @ Feb 6 2013, 14:06) И все... Feb 6 2013, 10:27   kovigor Цитата(toweroff @ Feb 6 2013, 13:27) Впол... Feb 6 2013, 10:36 NaughtyFreak Задача почти тривиальная:
Есть, ну скажем, гиропла... Feb 6 2013, 10:23 toweroff Все в первоисточнике:
http://www.usb.org/developer... Feb 7 2013, 10:32 NaughtyFreak спс, пошёл дальше изучтать...
Пока что опираюсь н... Feb 7 2013, 10:34 NaughtyFreak Да простят меня гуру да не кинут в меня тапками св... Feb 12 2013, 13:40
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|