USB3.1协议五比特循环冗余校验的硬件实现方法技术

技术编号:28474110 阅读:23 留言:0更新日期:2021-05-15 21:42
本发明专利技术公开了一种USB3.1协议五比特循环冗余校验的硬件实现方法,其特征在于,应用于USB3.1设备,所述USB3.0设备包括主机、集线器和从设备,所述方法包括发送端对链路控制字和链路命令字的CRC

【技术实现步骤摘要】
USB3.1协议五比特循环冗余校验的硬件实现方法


[0001]本专利技术涉及USB传输领域,具体涉及基于数据位宽展开和冗余项消除的USB3.1协议五比特循环冗余校验的硬件实现方法。

技术介绍

[0002]USB是英文Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。USB接口支持设备的即插即用和热插拔功能。USB标准于1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出,现已经被广泛应用于电脑,手机,数码相机等各种电子设备。
[0003]USB标准由USB官方组织USB

IF制定和维护,从开始至今依次发布了USB1.1,USB2.0,USB3.0,USB3.1,USB3.2和USB4六个版本,新版本前向兼容旧版本。每个版本支持的最大传输速率分布为:USB1.0:1.5Mbps;USB1.1:12Mbps;USB2.0:480Mbps;USB3.0:5Gbps;USB3.1:10Gbps;USB3.2:20Gbps;USB4:40Gbps。
[0004]USB3.1标准协议支持的最大传输速率为10Gbps, 主要有Gen2 (10Gbps)和Gen1(5Gbps)两种工作模式。在编码方式上,USB3.1在Gen2模式中采用了128B/132B的编码方式,相比于USB3.0协议中使用的8B/10B编码方式,有效的提供了带宽的利用率。
[0005]USB3.1的系统架构如图3所示,包含SuperSpeedPlus(Gen2)和SuperSpeed(Gen1)两部分,每部分都包括设备层(Device/Host),协议层(ProtocolLayer),链路层(LinkLayer)和物理层(PhysicalLayer)。
[0006]循环冗余校验码(CRC,Cyclic Redundancy Check)是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在数据后面,接收设备用相同的算法对接收到的数据进行计算,并将结果与收到的循环冗余校验码进行比较,以确定数据传输的正确性和完整性。
[0007]USB3.1协议中的链路控制字(LinkControlWord)和链路命令字(LinkCommand Word)中都使用了CRC

5对数据内容进行保护。
[0008]链路控制字(LinkControlWord)共有2个字节(16比特),内容包括:包头序列号(HeaderSequenceNumber);集线器深度(HubDepth);延时指示位(Delayed);
五比特循环冗余校验值(CRC

5)。
[0009]链路命令字(Link Command Word)有2个字节(16比特),内容包括链路命令信息(Link command Information)和五比特循环冗余校验值(CRC

5)。

技术实现思路

[0010]为解决现有技术的不足,本专利技术的目的在于提供一种通过将算法按照数据位宽进行展开并消除冗余项,缩短了数据生成时的硬件延时,提升了系统的工作频率的基于数据位宽展开和冗余项消除的USB3.1协议五比特循环冗余校验的硬件实现方法。
[0011]为了实现上述目标,本专利技术采用如下的技术方案:基于数据位宽展开和冗余项消除的USB3.1协议五比特循环冗余校验的硬件实现方法,其特征在于,应用于USB3.1设备,所述USB3.1设备包括主机、集线器和从设备,所述方法包括发送端对链路控制字和链路命令字的CRC

5计算方法和接收端对链路控制字和链路命令字的CRC

5计算方法。
[0012]作为本专利技术的进一步优选,所述发送端对链路控制字和链路命令字的CRC

5计算方法,包括以下步骤:一、CRC

5寄存器的初始值为11111,记为crc5[4:0],从高位到低位依次为crc5[4],crc5[3],crc5[2],crc5[1],crc5[0];二、取crc5(n)代表CRC

5寄存器迭代n次后的值,crc5(n+1)为CRC

5寄存器迭代n+1次之后的值,crc5(n)[m]代表CRC

5寄存器迭代n次后第m位的值(m取值从0到4),CRC

5寄存器的初始值为crc5(0)[4:0],当前数据输入位din,基于单步迭代公式;三、在迭代11次之后,进行展开,得到展开结果;四、展开后的表达式中,根据a^a^b=b(a,b为2进制变量)消去冗余项;五、再将crc5(0)的初值11111带入后,根据a^1^1=a (a为2进制变量),进行简化,得到crc5(11)的值;六、将步骤五中迭代11次并化简得到的crc5(11)按位取反并从高位到低位颠倒次序,得到最终的CRC

