USB通信协议基础概念

news2025/1/6 9:20:11

文章目录

  • 一、什么是USB
      • 1. **标准化接口**
      • 2. **热插拔**
      • 3. **即插即用**
      • 4. **电源供给**
      • 5. **数据传输速度**
      • 6. **连接类型**
      • 7. **协议和功能**
  • 二、USB的三个部分
      • 1. **USB Host(主机)**
      • 2. **USB Device(设备)**
      • 3. **USB Hub(集线器)**
      • 工作流程
  • 三、USB的拓扑结构
  • 四、USB的地址
      • USB地址的组成和功能
      • 总结


一、什么是USB

USB(Universal Serial Bus,通用串行总线)是一种广泛使用的计算机总线标准,用于连接计算机与外部设备。它定义了一种硬件接口和通信协议,使得设备之间的数据传输和电源供给变得简单和标准化。以下是USB的一些主要特点和功能:

1. 标准化接口

USB提供了一种标准化的接口,可以连接各种设备,如键盘、鼠标、打印机、存储设备(如U盘和外置硬盘)、手机等。

2. 热插拔

USB设备支持热插拔,即在计算机运行时可以随时连接或断开设备,而不需要重新启动计算机。

3. 即插即用

USB设备能够被自动识别和配置,用户只需将设备插入USB端口,操作系统会自动安装所需的驱动程序,并使设备可以使用。

4. 电源供给

USB接口可以为设备提供电源。例如,许多小型设备(如鼠标和键盘)可以直接通过USB接口获得电力。

5. 数据传输速度

USB有不同的版本,每个版本支持不同的数据传输速度:

  • USB 1.1:最高传输速度为12 Mbps(全速)。
  • USB 2.0:最高传输速度为480 Mbps(高速)。
  • USB 3.0:最高传输速度为5 Gbps(超高速)。
  • USB 3.1/3.2:最高传输速度为10/20 Gbps(超高速+)。
  • USB4:支持高达40 Gbps的数据传输速度,并兼容Thunderbolt 3。

6. 连接类型

USB接口有不同的物理形状和类型,包括:

  • USB-A:最常见的矩形接口,通常用于计算机主机。
  • USB-B:通常用于打印机和其他外部设备。
  • USB-C:新型的可逆接口,支持更高的数据传输速率和充电功率。
  • Micro-USBMini-USB:主要用于移动设备和旧款设备。

7. 协议和功能

USB协议包括各种功能和传输模式,如控制传输、批量传输、等时传输和中断传输。它支持各种设备类型,从简单的输入设备到复杂的存储设备和网络设备。

USB的普及和标准化使得计算机与外部设备之间的连接变得更加便捷和高效。

二、USB的三个部分

USB系统通常由三个主要组件组成:USB Host(主机)、USB Device(设备)和USB Hub(集线器)。它们各自扮演着不同的角色,并一起协作实现USB的功能。

1. USB Host(主机)

定义: USB Host 是管理USB总线并控制USB设备的组件。它通常是计算机或其他主控设备,负责与USB设备进行通信和数据交换。

功能:

  • 设备管理: 负责检测、识别和配置连接到USB端口的设备。
  • 电源供给: 向USB设备提供电源。
  • 数据传输: 负责管理数据传输,包括数据请求和响应。
  • 控制协议: 主机使用USB协议来控制数据传输的过程。

示例: 个人电脑、笔记本电脑、智能手机、游戏主机等。

2. USB Device(设备)

定义: USB Device 是连接到USB总线的外部硬件设备。它可以是各种类型的外设,如存储设备、输入设备、打印机等。

功能:

  • 提供功能: 执行具体的功能,如存储数据、输入数据或进行输出。
  • 响应请求: 根据主机的请求进行数据传输或执行操作。
  • 电源接收: 从USB主机接收电源供电(如果设备设计为通过USB供电)。

示例: U盘、鼠标、键盘、打印机、相机等。

3. USB Hub(集线器)

定义: USB Hub 是一种用于扩展USB接口的设备。它允许多个USB设备通过一个USB端口连接到USB主机。USB Hub可以是内置的(如电脑内部)或外置的(如独立的集线器设备)。

功能:

  • 接口扩展: 增加更多的USB端口,允许多个设备同时连接到主机。
  • 信号中继: 转发主机和连接设备之间的信号。
  • 电源分配: 向连接的设备提供电源(有些集线器具有外部电源适配器来支持更多的设备)。

类型:

  • 主动集线器: 带有外部电源适配器,可以提供更多的电流。
  • 被动集线器: 仅通过USB主机供电,不支持高功耗设备。

示例: 独立USB集线器、计算机内部的USB扩展卡等。

工作流程

  1. 连接: USB设备通过USB端口连接到USB主机或USB Hub。
  2. 识别: USB主机检测到设备的连接,进行识别和配置。
  3. 通信: 主机和设备通过USB协议进行数据交换。USB Hub在多个设备之间分配信号和电源。
  4. 数据传输: 数据通过USB总线从设备传输到主机,或从主机传输到设备。

USB的这三个部分协同工作,使得设备之间的数据交换和电力供应变得高效和可靠。

三、USB的拓扑结构

USB的拓扑结构是通过层次化的设计来组织和管理USB设备。USB系统的拓扑结构由多个层次组成,从主机到设备,确保数据和电源能够有效地传输。

USB拓扑结构:

以 HOST-ROOT HUB为 起 点 , 最 多 支 持 7 层(Tier),也就是说任何一个
USB 系统中最多可以允许 5个 USB HUB 级联。一个复合设备(Compound Device)将同时占据两层或更多的层。
在这里插入图片描述
2. Root Hub(根集线器)
定义: Root Hub 是USB Host Controller的一部分,通常是计算机内部的一个组件。它是USB总线的根节点,为USB主机提供连接端口。

功能:

端口管理: Root Hub 提供多个物理USB端口,用于连接USB设备和其他集线器。它是USB总线的起点,连接所有直接或间接连接的设备。
电源分配: Root Hub 向连接的设备提供电源。每个USB端口能够为设备提供电力,通常是5V直流电。
信号传递: Root Hub 将主机发出的数据和控制信号传递给连接的USB设备,也将设备的响应信号传递回主机。
位置:

内部集成: 在计算机主板上,Root Hub 是Host Controller的一部分,直接集成在主板上的USB控制器中。
独立设备: 在某些外部USB集线器中,Root Hub 也可能作为集线器的一部分,提供多个USB端口。

四、USB的地址

在USB系统中,每个USB设备都有一个唯一的地址,用于在总线上标识和区分不同的设备。USB地址的分配和管理是USB通信中的关键部分。以下是关于USB地址的详细讲解:

USB地址的组成和功能

  1. USB设备地址(Device Address)

    定义: 每个USB设备在连接到USB总线时,都会被分配一个唯一的地址,称为设备地址。这个地址用于在总线上标识和识别设备。

    功能:

    • 唯一性: 设备地址确保每个USB设备在总线上具有唯一标识,从而避免冲突。
    • 数据传输: 主机使用设备地址来指定数据传输的目标设备。
    • 通信管理: 设备地址使主机能够与多个设备进行有效的通信,进行设备枚举和配置。

    地址分配过程:

    • 初始连接: 当一个USB设备首次连接到总线时,它还没有被分配设备地址。此时,设备被称为“默认地址”。
    • 设备枚举: 主机通过发送控制传输请求(如SET_ADDRESS请求)来分配一个唯一的设备地址给设备。设备在分配地址后会开始使用这个地址进行数据通信。
    • 地址范围: USB设备地址是7位的(从0到127),但地址0通常保留给根集线器和设备枚举过程使用。实际可用的设备地址范围是1到127。
  2. USB端口地址(Port Address)

    定义: 每个USB设备连接到主机的端口也有一个唯一的地址,称为端口地址。端口地址用于标识连接设备的具体端口。

    功能:

    • 设备管理: 主机使用端口地址来管理和控制连接设备的端口。
    • 电源管理: 主机可以通过端口地址控制设备的电源状态,例如开启或关闭供电。
    • 设备重置: 主机可以通过端口地址向设备发送复位信号,重新初始化设备。
  3. USB端点地址(Endpoint Address)

    定义: 每个USB设备不仅有一个唯一的设备地址,还有多个端点,每个端点有一个唯一的端点地址。端点是USB设备内部的逻辑实体,用于实现不同类型的数据传输。

    功能:

    • 数据传输: 端点地址用于标识设备内部的特定端点,以进行数据的发送和接收。
    • 传输类型: 端点地址与传输类型(控制、批量、中断、等时)相关联。每个端点可以用于不同的数据传输模式。
    • 地址范围: 端点地址是4位的(从0到15),每个设备的端点地址范围是0到15。

总结

  • USB设备地址 是一个唯一的标识符,用于在USB总线上识别和管理设备。设备地址在设备连接时分配,并用于数据传输和通信管理。
  • USB端口地址 标识连接设备的具体端口,用于设备管理、电源控制和复位。
  • USB端点地址 用于标识设备内部的特定端点,每个端点有其唯一的地址,并用于不同的数据传输类型。

这些地址系统确保了USB设备能够被准确识别、管理和通信,从而实现稳定和高效的数据交换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2112947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu 22.04 make menuconfig 失败原因

先 安装一些配置 linux下使用menuconfig需要安装如下库_menuconfig 安装-CSDN博客 然后 cd 到指定源代码 需要在内核文件目录下编译 Linux 内核源码(kernel source)路径_--kernel-source-path-CSDN博客 make menuconfig 又报错 说是gcc 12什么什么&…

Linux概述、远程连接、常用命令

Linux介绍 Linux操作系统介绍 Linux操作系统的特点 开源免费安全稳定可移植性好 Linux可以安装在不同的设备上 高性能 Linux的使用领域 应用服务器数据库服务器网络服务器虚拟化云计算嵌入式领域个人PC移动手机 Linux文件系统和目录 /:根目录,唯一/h…

RT-Thread(Nano版本)的快速移植(基于NUCLEO-F446RE)

目录 概述 1 RT-Thread 1.1 RT-Thread的版本 1.2 认识Nano版本 2 STM32F446U上移植RT-Thread 2.1 STM32Cube创建工程 2.2 移植RT-Thread 2.2.1 安装RT-Thread Packet 2.2.2 加载RT-Thread 2.2.3 匹配相关接口 2.2.3.1 初次编译代码 2.2.3.2 匹配端口 2.2.4 移植FinSH…

基于飞腾平台的Hive的安装配置

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适…

Matplotlib 颜色设置详解

在使用matplotlib进行颜色绘制的时候,如绘制图表、背景色或者对文字设置的时候都可以配置颜色, 以下说明主流的三种颜色使用方法 颜色名称 可以是直接使用颜色名称的字符串对color进行赋值,包括可以使用首字母缩写或者完整拼写的形式,以下为部分颜色的书写形式 缩写版 • …

机器学习课程学习周报十一

机器学习课程学习周报十一 文章目录 机器学习课程学习周报十一摘要Abstract一、机器学习部分1.1 再探GAN的数学原理1.1.1 似然与概率1.1.2 GAN和最大似然估计1.1.3 最大后验概率 1.2 WGAN1.3 GAN的性能评估方法1.4 条件型生成 总结 摘要 本周的学习主要围绕生成对抗网络&#…

详细介绍msvcr120.dll文件以及修复msvcr120.dll丢失的几种方法

遇到“msvcr120.dll丢失”错误通常会在尝试运行某些程序时发生,这类错误提示“程序无法启动,因为您的计算机缺少msvcr120.dll文件。”这可能导致许多用户感到困扰和不便。有几个步骤可以帮助你轻松修复“msvcr120.dll丢失”错误,保证应用程序…

Linux新建虚拟机Ubuntu详解

1. 打开软件,点击新建虚拟机; 2. 选择典型; 3. 点击稍后安装操作系统后,点击下一步; 4. 选择客户机操作系统以及版本,这里我们选择Ubuntu 64位; 5. 给虚拟机命名以及新建文件夹存放虚拟机位置&…

bat批处理实现从特定文件夹中提取文件内容并以父文件夹名存储

