kernel:kernel-3.4.39
UHCI: intel, 低速(1.5Mbps)/全速(12Mbps)
OHCI: microsoft 低速/全速
EHCI: 高速(480Mbps)
USB总线驱动程序的作用:
1、分配地址给USB设备,同时将分配的地址发给USB设备(最开始通信地址是端口0)
2、发出命令获取描述符
3、查找和安装对应的设备驱动程序
4、提供USB读写函数
一个usb硬件有一个“设备描述符”;一个设备描述符下会有一个或多个“配置”;一个配置里可能有多个“接口——逻辑设备”;一个“接口”里面有多个“端点描述符”
“端点描述符”里面描述了一次性最多可以传输多少的数据;端口编号、方向、传输类型等信息。
USB主要有4种描述符:设备描述符、配置描述符、接口描述符、端点描述符(这是必须存在的描述符)
struct usb_device_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__le16 bcdUSB;
__u8 bDeviceClass;
__u8 bDeviceSubClass;
__u8 bDeviceProtocol;
__u8 bMaxPacketSize0;
__le16 idVendor;
__le16 idProduct;
__le16 bcdDevice;
__u8 iManufacturer;
__u8 iProduct;
__u8 iSerialNumber;
__u8 bNumConfigurations;
} __attribute__ ((packed));
bLength:描述符长度
bDescriptorTyp