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

目录

    • [1. USB的物理连接](#1. USB的物理连接)
    • [2. USB的数据传输方式](#2. USB的数据传输方式)
    • [3. 包的传输规则](#3. 包的传输规则)
    • [4. 包的结构](#4. 包的结构)
      • [1. 同步字段(Sync)](#1. 同步字段(Sync))
      • [2. 包标识符字段(PID)](#2. 包标识符字段(PID))
      • [3. 数据字段](#3. 数据字段)
      • [4. 循环冗余校验字段(CRC)](#4. 循环冗余校验字段(CRC))
      • [5. 包结尾字段(EOP)](#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)

  • 作用 :标记包的结束,通知接收端"数据已完整接收"。
    • 类比:信封上的邮戳,表示这封信的结束。
相关推荐
Ronin-Lotus4 天前
嵌入式硬件篇---USB&UART串口
嵌入式硬件·c·uart·usb
lindorx1 个月前
记一次误禁用USB导致键盘鼠标失灵的修复过程
windows·计算机外设·注册表·usb·hotpe
小仇学长2 个月前
Linux内核编程(二十一)USB驱动开发
linux·驱动开发·usb
ZenasLDR3 个月前
Type-C充电与智能家居的结合
接口·芯片·usb
ZenasLDR3 个月前
Type-C双屏显示器方案
接口·usb
OopspoO3 个月前
USB学习——基本概念
usb
复园电子3 个月前
朝天椒USB服务器在三枪集团财务中心的应用
运维·服务器·github·远程连接·usb
复园电子3 个月前
朝天椒USB服务器在银泰证券虚拟化超融合场景的应用案例
运维·服务器·github·usb