USB HIDЭÒéÖÐÎİæ - USB½Ó¿ÚHIDÉ豸 - ͼÎÄ ÏÂÔØ±¾ÎÄ

bDeviceSubClass: bDeviceProtocol: bMaxPacketSize0: idVendor: idProduct: bcdDevice: iManufacturer: iProduct: iSerialNumber: bNumConfigurations:

ConnectionStatus: DeviceConnected Current Config Value: 0x01 Device Bus Speed: Full Device Address: 0x02 Open Pipes: 4

Endpoint Descriptor: bEndpointAddress: 0x81 Transfer Type: Bulk wMaxPacketSize: 0x0010 (16) bInterval: 0x0A

Endpoint Descriptor: bEndpointAddress: 0x01 Transfer Type: Bulk wMaxPacketSize: 0x0010 (16) bInterval: 0x0A

Endpoint Descriptor: bEndpointAddress: 0x82 Transfer Type: Interrupt wMaxPacketSize: 0x0040 (64) bInterval: 0x01

Endpoint Descriptor: bEndpointAddress: 0x02 Transfer Type: Interrupt wMaxPacketSize: 0x0040 (64) bInterval: 0x01

µÚ8Õ USB½Ó¿ÚHIDÉ豸 217 0x00 0x00 0x10 (16) 0x045E (Microsoft Corporation) 0x930A 0x0100 0x01 0x02 0x03 0x01

8.6.2 É豸µÄ³õʼ»¯

ÔÚ½«¸ß¼¶½Ó¿ÚʵÑę́Á¬½Óµ½¼ÆËã»ú²¢²Ù×÷ʵÑę́½øÈëHID½Ó¿ÚʵÑéºó£¬Windowsϵͳ»á·¢ÏÖÉ豸²¢¶ÁÈ¡É豸µÄ¸÷ÖÖÃèÊö·û£¬¿ÉÒÔͨ¹ýÒ»¸öUSB¹¤¾ßÈí¼þ½ØÈ¡WindowsºÍÉ豸֮¼äµÄÇëÇóÓ¦´ð¹ý³Ì¡£¹¤¾ßÈí¼þBusHound¿ÉÒÔʵÏÖÕâ¸ö¹¦ÄÜ¡£

BunHoundÊÇÒ»¸ö¹¦ÄÜÈ«ÃæµÄ×ÜÏß·ÖÎöÒÇÈí¼þ£¬¿ÉÒÔʵÏÖ¶Ô¼ÆËã»úͨ¹ý¸÷ÖÖ½Ó¿ÚÁ¬½ÓµÄÉ豸µÄͨÐŹý³Ì½øÐнØÈ¡ºÍ·ÖÎö¡£Í¼8-9ÊÇBusHoundµÄÉ豸Á¬½ÓÊ÷£¨Devices£©½çÃæ¡£

µ±¸ß¼¶½Ó¿ÚʵÑę́Óë¼ÆËã»úͨ¹ýUSB½Ó¿ÚÁ¬½Ó²¢²Ù×÷ʵÑę́½øÈëHIDʵÑ飬¿ÉÒÔÔÚBusHoundµÄÉ豸Á¬½ÓÊ÷ÖÐÕÒµ½Ò»¸ö¡°USBÈËÌ幤³ÌѧÉ豸¡±ÏîÄ¿¡£Ñ¡ÖиÃÏîÄ¿¿ÉÒÔʵÏÖ¶ÔÉ豸µÄͨÐŹý³ÌµÄ½ØÈ¡¡£

Ñ¡Öи߼¶½Ó¿ÚʵÑę́µÄHIDÉ豸Ï½øÈëµ½²É¼¯£¨Capture£©½çÃæ£¬ÏÈ¿ØÖÆÊµÑę́Í˳öHIDʵÑ飬°´BusHoundµÄ²É¼¯½çÃæµÄStop°´Å¥£¬ÔÙ°´Run°´Å¥£¬È»ºó¿ØÖÆÊµÑę́½øÈëHIDʵÑé½çÃæ¡£Windowsϵͳ·¢ÏÖÉ豸²¢ÇëÇóÉ豸µÄ¸÷ÖÖÃèÊö·û£¬È»ºóÍê³É¶ÔÉ豸µÄ±ØÒªµÄÉèÖã¬BusHound¿ÉÒԲɼ¯µ½ÒÔÉÏͨÐŹý³Ì¡£

218 ¼ÆËã»ú¸ß¼¶½Ó¿Úʵ¼ù

