11

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

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

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

4

4 回答 4

12

我们需要有关该设备的更多信息来为您指明正确的方向,但这里有几个步骤可以帮助您入门:

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

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

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

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

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

于 2009-10-13T21:19:24.497 回答
2

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

于 2012-11-08T13:48:10.977 回答
1

从这里开始:Windows 驱动程序工具包介绍

于 2009-10-13T21:09:58.640 回答
1

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

于 2009-10-14T11:27:28.390 回答