USB(通用串行总线)数据传输机制和包结构简介

news2025/5/18 16:59:13

目录

    • 1. USB的物理连接
      • 电缆结构
      • 时钟恢复技术
    • 2. USB的数据传输方式
      • 包(Packet)
    • 3. 包的传输规则
      • 帧和微帧
    • 4. 包的结构
      • 1. 同步字段(Sync)
      • 2. 包标识符字段(PID)
      • 3. 数据字段
      • 4. 循环冗余校验字段(CRC)
      • 5. 包结尾字段(EOP)

1. USB的物理连接

电缆结构

USB的主机(如电脑)和设备(如鼠标、键盘)之间通过4根线连接:

  • 差分数据线(2根):用于传输数据。
    • 这两根线通过差分信号(一种特殊的电压变化方式)传输数据,可以提高抗干扰能力。
    • 适用于高速、全速和低速传输。
  • 电源线(1根):提供5V电力,为设备供电。
  • 地线(1根):作为电流回路,确保电路正常工作。

时钟恢复技术

  • 没有时钟线(clk):与SPI、I2C等协议不同,USB没有单独的时钟线。
  • 如何同步?
    接收端通过数据时钟恢复电路,从接收到的数据信号中“提取”时钟信号,从而同步数据传输。
    • 类比:就像看一场电影,虽然没有人告诉你“现在是第几帧”,但通过画面内容的变化(数据)可以推断时间(时钟)。

2. USB的数据传输方式

包(Packet)

  • 什么是包?
    USB将所有信息(数据、命令、配置等)封装成,作为传输的基本单元。
    • 类比:快递包裹,每个包裹里装着需要传递的内容(数据),并贴上标签(标识符)说明用途。
      在这里插入图片描述

3. 包的传输规则

帧和微帧

  • 帧(Frame)
    • USB全速(FS)和低速(LS)设备的数据传输必须在**1毫秒(ms)**的帧时间内完成。
    • 类比:每秒钟有1000个“时间窗口”,每个窗口1ms,数据只能在这个窗口内传输。
  • 微帧(Microframe)
    • USB高速(HS)设备将1ms的帧进一步分成8个微帧,每个微帧125微秒(μs)。
    • 类比:把1秒分成更小的“时间片段”,提高传输效率。

4. 包的结构

一个完整的USB包由以下5部分组成:

1. 同步字段(Sync)

  • 作用:让接收端的时钟与发送端对齐,确保数据正确接收。
    • 类比:两个人通话前先喊“同步一下”,确保双方节奏一致。

2. 包标识符字段(PID)

  • 作用:说明包的类型,例如:
    • 数据包:传输实际数据。
    • 令牌包:用于设备寻址(如主机告诉设备“我要和你通信”)。
    • 握手包:确认数据是否正确接收(如“收到”或“重发”)。
    • 类比:信封上的“快递”“挂号”等标签,告诉接收方如何处理。

3. 数据字段

  • 作用:存放实际要传输的数据。
    • 数据长度根据USB速度和用途以下是图片中关于USB(通用串行总线)数据传输机制和包结构的详细解释,以小白易懂的方式分点说明:

4. 循环冗余校验字段(CRC)

  • 作用:检测数据是否在传输中出错。
    • 原理:发送端生成一个“校验码”附加到包中,接收端用相同算法计算并对比,若不一致则说明数据错误。
    • 长度:根据USB速度不同,CRC可能是5位、16位或32位。
    • 类比:快递包裹的“防伪码”,收件人扫描后确认包裹是否被中途篡改。

5. 包结尾字段(EOP)

  • 作用:标记包的结束,通知接收端“数据已完整接收”。
    • 类比:信封上的邮戳,表示这封信的结束。

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

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

相关文章

【目标检测】【深度学习】【Pytorch版本】YOLOV3模型算法详解

