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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> USB device class посоветуйте
gladov
сообщение Jan 12 2011, 08:39
Сообщение #1


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

Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687



Добрый день!

Хочу сделать USB-device на 7-ом АРМе. Задача классическая: с хоста (Win >= XP) отображаем состояние железяки и гоняем туда/обратно пачки данных (до 500КБит/с). Но я НЕ ХОЧУ делать виртуальный СОМ-порт! Надо сделать так, чтобы:
1) При подключении устройства у юзера в трее появилось сообщение о проприетарном устр-ве, а не "USB<->Serial" или как-то еще.
2) Юзер не должен в нашем управляющем софте выбирать из списка устройств "СОМ51" или "Съемный диск Q:" чтобы подключиться к устр-ву. Софт сам должен определить, что устройсво подключено и коннектиться к нему.
Короче, надо сделать вполне презентабельную "собственную" железку.
Отсюда вопрос: какой выбрать device class чтобы разработка дров под винду не вылилась в долгие месяцы/годы? И что использовать под винды в качестве стартового SDK/DDK?
Go to the top of the page
 
+Quote Post
Ozelot
сообщение Jan 12 2011, 09:08
Сообщение #2


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

Группа: Свой
Сообщений: 115
Регистрация: 6-06-05
Из: Ukraine
Пользователь №: 5 764



Я у себя в устройстве имитировал FTDI-устройство. Программа в компе ищет его по строковым дескрипторам и ей не надо указывать номер компорта. Драйвера FTDI D2XX
Go to the top of the page
 
+Quote Post
Xenia
сообщение Jan 12 2011, 10:02
Сообщение #3


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(gladov @ Jan 12 2011, 14:39) *
Но я НЕ ХОЧУ делать виртуальный СОМ-порт!

Виртуальный СОМ-порт не так плох. Перечисляемые вами недостатки - это не его недостатки, а программного обеспечения.

Цитата(gladov @ Jan 12 2011, 14:39) *
1) При подключении устройства у юзера в трее появилось сообщение о проприетарном устр-ве, а не "USB<->Serial" или как-то еще.

Это как назовете, так оно и представится. Думаете, это Windows сама придумывает названия типа "USB<->Serial"? Нет! Такое имя ей сообщает внешнее USB-устройство. У него есть строковые дескрипторы, и оно может там заказать для себя любое имя. Однако в скобочках номер порта Windows все-таки допишет. Будет выглядеть типа "Мой прибамбас (COM7)". Но это не страшно.

Цитата(gladov @ Jan 12 2011, 14:39) *
2) Юзер не должен в нашем управляющем софте выбирать из списка устройств "СОМ51" или "Съемный диск Q:" чтобы подключиться к устр-ву. Софт сам должен определить, что устройсво подключено и коннектиться к нему.

Ну как пусть софт и определяет! В чем тут вина виртуального СОМ-порта, если вы софт писать не умеете? Обратитесь к программисту. Найти номер COM-порта, у которого имя "Мой прибамбас" не так уж и сложно.

Таким образом, оба перечисленных вами недостака являются не недостатками виртуального СОМ-порта, а недостатками софта: 1-ый - недостатком прошивки USB-устройства, а 2-ой - недостатком приложения, с ним работающим.
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Jan 12 2011, 15:51
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(gladov @ Jan 12 2011, 14:39) *
Добрый день!

Хочу сделать USB-device на 7-ом АРМе. Задача классическая: с хоста (Win >= XP) отображаем состояние железяки и гоняем туда/обратно пачки данных (до 500КБит/с). Но я НЕ ХОЧУ делать виртуальный СОМ-порт! Надо сделать так, чтобы:
1) При подключении устройства у юзера в трее появилось сообщение о проприетарном устр-ве, а не "USB<->Serial" или как-то еще.
2) Юзер не должен в нашем управляющем софте выбирать из списка устройств "СОМ51" или "Съемный диск Q:" чтобы подключиться к устр-ву. Софт сам должен определить, что устройсво подключено и коннектиться к нему.
Короче, надо сделать вполне презентабельную "собственную" железку.
Отсюда вопрос: какой выбрать device class чтобы разработка дров под винду не вылилась в долгие месяцы/годы? И что использовать под винды в качестве стартового SDK/DDK?


HID не подойдет??
Go to the top of the page
 
+Quote Post
gladov
сообщение Jan 13 2011, 02:35
Сообщение #5


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

Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687



Цитата(DmitryM @ Jan 12 2011, 21:51) *
HID не подойдет??


Может и подойдет, его и рассматриваю. Но вообще-то мне кажется что при моих скоростях мне наиболее подходит Bulk EP, а в HIDe его по-моему нет. Поправьте, если не прав.

Цитата


А неужели так сложно сделать свой, "нативный" драйвер? Дело в том, что лично для меня если в диспетчере устройств появляется виртуальный ком-порт, это попахивает радилюбительской поделухой. Да, для себя самое оно. Но я работаю в серьезной компании, которая хочет начать производство своего USB утройства. Для меня вариант эмуляции кома выглядит несолидно.
Хочу чтобы было, например, как известный многим отладчик от Segger, он же MT-Link: воткнул, система опознала, добавила в USB устройства и работает.
Почему-то в рунете практически не нахожу упоминаний о разработке УСБ-девайса чтобы он был не ХИД и не СОМ. Люди, кто пробовал, поделитесь мнением: это настолько сложно?
Go to the top of the page
 
