3

我已经搜索了这些答案,但没有运气:(我一直在使用来自中国的 RFID 设备,所以我对此几乎一无所知。我正在尝试编写一个程序(实际上我正在尝试使用别人的图书馆) 与之交互。当标签越过 RFID 设备时,设备会像 HID 键盘一样输入数字,然后按回车键并等待下一个。(我正在使用 Windows 7 顺便说一句)我的问题是:

  1. 除了知道 VID(供应商 ID)和 PID(产品 ID)之外,我还需要了解有关设备的任何其他信息才能开始读取它。

  2. 在我看到的一个例子中,在读取设备之前,示例程序首先写入设备,发送数组中的 8 个字节 (bytes[8]),每个字节类似于 [0] = 60, [1] = 0, [ 2] = 20 等等。当设备停止被读取时,它还会发送一堆停止字节。有人可以向我解释一下吗,天气这是必要的,这些开始/停止字节是特定于设备的还是USB的一般开始/停止?

  3. 有人知道那里有什么好的、简单的资源(或应用程序)可以做我想做的事吗?

任何问题的答案都非常感谢,谢谢。

4

2 回答 2

3

在尝试对基本 USB 协议进行部分逆向工程之前,您可以阅读(开放)USB 规范(参见http://www.usb.org/)并熟悉关键字(端点、URB、管道)和控制原则/批量/同步/中断传输)。

我非常喜欢 linux-usb-implementation,因为它实现简单且易于阅读:linux/include/usb.h。

要从用户空间寻址 USB 设备,您可以使用 libusb(适用于 Windows 和 Linux)。这样,您无需编写内核驱动程序即可访问 USB 设备。

于 2011-09-27T08:31:12.130 回答
1

如果您的 RFID 阅读器真的是一个虚拟 USB HID 键盘,那么您可能只需注册 RawInput 并监听数据。在这种情况下,您真的不关心下面的硬件,我认为其他人已经在这里回答了如何做到这一点。

如果这种方法不起作用,则意味着您的 RFID 阅读器不是真正的 USB HID 键盘设备,您应该向供应商索取驱动程序或通过 USB 发送的数据结构。

如果在这种情况下找不到驱动程序或某些规格,则必须开始对 USB 设备进行逆向工程。您可以开始使用它的一个工具是来自 Microsoft 的 USBView.exe,您可以找到它 Windows Driver Kit - 源代码,您只需构建它并拥有应用程序。在此之后,您应该尝试获取 USB 描述符结构并进行分析,您会在那里找到许多有价值的信息,可以帮助您了解数据是如何发送的。

正如你看到的很多如果...

于 2011-09-28T14:59:46.740 回答