ͼ8-9 BusHoundµÄÉ豸Ê÷ÏÔʾ½çÃæ

ͼ8-10 BusHoundµÄ²É¼¯ÏÔʾ½çÃæ

µÚ8Õ USB½Ó¿ÚHIDÉ豸 219

ÏÂÃæ·ÖÎöBusHound½ØÈ¡µÄÊý¾ÝÄÚÈÝ¡£ ? Ö÷»ú·¢ËÍ£º80 06 00 01 00 00 12 00 Get_DescriptorÇëÇó£¬ÇëÇóÉ豸»Ø´«É豸ÃèÊö·û¡£

? É豸·¢ËÍ£º12 01 10 01 00 00 00 10 5e 04 0a 93 00 01 01 02 03 01 É豸ÃèÊö·ûÄÚÈÝ£ºUSB°æ±¾=1.1¡¢Àà±ð/ЭÒéÂë=0¡¢EP0µÄ×î´ó°ü³ß´ç=10¡¢

VID=045E¡¢PID=930A¡¢°æ±¾=1.0¡¢³§ÉÌ¡¢²úÆ·ºÍÐòÁкÅ×Ö·û´®Ë÷Òý¡¢ÅäÖÃÊý=1¡£ ? Ö÷»ú·¢ËÍ£º80 06 00 02 00 00 09 00

Get_DescriptorÇëÇó£¬ÇëÇóÉ豸»Ø´«ÅäÖÃÃèÊö·û¡£ ? É豸·¢ËÍ£º09 02 37 00 01 01 04 80 32

ÅäÖÃÃèÊö·ûÄÚÈÝ£º¸ÃÃèÊö·û¼°ºóÐøÃèÊö·û×ܳ¤¶È=55¡¢Ö§³Ö½Ó¿ÚÊý=1¡¢ÅäÖñêʾ·û=1¡¢×ÜÏß¹©µç¡¢×î´ó100mA¡£ ? Ö÷»ú·¢ËÍ£º80 06 00 02 00 00 37 00

Get_DescriptorÇëÇó£¬ÇëÇóÉ豸»Ø´«ÅäÖᢽӿڡ¢HIDºÍ¶ËµãÃèÊö·û¡£

? É豸·¢ËÍ£º09 02 37 00 01 01 04 80 32 09 04 00 00 04 03 00 00 05 09 21 01 01 00

01 22 34 00 07 05 81 02 10 00 0a 07 05 01 02 10 00 0a 07 05 82 03 40 00 01 07 05 02 03 40 00 01 °´Ë³ÐòΪ£º 9×Ö½ÚÅäÖÃÃèÊö·û£ºº¬ÒåͬÉÏ¡£

9×Ö½Ú½Ó¿ÚÃèÊö·û£º±êʾ·û=0¡¢Ö§³ÖµÄ¶Ëµã=4¡¢Àà±ð=HID¡£

9×Ö½ÚHIDÃèÊö·û£º°æ±¾=1.01¡¢ÓÐ1¸ö±¨±íÃèÊö·û£¨³¤¶ÈΪ52£© 7×ֽڶ˵ãÃèÊö·û£º1ºÅÅúÁ¿ÊäÈ룬°ü³ß´ç=16¡£ 7×ֽڶ˵ãÃèÊö·û£º1ºÅÅúÁ¿Êä³ö£¬°ü³ß´ç=16¡£

7×ֽڶ˵ãÃèÊö·û£º2ºÅÖжÏÊäÈ룬°ü³ß´ç=64¡¢1msÂÖѯ¡£ 7×ֽڶ˵ãÃèÊö·û£º2ºÅÖжÏÊä³ö£¬°ü³ß´ç=64¡¢1msÂÖѯ¡£ ? Ö÷»ú·¢ËÍ£º00 09 01 00 00 00 00 00

Set_ConfiguationÇëÇó£¬ÅäÖúÅ=1¡£ ? Ö÷»ú·¢ËÍ£º21 0a 00 00 00 00 00 00 Set_IdleÇëÇó£¬É趨¼ä¸ôʱ¼äΪ0¡£ ? É豸·¢ËÍ£º04 00 00 c0

STALL£¬²»Ö§³ÖÇëÇó¡£

? Ö÷»ú·¢ËÍ£º81 06 00 22 00 00 74 00

Get_DescriptorÇëÇó£¬ÇëÇóÉ豸»Ø´«±¨±íÃèÊö·û¡£

