1. 首页>>分享

嵌入式工程师必学:USB接口从入门到实战应用

个人电脑跟智能手机, 再到外部存储设备以及各种外围设备, USB为把现代数字设备连接起来时, 是最常被选用且用途最为广泛之所使用的接口。于嵌入式系统这个领域当中, 其依旧维持其便捷性, 能支撑多种相关应用, 涵盖了与数据记录器相通信连带着工业控制器通信、针对医疗设备之固件开展相应更新以及物联网设备之固件进行更新, 还有针对于嵌入式Linux系统里头的外围设备予以连接。

现如今, 把控 USB 这项技术已然变成嵌入式系统设计当中绝对不可或缺的基础技能了。这篇文章会从 USB 的发展进程开始, 一直到嵌入式开发的基础学问, 全方位去阐释 USB 技术。

USB 出现的背景

个人电脑跟各种电子设备之间用于充电、数据通信以及视频传输的USB(通用串行总线)如今被广泛运用。 1996年以前, 要把外围设备跟个人电脑连接起来少不了要用上各式各样的专用通信接口(PS/2、RS-232C、IEEE1284、SCSI、IEEE1394/FireWire等)。 每一个进行连接的设备都得要有单独的专用线缆, 并且设置的过程繁杂得很。

鉴于这样的情形, 人们怀着强烈的期望想要将个人电脑与外围设备之间的连接予以简化, 英特尔以及微软等公司带头组建起标准组织, 也就是USB-IF: USB实施者论坛公司, 该组织在1996年制订出了USB 1.0标准。

USB 的起始理念, 是给出一个统一的标准, 借由这个标准, 各类设备得以连接到同一个接口, 达成即插即用功能, 也就是在设备处于通电状态时能够随时进行插拔操作, 并且马上就可以使用, 同时还允许从 PC 供电, 这就是总线供电功能。而后, USB 1.1 规范出现了改进, 并且 Windows 对 USB 给予了支持, 凭借这些,其便利性得到了进一步的提升, 进而开始快速地普及开来。

USB被广泛应用的另一个关键因素, 是它具有免许可的特性, 以及为保障通信质量所构建的测试和认证体系。之后, 因要满足不断增长的需求, 支持高速通信的USB 2.0(即USB高速版)出现了, 并且Windows 2000和Windows XP的支持, 让其普及速度进一步加快。

使用 USB 连接电脑和外围设备的配置示意图。

USB标准的演变

如前面所说, USB标准从诞生开始就持续发展演变, 目的是满足更快的数据传输速度以及更高的供电能力的要求。最早的时候, 有两种USB标准的数据传输速度, 一种是1.5 Mbps(LS: 低速), 另一种是12 Mbps(FS: 全速), 不过在USB 2.0推出之后, 速度提高到了480 Mbps(HS: 高速), 之后呢, 又因为USB 3.0、3.1和3.2的推出, 速度进一步上升到了5 - 20 Gbps(SS: 超高速)。

采用 Gen 3x2 通道的最新的 USB4, 其传输速度能够达到 40Gbps。在 2022 年的时候, USB 推广组织宣告推出下一代 USB 标准“USB4 Version 2.0”, 目的在于把传输速度加倍到 80Gbps。

存在一个名为USB Promoter Group的东西, 它是个独立的USB推广组织, 其主要构成是Intel和Apple, 它跟USB标准组织(也就是USB-IF)不一样, 有区别。

另一方向上, 智能手机进行快速充电, 与之相伴随的是, 在其与外围设备间, 大功率供电的求需呈现出日益增长的态势, 这便促使了一种采用 USB Type-C 接口的 USB PD(Power Delivery)标准, 从而相应产生。紧接着, 欧盟作出强制要求, 规定要使用 USB Type-C 充电接口, 目的实则在于减少电子垃圾。

此外, 英特尔与苹果公司联合开发的Thunderbolt 3标准, 它是FireWire的继任者, 其后续版本, 同样采用了USB Type-C。

USB标准、传输速度和供电能力

并非USB PD兼容设备这种情况除外, 要是连接的设备对USB PD的SPR即标准功率范围予以支持, 那么便能够提供最高100W也就是20V/5A的功率, 要是该设备支持USB PD的EPR即扩展功率范围, 那么就可以提供最大240W即48V/5A的功率。除此之外, 在USB PD出现之际, USB电池充电规范1.2于2010年发布, 它的最大供电电流是1.5A。

