了解USB标准的意义
原文地址:www.beyondlogic.org/usbnutshell…
原文作者:
发布时间:
刚开始接触USB是相当令人生畏的。由于USB 2.0规范长达650页,人们很容易被这个标准的规模所吓倒。这只是一长串USB相关标准的开始。还有一些USB类标准,如HID类规范,详细介绍了HID(人机界面设备)类设备(键盘、鼠标等)的常见操作,只有97页。如果您正在设计一个USB主机,那么您有三个主机控制器接口标准可供选择。这些标准在USB 2.0规范中都没有详细说明。
好消息是,你甚至不需要费心阅读整个USB标准。一些章节是由市场部编写的,其他章节针对的是通常由USB控制器IC负责的低层链路,还有几个章节是针对主机和集线器开发者的。让我们通过USB 2.0规范的各个章节来进行一次小旅行,并简单介绍一下关键点。
| / | 章节名称 | 说明 | 页数 |
|---|---|---|---|
| 1 | 引言 | 包括USB的动机和范围。本章最重要的信息是参考通用串行总线设备类规范。不需要阅读本章。 | 2 |
| 2 | 术语和缩略语 | 本章内容不言自明,也是任何标准的必要之恶。 | 8 |
| 3 | 背景 | 明确了USB的目标,即即插即用和简化终端用户(而非开发者)。介绍了低速、全速和高速系列,并直接从市场上列出了功能列表。也不需要读这一章。 | 4 |
| 4 | 架构概述 | 这是你可以开始阅读的地方。本章提供了一个USB系统的基本概述,包括拓扑结构、数据速率、数据流类型、基本电气规格等。 | 10 |
| 5 | USB数据流模型 | 本章开始讨论数据如何在通用串行总线上流动。本章介绍了端点和管道等术语,然后用大部分篇幅介绍了每一种数据流类型(控制、中断、异步和批量)。虽然了解每一种传输类型及其属性很重要,但对于第一次阅读的人来说,它的内容有点多。 | 60 |
| 6 | Mechanical | 本章详细介绍了USB的两个标准连接器。重要的信息是,A型连接器面向下游,B型连接器面向上游。因此,应该不可能将一根电缆插入两个上游端口。所有可拆卸的电缆必须是全速/高速的,而任何低速电缆必须硬连接到设备上。除了快速查看连接器外,您可以跳过本章,除非您打算制造USB连接器和/或电缆。PCB设计人员可以在本章中找到标准的脚印。 | 33 |
| 7 | 电学 | 本章研究低电平电信号,包括线路阻抗、上升/下降时间、驱动器/接收器规格和位级编码、位塞等。本章比较重要的部分是通过使用电阻来偏置数据线和总线供电设备与自供电设备的设备速度识别。除非你是在硅级设计USB收发器,否则你可以翻阅本章。好的USB器件数据表会详细说明你需要什么值的总线终端电阻来进行总线阻抗匹配。 | 75 |
| 8 | 协议层 | 现在我们开始进入协议层。本章从字节层面描述USB数据包,包括同步、pid、地址、端点、CRC字段。一旦掌握了这些,就会进入下一个协议层,USB数据包。大多数开发人员仍然没有看到这些较低的协议层,因为他们的USB设备IC负责处理这些。然而对状态报告和握手的理解是值得的。 | 45 |
| 9 | USB设备框架工作 | 这是整个规范中最常用的一章,也是我唯一费心打印和装订的一章。这一章详细介绍了总线枚举和请求代码(设置地址、获取描述符等),这些代码构成了USB程序员和设计人员最常见的协议层。这一章是必须详细阅读的。 | 36 |
| 10 | USB主机硬件和软件 | 本章介绍了与主机有关的问题。包括帧和微帧的生成、主机控制器要求、软件机制和通用串行总线驱动模型。除非您正在设计主机,否则可以跳过本章。 | 23 |
| 11 | 集线器规范 | 详细介绍了USB集线器的工作原理,包括集线器配置、拆分事务、集线器类的标准描述符等。除非你正在设计集线器,否则可以跳过本章。 | 143 |
所以现在我们可以开始阅读标准中与我们需求相关的部分。如果你是为USB外围设备开发驱动程序(软件),那么你可能只需要阅读一些章节。
- 4 - 建筑概述
- 5 - USB数据流模型
- 9 - USB设备框架工作,以及
- 10 - USB主机硬件和软件。
外围硬件(电子)设计人员则可能只需要阅读一些章节。
- 4 - 建筑概述
- 5 - USB数据流模型
- 6 - 机械,和
- 7 - 电气。
外围设备设计人员的 "坚果壳 "中的USB。
现在让我们面对现实吧,(1)我们大多数人都是来开发USB外设的,(2)读了一个标准却仍然不知道如何实现一个设备是很常见的。所以在接下来的7章中,我们将重点介绍开发USB设备所需的相关部分。这样可以让你掌握USB及其问题,让你进一步研究具体应用的问题。
在高速被扔进USB 2.0之前,USB 1.1标准已经足够复杂。为了帮助理解USB背后的基本原理,我们省略了许多针对高速设备的领域。
介绍通用串行总线
USB 1.1版本支持两种速度,一种是12Mbits/s的全速模式,一种是1.5Mbits/s的低速模式。1.5Mbits/s模式速度较慢,不易受EMI影响,从而降低了铁氧体磁珠和优质元件的成本。例如,晶体可以被更便宜的谐振器取代。在主流台式电脑上仍未见天日的USB 2.0已经将赌注提升到480Mbits/s。480Mbits/s被称为高速模式,是为了与火线串行总线竞争而增加的。
USB速度
- 高速 - 480Mbits/s
- 全速 - 12Mbits/s
- 低速 - 1.5Mbits/s
通用串行总线由主机控制。每个总线只能有一个主机。该规范本身不支持任何形式的多主站安排,但On-The-Go规范是USB 2.0的附加标准,引入了主机协商协议,允许两个设备协商。然而,On-The-Go规范是USB 2.0的附加标准,它引入了主机协商协议,允许两个设备协商主机的角色。这是针对并限于单点对点的连接,如移动电话和个人整理机,而不是多个集线器,多个设备的桌面配置。USB主机负责承担所有交易和调度带宽。数据可以通过各种交易方式发送,使用基于令牌的协议。
在我看来,USB的总线拓扑结构具有一定的局限性。USB的初衷之一是减少PC后面的布线量。苹果的人会说,这个想法来自于苹果桌面总线,键盘、鼠标和其他一些外设都可以用一根电缆连接在一起(菊花链)。
然而USB采用的是分层星形拓扑结构,类似于10BaseT以太网。这就要求在某个地方使用集线器,这就增加了更大的开支,在你的桌面上有更多的盒子和更多的电缆。然而它并不像看起来那么糟糕。许多设备都集成了USB集线器。例如,你的键盘可能包含一个集线器,连接到你的电脑。您的鼠标和其他设备,如您的数码相机,可以很容易地插入键盘的背面。显示器是另一种外围设备,通常都有内置的集线器。
这种分层的星型拓扑结构,而不是简单地将设备串联在一起,有一些好处。首先,每个设备的电源都可以被监控,如果出现过流情况,甚至可以关闭,而不会影响其他USB设备。可以支持高速、全速和低速设备,集线器可以过滤掉高速和全速的交易,这样低速设备就不会收到它们。
在任何一个给定的时间内,任何一个USB总线上最多可以连接127个设备。需要更多的设备?- 只需增加一个端口/主机。虽然大多数早期的USB主机有两个端口,但大多数制造商已经看到这一点的限制,并开始推出4和5端口的主机卡,并为硬盘等提供一个内部端口。早期的主机只有一个USB控制器,因此两个端口共享相同的可用USB带宽。随着带宽需求的增长,我们开始看到有两个或多个控制器的多端口卡,允许单独的通道。
USB主机控制器有自己的规格。USB 1.1有两种主机控制器接口规范,UHCI(通用主机控制器接口)由英特尔开发,它将更多的负担放在软件(微软)上,并允许更便宜的硬件和OHCI(开放主机控制器接口)由康柏、微软和国家半导体开发,它将更多的负担放在硬件(英特尔)上,并使软件更简单。典型的硬件/软件工程师关系。. .
随着USB 2.0的推出,需要一个新的主机控制器接口规范来描述USB 2.0特有的寄存器级细节。EHCI(增强型主机控制器接口)应运而生。重要的贡献者包括英特尔,康柏,NEC,朗讯和微软,所以它希望他们已经汇集在一起,为我们提供一个接口标准,因此只有一个新的驱动程序,在我们的操作系统实现。它的时间.
USB顾名思义是一种串行总线。它使用4根屏蔽线,其中两根是电源线(+5v和GND)。其余两根是双绞线差分数据信号。它使用NRZI(非归零反转)编码方案来发送数据,并使用同步场来同步主机和接收器的时钟。
USB支持即插即用,可动态加载和卸载驱动程序。用户只需将设备插入总线。主机将检测到新增的设备,询问新插入的设备,并在屏幕上的沙漏闪烁时间内加载相应的驱动程序,前提是您的设备已经安装了驱动程序。最终用户不需要担心终端、IRQs和端口地址等术语,也不需要重新启动计算机。一旦用户完成,他们可以简单地将电缆拖出,主机将检测到它的缺失并自动卸载驱动程序。
加载相应的驱动程序是通过PID/VID(产品ID/厂商ID)组合来完成的。VID是由USB实施者论坛提供的,是要收费的,这被视为USB的另一个症结所在。最新的收费信息可以在USB实施者的网站上找到。
其他标准组织为非商业活动提供额外的VID,如教学、研究或摆弄(The Hobbyist)。USB Implementors论坛还没有提供这项服务。在这些情况下,您可能希望使用分配给您的开发系统制造商的VID。例如,大多数芯片制造商会有一个VID/PID组合,你可以为你的芯片使用,这是已知的不存在的商业设备。其他芯片制造商甚至可以卖给你一个PID与他们的VID一起用于你的商业设备。
USB的另一个比较显著的特点,就是它的传输模式。USB支持控制、中断、批量和异步传输。虽然我们稍后会讨论其他传输模式,但Isochronous允许设备在保证延迟的情况下保留一定数量的带宽。这在拥塞可能导致数据丢失或丢帧的音频或视频应用中非常理想。每种传输模式都为设计者提供了错误检测和恢复、保证延迟和带宽等方面的权衡。
通过www.DeepL.com/Translator(免费版)翻译