ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 ноября
337392 Топик полностью
Ксения (27.06.2012 17:04 - 17:11, просмотров: 141) ответил LeonidPr на Обязательно ли платить за использование USB?
Необязательно В рассуждениях автора приведенной вами статьи есть один существенный прокол - утверждение о том, что производитель должен присвоить каждому своему новому продукту уникальную комбинацию VID/PID. И при этом сам же он признает, что "Комбинация VID/PID служит для того, чтобы операционная система подгрузила нужный драйвер". Автор статьи туп, как пробка :), поскольку не понимает простой вещи - того, что число драйверов вовсе необязательно должно быть равно числу устройств, а может быть на много порядков меньше. Причина этого в том, что роль драйвера, как правило, бывает довольно примитивной - пересылать байты туда-обратно, либо эмулируя виртуальный COM-порт, либо используя какую-то из широко распространенных библиотек функций. А раз так, то зачем их клепать слишком много? Например, для использования USB-канала связи в виде виртуального COM-порта, большинство типовых устройств используют уже имеющийся в составе Windows драйвер - usbser.sys (а Vista и выше - в придачу еще и MsPorts.dll). Аналогичные драйверы с использованием функциональных библиотек можно найти у производителей микросхем-конверторов - например, у FTDI. Понятно, что ВСЕ устройства, использующие один и тот же драйвер, могут иметь ОДИНАКОВУЮ комбинацию VID/PID. А отсюда следует простой вывод - ЮСБоргу платят за не "новое устройство", как ошибочно утверждает автор статьи, а за НОВЫЙ ДРАЙВЕР! Т.к. только у драйверов может возникнуть конфликт друг с другом, если они имеют одинаковые VID/PID. А разнообразие внешних USB-устройств вообще ничем не ограничено! Их может быть хоть бесконечно, если их устраивает обслуживание одним из официально зарегистрированных драйверов. Отсюда и вытекает простое решение проблемы - не пишите драйверов собственного сочинения, которые помимо транспортировки байт решают какие-то иные проблемы. И тогда вы всегда можете выбрать для своего устройства (не важно, новое оно у вас или старое) подходящий драйвер среди официально зарегистрированных. И пусть это будет драйвер чужой фирмы, но конфликтов с енумерацией у вас не возникнет никогда, поскольку они не возникнут даже тогда, когда в системе заведомо присутствует родное изделие официального владельца VID/PID. В этом случае оба устройствам будут обслуживаться драйвером одного и того же типа, что никак не помешает работе ни первого, ни второго. Несмотря на то, что выбор среди готовых драйверов очень широк (например, дофига USB-модемов), по чисто юридическим соображениям лучше всего выбрать драйвер той же компании, которой принадлежит выходная USB-микросхема на вашем устройстве. Надеюсь, что не рассыпуха транзисторов поддерживает там USB-канал, а какая-то специализированная микросхема - микроконтроллер или USB-конвертор. И вы не первый, кто ее в мире использует. Вот и выбирайте себе драйвер из тех производителей, которые так же, как и вы, с этой микросхемой работают. И тогда, в случае юридических неурядиц, вы всегда сможете сказать, что ваш драйвер действительно зарегистрирован на ту микросхему и ткнуть в нее пальцем. И будете по закону невиновны, т.к. USB-канал со стороны вашего устройства действительно образует эта микросхема, драйвер для которой официально зарегистрировал за собой ее производитель. Виноваты вы окажетесь только в том случае, если напишете свой драйвер под чужую комбинацию VID/PID, который помещает работе оригинального устройства. Вот это было бы кражей чужого VID/PID, а так нет. Впрочем, по юридическим тонкостям я не намерена бодаться ни с вами, ни другими участниками конференции. Если захотите перестраховаться, то платите за свой страх ЮСБоргу тысячи долларов.