我需要写一个驱动程序吗?

时间:2014-03-27 01:01:30

标签: usb driver hardware webcam sensor

是否可以使用包含视频和音频的多个传感器的自定义设备作为网络摄像头(使用标准Windows视频和音频驱动程序)显示所有意图和目的,同时允许通过COM或其他方法访问其他简单传感器?

或者我是否必须构建新的USB驱动程序才能访问所有这些信息?我想避免这个选项,因为设备只是一个原型,他们希望建立一个演示应用程序,以尽快获得资金。最后,我在哪里可以了解有关该领域的更多信息?我见过其他答案中提到的 USB Complete 这本书(遗憾的是时间不多)。

背景:

我被赋予了为新设备创建应用程序的任务。该设备由一组电气工程师构建,并提供通过COM(串行)进行通信的演示应用程序。问题是设备的视频和音频流无法通过串行足够快地传输(需要20fps),但其他输入(按钮和其他两个流传感器)正在工作。

工程师希望我为他们提供一个'协议',以便为下一个版本构建设备。我是一名软件工程师,没有太多的硬件经验,也不熟悉USB驱动程序的低级细节。

2 个答案:

答案 0 :(得分:1)

我建议通过USB与多个接口连接所有流来实现此目的。您需要确保选择具有足够端点的设备来支持所有这些接口,并为处理音频/视频和控制流提供处理能力。

您可以为音频流提供USB音频类接口,为视频流提供USB视频类接口,然后您可以为接口定义供应商特定的批量或人机接口设备(HID)类设备你的传感器。如果你这样做,那么你应该获得所有上述接口的内置驱动程序(Windows,OSX和Linux支持)。

您需要在主机上开发某种软件或协议以与传感器连接,通过libusb / WinUSB进行批量处理或通过hidapi进行HID。

我想说这里最难的部分是选择一个设备,获取所有描述符并纠正你的实现,并遵守所有接口的类规范。

绝对读取USB Complete。它是USB开发的一个很好的入门,它涵盖了基础知识和HID。一旦你了解了基础知识,就可以阅读USB VideoUSB Audio类的规范 - 一旦你理解了接口,端点和通用USB协议,它就会更有意义。

答案 1 :(得分:1)

answer可能对您有用。在那篇文章中,我讨论了在现代HID描述符的情况下驱动程序如何不再相关。我还详细介绍了您应该使用的公共库的状态,以便于开发。您可能想要选择libusbx。它有很好的记录。如果你想看一个它的用法的例子,我链接到的答案在帖子的最底部有一个例子。祝你好运!