gpt4 book ai didi

usb - 为什么 USB CDC 设备需要 Windows 中的主机驱动程序?

转载 作者:行者123 更新时间:2023-12-05 03:54:18 29 4
gpt4 key购买 nike

如果 CDC 设备被检测为虚拟 COM 端口,开发完整的 UMDF Windows 驱动程序还有什么额外优势?

我有一些使用微 Controller 的嵌入式示例的经验,既可以与 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 也不异常(exception))的一个问题是,如果您断开 USB 设备,即使应用程序打开了 COM 端口,驱动程序也会被卸载,并且应用程序必须关闭并重新打开端口以在重新连接时恢复。我以前使用过一个自定义驱动程序(由第三方提供),如果应用程序打开了端口,它不会卸载,因此当重新连接 USB 电缆时,数据连接将继续正常,就像它是一根 RS-232 电缆。但是,在最新版本的 Windows 10 中,我再次注意到 usbser.sys 似乎在任何情况下都表现出这种行为。

请注意,当您提供自己的驱动程序文件,甚至只是一个自定义 inf 文件时,您将需要通过 WHQL 测试,以便您的设备能够在 Windows 10 上运行,或者在更早的版本上加载时没有警告版本。为此,您需要一个 USB.org 分配的 VID、一个扩展验证代码签名证书,以及执行测试的工具和设施,或者支付测试机构的费用来执行测试。这一切都变得有些昂贵,并且对于小批量、低值(value)或非商业产品来说可能会让人望而却步。

微软曾一度对 WHQL 处理提交收费过高,但现在不再收费了。然而,这并不是什么组合,因为与此同时,他们改为需要 EV 证书,并停止了过去的低成本证书交易。

WHQL 资格的优势在于您的驱动程序将由 Windows Update 提供。

如果您使用的是 USB 串行桥芯片而不是您自己的 USB 堆栈和 USB Controller ,则有一个成本更低的解决方案。这些芯片可以使用您自己的 VID/PID 和描述符进行定制,供应商现有的 WHQL 可以与您的设备相关联,这样您就可以免费获得自己驱动程序的所有优势。大多数供应商甚至会允许您使用他们的 VID,并会为您分配一个唯一的 PID,这样您就可以避免 USB.org 费用。我已经在 Prolific 和 FTDI 设备上使用了这条路线;它是迄今为止最具成本效益的解决方案。

关于usb - 为什么 USB CDC 设备需要 Windows 中的主机驱动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61132355/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com