usb概念小结

1. 每个usb设备都有一个或多个接口(interface),每个interface都有多个端点(endpoint),每个端点通过管道(pipe)和 usb host(USB主机)控制器连接,usb host与pdo(Physical Device Object,物理设备对象)相连,pdo与fdo(Function Device Object,功能设备对象)相连。

usb设备——interface——endpoint-----pipe-----usb host——pdo——fdo

                                                                      USB设备、接口、端点、管道、USB主机



    端点是可唯一识别的USB设备的一部分,它是主机与设备间通信流的一个结束点。一系列相互独立的端点在一起构成了USB逻辑设备。每个设备有一个唯一的地 址,这个地址是在设备连上主机时由主机分配的,而设备中的每个端点在设备内部有唯一的端点号。这个端点号是在设备设计时给定的。每个端点都是一个简单的连 接点,或者支持数据流进设备,或者支持数据流出设备,两者不可兼得。

    USB管道是设备上的端点和上位机软件之间的联系,体现了主机上缓存和端点间传送数据的能力。


2. 管道有4种,分别为:

UsbdPipeTypeControl(控制管道) :
Specifies that this pipe is a control pipe.

UsbdPipeTypeIsochronous (同步传输管道):
Specifies that this pipe uses isochronous transfers.

UsbdPipeTypeBulk(批量传输管道) :
Specifies that this pipe uses bulk transfers.

UsbdPipeTypeInterrupt (中断管道):
Specifies that this pipe uses interrupt transfers. A value will be set in Interval to indicate how often this pipe is polled for new data.

3. FDO负责向上提供给应用程序接口,向下指定何种接口,发送何种管道。

4. endpoint0: (特殊的端点)负责传输设备的描述信息,负责传输pc与设备之间的控制码。


们先用控制传输来发起对U盘的访问,然后使用块
传输copy U盘里面的内容。键盘使用中断传输以便及时响应对键盘的敲击。


在usb 拓扑结构中,每一个usb device 都叫一个endpoint, 每个一个endpoint 都会有一个唯一的地址。每一个
endpoint 都会有其相应的传输类型,endpoint 0 只用来配置devie.


管道(Pipe)
管道是由下面几个成员构成:
endpoint 的地址
数据传输的方向
数据传输的类型(control, interrupt, bulk, isochronous)




描述符大致可以分为四类:
设备描述符(device descriptor):


    对应的结构体为 usb_config_descriptor, 里面放了有一个设备最general的信息,
比如 product ID, vendor ID.


配置描述符:


    对应的结构体为usb_config_descriptor, 里面放着不同的配置模式,比如是bus powered, 还是
self-powered. 


接口描述符:


    正是这个描述符使得USB device 可以支持多种功能,它对应的结构体为usb_interface_descriptor.


Endpoint 描述符:


    对应的结构体为usb_endpoint_descriptor, 用来描述最终的endpoint.




枚举过程主要分这么几个步骤:
1.当一个usb device 插入的时候,usb hub 就会检测到状态的变化,然后它就会去唤醒khubd.
2. khubd 解析到是哪个port 有新的device 插入。
3.khubd从1到127中选择一个地址分配给它。
4, khubd 从endpoint 0 抓到它的描述符。
5.khubd 请求usb core 将这个device 绑定到合适的driver上面。


当枚举结束并且device和相应的驱动绑定之后, khubd 调用这个driver 的 probe函数。




接口、是设备的一种描述符之一,同时也是端点的集合,用于开启且保存端点。


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值