停更好久,重新梳理一下usb 知识体系
1. USB 硬件框架
一个 USB 系统 由三部分来描述:
USB interconnect
USB devices
USB host
USB interconnect 是指USB 设备连接到主机并与主机通信的方式。这包括以下内容:
总线拓扑:USB device 和 host 之间的连接模型。
层间关系:
数据流模型:
USB 调度:
1.1. 总线拓扑
在USB 系统中有两个硬件的概念:
USB host:它跟处理器相连,处理器通过USB Host跟各类USB设备通信。USB Host中集成有一个root hub
USB device:这类设备又分为两类
Hub:用来扩展USB接口
Function:就是普通的USB设备,比如U盘、声卡等
USB 总线拓扑如下:
roothub:根hub(根集线器)
hub:集线器
func:功能设备
Compound Device:组合设备,包含一个hub 和 一个或多个func
USB 总线拓扑最上层一定是host, 最后一级只能是func, 因此hub 级联最多5级;
1.2. USB host
在任何USB 系统中只有一个主机,主机的每个USB控制器(Host Controller)对应一条USB总线。与主机计算机系统相连的USB接口被称为主机控制器。
主机控制器可以以硬件,固件或软件的组合来实现。
根集线器(root hub)集成在主机系统内以提供一个或多个连接点。
USB Host通过 Host Controller 与 USB device 交互。
Host主要负责:
检测USB 设备的拔插动作
管理Host和Device之间的控制流、数据流
收集USB 总线状态和活动数据信息
为连入USB总线的设备供电
1.3. USB device
USB device 分为 USB hub 和 USB Function。
USB hub (集线器):
root hub:一般与主机控制器连接在一起,提供一个或者多个端口。
普通hub:用于扩展USB 的主机端口。
结构上由一个上行端口和多个下行端口组成。
支持级联:最多5级,不包含root hub。
支持速率转换:低速/全速设备,可连接在高速hub 上。
USB function 设备:
Composite Device:复合设备。一个设备地址,1个 或者 多个function 接口组成
Compound Device:组合设备。多个设备地址,一个hub 和 一个或者多个func 组成。
比如:键盘,鼠标,摄像头等。
1.4. USB 数据流
USB主机和USB设备之间的通信是通过管道(Pipe)进行的。
在USB协议中,管道是一个逻辑概念,
在USB主机端实际上就是一组缓冲区,用于管道中数据的收发。
在USB设备端,管道对应一个特定的端点,每一个端点都是一个由索引和方向确定的,USB设备最多支持16个双向端点(8个in/8个out)。
USB设备地址、端点索引和端点方向的组合可以唯一确定USB主机和USB设备间的通信。
2. USB 软件框架
2.1. USB 数据流模型
USB 简化传输模型如下图所示,实际上要比这个复杂的多。主要包含以下部分:
USB 物理设备:USB电缆终端的一块硬件,执行一些有用的终端用户功能。
客户端软件:在主机上执行的软件,对应于一个USB设备。此客户端软件通常与操作系统一起提供,或与USB设备一起提供。
USB 系统软件:在一个特定的操作系统中支持USB的软件。USB系统软件通常与操作系统一起提供,独立于特定的USB设备或客户端软件。
USB Host Controller (Host Side Bus Interface):允许将USB设备连接到主机上的硬件和软件。
2.2. USB 软件模型
实际的通信数据流:usb host control 和 USB 总线接口。虚拟的通信方式:主机端客户端软件和 物理设备fucntion 直接通信。
USB host:
客户端软件
USB 系统软件:USB 驱动,HOST controller 驱动 和 host 软件
USB device:
USB物理设备为主机提供了额外的功能。USB设备提供的功能类型差别很大。但是,所有的USB逻辑设备都为主机提供相同的基本接口。这允许主机以相同的方式管理不同USB设备。
为了帮助主机识别和配置USB设备,每个设备都会携带和报告与配置相关的信息。所报告的一些信息在所有逻辑设备中都是常见的。其他信息是特定于该设备提供的功能的。此信息的详细类型根据设备的设备类别而有所不同。
详细软件模型
抽象为熟悉的软件模型
对于一个 usb 设备驱动,大多时候我们其实只需要关心function driver,不同的设备向上只有function 或者接口区分,对于底层而言都是一样的,最终通过SIE (串行总线)和主机通信。
3. 总结
本文主要介绍了,USB 系统的体系结构。一个USB 系统包含核心的三部分:
USB interconnect:通过PIPE 互联传输
USB Host:USB 主机
USB Device:USB 设备和集线器
并简要阐述其软件模型。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !