Перейти к содержанию
    

Производство устройств с USB

Гость Br.Misha

Привет!

 

Хочу пустить один девайсик в производство(пока что мелкосерийное). Проблема в том, что у него есть интерфейс USB(софтовый, от obdev), VID and PID в нем те, которые даются бесплатно разработчиком драйвера. Но вот проблема собственно с лицензированием USB.

Для мелкой серии лицензию покупать не хочеться (а она стоит 2000 баксов!!!). А если мои PID/VID совпадут с каким то устройством с лицензированым USB то мне придеться заплатить штраф(по моему 5000 зеленых).

 

Вобщем я хз что делать((((

 

Но вот смотрю что если стоимость одного VID 2000$ а он содержит в себе 65535 PIDов то стоимость одного PIDа = 2000/65356 = 0,0306$. Меня интересует вопрос: мож кто купил один VID и в розницу раздает PIDы? Если он будет стоить даже не 0,0306$ а 10 то я с удовольствием его куплю))))))).

 

Но если таких "торговцев" нету, подскажите плиз, каким способом можно продавать устройство используя пару VID_16c0 и PID_1503 которые любезно прредоставляет obdev?

Изменено пользователем Br.Misha
Тема, как не имеющая отношение к AVR перенесена. Автору очередное :( напоминание о том, что на форуме есть не только разделы AVR. Так-же на форуме многие темы уже поднимались - настоятельная рекомендация для начала пользоваться поиском.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Совсем недавно торговля PID процветала в Европе, но потом консорциум USB закрыл эту лавочку, прямо запретив перепродажу. Есть варианты получения PID от производителей МК с USB. Например, Microchip по запросу высылает PID и разрешает использовать свой VID для устройств на их МК с USB в количестве до 10 тысяч штук. И т.п.

А вообще тут на форуме некоторые люди утверждают, что проблема использования VID/PID весьма надумана :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость Br.Misha

на счет микрочипа знаю, но у меня девайс на AVR.

ну а как на счет покупки одной пары VID/PID?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость Br.Misha

Чет никто не отвечает...

У меня появилась такая идея: А что если взять коды у микрочипа и сказать им что я буду выпускать девайс на каком нить ПИКе а название на моем контроллере (АТмега) как нить затереть? После этого, если они спросят почему МК не похож на ПИК я им скажу что это ПИК просто название затерел чтобы никто не догадался какой это МК чтобы с него потом не считали прошивку, думаю розпиновку они проверять не будут. Такое прокатит?

ЗЫ: забыл сказать, устройство будет распространяться только в украине.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что если взять коды у микрочипа и сказать им что я буду выпускать девайс на каком нить ПИКе а название на моем контроллере (АТмега) как нить затереть? После этого, если они спросят почему МК не похож на ПИК я им скажу что это ПИК просто название затерел чтобы никто не догадался какой это МК чтобы с него потом не считали прошивку, думаю розпиновку они проверять не будут. Такое прокатит?

Это как из анекдота про Штирлица: -А может, я в ботинках ушел.

Спрашивать что-то вообще не станут, просто проверят сами, если вдруг понадобится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня появилась такая идея: А что если взять коды у микрочипа и сказать им что я буду выпускать девайс на каком нить ПИКе а название на моем контроллере (АТмега) как нить затереть? После этого, если они спросят почему МК не похож на ПИК я им скажу что это ПИК просто название затерел чтобы никто не догадался какой это МК чтобы с него потом не считали прошивку, думаю розпиновку они проверять не будут. Такое прокатит?

Имеете полное право, если у вас есть легальные VID/PID. Тем более что они выдаются на устройство, а вовсе не на микроконтроллер.

 

Есть еще одна идея: использовать VID/PID из демо-проектов, сорцы которых выложены на сайтах компаний-производителей МК. Очевидно, что эта пара VID/PID не может быть кому-то продана :), а потому ваше изделие окажется заведомо уникальным по отношению к любым легально производимым устройствам.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Имеете полное право, если у вас есть легальные VID/PID. Тем более что они выдаются на устройство, а вовсе не на микроконтроллер.

В том-то и дело, что их не будет: по условиям лицензии они выдаются на устройство, содержащее контроллер вполне определенного производителя.

 

Br.Misha: Кстати, Атмел тоже позволяет использовать свои VID/PID.

Очень мило выглядит условие о не внесении изменений в атмеловский код: ошибки, выходит, тоже исправить нельзя :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark
Для мелкой серии лицензию покупать не хочеться...

