hiddev 字节的格式?

hiddev 字节的格式?

我有一个作为 USB HID 连接的伽马能谱仪。当它被插入时,dmesg它会告诉我有两个设备文件是为其创建的,hiddev0并且hidraw2(显然,编号并不重要。)

根据文档和字节的目视检查,我想从hidraw2.但我很好奇正在传输什么样的数据hiddev0,因为在我注意到它存在之前,我花了一段时间试图弄清楚它hidraw2

以下是来自 的一些示例数据hiddev0

00000000  01 00 00 ff 0d 00 00 00  01 00 00 ff 81 00 00 00  |................|
00000010  01 00 00 ff 0b 00 00 00  01 00 00 ff 00 00 00 00  |................|
00000020  01 00 00 ff 0e 00 00 00  01 00 00 ff c1 00 00 00  |................|
00000030  01 00 00 ff 08 00 00 00  01 00 00 ff 01 00 00 00  |................|
00000040  01 00 00 ff 08 00 00 00  01 00 00 ff 41 00 00 00  |............A...|
00000050  01 00 00 ff 0b 00 00 00  01 00 00 ff 31 00 00 00  |............1...|
00000060  01 00 00 ff 07 00 00 00  01 00 00 ff b1 00 00 00  |................|
00000070  01 00 00 ff 09 00 00 00  01 00 00 ff 01 00 00 00  |................|
00000080  01 00 00 ff 08 00 00 00  01 00 00 ff b1 00 00 00  |................|
00000090  01 00 00 ff 08 00 00 00  01 00 00 ff 51 00 00 00  |............Q...|
000000a0  01 00 00 ff 1d 00 00 00  01 00 00 ff 51 00 00 00  |............Q...|
000000b0  01 00 00 ff 0a 00 00 00  01 00 00 ff f1 00 00 00  |................|
000000c0  01 00 00 ff 08 00 00 00  01 00 00 ff 51 00 00 00  |............Q...|
000000d0  01 00 00 ff 34 00 00 00  01 00 00 ff 91 00 00 00  |....4...........|

根据要求,这是来自 的行dmesg

[411407.529580] hid-generic 0003:04D8:0023.0003: hiddev0,hidraw2: USB HID v1.01 Device [Kromek SIGMA50] on usb-0000:00:1a.1-2/input0

答案1

部分答案:

驱动程序是hid-generic,因此下一步是查看 HID 描述符。作为根用户,执行以下操作:

mount -t debugfs none /sys/kernel/debug

然后查看 的内容/sys/kernel/debug/hid/<dev>/rdesc,其中<dev>标识您的设备。

HID 描述符描述了您可以从描述符中读取和写入的内容的格式hidraw(也许对您也很重要)。这些由内核 HID 解析器处理,然后发送到hiddev描述符。至少对于输入设备,上面的文件还包含有关内核解析器如何处理这些信息的信息,但我不确定hid-generic.

比较您在hidraw和上看到的内容hiddev应该可以对内核解析器的功能进行一些很好的猜测,并且有疑问的人可以阅读源代码。

您可以在内核源代码中Documentation/hid/hidraw.txt找到更多信息。/Documentation/hid/hiddev.txt

“隐藏页”评论中有 HID 标准,如果您想阅读这些标准。

相关内容