USB线缆和连接器的类型以及如何正确使用它们

由USB标准所定义的是USB接口的形状, 单个USB端口能够同时开展数据传输以及为外围设备供电。USB具备向下兼容的特性, 这表明只要接口形状相匹配, 那么设备便能够连接。数据传输速度同样受到较低端标准的限制。

它的 connector 形状被划分成了 A 系列、B 系列以及 C 型这几种类型。B 系列存在着标准尺寸、迷你尺寸还有微型尺寸。A 系列同样有着迷你尺寸与微型尺寸 , 并且拥有可供 OTG 用途的迷你 AB 和微型 AB , 然而这些尺寸已经被 C 型给替代掉了 , 因此就省略掉了。

USB 线缆和连接器形状

OTG, 也就是On-The-Go, 是USB 2.0及其后续更高版本新增加的一项规范。这项规范能够让电子设备在不借助电脑的情况下, 实现彼此之间的连接。OTG主要被运用于智能手机、平板电脑以及数码相机。不过呢, 嵌入式设备对于它的需求, 如今也呈现出日益增长的态势。

USB A 系列

有一系列被称作标准A型的, 属于PC端也就是主机端的连接器, 从USB标准创建开始一直持续使用到当前, 常常用来连接像鼠标、键盘、音频设备、存储设备以及打印机等这类外围设备。该连接器里边的塑料部件一般是用白色或者黑色来进行颜色编码的。

制定USB 3.0标准之际, 增添了一条SS(超高速)信号线用以支持超高速传输, 它主要针对数据传输, 应用于需要具备高速通信能力之存储设备, 像U盘、固态硬盘 (SSD)以及机械硬盘 (HDD) , 连接器内部结构有变化, 但外形维持不变, 以此保障能实现向下兼容, 连接器内部之树脂部分变为蓝色, 得以与旧有产品区分开, USB 3.0有时也被称作USB 3.1 Gen1或者USB 3.2 Gen 1。

USB B系列

B系列接口, 是指处于PC外围设备那一侧的接口, 它常常被用于音频设备, 还被运用在存储设备上, 同时也用于打印机, B系列接口涵盖标准B型接口, 此接口主要用于打印机以及台式机硬盘, 它也包含迷你B型接口, 主要用于游戏控制器以及小型外围设备, 另外还有微型B型接口, 主要用于智能手机和平板电脑。

具备标准 B 型接口的物品, 其顶部所采取的是经过改良的连接机制以及形状, 目的在于对 USB 3.0 予以支持。Micro - B 型接口的侧面呈现出加长的态势, 加长的部分跟非标准的部分这二者之间存在着凹槽, 并且也能支持 USB 3.0。除此之外, Mini - B 型接口是不具备支持 USB 3.0 这种能力的。

USB Type-C

Type-C属于最新标准, 它有着对称设计, 可以双向放入。一方面它能够用在主机端一边, 另一方面它亦能作于外围设备一头, 至今已经在各类商品中宽泛运用, 涵盖最新智能手机比如iPhone 15以及更新款机型, 还有Android 12及更高阶段手机型号, 以及平板电脑、笔记本电脑以及显示器这些类型。它因小巧尺寸, 还有不用操心线缆方向就能连接所具备的便利特性, 明显提高了易用程度。

然而, 即便连接器形状一样, 因应用各异, 电缆类型丰富多样, 有兼容USB 2.0 HS的电缆, 有兼容USB 3.2/4用于高速数据传输的电缆, 有不兼容USB PD的电缆, 有兼容USB PD SPR (60W/100W)/EPR的电缆, 还有支持通过DisplayPort替代模式来输出视频的电缆, 以及兼容Thunderbolt的电缆。

要顺带说一下, USB Type-C 数据线存在两种类别, 其一为两端均是 Type-C 接口, 其二为一端是 Standard-A 接口。要是一端是 Standard-A 接口呀, 那么通信标准就仅限定于 USB 3.2 Gen 2x1 (10Gbps) 了, 并且无法运用 USB PD 功能。

用于连接两端的皆为 Type-C 接头的、并且能够支持 SS 信号传输的 USB Type-C 数据线, 被称作是“具备全功能”的数据线, 在市面上存在着大量依照多种不同兼容标准所制定的线缆, 可供大家去进行选择, 用户得依据实际使用用途, 挑选适宜的线缆, 需要留意的是, 因为 USB Type-C 跟 USB 3.1 是在同一时间对外发布的, 所以一直到如今, 并没有在严格意义范畴内的 USB 3.0 Type-C 数据线的定义。

此外, USB 3.2新增两条通道, 且按“Gen 2x2”的标准来命名, 其传输速度是20Gbps , 所以Usb 3.1标准的名称也跟着变了。Thunderbolt 3及更高版本采用USB Type-C接口, 通过主动式支持 , 也就是内置信号放大以及校正功能, 能连接长度超0.8米的线缆 , 而Thunderbolt 4支持长达2米的连接距离。

在使用 USB PD 的侧面, 存在三种类别, 这些类别需全部符合同一个且唯一被名为 USB PD 的标准, 它们是线缆: 其一为 3A 兼容线缆, 当采用 SPR 时,其最大功率计算后为 3A 乘以 20V 得出等于 60W;其二是 5A 兼容线缆, 在采用 SPR 时, 最大功率经计算是 5A 乘以 20V 结果等于 100W, 而当采用 EPR 时, 最大功率经运算为 5A 乘以 48V 等于 240W。为了去确保能够在可靠性以及安全性方面得以保障, 5A 兼容线缆必须要通过 eMarker 认证。

不是所有功能完备的USB Type-C数据线都能支持5A电流, 有些是只支持充电的线缆, 没有USB信号线(但有CC信号线), 还有一些是只支持充电却支持USB 2.0数据传输的线缆, 另外, 不支持USB PD的USB Type-C数据线通常最大电流仅仅为3A。

USB Type-C线缆, 在各个标准的框架下, 有着最大传输速度, 以及线缆长度。

嵌入式系统USB基础知识

本文件对那些从事嵌入式系统开发的人员, 阐述了开展USB开发所必需的基础学问。篇幅是比较长的, 不过请安心阅读, 它会助力您大致知晓USB设备内部的运行原理。

USB 系统配置

单个主机运用专用手段管理整个总线系统, 此系统名为 USB, 当多个外围设备连接到这个主机之下时, 主机就会为系统里的外围设备分配独一无二的地址, 负责管理所有通信, 还会向外围设备发出命令, 端口扩展是借助集线器达成的, 借助集线器可以连接多种用途的大量外围设备, 集线器能够进行级联, 最多可以连接 5 个集线器, 包含集线器在内, 可连接的目标设备数量最多是 127 个。

在属于嵌入式系统的范畴那儿, 一般来看, PC常常起着充当主机的作用, 与之不一样的是, 嵌入式设备则是充当外围设备的角色。嵌入式设备会依据主机所下达的指令, 去执行像发送数据以及接收数据这类的任务。鉴于该设备并不需要去开展复杂的总线管理工作, 所以呢, 其电路会更加简单, 并且成本也会更低。

由主机始终发起的 USB 通信, 采用“主从”架构, 这表明(OTG 除外)外围设备之间无法直接进行通信, 值得提及的是, 基于传统 USB 分层星型拓扑结构的最新 USB4 架构, 也支持菊花链连接, 进而提供了更为灵活的架构。

传输数据什么意思_数据传输显示_

USB连接构造, 规范摘取部分在左边, 以及对此部分相应的说明在右边, 其来源是通用串行总线规范二点零版本。

USB传输方式

一种称作USB的, 乃是串行通信协议。数据借助数据包形式予以交换, 最小的为通信单元且是比特序列块。由多个数据包构成的数据交换, 被叫做一次事务。凡是USB设备, 皆有用于控制目的的控制传输, 并且能够按照需求拥有中断传输、批量传输以及同步传输端点。

1. 控制传输, 其作用在于对设备进行设置, 而且还能够交换控制信息这个物件。此乃所有 USB 设备都得拿来使用的传输模式, 它被运用对初识设备作出各种相关设置, 也就是 USB 枚举环节, 同时主机还能够依靠它获取设备相关信息。

2. 为停止输送把它用于那马上按一定周期地去运送少量的数据, 它主要是被利用在跟人有交互作用的接口装置这儿例如操作键盘和把握器械等, 数据传输是以主机针对装置经过一定周期访问去做出的反应状态被传递 的标点符号。