Эта одна из причин, ставящая под сомнение целесообразность использования МК с USB на борту для мелкосерийных изделий. Есть и другие причины... Использование, например, пары FT232 и МК (без USB) часто оказывается предпочтительнее, так как проблемы с VID/PID, с драйверами под различные ОС и программированием USB-обмена в устройстве, в этом случае, отпадают. Стоимость такой пары "интерфейсная м/c для USB + МК без USB", в конечном итоге, не сильно отличается от стоимости МК с USB на борту, а проблем гораздо меньше. Более того, для автономных устройств, использующих лишь эпизодическое подключение к компьютеру, появляется возможность вообще вынести интерфейсную часть за пределы устройства - например, использовать переходники USB-TTL для подключения к компьютеру. И пользователю, который закупает 10-20 устройств, часто достоточно 1-2 переходников USB-TTL.

P.S. 10 устройств без USB + 1 переходник дешевле, чем 10 устройств с USB... ;)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость Br.Misha

@Ark, ftdi - это будет не экономично, сейчас стоимость всех компонентов устройства - 140 грн, ft232 стоит 40 грн. Да и мучаться со всякими COM портами я не хочу и давно пересел на юсб, о чем никапельки не жалею. Программа будет работать тока на видовсе, драйвер и программу под которую я уже написал.

Xenia, Вы меня обрадовали)))) Я вобщем то отлаживал девайс как раз на тех VID/PID которые предоставляет obdev. Вот что написано у них в USBID-License.txt:

-------------------------

OBJECTIVE DEVELOPMENT Software GmbH этим документом предоставляет Вам

неэксклюзивное право использовать три пары ID вендора (VID) / ID продукта

(PID), выданные USB.org. Эти пары VID/PID можно использовать только для

продуктов, основанных на USB firmware драйвере, разработанном Objective

Development для микроконтроллеров Atmel AVR:

 

* VID = 5824 (=0x16c0) / PID = 1500 (=0x5dc) для устройств, не принадлежащих

к какому-либо классу USB (класс устройств вендора USB, где

class = 0xff). Устройства, использующие эту пару, будут относиться к

устройствам типа "VENDOR CLASS".

 

* VID = 5824 (=0x16c0) / PID = 1503 (=0x5df) для устройств HID-класса

(исключая миши и клавиатуры). Устройства, использующие эту пару, будут

относиться к устройствам типа "HID CLASS".

 

* VID = 5824 (=0x16c0) / PID = 1505 (=0x5e1) для класса модемов CDC.

Устройства, использующие эту пару, будут относиться к устройствам типа

"CDC-ACM CLASS".

 

* VID = 5824 (=0x16c0) / PID = 1508 (=0x5e4) для MIDI класса.

Устройства, использующие эту пару, будут относиться к устройствам типа

"MIDI CLASS".

 

Поскольку предоставляемые права являются неэксклюзивными, те же самые

пары VID/PID могут использоваться многими компаниями и частными лицами

для различных продуктов. Чтобы избежать конфликтов, ваше USB-устройство

и драйвер хоста ДОЛЖНЫ придерживаться правил, изложенных далее.

 

-----тут много неинтерестного-----

 

(1) Устройство USB ДОЛЖНО предоставлять текстовое орисание для

идентификации производителя и продукта. Идентификация производителя

ДОЛЖНА БЫТЬ доступна как минимум на USB языке 0x0409 (English/US).

 

-------------------------

 

тоесть получаеться, что я могу свободно использовать VID = 5824 (=0x16c0) / PID = 1503 (=0x5df), а конфликта с другими у меня не будет так как моя программа при поиске девайса проверяет его текстовое описание, а оно содержит 15 символов в названии устройства и 36 символов в названии вендора, если что то и будет глючить, так это только программа для другого устройства с такими же VID/PID которая выполняет поиск только по VID/PID, но я не думаю что кому то лень сделать поиск по текстовом описанию.

Получаеться, я уже могу продавать девайсину. Если я что т не правильно написал то поправьте меня (ато все как то просто получаеться, в чем я чуть сомневаюсь).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эта одна из причин, ставящая под сомнение целесообразность использования МК с USB на борту для мелкосерийных изделий. Есть и другие причины... Использование, например, пары FT232 и МК (без USB) часто оказывается предпочтительнее, так как проблемы с VID/PID, с драйверами под различные ОС и программированием USB-обмена в устройстве, в этом случае, отпадают. Стоимость такой пары "интерфейсная м/c для USB + МК без USB", в конечном итоге, не сильно отличается от стоимости МК с USB на борту, а проблем гораздо меньше.

