usb概念小结
来源:互联网 发布:虚拟演播厅软件 编辑:程序博客网 时间:2024/06/06 00:45
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
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函数。
接口、是设备的一种描述符之一,同时也是端点的集合,用于开启且保存端点。
- usb概念小结
- USB 概念
- 【USB】USB 关键概念简介
- 【USB】USB 关键概念简介
- USB概念总结
- USB的一些概念
- usb的几个概念
- USB驱动--概念
- USB设备驱动小结
- USB学习小结
- AJAx 常见概念小结
- NxOgre的概念小结
- LDAP概念小结
- 广告常用概念小结
- Java GC 概念小结
- 数据库概念小结
- 运行时概念小结
- 深度学习概念小结
- HDU DFS
- 一次点击事件,触发两次异步请求
- 移动端Web页面适配方案
- imx6ul+ts校准问题
- qt中文乱码问题
- usb概念小结
- linux环境的mysql安装
- zoj3956(dp)
- 全国首个人工智能商业案例榜单:「AI最佳掘金案例年度评选」正式启动
- 算法学习 Stack 实现
- 使用velocity技术时的路径问题
- CV
- CentOS7安装Hadoop集群实例
- Spinner 电影票实例