文章目录
本文记录下学习USB相关的基本概念
USB(Universal Serial Bus)概述
USB全称为Universal Serial Bus(通用串行总线),是一种快速、灵活的总线接口。它是为了解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾而制定的一种串行通信标准。
USB一般分为USB低速,USB全速,USB高速和USB超高速,其分别对应于USB1.0,USB1.1,USB2.0和USB3.0,而USB3.0又分了GEN1,GEN2等。最新一代是USB4,传输速度为40Gbit/s,三段式电压5V/12V/20V,最大供电100W ,新型Type C接口允许正反盲插。
USB是一种电缆总线,支持在主机和各式各样的即插即用的外设之间进行数据传输。由主机预定的标准的协议使各种设备分享USB带宽,当其它设备和主机在运行时,总线允许添加、设置、使用以及拆除外设。
USB系统的描述
一个USB系统主要被定义为三个部分:USB的互连、USB的设备、USB的主机。
USB的互连是指USB设备与主机之间进行连接和通信的操作,主要包括以下几方面:
- 总线的拓扑结构:USB设备与主机之间的各种连接方式;
- 内部层次关系:根据性能叠置,USB的任务被分配到系统的每一个层次;
- 数据流模式:描述了数据在系统中通过USB从产生方到使用方的流动方式;
- USB的调度:USB提供了一个共享的连接。对可以使用的连接进行了调度以支持同步数据传输,并且避免的优先级判别的开销。
USB总线传输方式
USB2.0总线属一种轮讯方式的总线,主机控制端口初始化所有的数据传输。每一总线执行动作最多传送三个数据包。按照传输前制定好的原则,在每次传送开始时,主机控制器发送一个描述传输运作的种类、方向,USB设备地址和终端号的USB数据包,这个数据包通常称为标志包(token packet)。USB设备从解码后的数据包的适当位置取出属于自己的数据。数据传输方向不是从主机到设备就是从设备到主机。在传输开始时,由标志包来标志数据的传输方向,然后发送端开始发送包含信息的数据包或表明没有数据传送。接收端也要相应发送一个握手的数据包表明是否传送成功。发送端和接收端之间的USB数据传输,在主机和设备的端口之间,可视为一个通道。存在两种类型的通道:流和消息。流的数据不像消息的数据,它没有USB所定义的结构,而且通道与数据带宽、传送服务类型,端口特性(如方向和缓冲区大小)有关。USB中有一个特殊的通道——缺省控制通道,它属于消息通道,当设备一启动即存在,从而为设备的设置、查询状况和输入控制信息提供一个入口。
USB 的设备可以接在 PC 上的任意的 USB 接口上. 而使用 Hub 还可以扩展使更多的USB设备连接到系统中。USB的Hub 有一个上行的端口(到host) 有多个的下行端口(连接其它的设备),从而可以使整个的系统可以扩展的连接 127 个外设。其中 Hub 也算外设,对于USB 系统来说,USB的host永远在PC边,所有的其他连接到host都称为设备。在设备与设备之间是无法实现直线通信的,只有通过host的管理与调节才能够实现数据的互相传送。在系统中,通常会有一个根Hub,这个Hub一般有两个下行的端口。
USB的拓扑结构
- USB的物理拓扑结构
USB的物理拓扑指的是USB总线的实际物理设备连接关系。
主机端提供USB根集线器,USB根集线器可外接USB外设,也可的外接USB的集线器HUB,用于拓展USB端点接口,拓展的USB集线器上的端口也可以外接USB设备。使用这种方式可实现USB设备的层层拓扑连接。不过这种拓扑关系最大的深度为7。
一个USB集线器(HUB)的物理构如下:
可以看到,一个USB集线器是将一个USB连接端点拓展成多个USB端点的设备。
- USB的逻辑拓扑结构
USB的逻辑拓扑结构是站在USB主机的角度来讲,所以的连接到该USB总线上的USB设备具有同等的地位关系。主机对外接的USB设备的寻址访问使用相同的方式,只是有的设备需要USB集线器中继访问,有些USB设备是直接访问。