USB 1.1/2.0 vs USB 3.0 纠错机制对比

张开发
2026/4/21 13:20:45 15 分钟阅读
USB 1.1/2.0 vs USB 3.0 纠错机制对比
一、数据类型的差异USB 1.1仅 DATA0/DATA1 两种数据 PID靠交替纠错。USB 2.0新增 DATA2/MDATA适配高速分裂事务与高带宽等时传输。USB 3.0不沿用 DATA2/MDATA重构为4大类实现更高效的链路管理与 ARQ 重传机制。二、错误检测手段对比维度USB 1.1 / 2.0 (低速 / 全速 / 高速)USB 3.0 (超高速)数据 PIDDATA0/DATA1 (USB 2.0 增加 DATA2/MDATA)无改用序列号校验机制CRC5 (令牌 / 握手) CRC16(数据)CRC16 (包头)CRC32 (数据负载)错误识别PID 交替 超时检测序列号检查 双 CRC 校验重传机制主机发起、事务级重试链路层自动 ARQ(无需主机干预)物理层NRZI 编码、半双工8b/10b 编码、全双工、链路训练2.1 USB 1.0 / 1.1 / 2.0 纠错机制低速 / 全速 / 高速2.1.1 错误检测机制【1】PID 校验4 位 4 位取反包 ID 前 4 位 后 4 位取反接收方必须匹配否则直接丢弃包【2】CRC 校验双层令牌包 / 握手包CRC5校验地址、端点数据包DATA0/DATA1/DATA2/MDATACRC16校验数据负载不匹配 → 判定损坏不回复握手包。【3】位填充错误 / EOP 错误违反 NRZI 位填充规则、结束符错误 →直接丢弃。【4】超时检测发完包后收不到 ACK/NAK/STALL → 判定超时 / 丢失。2.1.2 核心纠错USB数据包就是用来传输数据的之所以有不同类型的数据包是用于当握手包出错时纠错。纠错原理DATA0 / DATA1 交替 靠“序号交替”来简单判断上一包有没有成功。主机和设备都会维护自己的一个数据包类型切换机制主要指DATA0/DATA1 当数据包成功发送或者接收时数据包类型切换当检测到对方所使用的数据包类型不对时USB系统认为发生生了错误并试图恢复。常发生情形握手包被损坏。正常成功收发 → 翻转 PIDDATA0 ↔ DATA1异常收方CRC 错 → 不回复 → 发方超时 → 保持原 PID 重发ACK损坏 → 发方以为失败保持 PID收方已翻转 → 下一包 PID不匹配 → 收方识别为重复包 → 丢弃并重发 ACKUSB 2.0 扩展DATA2 / MDATA 用于高带宽等时 / 分裂事务仍沿用 “成功翻转、失败保持” 逻辑。2.2 USB3.0 纠错机制USB 3.0序列号 链路级自动重传核心数据包携带循环序列号链路层独立完成错误检测与重传。逻辑接收方通过序列号识别丢包、重复包直接向发送方请求重传。恢复链路层自动重传ARQ无需主机参与效率更高。2.2.1 物理层底层抗错差分信号 8b/10b 编码直流平衡、时钟自同步、可检测部分位错误。链路训练动态调整信号均衡、去加重减少误码率。2.2.2 链路层核心纠错完全重构双 CRC 强校验包头CRC16数据负载CRC32远强于 USB2.0 的 CRC16序列号Sequence Number0~127 循环严格按序收发识别丢包序号不连续重复包序号已接收过错序包链路级 ACK/NAK 自动重传ARQ收方检测错误 → 直接回NAK→ 发方立即重传无需主机干预收方正确 → 回ACK→ 发方滑动窗口前进信用流控Credit避免拥塞丢包减少错误触发。2.2.3 协议层不使用 DATA0/DATA1/DATA2/MDATA完全用序列号 链路 ARQ替代更可靠、效率更高。等时时戳包ITP同步等时传输时序优先、少量错误可容忍。

更多文章