5计算结果;七、步骤六中的CRC

5计算结果,将最高位(MSB)放到链路控制字或链路命令字的第11位,次高位放到第12位,最低位(LSB)放到第15位,按照从低位到高位的顺序将完整的16比特链路控制字或链路命令字进行发送。
[0013]作为本专利技术的进一步优选,所述接收端对链路控制字和链路命令字的CRC

5计算方法,包括以下步骤:一、CRC

5寄存器的初始值为11111,记为crc5[4:0],从高位到低位依次为crc5[4],crc5[3],crc5[2],crc5[1],crc5[0];二、取crc5(n)代表CRC

5寄存器迭代n次后的值,crc5(n+1)为CRC

5寄存器迭代n+1次之后的值,crc5(n)[m]代表CRC

5寄存器迭代n次后第m位的值(m取值从0到4),CRC

5寄存器的初始值为crc5(0)[4:0],当前数据输入位din,基于单步迭代公式:三、在迭代16次之后,进行展开,得到展开结果;四、展开后的表达式中,根据a^a^b=b(a,b为2进制变量)消去冗余项;五、再将crc5(0)的初值11111带入后,根据a^1^1=a (a为2进制变量),进行简化,
得到crc5(16)的值;六、接收到的链路控制字或链路命令字的CRC

5的校验计算结果应为01100,否则报告CRC

5校验失败。
[0014]作为本专利技术的进一步优选,所述发送端对链路控制字和链路命令字的CRC

5计算方法的步骤二中的单步迭代公式和接收端对链路控制字和链路命令字的CRC

5计算方法的步骤二中的单步迭代公式均为以下公式:crc5(n+1)[0] 本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.USB3.1协议五比特循环冗余校验的硬件实现方法,其特征在于,应用于USB3.1设备,所述USB3.1设备包括主机、集线器和从设备,所述方法包括发送端对链路控制字和链路命令字的CRC

5计算方法和接收端对链路控制字和链路命令字的CRC

5计算方法。2.USB3.1协议五比特循环冗余校验的硬件实现方法,其特征在于,所述发送端对链路控制字和链路命令字的CRC

5计算方法,包括以下步骤:一、CRC

5寄存器的初始值为11111,记为crc5[4:0],从高位到低位依次为crc5[4],crc5[3],crc5[2],crc5[1],crc5[0];二、取crc5(n)代表CRC

5寄存器迭代n次后的值,crc5(n+1)为CRC

5寄存器迭代n+1次之后的值,crc5(n)[m]代表CRC

5寄存器迭代n次后第m位的值,其中,m取值从0到4,CRC

5寄存器的初始值为crc5(0)[4:0],当前数据输入位din,基于单步迭代公式;三、在迭代11次之后,进行展开,得到展开结果;四、展开后的表达式中,根据a^a^b=b,其中,a,b为2进制变量消去冗余项;五、再将crc5(0)的初值11111带入后,根据a^1^1=a,其中,a为2进制变量,进行简化,得到crc5(11)的值;六、将步骤五中迭代11次并化简得到的crc5(11)按位取反并从高位到低位颠倒次序,得到最终的CRC

5计算结果;七、步骤六中的CRC

5计算结果,将最高位MSB放到链路控制字或链路命令字的第11位,次高位放到第12位,最低位LSB放到第15位,按照从低位到高位的顺序将完整的16比特链路控制字或链路命令字进行发送。3.USB3.1协议五比特循环冗余校验的硬件实现方法,其特征在于,所述接收端对链路控制字和链路命令字的CRC

5计算方法,包括以下步骤:一、CRC

5寄存器的初始值为11111,记为crc5[4:0],从高位到低位依次为crc5[4],crc5[3],crc5[2],crc5[1],crc5[0];二、取crc5(n)代表CRC

5寄存器迭代n次后的值,crc5(n+1)为CRC

5寄存器迭代n+1次之后的值,crc5(n)[m]代表CRC

5寄存器迭代n次后第m位的值,其中,m取值从0到4,CRC

5寄存器...

【专利技术属性】
技术研发人员:范凯卢笙陈盈安
申请(专利权)人:芯启源电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1