реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Посоветуйте по изучению USB, каким путём лучше идти
NaughtyFreak
сообщение Feb 5 2013, 08:12
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593



Всем ДВС!

Хотел бы спросить у уважаемого сообщества совета по изучению USB, так сказать чтобы указали направление, а дальше сам. Сейчас на столе лежит некое устройство, скажем, телеметрии. Оно должно собирать инфо с сенсоров в кучу и отправлять всё это дело в ПК + возможность настройки устройства через оболочку на ПК. В связи с тем, что стандартного HID класса ввиду ограниченности размера посылки может не хватить, хочу забацать свой собственный. И вот тут начинаются вопросы и трудности. Сам я после чтения Агурова и ресурсов, посвященных сабжу, изучения библ от STM более-менее разобрался и как я понял главное это правильный дескриптор и настройка ендпоинтов. Как я понял, для моих задач потребуется тип передачи interrupt, 4 ендпоинта (EP0, control EP, TxEP, RxEP), т.е. концепция более-менее понятна. В какую сторону дальше копать и какой контроллер лучше взять для того, чтобы пощупать работу USB? Правильно ли я понимаю, что потребуется custom class? Сейчас имеется stm32f417, но судя по многочисленным обсуждениям его движок USB очень тяжёл для начала. Делать USB-COM не хочу принципиальноsm.gif
Что посоветуете, опытные гуру?
Go to the top of the page
 
+Quote Post
kovigor
сообщение Feb 5 2013, 08:52
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(NaughtyFreak @ Feb 5 2013, 12:12) *
Что посоветуете, опытные гуру?

Каков объем данных в секунду ? Если объем невелик, то достаточно FS, HS не нужна. Если хватит FS, то не нужен и STM. Возьмите NXP или ATMEL, они гораздо проще, и документация к ним гораздо удачнее, а примеры вполне разбираемы даже для тех, кто раньше с USB не работал.
Нужна ли высокая надежность ? Если нужна, откажитесь от USB, это будет постоянный источник проблем.
Свой класс, наверное, не стоит изобретать. Кстати, можно реализовать тот же Mass-storage, и обращаться к дивайсу как к обычному диску. То-то ваши программисты обрадуются .
P.S. Агурова не читайте, там вагон ошибок, самого разного калибра. Почитайте лучше Гука "Шины PCI, USB и FireWire" (например; а вообще у него нет книг, которые не стоило бы прочесть):
http://rutracker.org/forum/viewtopic.php?t=2466185
Go to the top of the page
 
+Quote Post
Herz
сообщение Feb 5 2013, 09:02
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Цитата(NaughtyFreak @ Feb 5 2013, 10:12) *
Всем ДВС!

Двигатель Внутреннего Сгорания? И Вам того же.
Цитата
Что посоветуете, опытные гуру?

Бежать от USB, как от чумы. Если имеется хоть единственная альтернатива.
Go to the top of the page
 
+Quote Post
telix
сообщение Feb 5 2013, 09:30
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 118
Регистрация: 9-12-12
Из: Курск
Пользователь №: 74 767



Если Вы хотите копать USB то вот этот вариант наилучший.

Сообщение отредактировал telix - Feb 5 2013, 10:28


--------------------
улыбаемся ...
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 5 2013, 09:47
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(telix @ Feb 5 2013, 13:30) *
или их же драйвер,

совсем необязательно. LibUsb прекрасно справляется (конечно, если не использовать загрузку прошивки при включении по USB)
Кстати, в последней редакции есть подписи под Win7 x64, что есть плюс

Цитата(telix @ Feb 5 2013, 13:30) *
Для Вас, если важно что то свое наваять, не вникая в железо, а только софт, то вот этот вариант наилучший.

LibUsb отлично встраивается, а библиотеки практически под все популярные среды программирования есть.

А для CDC можно и свой inf под usbser сделать
Go to the top of the page
 
+Quote Post
NaughtyFreak
сообщение Feb 5 2013, 09:52
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593



Цитата(Herz @ Feb 5 2013, 13:02) *
Двигатель Внутреннего Сгорания? И Вам того же.

Я тоже кружок шутки юмора на досуге посещаю.
ДВС = "Доброго Времени Суток"

Цитата(Herz @ Feb 5 2013, 13:02) *
Бежать от USB, как от чумы. Если имеется хоть единственная альтернатива.

Обоснуйте?..

Объём невелик, FS хватит за глаза.
Я почему-то так и думал что всё сведется к Atmel/NXP. Ок, спасибо за наводочку, скорее всего NXP. Сразу вопрос: какой? Я их ранее никогда в руках не держал. Простенького Cortex-M3 хватит (LPC17xx)?
Я сам себе прогаммер, поэтому радоваться буду сам biggrin.gif Цель изучения скорее самообразование на переспективу владения и умения.