FT232 - фактически второй МК (пусть и специализированный под USB-порт), и стОит он практически столько же, сколько обычные МК. А идею ставить второй МК только затем, чтобы нахаляву использовать чужой VID/PID, трудно назвать слишком удачной. Если бы дело было только в том, что FTDI выдает бесплатную лицензию, то можно было бы попросту воспользоваться ее VID/PID, ибо во внутрь устройства все равно никто не полезет, чтобы проверять в нем присутствие или отсутствие FT232 компонента.

Пристрастие к FT232 или прочим переходникам USB-TTL с головой выдают тех типов, которые привыкли решать все проблемы с помощью паяльника :). Видимо схемотехнику они освоили, а программирование нет :).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark
ftdi - это будет не экономично, сейчас стоимость всех компонентов устройства - 140 грн, ft232 стоит 40 грн.

А Вы посчитайте. В вашем варианте: 10 устройств по 140 - итого 1400. В моем варианте: 10 устройств, предположим, по 135 (так как без USB) - 1350. Плюс 1 шт FTDI (переходник) - 40. Итого: 1390, уже меньше, чем у вас. Минус необходимость лицензирования, минус небходимость написания собственных драйверов под каждую OC, минус необходимость писать обмен USB в устройстве, минус доп. ресурсы МК для его реализации... Если, для вашего устройства, еще выяснится необходимость гальванической развязки от компьютера - то вашем варианте это обойдется не дешево. В моем - только поставить ADUM1201, причем не в каждое устройство, а только в переходник...

и давно пересел на юсб, о чем никапельки не жалею.

Агитировать я вас не буду. Замечу только, что не всегда то, что кажется удобнее и выгоднее на первый взгляд,

оказывается таковым в конечном (финансовом) итоге.

Пристрастие к FT232 или прочим переходникам USB-TTL с головой выдают тех типов, которые привыкли решать все проблемы с помощью паяльника . Видимо схемотехнику они освоили, а программирование нет.

То Xenia: Помимо схемотехники и программирования, Вам бы еще деньги научиться считать, в процессе разработки. Тогда подобные глупости писать не будете... ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тоесть получаеться, что я могу свободно использовать VID = 5824 (=0x16c0) / PID = 1503 (=0x5df), а конфликта с другими у меня не будет так как моя программа при поиске девайса проверяет его текстовое описание, а оно содержит 15 символов в названии устройства и 36 символов в названии вендора, если что то и будет глючить, так это только программа для другого устройства с такими же VID/PID которая выполняет поиск только по VID/PID, но я не думаю что кому то лень сделать поиск по текстовом описанию.

Получаеться, я уже могу продавать девайсину. Если я что т не правильно написал то поправьте меня (ато все как то просто получаеться, в чем я чуть сомневаюсь).

Девайсину проверяет Windows в момент, когда устройство втыкается в USB-порт компьютера. Осуществляется это исключительно на основе сравнения inf-файла с данными, полученными путем опроса устройства (дескрипторов спецификации). Очень сомнительно, чтобы кроме VID/PID что-то еще проверялось на жесткое соотвествие. В том числе и стринги названия устройства и его производителя.

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

 

Вся эта бодяга с регистрацией VID/PID происходит лишь по той причине, что если эти цифры каждый будет брать с потолка, то может возникнуть ситуация, когда Windows установит для вашего устройства чужой драйвер (это еще пол беды) или установит ваш драйвер для чужого устройства (а это уже беда, т.к. пользователь может обратиться с жалобой к производителю легального устройства, а те в два счета разберутся, кто здесь пират).

Причем никакими ухищрениями со "своей программой" или драйверами эту проблему не решить. Даже если ваша программа распознает, что ее запустили на чужом драйвере, то все равно не сможет запустить повторно процедуру распознавания или потребовать смены драйвера. А уж чужое устройство, с которым вы конфликтуете, заведомо не станет этим заниматься, т.к. его производитель купил легальный VID/PID и не станет заморачиваться тем, чтобы достигнуть совместимости с пиратскими изделиями.

 

