0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

漫谈嵌入式 来源:漫谈嵌入式 2023-05-06 09:48 次阅读

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

7c57145c-eb54-11ed-90ce-dac502259ad0.png

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

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

7c73c80e-eb54-11ed-90ce-dac502259ad0.png

1.4. USB 数据流

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

7c892802-eb54-11ed-90ce-dac502259ad0.png

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

7caeffb4-eb54-11ed-90ce-dac502259ad0.png

2.2. USB 软件模型

7cc977ae-eb54-11ed-90ce-dac502259ad0.png

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

USB host:

客户端软件

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

7ce9bdac-eb54-11ed-90ce-dac502259ad0.png

USB device:


7cfadf60-eb54-11ed-90ce-dac502259ad0.png

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

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

详细软件模型

7d0b7802-eb54-11ed-90ce-dac502259ad0.png

抽象为熟悉的软件模型

7d1fa4e4-eb54-11ed-90ce-dac502259ad0.png

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

3. 总结

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

USB interconnect:通过PIPE 互联传输

USB Host:USB 主机

USB Device:USB 设备和集线器

并简要阐述其软件模型。

审核编辑:汤梓红

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

    关注

    112

    文章

    15223

    浏览量

    171192
  • usb
    usb
    +关注

    关注

    59

    文章

    7432

    浏览量

    258173
  • 通信
    +关注

    关注

    18

    文章

    5706

    浏览量

    134396
  • 集线器
    +关注

    关注

    0

    文章

    334

    浏览量

    39126
  • 总线
    +关注

    关注

    10

    文章

    2706

    浏览量

    87216

原文标题:USB 基础学习:USB 体系结构介绍

文章出处:【微信号:漫谈嵌入式,微信公众号:漫谈嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ARM SoC体系结构

    介绍ARM 的片上系统体系结构
    发表于 03-31 23:03

    ARM SOC体系结构

    ARMSOC 体系结构
    发表于 11-22 10:54

    PSoC 5体系结构中是否存在时钟锁定?

    寄存器TRM提到USB时钟锁定,但没有指定UBSYLID位的位置。PSoC 5体系结构中是否存在时钟锁定?这在架构TRM中没有提到,但那并不是第一个遗漏。-) 以上来自于百度翻译 以下为原文
    发表于 05-16 11:25

    USB驱动程序框架介绍

    《ARM嵌入式Linux系统开发详解》第25章USB驱动开发,本章讲解了Linux内核USB驱动体系结构USB设备驱动结构等知识,并在最后
    发表于 07-11 07:38

    嵌入式体系结构是怎样组成的

    目录一. 嵌入式体系结构二. 开发过程中的分工三. 嵌入式软件体系结构四. 嵌入式Linux 一. 嵌入式体系结构这本书的前三章脉络很清晰, 按照嵌入式系统结构从下往上, 从底层的硬件
    发表于 11-05 07:10

    了解体系结构 - 介绍 Arm 体系结构

    。该体系结构为软件开发人员公开了一个通用的指令集和工作流程,也称为程序员模型。这有助于确保架构的不同实现之间的互操作性,以便软件可以在不同的 Arm 设备上运行。本指南为任何对此感兴趣的人介绍了 Arm
    发表于 08-01 14:35

    ARM同步原件体系结构指南

    本文介绍了ARM中可用的硬件同步原语体系结构,并提供了系统级程序员如何使用它们的示例。
    发表于 08-02 10:59

    Armv9-A体系结构参考手册

    本增补件是Armv9-A体系结构的Arm®体系结构参考手册增补件轮廓本书介绍了Armv9-A体系结构扩展,因此必须与Arm®体系结构参考手册
    发表于 08-08 07:07

    Arm的DRTM体系结构规范

    的原理和术语,但也包含了显著的差异。 本规范的结构如下: •第2节,DRTM体系结构概述,概述了DRTM,并介绍了该体系结构如何将DRTM映射到基于Arm的系统。本节
    发表于 08-08 07:45

    USB设备接口IP核的设计

    USB设备接口IP核的设计:讨论了用Verilog硬件描述语言来实现USB设备接口IP核的方法,并进行了FPGA的验证。简要介绍USB系统的体系结构
    发表于 01-08 18:15 22次下载

    USB体系结构概述

    USB体系结构概述     本章主要内容是关于USB的概述和一些关键的概念。USB是一种电缆总线,支持在主机和各式各样的即插即
    发表于 04-15 20:43 1793次阅读
    <b class='flag-5'>USB</b><b class='flag-5'>体系结构</b>概述

    LTE体系结构

    LTE体系结构 LTE体系结构可以借助SAE 体系结构来做详细描述。在SAE 体系结构中,RNC部分功能、GGSN、SGSN 节点将被融合为一个新的节点,
    发表于 06-16 13:09 9592次阅读

    USB设备驱动开发

    首先对USB总线及USB驱动的体系结构进行介绍,然后分成主机端和设备端来详细介绍
    发表于 11-15 14:41 209次下载
    <b class='flag-5'>USB</b>设备驱动开发

    ARM7体系结构

    ARM7体系结构的详细介绍
    发表于 05-03 09:21 29次下载

    米尔科技ARM体系结构与编程介绍

    《ARM体系结构与编程》分14章对ARM处理器的体系结构、指令系统和开发工具作了比较全面的介绍
    的头像 发表于 11-25 09:18 1704次阅读
    米尔科技ARM<b class='flag-5'>体系结构</b>与编程<b class='flag-5'>介绍</b>