3. 能够可靠地传输大量数据的, 就是批量传输, 把打印机、扫描仪和 U 盘等存储设备作为主要应用对象所参与的传输活动, 它适用于数据丢失绝对不被接受的诸多应用场景, 虽然因占用所有可用时间进行其他传输方式, 可能会出现延迟, 可它能确保数据传输完成, 在对时间要求并非严格的数据传输范围存在的数据传输活动, 于嵌入式系统当中, 就通常以这样的方式进行, ### Note:- 改写后的文本通过调整表述结构和用词, 增加了句子的复杂性和阅读难度, 同时不失专业性信息的传达。

4. 同步传输, 是专门用在连续传输当中的一种方式, 这种连续传输所面对的则是需要实时性能的流数据, 像音频、视频这一类的, 并且是以在设定的时间这个限制之内去传输一定量的数据作为保障的 如此同步传输则经常被用于相机这种设备以及音频设备的运行模式当中, 其中的要求是比较低速的一种状态。

什么是USB端点?

位于USB设备内部的一个缓冲寄存器叫做端点。主机和USB设备之间的连接只有一对双绞线。从逻辑角度来讲, 主机与端点进行数据收发所借助的是被称作“管道”的多条通信路径。

按照用途不一样, 端点有着多样名称, 像是控制端点以及设备端点。从主机接收数据至设备(设备入站)的端点称作OUT端点, 从设备朝着主机发送数据(设备出站)的端点称作IN端点。尤其要讲的是, 用以初始设置与控制的端点0(默认管道)是双向的, 然而其他数据传输端点是单向的(中断、批量、同步), 每个端点都具备类似FIFO(先进先出)或者RAM的结构, 并且依据应用程序的不同而有着不同用途。

存在于USB通信路径跟端点间的那种关系, 这是基于通用串行总线规范2.0版的。

USB 设备类

为要达成 USB 通信, 需备有主机软件便是驱动程序, 以及设备软件也就是固件。设备类属于一组规范, 是依据外围设备的功能予以分组而定的。那些符合一特定类别的设备, 能够通过被称作类驱动程序的通用驱动程序来推行相关操作。要是设备的固件对这些类予以支持, 就会调用在主机上所安装的标准类驱动程序, 进而让设备可正常开展工作。

例证来讲, 要是您把那种适配 USB 音频类设备类别的 USB 扬声器插进主机里, 那么不用去安装驱动程序就能够运用该 USB 扬声器。USB 标准的 typical 类别是像下面这样展示的。需要留意的是, 针对要去控制具备厂商特定功能(在“厂商特定”类别里界定)的 USB 设备, 您同样得为主机去开发 USB 驱动程序。

USB 设备类和应用示例

USB枚举

USB具备热插拔以及即插即用的特性。当USB设备连接至主机之际, USB枚举所指的是, 主机用以识别该设备同时实现通信的, 那一系列自动交互情况及过程。

为能达成自动识别, 全部USB设备均具备一份设备描述符表, 这些描述符涵盖了安装设备属性及驱动程序所需的全部信息, 在USB插头连接之际,主机能够识别此设备并加载相应驱动程序, 进而让USB设备得以正常运行。

1.主机朝着地址0发出Get Descriptor设备请求, 所有USB设备在连接即刻后的地址都是“0”, 主机依据USB设备的响应知晓该设备能够发送的数据包大小以及它所支持的端点编号。

2.主机发送地址设置请求,并将地址分配给设备。

3.主机发出获取描述符的请求, 目的在于获取有关于设备的更多的信息,这一举动使其可以获取跟设备通信所必需的全部信息。

4.对主机分析描述符信息进行处理, 从中挑选并加载适配于该设备的驱动程序。在把这些步骤全部完成之后, 该设备会处于“已配置”状态, 此时就能够使用了。

USB状态转换

USB设备连接起来后, 它的状态马上就变成了“已连接”, 并且在进行枚举过程当中会依次历经四种状态, 分别是已供电、默认、已寻址以及已配置。要是在这些状态里面都不曾发生状态改变的情况, 那么其状态就会变成“已挂起”。每种状态所处的操作就如同上面所讲述的那样。

1. 连接的 USB 设备已连接到主机。

2. 与主机相连的是带有电源的 USB 设备, 而且负责供电的 Vbus 电源此时正朝着该设备进行供电。