1、需求分析 标题是bat批处理实现从特定文件夹中提取文件内容并以父文件夹名存储。这里面我们要做的工作是: ①、批处理脚本使用的是bat文件; ②、文件夹下面有很多子文件夹,然后子文件夹下仍然有相同的文件结构,我们需要从三级…

创业者必读!选择拍卖源码还是自建开发,哪种方案更安全?

在当今数字化时代,拍卖平台作为一种独特的电子商务模式,正逐渐成为人们关注的焦点。随着互联网技术的发展,网络安全问题变得越来越突出。如何保障用户数据安全,防止信息泄露及攻击事件的发生,已经成为拍卖软件开发者面…

面试必备:接口自动化测试精选面试干货

一、 请问你是如何做接口测试的? 大体来说,经历以下过程:接口需求调研、接口测试工具选择、接口测试用例编写、接口测试执行、接口测试回归、接口测试自动化持续集成。具体来说,接口测试流程分成以下九步: 第一步&am…

HMI设计:嵌入式设备和电脑的差异化,工控领域首选。

嵌入式设备属于专机专用,电脑是通用,从性能、用途、特殊能力、成本、通信上嵌入式设备完全优于电脑,是工控领域的首选。 嵌入式设备和电脑在很多方面有着显著的差异,主要体现在以下几个方面: 1. 设计用途&#xff1a…

算法练习题17——leetcode54螺旋矩阵

题目描述 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 代码 import java.util.*;class Solution {public List<Integer> spiralOrder(int[][] matrix) {// 用于存储螺旋顺序遍历的结果List<Integer>…

神经网络训练不起来怎么办(零)| General Guidance

摘要&#xff1a;模型性能不理想时&#xff0c;如何判断 Model Bias&#xff0c; Optimization&#xff0c; Overfitting 等问题&#xff0c;并以此着手优化模型。在这个分析过程中&#xff0c;我们可以对Function Set&#xff0c;模型弹性有直观的理解。关键词&#xff1a;模型…

SnapGene 2.3.2软件下载安装教程百度网盘分享链接地址

SnapGene简介&#xff1a;SnapGene 2.3.2软件下载安装教程百度网盘分享链接地址&#xff0c;SnapGene 是一款超厉害的分子生物学软件。它最初由美国公司开发&#xff0c;后来换了东家。 这款软件功能多样&#xff0c;在序列编辑分析方面表现出色&#xff0c;能轻松搞定 DNA 序列…

Android Dialog:Dialog和DialogFragment的区别?DialogFragment如何使用?源码解析

目录 一、Dialog和DialogFragment的区别 Android在DialogFragment推出后&#xff0c;就已经不推荐继续使用Dialog&#xff0c;可替换为DialogFragment&#xff1a; 更好的生命周期管理&#xff1a;DialogFragment能够自动处理Activity的生命周期事件&#xff0c;确保对话框在…

Python 从入门到实战9(集合)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;通过熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们通过举例学习了python 中字典的定义及相关操作。今天…

模型训练套路(一)

一、训练完整使用网络模型 import torch import torchvision from torch import nn from torch.utils.data import DataLoaderfrom model1 import* # 此处的引用为此文在实现过程中所解决的问题 train_data torchvision.datasets.CIFAR10(root "../data", trainT…

63、Python之函数高级:装饰器缓存实战,优化递归函数的性能

引言 通过前面的文章&#xff0c;我们已经掌握了Python中常用的装饰器的使用技巧&#xff0c;这篇文章中&#xff0c;我们通过一个装饰器的实战案例&#xff0c;来进一步加深对装饰器的适用场景的理解。 本文的主要内容有&#xff1a; 1、递归函数 2、递归实现斐波那契数列…

AWTK HTML View 控件更新

AWTK HTML View 控件基于 Lite HTML 实现&#xff0c;从最初的版本开始&#xff0c;3 年多过去了&#xff0c;Lite HTML 做了大量的更新&#xff0c;最近抽空将 AWTK HTML View 控件适配到最新版本的 Lite HTML&#xff0c;欢迎大家使用。 AWTK HTML View 控件。HTML View 控件…