【目标检测】【深度学习】【Pytorch版本】YOLOV3模型算法详解 文章目录 【目标检测】【深度学习】【Pytorch版本】YOLOV3模型算法详解前言YOLOV3的模型结构YOLOV3模型的基本执行流程YOLOV3模型的网络参数 YOLOV3的核心思想前向传播阶段反向传播阶段 总结 前言 YOLOV3是由华盛顿…

IdeaVim-AceJump

‌AceJump 是一款专为IntelliJ IDEA平台打造的开源插件,旨在通过简单的快捷键操作帮助用户快速跳转到编辑器中的任何符号位置,如变量名、方法调用或特定的字符串‌。无论是大型项目还是日常编程,AceJump 都能显著提升你的代码导航速度和效率。…

DayDreamer: World Models forPhysical Robot Learning

DayDreamer:用于物理机器人学习的世界模型 Philipp Wu* Alejandro Escontrela* Danijar Hafner* Ken Goldberg Pieter Abbeel 加州大学伯克利分校 *贡献相同 摘要:为了在复杂环境中完成任务,机器人需要从经验中学习。深度强化学习是机器人学…

Flutter vs React Native:跨平台移动开发框架对比

文章目录 前言1. 框架概述什么是 Flutter?什么是 React Native? 2. 性能对比Flutter 的性能表现React Native 的性能表现总结: 3. 开发体验对比3.1 开发效率3.2 UI 组件库 4. 生态系统对比5. 适用场景分析6. 结论:如何选择&#x…

用matlab搭建一个简单的图像分类网络

文章目录 1、数据集准备2、网络搭建3、训练网络4、测试神经网络5、进行预测6、完整代码 1、数据集准备 首先准备一个包含十个数字文件夹的DigitsData,每个数字文件夹里包含1000张对应这个数字的图片,图片的尺寸都是 28281 像素的,如下图所示…

【AI4CODE】5 Trae 锤一个基于百度Amis的Crud应用

【AI4CODE】目录 【AI4CODE】1 Trae CN 锥安装配置与迁移 【AI4CODE】2 Trae 锤一个 To-Do-List 【AI4CODE】3 Trae 锤一个贪吃蛇的小游戏 【AI4CODE】4 Trae 锤一个数据搬运工的小应用 1 百度 Amis 简介 百度 Amis 是一个低代码前端框架,由百度开源。它通过 J…

npm webpack打包缓存 导致css引用地址未更新

问题如下: 测试环境配置: publicPath: /chat/,生产环境配置: publicPath: /,css中引用背景图片 background-image: url(/assets/images/calendar/arrow-left.png);先打包测试环境,观察打包后的css文件引用的背景图片地址 可以全…

ollama导入huggingface下载的大模型并量化

1. 导入GGUF 类型的模型 1.1 先在huggingface 下载需要ollama部署的大模型 1.2 编写modelfile 在ollama 里面输入 ollama show --modelfile <你有的模型名称> eg: ollama show --modelfile qwen2.5:latest修改其中的from 路径为自己的模型下载路径 FROM /Users/lzx/A…

Java 集合 Map Stream流

目录 集合遍历for each map案例 ​编辑 这种数组的遍历是【index】​编辑map排序【对象里重写compareTo​编辑map排序【匿名内部类lambda​编辑 stream流​编辑 ​编辑获取&#xff1a; map的键是set集合&#xff0c;获取方法map.keySet() map的值是collection 集合&…

【网络安全实验】PKI(证书服务)配置实验

目录 一、PKI相关概念 1.1 定义与核心功能 1.2 PKI 系统的组成 1.证书颁发机构&#xff08;CA, Certificate Authority&#xff09; 2.注册机构&#xff08;RA, Registration Authority&#xff09; 3.数字证书 1.3 PKI 的功能 1.4 PKI认证体系&#xff1a; 工作流程 …

【数据集】多视图文本数据集

多视图文本数据集指的是包含多个不同类型或来源的信息的文本数据集。不同视图可以来源于不同的数据模式&#xff08;如原始文本、元数据、网络结构等&#xff09;&#xff0c;或者不同的文本表示方法&#xff08;如 TF-IDF、词嵌入、主题分布等&#xff09;。这些数据集常用于多…