3.已执行默认总线复位,现在可以进行通信。

4. 地址: USB 设备已被分配一个地址。

5.USB 设备已配置:配置完成,设备已准备就绪。

6.要是挂起的总线, 在长达3毫秒或者更久的时间当中, 都不存在状态变化的情况, 就会限制功率的模式。

USB状态转换图(基于通用串行总线规范2.0版创建)

USB OTG

智能手机、平板电脑、相机这类设备广泛采用USB接口了, 无需借助电脑就能直接从这些设备进行打印的需求增长得越来越快了。为了满足这样的需求, USB OTG作为USB 2.0的附加规范被标准化了。为了达成USB设备之间的互操作性, 那么设备就得同时拥有主机功能以及设备功能。同时兼备主机功能与设备功能的USB OTG兼容设备, 被称作双角色设备 (DRD)。

PictBridge标准制定时间大概在2002年前后, 此时间早于OTG标准, 它能让相机在不借助电脑的状况下直接跟打印机相连而且它除了USB接口之外还准许采用红外通信, 当前Wi-Fi打印以及云打印等新技术成了主流, 所以PictBridge的普及率出现了下降。

USB OTG 的一项关键特性在于, 设备能够依照需求来切换主机以及设备角色这么一种情况。因而, USB OTG 增添了一个 ID 信号端子, 用途是去判断设备当下究竟是以主机身份存在还是作为设备扮演角色, 借此达成相应的角色切换这么个举动。于 ID 信号端子处于低电平状态之际, 设备是以主机形式运行;在 ID 信号端子未连接或者处于高电平状态之时, 设备是以设备形式运行。

该ID信号终端, 最初采用的是Mini - AB接口, 以及A/B双用途接口, 后者能够同时兼容Mini - A插头与Mini - B插头。当前, 它已被USB Type - C接口所取代, CC终端, 也就是配置通道终端, 取代了ID信号终端的位置, 并且利用了USB Type - C的DRP功能, 即双角色端口功能。

DRP 得具备在 CC 端子那儿动态切换上拉电阻 (Rp) 以及下拉电阻 (Rd) 的能力, 当连接得设备是 UFP(上行端口)时, DRP 会把 CC 端子往上拉 Rp, 让它变成 DFP(下行端口, 也就是主机侧) , 当连接得设备是 DFP 时, DRP 会把 CC 端子往下拉 Rd, 使它变为 UFP, 借此建立连接 , 一旦 DFP/UFP 状态确立, 电源就会紧接着从 DFP 流向 UFP。

USB OTG 通过使用 HNP(即主机协商协议), 在连接达成之后, 能够动态地去切换主机以及设备角色。比如说, 当日用型手机连接至 U 盘时, 日产手机担当起主机的功能, 为 U 盘供应电力并且开展读写方面的操作。由电池提供电力的设备能够借助 SRP(也就是会话请求协议), 依据自身需求来停止或者请求供应电力。具备双种角色的设备必定要同时对这两种协议予以支持。

展示从 USB Type-C 规范里所提取出的 DRP 功能模型的是下图, 能够看出, CC1/CC2 设有内置开关, 此开关用于在 Rp 之处开展上拉电阻切换的操作, 还用于在 Rd 之处开展下拉电阻切换的操作。

CC1的DRP功能模型, 其出自通用串行总线Type - C电缆和连接器规范2.4版, CC2的DRP功能模型, 同样出自该规范。

总结

USB有着漫长的发展历程, 存在着新旧两种标准。这标准是依据连接器形状 和供电能力等一系列因素而定的 , 所以挑选适宜的标准常常会让人感到困惑。于挑选线缆以及其他配件之际 , 一定要审慎考量所支持的USB该哪种那标准还有预期的用途。 同样的 , 在把USB整合收纳进嵌入式设备之时 , 挑选合适的标准 、设备类别以及连接器的时候 , 也务必要考虑到USB这应用 、线缆的可获取性以及其他相关的一些因素。

虽然USB存在诸多让人困惑之处, 但它使用起来便捷, 只需将电缆插入即可, 正因如此它成为了一种标准, 如今已在各类设备中被广泛运用, 而对用户来说也不可或缺。

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://mjgaz.cn/fenxiang/280524.html

联系我们

在线咨询:点击这里给我发消息

微信号:13588888888

工作日:9:30-18:30,节假日休息