На Cypress тоже смотрел, но пока дальше чтения сайта не углублялся. Откровенно говоря вещь не самая массовая, поэтому больше склоняюсь к тому же Atmel/NXP/ST.
С HID не очеень хочу заморачиваться, всё-таки склоняюсь к кастом-устройству + свой драйвер на Windows Driver Kit.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Feb 5 2013, 09:57
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(NaughtyFreak @ Feb 5 2013, 13:52) *
Объём невелик, FS хватит за глаза.
Я почему-то так и думал что всё сведется к Atmel/NXP. Ок, спасибо за наводочку, скорее всего NXP. Сразу вопрос: какой? Я их ранее никогда в руках не держал. Простенького Cortex-M3 хватит (LPC17xx)?


Должно хватить, если там есть FS. Еще раз повторю, если нужна надежность и (или) система должна быть необслуживаемой, или обслуживаемой редко, то от USB лучше отказаться сразу ...
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 5 2013, 10:02
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(NaughtyFreak @ Feb 5 2013, 13:52) *
Простенького Cortex-M3 хватит (LPC17xx)?

LPC175x скорее всего вполне. Тем более, что они пин-в-пин в этой линейке

Цитата(NaughtyFreak @ Feb 5 2013, 13:52) *
всё-таки склоняюсь к кастом-устройству + свой драйвер на Windows Driver Kit.

да зачем городить с WDK? Посмотрите по-внимательнее на libusb, я с ним булки гоняю уже лет 7
Go to the top of the page
 
+Quote Post
NaughtyFreak
сообщение Feb 5 2013, 10:23
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593



Нет-нет, супернадёжности не требуется, более того система автономна, но иногда требуется её подключать к компу для настройки/калибровки/считывания.
kovigor, toweroff весьма благодарен за разъяснения. Буду пробовать тогда с NXP и заодно покурю LibUsb. Не подскажите тогда, какие есть отладки с USB2.0 для контроллеров LPC?
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 5 2013, 10:29
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(NaughtyFreak @ Feb 5 2013, 14:23) *
Не подскажите тогда, какие есть отладки с USB2.0 для контроллеров LPC?

я использовал USBTrace и пример Mass Storage от Keil или codebundle от NXP, точно не помню
Выбросил весь уровень SCSI и использовал только bulk передачу
Фактически, нужно только отладить правильные энумерацию и конфиги, все остальное уже просто прикладной уровень
Go to the top of the page
 
+Quote Post
kovigor
сообщение Feb 5 2013, 10:35
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(NaughtyFreak @ Feb 5 2013, 13:23) *
более того система автономна

Для автономных систем USB не годится. Или система превратится в неавтономную. Раз в несколько дней вы будете ездить на обслуживаемый ей объект и ее перезапускать.
Отладочные платы здесь:
http://www.starterkit.ru
Go to the top of the page
 
+Quote Post
shreck
сообщение Feb 5 2013, 10:36
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 24-06-06
Из: Томск
Пользователь №: 18 328



Цитата(NaughtyFreak @ Feb 5 2013, 16:52) *
В связи с тем, что стандартного HID класса ввиду ограниченности размера посылки может не хватить, хочу забацать свой собственный.

...

С HID не очеень хочу заморачиваться, всё-таки склоняюсь к кастом-устройству + свой драйвер на Windows Driver Kit.

Вы думаете, что свое устройство+драйвер будет резко проще чем HID устройство?
О какой ограниченности посылки вы говорите. HID-репорт может быть до 64кБ размером. И никто не мешает передавать данные в несколько приемов. Зато никаких головняков с драйверами.
Go to the top of the page
 
+Quote Post
NaughtyFreak
сообщение Feb 5 2013, 10:52
Сообщение #13


Частый гость
**

Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593



Цитата(shreck @ Feb 5 2013, 14:36) *
Вы думаете, что свое устройство+драйвер будет резко проще чем HID устройство?
О какой ограниченности посылки вы говорите. HID-репорт может быть до 64кБ размером.


пока не думаю, пока изучаю sm.gif
А разве не 64 байта?
Go to the top of the page
 
+Quote Post
kovigor
сообщение Feb 5 2013, 11:15
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(NaughtyFreak @ Feb 5 2013, 13:52) *
А разве не 64 байта?

Нет, конечно. Я же говорю, Гука почитайте ...
P.S. Не все так просто. Длинную посылку для FS придется передавать блоками по 64 байта:
http://www.jungo.com/st/support/documentat...sfer_types.html
Выдержка из этого документа:
Цитата
"3.6.3 Interrupt Transfer
Interrupt Transfer is intended for devices that send and receive small amounts of data infrequently or in an asynchronous time frame.
This transfer type can be used for low-, full- and high-speed devices.
Interrupt transfer type guarantees a maximum service period and that delivery will be re-attempted in the next period if there is an error on the bus.
The interrupt pipe, like the isochronous pipe, is unidirectional and periodical.
The maximum packet size for interrupt endpoints can be 8 bytes or less for low-speed devices; 64 bytes or less for full-speed devices; and 1,024 bytes or less for high-speed devices."
Go to the top of the page
 
+Quote Post
NaughtyFreak
сообщение Feb 5 2013, 11:37
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593



Понял, буду изучать!
Скачал refernce manual на LPC1700, сразу волна ностальгии по АВР нахлынула. После беглого взгляда по периферии USB device ужас от STM32 понемногу начал проходить.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 19:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01567 секунд с 7
ELECTRONIX ©2004-2016