【发布时间】:2013-09-27 22:43:00
【问题描述】:
我正在开发一个需要与 PC (MAC/WinXP/Win7/Win8) 通信的嵌入式设计。
部分产品,我需要与我的设备来回通信。我希望在 PC 端不为此进行驱动程序开发,并搭载现有的驱动程序之一,例如 Serial 或 HID,只专注于开发 APP。这有意义吗?
另一种方法是开发一个超级简单的轻量级驱动程序,只在用户模式下工作,这样我就不必处理WHQL等了。
我应该走哪条路?
【问题讨论】:
我正在开发一个需要与 PC (MAC/WinXP/Win7/Win8) 通信的嵌入式设计。
部分产品,我需要与我的设备来回通信。我希望在 PC 端不为此进行驱动程序开发,并搭载现有的驱动程序之一,例如 Serial 或 HID,只专注于开发 APP。这有意义吗?
另一种方法是开发一个超级简单的轻量级驱动程序,只在用户模式下工作,这样我就不必处理WHQL等了。
我应该走哪条路?
【问题讨论】:
如果您使用 USB,那么使用 HID 可能是您最好的选择。它支持跨 Windows 并使用收件箱驱动程序(无 WHQL)。您可以使用 hidapi (http://www.signal11.us/oss/hidapi/) 在任何操作系统上与它进行交互。
下一个最佳选择是 libusb(和 libusb-win32 或 WinUSB)。这里的问题是,如果您自定义这些驱动程序,则需要重新认证它们。他们确实通过了所有 WHQL 测试,但需要时间、资源和成本。
串行也是一种可能性,您可以直接通过 RS232 进行通信,或者您可以放置一个 USB 到 UART 桥接器并通过 USB 上的串行进行通信。但由于如今 USB 是一种使用更广泛的技术,因此最好坚持使用 HID 或通用批量设备。
【讨论】: