如果将CDC设备检测为虚拟COM端口,则开发完整的UMDF Windows驱动程序还有什么好处?
我有一些使用微控制器的嵌入式示例的经验,这些示例都可以与诸如teraterm之类的终端进行通信,或者使用允许cdc或hid功能的专用USB外设。
这些驱动程序是您在使用任何USB设备之前下载并安装的驱动程序吗?尚不清楚通过主机驱动程序可以使用哪些功能。
通常在Windows上,USB串行设备的“驱动程序”不过是一个将设备VID / PID映射到Microsoft usbser.sys CDC / ACM驱动程序的inf文件。
Windows 10的最新版本似乎已不再坚持要求每个CDC / ACM都具有VID / PID特定的inf文件,并将为存在CDC / ACM设备的任何设备加载标准驱动程序。
拥有特定于VID / PID的inf文件的优点是,您的设备可以具有供应商特定的“友好名称”,该名称可以在应用程序中用于更轻松地标识您的设备,而不仅仅是作为通用的“ USB串行设备”出现。
直到最近,Microsoft的usbser.sys驱动程序(和Linux和Mac OS都没有问题)的一个问题是,如果断开USB设备的连接,即使应用程序打开了COM端口,驱动程序也会被卸载,并且该应用程序必须关闭并重新打开。重新连接时要恢复的端口。我以前曾使用过一个自定义驱动程序(由第三方提供),如果应用程序打开了端口,该驱动程序不会卸载,因此,当重新连接USB电缆时,数据连接将像平常一样继续正常进行。 RS-232电缆。但是,再次在Windows 10的最新版本中,我注意到usbser.sys在任何情况下都表现出这种现象。
请注意,当您确实提供自己的驱动程序文件,甚至只是提供自定义的inf文件时,都将需要进行WHQL测试,才能在Windows 10上允许您的设备运行,或者在没有警告的情况下加载较早版本的设备。为此,您将需要一个USB.org分配的VID,一个扩展验证代码签名证书,以及执行测试的工具和设施,或付钱给测试机构进行测试。所有这些都变得有些昂贵,并且对于小批量,低价值或非商业产品可能是禁止的。
微软一度也为WHQL处理提交收费,但不再这样做。但是,这是很少的组合,因为与此同时,他们更改为要求提供EV证书,并停止了以前用于低成本证书的交易。
WHQL资格证书的优点是Windows Update将提供您的驱动程序。
如果您使用的是USB串行桥接芯片,而不是您自己的USB堆栈和USB控制器,那么有一个成本更低的解决方案。这些芯片可以使用您自己的VID / PID和描述符进行定制,并且供应商现有的WHQL可以与您的设备相关联,因此您可以免费获得自己驱动程序的所有优势。大多数供应商甚至允许您使用他们的VID并为您分配唯一的PID,这样您就可以避免USB.org的费用。我已经在Prolific和FTDI设备上使用了此路由;它是迄今为止最具成本效益的解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句