USB3.2超高速GEN1 8b/10b编码概述
2021-06-01
2015
1
USB3.2 GEN1的物理层PHY使用的是8b/10b编码。
USB3.2GEN1即USB3.0使用的8b/10b编码是对数据从8位到10的编码扩展。
如对于发送的数据1字节,其各位从低到高记作 ABCDEFGH,这里将其分为2组,低5位一组,高3位一组。
高3位的FGH被编码为fghj,低5位的ABCDE被编码为 abcdei,这样对于任一8位的数据,都将被编码为10位数据。
USB3.2 GEN1的物理层PHY数据收发的编解码如下图:
- 关于8b/10b编码的规范可参见 ANSI X3.230-1994规范或 ANSI INCITS 230-1994。
- 本站还有一篇相对比较详细的文章:USB3.0硬件编码格式-8B/10B编码 http://www.usbzh.com/article/detail-233.html
USB3.2 GEN1 8b/10b编码后的数据的序列化和反序列化
数据在最后发送和接收时,都是按位进行发送或接收的,所以就涉及数据的序列化和反序列化。
对于任一8位的数据【LSB】ABCDEFG【MSB】,其编码后为【LSB】abcde ifghj【MSB】,数据按从低到高位的顺序进行发送,即LSB到MSB。
这样在数据接收时,每10位接收一节,这10位都是以a位开头,以i位结束。
USB3.2超高速GEN1 8b/10b编码规则
串行通行存在着时钟同步问题,故在数据收发前应先进行时序同步。
- 发送器在进行数据发送前,允许拾取时序差异,然后对数据进行8b/10b的编码,数据发送,直至到空闲态。
- 接收器的初始时序差异指的是接收第一个symbol锁的差异。
- 由于突发错误或Symbol锁的丢失,时序差异可以重新初始化。
- 初始化时序差后,后续的数据传输应都在此时序差序列中。
- 接收差异错误不会直接导致链路重新训练。
- 如果检测到视差错误或8b/10解码错误,物理层应通知链路层。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936