【问题标题】:How to implement a USB device driver for Windows?如何为 Windows 实现 USB 设备驱动程序?
【发布时间】:2009-10-13 21:06:15
【问题描述】:

我应该如何为 Windows 实现 USB 设备驱动程序?我应该如何考虑不同版本的 Windows,例如: - Windows XP - 视窗 - 视窗 7

是否有可以作为起点的开源解决方案?我是 Windows 驱动程序开发的新手。

我们有一个带有 USB 设备端口的嵌入式设备,我们希望在不牺牲数据吞吐量的情况下,尽可能降低从应用程序级别到设备的通信延迟。实际传输的数据是 ADC/DAC 数据。基本上,我们需要尽快将大量数据传输到 Windows 机器上。

【问题讨论】:

    标签: c windows embedded driver


    【解决方案1】:

    我们需要有关该设备的更多信息,以便为您指明正确的方向,但您可以通过以下几个步骤开始:

    • 注册 Microsoft Connect,以便下载 Windows 驱动程序工具包
    • 注册osr-online,您会发现精彩文章、大量信息和专门针对 Windows 驱动程序的新闻组 -- 这个地方是一座金矿
    • 购买Developing Drivers with WDF,它将帮助您了解 Windows 上的驱动程序开发,并为您阅读 OSR 和 Microsoft 的文章打下良好的基础
    • 希望您可以使用 UMDF(用户模式驱动程序),因为您可以使用 C++ 并只编写 COM 代码。如果您正在使用需要内核空间的 USB 进行任何操作....明年您需要大量阅读和学习!

    为了回答您关于版本的问题,驱动程序工具包提供了一些工具,可帮助您管理创建不同的驱动程序。如果你编写了一个好的驱动程序,它应该可以在所有三个操作系统上运行而没有问题,差异只会在配置区域(而不是二进制文件)

    基本上,这取决于您的设备有多复杂。你想写什么类型的驱动程序?文件系统? MP3播放器?相机?调制解调器?

    如果您最终不得不编写内核模式驱动程序,请告诉我,我可以为您指出一些不错的文章,还有哪些不是。

    我还应该补充一点,您可以花大约 5,000 美元购买WinDriver 的许可证,该工具可以消除驱动程序开发中的所有困难。您可以使用 C++ 或 C# 用户模式代码与为您的设备自定义生成的驱动程序进行通信。如果您的截止日期很紧,这就是您要走的路。

    【讨论】:

    • 我们有带有 USB 设备端口的嵌入式设备,我们希望在不牺牲数据吞吐量的情况下从应用程序级别到设备进行低延迟通信。
    • 延迟很大程度上取决于硬件的 USB 控制器。如果我是你,我会先组合一个测试 UMDF(用户模式)驱动程序,看看它是否满足你的延迟需求。忘记漂亮的接口什么的,只需实现 I/O 功能和一个用于推送和拉取数据的 Win32 测试应用程序。使用我上面提到的这本书,您应该能够在大约一周内准备好一个基本的驱动程序。 UMDF 的优点是它很容易实现和调试,因为您不需要内核调试器。如果 UMDF 不合适,您可以随时使用 KMDF。
    【解决方案2】:

    您可以查看 libusb *here* 的 windows 变体。 libusb 官方网站和网络上有许多编程语言的包装器。

    【讨论】:

    • 请注意,libusb-win32 早已过时,取而代之的是跨平台 libusb
    【解决方案3】:

    【讨论】:

    • 和新手一样,我不是说新手的水平;-)
    • 对不起,我太从字面上理解了新手。下面的答案对于您级别的人来说非常详细。
    【解决方案4】:

    如果您对设备端有某种形式的控制,请让它实现一个 Windows 已经为其提供驱动程序的接口。例如。 USB HID 类(字面意思是 Human Input Device,但 Human 和 Input 都不是强制性的)已经有 Windows 驱动程序,并且在上面有一个合理的 Win32 API。但是,您不会获得接近 480 Mbps 的数据速率。

    【讨论】:

    • 同意,在设备端实现 HID 是避免在 Windows 端(或其他操作系统)开发驱动程序的最佳方法。
    猜你喜欢
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 2015-09-18
    相关资源
    最近更新 更多