学透Spring Boot — 007. 七种配置方式及优先级

Spring Boot 提供很多种方式来加载配置&#xff0c;本文我们会用Tomcat的端口号作为例子&#xff0c;演示Spring Boot 常见的配置方式。 几种配置方式 使用默认配置 新建一个项目什么都不配置&#xff0c;Spring Boot会自动配置Tomcat端口号。 启动日志 TomcatWebServer :…

【youcans论文精读】弱监督深度检测网络(Weakly Supervised Deep Detection Networks)

欢迎关注『youcans论文精读』系列 本专栏内容和资源同步到 GitHub/youcans 【youcans论文精读】弱监督深度检测网络 WSDDN 0. 弱监督检测的开山之作0.1 论文简介0.2 WSDNN 的步骤0.3 摘要 1. 引言2. 相关工作3. 方法3.1 预训练网络3.2 弱监督深度检测网络3.3 WSDDN训练3.4 空间…

【服务日志链路追踪】

MDCInheritableThreadLocal和spring cloud sleuth 在微服务架构中&#xff0c;日志链路追踪&#xff08;Logback Distributed Tracing&#xff09; 是一个关键需求&#xff0c;主要用于跟踪请求在不同服务间的调用链路&#xff0c;便于排查问题。常见的实现方案有两种&#x…

【行测】判断推理:图形推理

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;读不在三更五鼓&#xff0c;功只怕一曝十寒。 > 目标&#xff1a;掌握 图形推理 基本题型&#xff0c;并能运用到例题中。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! …

3D模型给可视化大屏带来了哪些创新,都涉及到哪些技术栈。

一、3D 模型给可视化大屏带来的创新 更直观的视觉体验 传统的可视化大屏主要以二维图表和图形的形式展示数据&#xff0c;虽然能够传达一定的信息&#xff0c;但对于复杂的场景和数据关系&#xff0c;往往难以直观地呈现。而 3D 模型可以将数据以三维立体的形式展示出来&#…

Unity HDRP管线用ShaderGraph还原Lit,方便做拓展;

里面唯一的重点就是判断有无这张复合图&#xff0c;我用的是颜色判断&#xff1a; float Tex TexCol.r*TexCol.g*TexCol.b*TexCol.a; if(Tex 1) { IsOrNot 1; } else { IsOrNot 0; } 其他的正常解码就行&#xff0c;对了法线贴图孔位记得设置成normal&#xff0c;不然的话…

绝缘升级 安全无忧 金能电力环保绝缘胶垫打造电力安全防护新标杆

在电力安全领域&#xff0c;一块看似普通的胶垫&#xff0c;却是守护工作人员生命安全的“第一道防线”。近年来&#xff0c;随着电网设备升级和环保要求趋严&#xff0c;传统绝缘胶垫有异味、易老化、绝缘性能不足等问题逐渐暴露。为此&#xff0c;金能电力凭借技术创新推出新…

Linux命令-iotop

iotop 命令 iotop 是一个用于实时监控磁盘 I/O 活动的工具&#xff0c;可以显示哪些进程正在使用磁盘资源。 参数 描述 –version 显示程序版本号并退出 -h, --help 显示此帮助消息并退出 -o, --only 仅显示实际进行 I/O 操作的进程或线程 -b, --batch 非交互模式&#xff0c;适…

QTableWidget 中insertRow(0)(头插)和 insertRow(rowCount())(尾插)的性能差异

一、目的 在 Qt 的 QTableWidget 中&#xff0c;insertRow(0) &#xff08;头插&#xff09;和 insertRow(rowCount())&#xff08;尾插&#xff09;在性能上存在显著差异。 二、QAbstractItemModel:: insertRows 原文解释 QAbstractItemModel Class | Qt Core 5.15.18 AI 解…