USB handshakes, standaard protocollen en USB ID's
Om een officieel USB-logo op een product te mogen aanbrengen en een
Vendor ID te registreren moet je aan een aantal eisen voldoen, zie:
http://www.usb.org/developers/vendor/
De registratie van een USB Vendor VID en Product PID's staat los de
communicatie volgens standaard USB-protocollen, waarvoor meestal
standaard drivers gebruikt worden.
Met lsusb kun je met de opties -v en -d <VID>:<PID>, via de generieke
USB-handshake, veel info over een USB-device krijgen:
$ lsusb -vd 8087:0020
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x8087 Intel Corp.
idProduct 0x0020 Integrated Rate Matching Hub
bcdDevice 0.00
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
...
...
etc
...
Deze gegevens worden tijdens de handshake door het USB-device zelf aan
de USB-host verstrekt. De gegevens worden niet van een file op het
systeem van de host (of via een link naar een internet verbinding)
gelezen of door een driver gegenereerd. Op:
http://www.usb.org/developers/defined_class
kun je lezen dat Device Class 9 een USB-hub is, zoals het device zelf
tijdens de handshake aangeeft.
Als je wilt weten welke gegevens andere USB-devices, zoals een webcam of
een wifi-adapter, via een USB-aansluiting aan een USB-host verstrekken,
dan kun je daar via lsusb met de -vd opties achter komen.
Via:
http://www.usb.org/developers/docs/
kun je gedetailleerde documentatie over USB-protocollen vinden.
Groeten,
Jan-Rens.
Reply to: