Почему для устройства USB CD C требуется драйвер хоста в windows? - PullRequest
1 голос
/ 10 апреля 2020

Каково дополнительное преимущество разработки полного драйвера UMDF windows, если устройство CD C обнаружено как виртуальный COM-порт?.

У меня есть некоторый опыт работы со встроенными примерами с использованием микроконтроллера, оба обмениваются данными с терминалом, таким как teraterm, или с помощью специального периферийного устройства USB, которое позволяет использовать функции cd c или hid.

Эти драйверы загружаются и устанавливаются перед использованием любого устройства USB? Пока не ясно, какие функции доступны через драйвер хоста.

1 Ответ

2 голосов
/ 10 апреля 2020

Часто в Windows «драйвер» для последовательного USB-устройства - это не более чем файл inf, который сопоставляет VID / PID устройства с драйвером CDC / ACM Microsoft usbser.sys.

Последние выпуски из Windows 10, похоже, перестали настаивать на том, что каждый CDC / ACM имеет файл VID / PID, специфицирующий c inf, и загрузит стандартный драйвер для любого устройства, представленного как устройство CDC / ACM.

Преимущество наличия файла c inf, определяемого VID / PID, заключается в том, что ваше устройство может иметь c «понятное имя», определяемое поставщиком, которое можно использовать в приложениях для более удобной идентификации вашего устройства, а не только в виде generi c «Последовательное устройство USB».

Одна проблема с драйвером Microsoft usbser.sys (и Linux и ОС Ma c не отличались) до недавнего времени заключалась в том, что при отключении устройства USB драйвер выгружается, даже если приложение имеет открытый COM-порт, и приложение должно закрыться и повторно открыть порт, чтобы восстановить его при повторном подключении. Ранее я использовал пользовательский драйвер (предоставленный третьей стороной), который не выгружается, если у приложения открыт порт, поэтому при повторном подключении USB-кабеля подключение к данным продолжается как обычно, как если бы оно было кабель RS-232. Однако, опять же, в последних версиях Windows 10 я заметил, что usbser.sys, похоже, демонстрирует такое поведение в любом случае.

Обратите внимание, что когда вы предоставляете свой собственный файл драйвера или даже просто пользовательскую информацию файл, вам потребуется go через тестирование WHQL, чтобы ваше устройство было разрешено на Windows 10, или загрузить без предупреждений в более ранних версиях. Для этого вам потребуется VID, назначенный USB.org, сертификат для подписи кода расширенной проверки, а также инструменты и средства для проведения тестирования или оплата тестового центра для проведения тестирования. Все это становится несколько дорогостоящим и может быть непозволительным для небольшого объема, недорогих или некоммерческих продуктов.

Одно время Microsoft слишком взимала плату за обработку заявок на WHQL, но больше не делает этого. Это, однако, небольшая комбинация, поскольку в то же время они изменили требование на наличие сертификата EV и остановили сделку, которую обычно используют для получения недорогого сертификата.

Преимущество квалификации WHQL заключается в том, что ваш драйвер будет предоставлен Windows Обновление.

Если вы используете микросхему последовательного моста USB, а не свой собственный стек USB и контроллер USB, то решение будет более дешевым. Эти чипы могут быть настроены с вашими собственными VID / PID и дескрипторами, а существующий WHQL производителя может быть связан с вашим устройством, так что вы получите все преимущества своего собственного драйвера без затрат. Большинство поставщиков даже разрешат вам использовать их VID и назначат вам уникальный PID, чтобы вы могли избежать платы USB.org. Я использовал этот маршрут как с устройствами Prolifi c, так и с устройствами FTDI; на сегодняшний день это наиболее экономически эффективное решение.

...