Есть у меня еще одна идея. Если вы используете не специальный драйвер, а стандартный USBSER.SYS (поддержка режима CDC), входящий в поставку Windows, то тут мог бы по идее годиться VID/PID любого устройства, которое использует стандартный дравер. При этом конфликт бы не возникал даже в том случае, если бы бы несколько USB-устройств имели одинаковые VID/PID. В это случае они бы "разошлись" на том, что получили разные номера виртуальных COM-портов. Тут безальтернативно - Windows никогда не даст одинаковые номера COM-портов разным устройствам, даже если они полные близнецы. В этом легко убедиться, если воткнуть два одинаковых ваших устройств в один и тот же компьютер. Т.е. фактически тут случай полностью аналогичный втыканию в компьютер разных флешек - всем им устанавливает один и тот же стандартный драйвер, не требуя уникального inf-файла. А буквы removable дисков они получат разные. И очень жаль, что для флешек такой механизм сделали, а для CDC-устройств нет.

Вот только такой VID/PID я до сих пор не нашла...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость Br.Misha
А Вы посчитайте. В вашем варианте: 10 устройств по 140 - итого 1400. В моем варианте: 10 устройств, предположим, по 135 (так как без USB) - 1350. Плюс 1 шт FTDI (переходник) - 40. Итого: 1390, уже меньше, чем у вас. Минус необходимость лицензирования, минус небходимость написания собственных драйверов под каждую OC, минус необходимость писать обмен USB в устройстве, минус доп. ресурсы МК для его реализации...

Я не могу понять, если кто то купит один переходник и 10 устройство, то как он подключит остальные 9?

Я вообще не вижу смысла ставить ftdi. Если к примеру в моем устройстве FT232 со всем его обвесом(хоть его и не много) заменяют 2 стабилитрона и три резистора. Плюс при подлкючении к ПК девайс приределяеться как устройство класса LibUsbDevices, в котором написано нормальное имя устройства, а в случае ft232 пишеться прото название этой микрухи. А написание всех драйверов и организация обмена по юсб заняло у меня не более 7 часов, к тому же, лично мне намного проще написать обмен по USB чем по юарту.

@Ark, в том то и дело, что Ксения правильно деньги пощитала вень 5 пасивных компонентов, стоимость которых не более 50 копеек, намного дешевле чем ft232 cо всей обвъязкой...

 

Xenia, я уже экспеременировал на этим.

Я в в своем устройстве установил VID/PID такой же как у моего принтера но строковые описания другие, тогда и принтер, и мое устройство работали нормально и в диспетчере устройств определялись как 2 разных устройства. Да и если я буду использовать VID/PID которые предоставляет OBJECTIVE DEVELOPMENT то даже если VID/PID совпадут то это будет законно, при условии что будут строковые описания, это нписано в USBID-License.txt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark
Я не могу понять, если кто то купит один переходник и 10 устройство, то как он подключит остальные 9?
Вы их все 10 одновременно собираетесь подключать? Или 20? Тогда может вам уже не USB нужно, а что-то иное?

@Ark, в том то и дело, что Ксения правильно деньги пощитала вень 5 пасивных компонентов, стоимость которых не более 50 копеек, намного дешевле чем ft232 cо всей обвъязкой...

Со своей "колокольни" может и правильно. А вот с точки зрения системного архитектора - большой вопрос...

Впрочем, дело ваше, конечно. Раз решение приняли - не буду Вам мешать. Удачи. :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Xenia, я уже экспеременировал на этим.

Я в в своем устройстве установил VID/PID такой же как у моего принтера но строковые описания другие, тогда и принтер, и мое устройство работали нормально и в диспетчере устройств определялись как 2 разных устройства. Да и если я буду использовать VID/PID которые предоставляет OBJECTIVE DEVELOPMENT то даже если VID/PID совпадут то это будет законно, при условии что будут строковые описания, это нписано в USBID-License.txt

Спасибо за благую весть! :)

 

USB-интерфейс до сих пор еще в полной мере недооценен, как блочный способ передачи. Его все еще продолжают по инерции рассматривать, как модерновую замену RS232, хотя между ними различий больше, чем сходства. Любые варианты реализации обмена, в которых прерывание вызывается по приему/передаче каждого байта становятся не просто неэффективными, а уже расточительными при высоких скоростях передачи.

Будущее за аппаратными средствами, которые "сами" пересылают содержимое буфера по флагу готовности или с помощью DMA. Прерывания на каждом байте, типа UARTа или SPI, - прошлый день, а выдача параллельного TTL сигнала шириной в целый порт МК и его стробирование - позапрошлый!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...