发布网友 发布时间:2022-04-20 04:59
共3个回答
热心网友 时间:2023-08-31 08:37
前面写了一些SPI/I2C/RS-485之类的文章,有朋友留言希望能分享一些USB方面的梳理总结,今天就从系统标准层面先来梳理一下。看看有没有朋友喜欢。先从系统层面来梳理。个人学习,习惯于先从整体上摸个大概,然后再对感兴趣的细节逐渐深入。
USB是比较复杂的协议栈,如果发现文章中有错误,请帮忙指正。
注:本文主要参考USB2.0规范第4章,将标准中个人认为比较重要的一些点尽量条理清晰的总结出来。我感觉很多朋友可能对于阅读英文标准有点轻度抗拒,所以整理此文这也是一个起因,希望对朋友们有所帮助。
总线拓扑
说到总线拓扑,这张图大家一定都见过:
USB标准上说USB总线拓扑是一种分层星形结构,这张拓扑图延申出来的一些要点:
所谓星型是针对Hub而言的,一个Hub下面可以挂Hub或者设备,最顶层就是USB主机控制器USB主机控制器一般都伴随有一个根集线器Root Hub。Hub级联最多5层总线上理论最大允许连接127个设备。Hub级联遵循向下兼容,USB2.0主机或者高速Hub可以连接USB1.1Hub。一个USB分层星型结构有且仅有一个USB主机控制器线缆最长不超过5米这个最大7层星形结构,代表的是一条USB总线,一个USB分层星型结构有且仅有一个USB主机控制器,但并不是说一台计算机就只有一个USB总线,比如我的计算机内部就是2个USB主控制器+Root Hub,从Windows设备管理器可以看到:
7层拓扑图中的第2层只画了一个Hub,并不意味真正的第2层就只能有一个Hub,但这个图无法显示出更为详细的总线连接关系,用USBTrace软件来看看:
第1条总线有4个端口,第2条总线的根集线器具有18个端口,其中8、9、10为计算机内部的USB设备占用了。我这台笔记本对外有两个USB接口,通过分别将U盘插入这两个端口,再利用USBTrace探测可以推断出这两个端口都属于第2条总线的Port
3以及Port 4:
那么Hub长什么样呢?比如下面是一个7口的USB Hub示意图,来源于USB2.0标准:
物理接口
电气概览
USB 通过四线电缆传输信号和电源。信令发生在每个点对点网段上的两条线上。
VBUS/GND:供电D+/D-:USB差分信号线。具有三种数据速率:
高速模式 high-speed:480 Mb/s,常缩写为HS模式全速模式 full-speed:12 Mb/s,常缩写为FS模式低速模式 low-speed:1.5 Mb/s,常缩写为LS模式至于数据编码模式,这里先不管它。
机械概览
机械部分主要定义USB采用什么尺寸的接插件,线缆的颜色定义、线号。线缆的抗拉强度等。主要从以下几个方面去标准化:
主要连接器类型规范,主要分A、B系列。定义了公头、母头。
线缆规范。高速/全速电缆由信号双绞线、VBUS、GND 和整体屏蔽组成。当高速/全速电缆与低速设备一起使用时,电缆必须满足所有低速设备要求。低速设备可以不使用双绞线。双绞线可有效抵抗共模噪声。连接器机械尺寸及材料要求。
A/B系列插座规范A/B系列插头规范电缆尺寸材料规范,这里就不罗列了,知道在哪里查就可以了。电气、机械和环境合规性标准接地规范,屏蔽层一定要焊接在插头的外壳接地点。插座PCB尺寸规范。所以对于有绘制接插件需要的,可以参考6.9节的尺寸。Logo位置线芯颜色规范。USB Logo尺寸规范。协议概述
USB采用主从通讯模式,是一种轮询总线。所有数据传输都由主机控制器发起。这是USB标准中最难啃的部分,这里先不总结。
健壮设计
标准关于协议健壮性,又称鲁棒性,做了这几个方面的设计:
从信号完整性角度:使用差分驱动器、差分接收器和以及对信号线缆的屏蔽处理。差分收发策略主要在抵抗共模干扰方面效果显著,而屏蔽层则有两方面的作用:其一,有效降低USB线通过无线电波对外界干扰;其二、能有效隔断外界无线干扰对USB信号线、电源线的干扰。CRC报文校验。报文中数据如果出错,可以检测出来,可以做相应的处置。热插拔检测及对相应硬件设备的系统配置管理。这个设计有助于提升用户体验,用户随用随插,而无需关机插拔。利用对数据丢失或数据损坏超时检测实现通讯自恢复机制,以增强协议的健壮性。对流数据的进行流量控制以确保同步以及底层收发硬件缓冲区管理。数据管道和控制管道分离
热心网友 时间:2023-08-31 08:38
在USB规范中把USB分为五个部分:控制器、控制器驱动程序、USB芯片驱动程序、USB设备和针对不同USB设备的客户驱动程序。第一、 USB芯片驱动程序:这部分组件主要是可以提供对USB的支持。第二、 USB控制器驱动程序:这部分主要是在控制器和USB设备之间建立通信信道。第三、 USB设备:这部分组件包括和PC相连的USB外围设备,主要分为:设备本身可以再接上其它的USB外围设备,另外设备本身不能再连接其它外围设备。即集线器和设备。也可以说集线器是带有连接其它外围设备的USB端口,设备是连接在计算机上的用语完成特定功能而且符合USB规范的设备单元。第四、 USB控制器:这部分主要负责执行由USB控制器驱动程序发出的命令。第五、 USB设备驱动程序:这部分组件主要是用来驱动USB设备的程序,一般来说这是由操作系统或者是USB设备制造商提供热心网友 时间:2023-08-31 08:38
USB主机控制器有这些规格:OHCI (Open Host Controller Interface)、UHCI (Universal HostController Interface)、EHCI (Enhanced Host Controller Interface)和xHCI (eXtensible Host ControllerInterface)。OHCI驱动程序用来为非PC系统上以及带有SiS和ALi芯片组的PC主板上的USB芯片提供支持。UHCI驱动程序多用来为大多数其他PC主板(包括Intel和Via)上的USB芯片提供支持。EHCI由USB2.0规范所提出,它兼容于OHCI和UHCI。由于UHCI的硬件线路比OHCI简单,所以成本较低,但需要较复杂的驱动程序,CPU负荷稍重。xHCI,即可扩展的主机控制器接口是Intel公司开发的一个USB主机控制器接口,它目前主要是面向USB 3.0的,同时它也支持USB 2.0及以下的设备。