USB 卷一 DS 部份
LK 版本:2.6.35.3
2013 年1 月14 日
任务目标:
USB 设备、配置、接口、设置以及端点的五者关系图:
一个USB 设备对应有一个或多个配置;
一个配置对应一个或多个的USB 接口;
一个USB 接口又具有一个或多个的设置; 一个USB 接口对应一种功能
对应一个USB 驱动
一个设置又会拥有一个或多个的USB 端点。
图示:
USB 设备:
配置 接口
端点
USB 驱动程序
端点
接口
端点 USB 驱动程序
端点
配置 接口
端点
端点
1
Linux-USB 子系统框架图:
内核中USB 子系统的结构:
2
USB 拓扑结构:
主机的责任:
为了与USB 设备通信,计算机需要硬件和软件共同来支持USB 主机功能。其中,硬件
由USB 主机控制器和含有一个或多个USB 端口的跟集线器构成。
典型的计算机拥有一个或多个硬件主机控制器。每个控制器支持多个端口。主机负责管
理总线。主机需要知道哪些设备正挂在总线上,以及每个设备有怎样的能力。主机还必须尽
可能保证总线上所有设备能够按照各自的需要收发数据。
主机完成下述的所有任务。
1、检测设备
开机时,集线器会令主机得知所有已连接的USB 设备。在被称作“枚举”的过程中,
主角会决定使用那种总线速率、指定地址,并请求额外的信息。开机后,若有设备连接或移
除,集线器将把此事件通知主机,主机便枚举新连接的设备或从它应用程序的可用设备清单
上撤销全部已移除的设备。
2 、管理数据流
主机管理总线上的数据流。可能有许多设备会要求在同一时间内传输数据。主机控制器
将可用的时间分成诸多小段,给与每项传输任务一部分可用时间。USB3.0 主机可同时收发
超高速数据,也可在USB2.0 速率下完成传输。USB2.0 总线每次只以一种速率在一个方向
上传输数据。
枚举过程中,设备驱动程序将(向系统)索要传输所需的带宽,以保证时序。如果所要
求的带宽无法被满足,驱动程序便索要更小的带宽或等待直到所要求的带宽得到满足。得不
到时序保证的传输,将等到总线不再忙碌的时候再使用剩余带宽。
3、错误检查
3
传输数据时,主机将添加错误检查位。接收数据时,设备将对数据进行错误检查的计算,
并将结果与错