+Quote Post
vmp
сообщение Jan 13 2011, 03:12
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Цитата(gladov @ Jan 13 2011, 08:35) *
Но я работаю в серьезной компании, которая хочет начать производство своего USB утройства.

Для начала выбейте от руководства серьезной компании $4000 на членство в USB Implementers Forum или хотя бы $2000 на покупку Vendor ID.
Рекомендую еще заказать книжки USB System Architecture и USB Complete.
Go to the top of the page
 
+Quote Post
gladov
сообщение Jan 13 2011, 03:36
Сообщение #7


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

Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687



Цитата(vmp @ Jan 13 2011, 09:12) *
Для начала выбейте от руководства серьезной компании $4000 на членство в USB Implementers Forum или хотя бы $2000 на покупку Vendor ID.
Рекомендую еще заказать книжки USB System Architecture и USB Complete.


Уже выбил и уже читаю. А по теме можно ответить?
Go to the top of the page
 
+Quote Post
vmp
сообщение Jan 13 2011, 03:45
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Цитата(gladov @ Jan 13 2011, 09:36) *
Уже выбил и уже читаю. А по теме можно ответить?

О! Поздравляю! Значит действительно серьезная компания.
По теме - на мой взгляд стандартный класс предпочтительнее. В этом случае не нужно заниматься написанием и сертификацией в Микрософт собственного драйвера, а можно воспользоваться готовым, встроенным в Windows: Drivers for the Supported USB Device Classes.
Исходя из вышеизложенных требований, я бы тоже посоветовал HID. Единственное сомнение - даст ли он требуемую скорость передачи.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jan 13 2011, 07:46
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(vmp @ Jan 13 2011, 09:45) *
Исходя из вышеизложенных требований, я бы тоже посоветовал HID. Единственное сомнение - даст ли он требуемую скорость передачи.

HID всем хорош. К тому выбивание не нужно, т.к. он не требует членства в USB или покупки VID, т.к. будет работать при VID=PID=0. И 512 кбит/сек туда и сюда обеспечивает. HID это 1000 пакетов по 64 байта в секунду с каждую сторону. Если не хватает, то можно сделать составное устройство в котором будут 2 или больше HID-а. В общем столько, сколько EP у железа имеется.
Go to the top of the page
 
+Quote Post
редактор
сообщение Jan 13 2011, 12:48
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



Делал HID устройство, которое работало через BUKL EP.
Из винды работал через через libusb-win32.
Но есть и буржуйские девайсы, которые работают через BULK EP, правда со своим драйвером (подглядел конфигурацию).
Так что больших проблем, думаю, нет.



--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jan 13 2011, 12:58
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(редактор @ Jan 13 2011, 18:48) *
Делал HID устройство, которое работало через BUKL EP.

Как это??? Можно дескрипторы посмотреть?
Go to the top of the page
 
+Quote Post
segment
сообщение Jan 13 2011, 15:44
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 352
Регистрация: 10-08-06
Из: Санкт-Петербург
Пользователь №: 19 471



С HID непонятки.. Ну к примеру в контроллере накопилось много данных в буфере, то толку что скорость HID 64кбит/с (и откуда взяли 512кбит/c?) - всеравно следующая передача 64 байт будет через 1мс, и буфер переполнится. Или я не прав?
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jan 13 2011, 16:25
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Сега @ Jan 13 2011, 21:44) *
С HID непонятки.. Ну к примеру в контроллере накопилось много данных в буфере, то толку что скорость HID 64кбит/с (и откуда взяли 512кбит/c?) - всеравно следующая передача 64 байт будет через 1мс, и буфер переполнится. Или я не прав?

1000(пакетов в секунду)*64(байта в пакете)*8(бит в байте)=512000(бит за секунду)=512кбит/с
А без буфера достаточной величины в любом случае делать нечего...
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Jan 13 2011, 16:25
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(gladov @ Jan 12 2011, 14:39) *
...
Хочу сделать USB-device на 7-ом АРМе...Но я НЕ ХОЧУ делать виртуальный СОМ-порт!...

Цитата(редактор @ Jan 13 2011, 18:48) *
...Из винды работал через через libusb-win32...

То есть, изучаете использование libusb-win32 или libusbdotnet (попутно WinUSB) и получаете все, что Вы хотите. Если будете использовать libusbdotnet/WinUSB, то не будет проблем с подписыванием драйвера под Win7 x64.
Go to the top of the page
 
+Quote Post
gladov
сообщение Jan 13 2011, 18:41
Сообщение #15


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

Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687



Цитата(galjoen @ Jan 13 2011, 18:58) *
Цитата
Делал HID устройство, которое работало через BUKL EP.

Как это??? Можно дескрипторы посмотреть?


Присоединюсь к просьбе. Если и правда получится к HID прикрутить bulk то это для меня будет самым правильным решением.

Цитата
То есть, изучаете использование libusb-win32 или libusbdotnet (попутно WinUSB) и получаете все, что Вы хотите. Если будете использовать libusbdotnet/WinUSB, то не будет проблем с подписыванием драйвера под Win7 x64.


Всем спасибо! В голове начало проясняться sm.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th June 2025 - 15:11
Рейтинг@Mail.ru


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