usb驱动的基本结构和函数简介
⼏个重要的结构
struct--接⼝
结构体struct usb_host_interface就代表⼀个设置
struct usb_interface中的struct usb_host_interface *cur_altsetting成员,表⽰当前正在使⽤的设置
struct--设置
具体到接⼝描述符,它当然就是描述接⼝本⾝的信息的。⼀个接⼝可以有多个设置,使⽤不同的设置,描述接⼝的信息会有些不同,所以接⼝描述符并没有放在struct usb_interface结构⾥,⽽是放在表⽰接⼝设置的struct usb_host_interface结构⾥。
struct--接⼝描述符
struct--端点
struct--端点描述符
注:0号端点没有⾃⼰的端点描述符struct--设备
struct--设备描述符
18
注:为什么端点0的属性bMaxPacketSize0要放到设备描述符⾥边呢 ?
⾸先表明了这是⼀个共性的东西。
前⾯说端点的时候说了端点0并没有⼀个专门的端点描述符,因为不需要,基本上它所有的特性都在sp
ec ⾥规定好了的,然⽽,别忘了这⾥说的是“基本上”,有⼀个特性则是不⼀样的,这叫做maximum packet size ,每个端点都有这么⼀个特性,即告诉你该端点能够发送或者接收的包的最⼤值。对于通常的端点来说,这个值被保存在该端点描述符中的wMaxPacketSize 这⼀个field ,⽽对于端点0就不⼀样了,由于它⾃⼰没有⼀个描述符,⽽每个设备⼜都有这么⼀个端点,所以这个信息被保存在了设备描述符⾥,所以我们在设备描述符⾥可以看到这么⼀项,bMaxPacketSize0。⽽且spec 还规定了,这个值只能是8,16,32或者64这四者之⼀,如果⼀个设备⼯作在⾼速模式,这个值还只能是64,如果是⼯作在低速模式,则只能是8,取别的值都不⾏。
struct--配置
struct--配置描述符
struct--usb接⼝的缓存
struct--hub描述符
struct--hub结构体
mutex errorstruct--usb_bus结构体
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论