? É豸·¢ËÍ£º06 a0 ff 09 01 a1 01 09 02 a1 00 06 a1 ff 09 03 09 04 15 80 25 7f 35 00

45 ff 75 08 95 40 81 02 09 05 09 06 15 80 25 7f 35 00 45 ff 75 08 95 40 91 02 c0 c0 ±¨±íÃèÊö·û¡£

8.6.3 HID²âÊÔ³ÌÐòµÄʵÏÖ

ʹÓÃVisual Basic±àдһ¸öÕë¶Ô¸ß¼¶½Ó¿ÚʵÑę́µÄÓ¦ÓóÌÐò£¬ÊµÏÖÓëÉ豸µÄͨÐÅ¡£¸Ã²âÊÔ³ÌÐòʵÏÖÒÔϹ¦ÄÜ£º

? ²éÕÒÉ豸£º¸ù¾ÝÖ¸¶¨µÄVIDºÍPIDʵÏÖÉ豸²éÕÒ£» ? »ñµÃÉ豸ÄÜÁ¦£ºµ÷ÓÃÏàÓ¦µÄAPI£¬»ñµÃÉ豸µÄÄÜÁ¦£»

? ·¢Ëͱ¨±í£º½«½çÃæÊäÈëµÄR1~R8µÄÊýÖµ°´ÕÕ±¨±íµÄÖ¸¶¨¸ñʽ´«Ë͵½É豸£» ? ½ÓÊÕ±¨±í£º½«É豸µÄ½çÃæÏÔʾµÄR1~R8µÄÊýÖµ¶ÁÈ¡µ½Ó¦ÓóÌÐò£» ? ÏÔʾAPIº¯Êýµ÷ÓÃÐÅÏ¢£ºÏÔʾÿһ¸öAPIº¯ÊýµÄµ÷Óýá¹û£» ? ¹Ø±ÕÉ豸¡£

220 ¼ÆËã»ú¸ß¼¶½Ó¿Úʵ¼ù

ÏÂͼÊdzÌÐòÔËÐеĽçÃæÏÔʾ¡£

ͼ8-11 Õë¶ÔʵÑę́µÄHID²âÊÔ³ÌÐòÏÔʾ½çÃæ

ÔÚ»ñµÃÄÜÁ¦µÄAPIº¯ÊýµÄµ÷Óýá¹ûÖУ¬ÊäÈ뱨±íºÍÊä³ö±¨±íµÄ³¤¶ÈΪ65×Ö½Ú£¬ÔÚ·¢ËͺͽÓÊÕ±¨±íʱµÄ³¤¶ÈÉ趨¶¼ÐèÒªÉèΪ65¡£µ«ÔÚ¸ÃʵÑéÖÐÕæÕýÓõ½µÄÓÐЧÊý¾ÝÖ»ÓÐ8¸ö¼Ä´æÆ÷µÄÊý¾Ý£¬Õ¼ÓÃÆäÖеÄ8¸ö×Ö½Ú£¬±¨±íµÄÊ××Ö½Ú£¨µÚ0¸ö£©Îª0£¬±íʾReport ID¡£µÚ1¡¢2¸ö×Ö½Ú·Ö±ð55h¡¢AAhΪÓû§¶¨ÒåµÄ±êʾ×Ö¡£µÚ3¡¢4×Ö½ÚΪÓû§¶¨ÒåÃüÁî±àÂ룬Êä³ö±¨±íÖÐΪ01¡¢08£¬ÊäÈ뱨±íÖÐΪ02¡¢08¡£´ÓµÚ5µ½µÚ12×Ö½Ú˳ÐòΪR1¡¢R2¡¢¡­R8µÄÖµ¡£Ö®ºóµÄÊý¾ÝΪ±£Áô×Ö½Ú¡£ 'HID²éÕÒ¡¢ÄÜÁ¦¼ì²â¡¢ÊäÈ뱨±í¡¢Êä³ö±¨±íÑÝʾ³ÌÐò 'ÐÞ¸Ä×ÔÐíÓÀºÍµÄ¡¶½éÃæÉè¼ÆÓëʵϰ ʹÓÃBisual Basic¡· Option Explicit '±äÁ¿¶¨Òå ****************************************************************************** Dim Capabilities As HIDP_CAPS Dim DataString As String Dim DetailData As Long Dim DetailDataBuffer() As Byte Dim DeviceAttributes As HIDD_ATTRIBUTES Dim DevicePathName As String Dim DeviceInfoSet As Long Dim ErrorString As String Dim HidDevice As Long