USB基础学习:USB体系结构介绍

描述

停更好久,重新梳理一下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

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 组成。

比如:键盘,鼠标,摄像头等。

usb

1.4. USB 数据流

USB主机和USB设备之间的通信是通过管道(Pipe)进行的。

usb

在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设备连接到主机上的硬件和软件。

usb

2.2. USB 软件模型

usb

实际的通信数据流:usb host control 和 USB 总线接口。虚拟的通信方式:主机端客户端软件和 物理设备fucntion 直接通信。

USB host:

客户端软件

USB 系统软件:USB 驱动,HOST controller 驱动 和 host 软件

usb

USB device:


usb

USB物理设备为主机提供了额外的功能。USB设备提供的功能类型差别很大。但是,所有的USB逻辑设备都为主机提供相同的基本接口。这允许主机以相同的方式管理不同USB设备。

为了帮助主机识别和配置USB设备,每个设备都会携带和报告与配置相关的信息。所报告的一些信息在所有逻辑设备中都是常见的。其他信息是特定于该设备提供的功能的。此信息的详细类型根据设备的设备类别而有所不同。

详细软件模型

usb

抽象为熟悉的软件模型

usb

对于一个 usb 设备驱动,大多时候我们其实只需要关心function driver,不同的设备向上只有function 或者接口区分,对于底层而言都是一样的,最终通过SIE (串行总线)和主机通信。

3. 总结

本文主要介绍了,USB 系统的体系结构。一个USB 系统包含核心的三部分:

USB interconnect:通过PIPE 互联传输

USB Host:USB 主机

USB Device:USB 设备和集线器

并简要阐述其软件模型。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分