数据传输加扰和解扰电路、发送和接收装置及系统
技术领域
本发明涉及通信技术领域,特别是涉及数据传输加扰和解扰电路、发送和接收装置、及系统。
背景技术
USB3.1和PCI-Express 3.0协议中使用了相同的scramble和descramble多项式,协议的物理层(Physical Layer)负责对发出的数据进行scramble处理,并对接收到的数据进行 descramble处理。线性反馈的多项式为:F(X)=X23+X21+X16+X8+X5+X2+1。
USB3.1和PCI-Express 3.0协议定义了单比特的scramble(加扰)和descramble(解扰) 实现方案,如图1所示:
图1的实现方案每个工作周期输入一个固定位宽(如16位,32位或64位等)的数据data_in,进行scramble并输出结果data_out,方案中使用了23位的线性反馈移位寄存器(LFSR),输入数据按照小数端(LSB)由低到高逐位进行迭代和运算,scramble的具体运算步骤为:将输入数据data_in的最低位D0与LFSR的最高位D22进行异或,得到输出数据 data_out的最低位;将LFSR按照图1中所示的电路结构(对应多项式:X23+X21+X16+X8 +X5+X2+1)进行单比特(bit)移位,得到新的LFSR的值。
Descramble是将scramble后的伪随机数恢复成原输入数据的运算,采用的电路结构和运算步骤与scramble相同,区别在于descramble输入的数据data_in是scramble后的伪随机数,输出的结果data_out是scramble之前的原输入数据。只要保证发送方scramble的线性反馈移位寄存器(LFSR)的数值与接收方descramble的线性反馈移位寄存器(LFSR)数值同步,双方就能实时同步的进行数据传输。USB3.1/PCI-Express3.0定义了特殊字符(symbol)和序列(order set),通过特殊字符和序列来保证收发双方线性反馈移位寄存器(LFSR)的同步。
结合上述可知,USB3.1和PCI-Express3.0协议提供的基于单比特移位的scramble和 descramble的缺点在于每个周期需要迭代次数较多,耗时长,scramble和descramble结果生成的硬件延时较大,从而限制了系统的工作频率和整体性能。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供数据传输加扰和解扰电路、发送和接收装置、及系统,用于解决现有技术中的问题。
为实现上述目的及其他相关目的,本发明提供一种数据传输的加扰电路,用于对每个周期输入的输入数据进行加扰并输出对应的输出数据,所述数据传输是依照预定的数据传输协议标准进行的;所述加扰电路包括:多比特位的线性反馈移位寄存器;逻辑运算电路,连接所述线性反馈移位寄存器,用于对所述线性反馈移位寄存器中的预定比特位的值进行异或运算,以令所述线性反馈移位寄存器的运算函数满足预设的特征多项式要求;其中,所述逻辑运算电路包括:第一异或运算器,其具有第一输入端、第二输入端及第一输出端;所述第一输入端供逐位输入所述输入数据的奇数比特位的值,所述第二输入端供输入线性反馈移位寄存器的最高比特位的值;所述第一输出端输出所述第一输入端和第二输入端所输入数据值的异或运算的运算结果作为所述输出数据的奇数比特位的值;第二异或运算器,其具有第三输入端、第四输入端及第二输出端;所述第三输入端供逐位输入所述输入数据的偶数比特位的值,所述第四输入端供输入线性反馈移位寄存器的次高比特位的值;所述第二输出端输出所述第三输入端和第四输入端所输入数据值的异或运算的运算结果作为所述输出数据的偶数比特位的值。
于本发明的一实施例中,所述线性反馈移位寄存器为23比特位,所述特征多项式为F(X) =X23+X21+X16+X8+X5+X2+1。
于本发明的一实施例中,所述逻辑运算电路的结构令所述线性反馈移位寄存器所实现的当前移位算法是在预设移位算法的一步迭代基础上增加一步迭代且以该两步为一步步长而形成的,其中,所述预设移位算法是实现于由所述数据传输协议标准所定义的对输入数据的逐个单比特位进行加扰所采用的线性反馈移位寄存器上的。
于本发明的一实施例中,所述线性反馈移位寄存器的23比特位为D0~D22,所述预设移位算法包括:
D0(n+1)=D22(n);
D1(n+1)=D0(n);
D2(n+1)=D1(n)^D22(n);
D3(n+1)=D2(n);
D4(n+1)=D3(n);
D5(n+1)=D4(n)^D22(n);
D6(n+1)=D5(n);
D7(n+1)=D6(n);
D8(n+1)=D7(n)^D22(n);
D9(n+1)=D8(n);
D10(n+1)=D9(n);
D11(n+1)=D10(n);
D12(n+1)=D11(n);
D13(n+1)=D12(n);
D14(n+1)=D13(n);
D15(n+1)=D14(n);
D16(n+1)=D15(n)^D22(n);
D17(n+1)=D16(n);
D18(n+1)=D17(n);
D19(n+1)=D18(n);
D20(n+1)=D19(n);
D21(n+1)=D20(n)^D22(n);
D22(n+1)=D21(n);
其中,^为异或运算符,D0(n)~D22(n)代表当前周期的线性反馈移位寄存器的各比特位的值,D0(n+1)~D22(n+1)代表下一周期的线性反馈移位寄存器的各比特位的值。
于本发明的一实施例中,所述线性反馈移位寄存器的23比特位为D0~D22,所述当前移位算法包括:
D0(n+1)=D21(n);
D1(n+1)=D22(n);
D2(n+1)=D0(n)^D21(n);
D3(n+1)=D1(n)^D22(n);
D4(n+1)=D2(n);
D5(n+1)=D3(n)^D21(n);
D6(n+1)=D4(n)^D22(n);
D7(n+1)=D5(n);
D8(n+1)=D6(n)^D21(n);
D9(n+1)=D7(n)^D22(n);
D10(n+1)=D8(n);
D11(n+1)=D9(n);
D12(n+1)=D10(n);
D13(n+1)=D11(n);
D14(n+1)=D12(n);
D15(n+1)=D13(n);
D16(n+1)=D14(n)^D21(n);
D17(n+1)=D15(n)^D22(n);
D18(n+1)=D16(n);
D19(n+1)=D17(n);
D20(n+1)=D18(n);
D21(n+1)=D19(n)^D21(n);
D22(n+1)=D20(n)^D22(n);
其中,^为异或运算符,D0(n)~D22(n)代表当前周期的线性反馈移位寄存器的各比特位的值,D0(n+1)~D22(n+1)代表下一周期的线性反馈移位寄存器的各比特位的值。
于本发明的一实施例中,在所述第一输入端逐位输入的所述输入数据的奇数比特位的值是按低位至高位顺序排列的。
于本发明的一实施例中,在所述第三输入端逐位输入的所述输入数据的偶数比特位的值是按低位至高位顺序排序的。
于本发明的一实施例中,所述数据传输协议标准包括:USB3.0、USB3.1及PCI-Express 3.0 中的任意一种或多种。
为实现上述目的及其他相关目的,本发明提供一种数据发送装置,包括所述的数据传输的加扰电路。
为实现上述目的及其他相关目的,本发明提供一种数据传输的解扰电路,接收所述的 USB数据传输的加扰电路的输出数据,并还原成加扰前的输入数据并输出。
为实现上述目的及其他相关目的,本发明提供一种数据接收装置,包括所述的数据传输的解扰电路。
为实现上述目的及其他相关目的,本发明提供一种数据传输系统,包括:所述的数据发送装置、以及所述的数据接收装置。
如上所述,本发明的数据传输加扰和解扰电路、发送和接收装置、及系统,其中,加扰或解扰电路在每个周期中以输入数据的两个比特位为单位进行迭代运算,相比现有的通信协议标准所定义的单比特迭代方案,本发明的方案能有效减少延时硬件延时,使系统可以工作在更高的频率。
附图说明
图1显示为现有技术中实现线性反馈移位寄存器移位运算的电路结构示意图。
图2显示为本发明于一实施例中实现线性反馈移位寄存器移位运算的电路结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
请参阅图1,在现有USB3.1和PCI-Express3.0协议中定义的基于单比特迭代的scramble 实现方案中,设线性反馈移位寄存器有23比特位,分别为D0~D22,其移位算法如下:
D0(n+1)=D22(n);
D1(n+1)=D0(n);
D2(n+1)=D1(n)^D22(n);
D3(n+1)=D2(n);
D4(n+1)=D3(n);
D5(n+1)=D4(n)^D22(n);
D6(n+1)=D5(n);
D7(n+1)=D6(n);
D8(n+1)=D7(n)^D22(n);
D9(n+1)=D8(n);
D10(n+1)=D9(n);
D11(n+1)=D10(n);
D12(n+1)=D11(n);
D13(n+1)=D12(n);
D14(n+1)=D13(n);
D15(n+1)=D14(n);
D16(n+1)=D15(n)^D22(n);
D17(n+1)=D16(n);
D18(n+1)=D17(n);
D19(n+1)=D18(n);
D20(n+1)=D19(n);
D21(n+1)=D20(n)^D22(n);
D22(n+1)=D21(n);
其中,^为异或运算符,D0(n)~D22(n)代表当前周期的线性反馈移位寄存器的各比特位的值,D0(n+1)~D22(n+1)代表下一周期的线性反馈移位寄存器的各比特位的值。
由于单比特迭代会引起较大硬件延时,因此,本发明的构思是采用以双比特为单位进行迭代,即同时进行两步迭代,如此,将上述算法多迭代一步即可得到:
D0(n+1)=D22(n)=D21(n-1);
D1(n+1)=D0(n)=D22(n-1);
D2(n+1)=D1(n)^D22(n)=D0(n-1)^D21(n-1);
D3(n+1)=D2(n)=D1(n-1)^D22(n-1);
D4(n+1)=D3(n)=D2(n-1);
D5(n+1)=D4(n)^D22(n)=D3(n-1)^D21(n-1);
D6(n+1)=D5(n)=D4(n-1)^D22(n-1);
D7(n+1)=D6(n)=D5(n-1);
D8(n+1)=D7(n)^D22(n)=D6(n-1)^D21(n-1);
D9(n+1)=D8(n)=D7(n-1)^D22(n-1);
D10(n+1)=D9(n)=D8(n-1);
D11(n+1)=D10(n)=D9(n-1);
D12(n+1)=D11(n)=D10(n-1);
D13(n+1)=D12(n)=D11(n-1);
D14(n+1)=D13(n)=D12(n-1);
D15(n+1)=D14(n)=D13(n-1);
D16(n+1)=D15(n)^D22(n)=D14(n-1)^D21(n-1);
D17(n+1)=D16(n)=D15(n-1)^D22(n-1);
D18(n+1)=D17(n)=D16(n-1);
D19(n+1)=D18(n)=D17(n-1);
D20(n+1)=D19(n)=D18(n-1);
D21(n+1)=D20(n)^D22(n)=D19(n-1)^D21(n-1);
D22(n+1)=D21(n)=D20(n-1)^D22(n-1)。
以现有n+1-(n-1)=2次迭代的步长和为本发明技术方案的1次迭代的步长,则可得到以两比特位为单位的当前移位算法:
D0(n+1)=D21(n);
D1(n+1)=D22(n);
D2(n+1)=D0(n)^D21(n);
D3(n+1)=D1(n)^D22(n);
D4(n+1)=D2(n);
D5(n+1)=D3(n)^D21(n);
D6(n+1)=D4(n)^D22(n);
D7(n+1)=D5(n);
D8(n+1)=D6(n)^D21(n);
D9(n+1)=D7(n)^D22(n);
D10(n+1)=D8(n);
D11(n+1)=D9(n);
D12(n+1)=D10(n);
D13(n+1)=D11(n);
D14(n+1)=D12(n);
D15(n+1)=D13(n);
D16(n+1)=D14(n)^D21(n);
D17(n+1)=D15(n)^D22(n);
D18(n+1)=D16(n);
D19(n+1)=D17(n);
D20(n+1)=D18(n);
D21(n+1)=D19(n)^D21(n);
D22(n+1)=D20(n)^D22(n);
其中,^为异或运算符,D0(n)~D22(n)代表当前周期的线性反馈移位寄存器的各比特位的值,D0(n+1)~D22(n+1)代表下一周期的线性反馈移位寄存器的各比特位的值。
请参阅图2,本发明提供一种数据传输的加扰电路的实施例,用于对每个周期输入的输入数据进行加扰并输出对应的输出数据,所述数据传输是依照预定的数据传输协议标准(如 USB3.0、USB3.1及PCI-Express 3.0)进行的;
所述加扰电路包括:线性反馈移位寄存器和逻辑运算电路。
所述线性反馈移位寄存器是多比特位的,其比特位数量可以是如图所示的23位,D0~D22;
所述逻辑运算电路,连接所述线性反馈移位寄存器,其至少部分是根据上述的当前移位算法来构造,所述逻辑运算电路令所述线性反馈移位寄存器的运算函数满足预设的特征多项式(即F(X)=X23+X21+X16+X8+X5+X2+1)要求。
所述逻辑运算电路还包括:第一异或运算器及第二异或运算器,两者可以同时并行处理输入数据的两位比特位的值;于本实施例中,所述第一异或运算器逐位输入所述输入数据的奇数位比特位的值,例如D0、D2、D4、D6…(图2中表示为data_in[2n],n为整数)等;所述第二异或运算器逐位输入所述输入数据的偶数位比特位的值,例如D1、D3、D5、D7…(图2中表示为data_in[2n+1],n为整数)等。
第一异或运算器,其具有第一输入端、第二输入端及第一输出端;所述第一输入端供逐位输入所述输入数据的奇数比特位的值(奇数表示为2n+1,n为整数),所述第二输入端供输入线性反馈移位寄存器的最高比特位的值;所述第一输出端输出所述第一输入端和第二输入端所输入数据值的异或运算的运算结果作为所述输出数据的奇数比特位的值;
第二异或运算器,其具有第三输入端、第四输入端及第二输出端;所述第三输入端供逐位输入所述输入数据的偶数比特位的值(奇数表示为2n,n为整数),所述第四输入端供输入线性反馈移位寄存器的次高比特位的值;所述第二输出端输出所述第三输入端和第四输入端所输入数据值的异或运算的运算结果作为所述输出数据的偶数比特位的值。
优选的,所述第一输入端和第三输入端输入的比特位是相邻的,即例如第一输入端输入 D1的同时,第三输入端输入D0;当然,并非以此为限。
具体的,图2的实现方案中每个工作周期输入一个固定位宽(如16位,32位或64位等) 的信号输入数据data_in,进行加扰并输出结果data_out,方案中也使用了23位的线性反馈移位寄存器(LFSR[22:0])进行加扰运算,即将输入数据按照小数端(LSB)由低到高每两位进行一次迭代和运算,加扰的具体运算步骤是:
1、将输入数据data_in的最低位D0与LFSR的最高位D22进行异或得到输出数据data_out 的最低位,同时将输入数据data_in的次低位D1与LFSR的次高位D21进行异或得到输出数据data_out的第二位。
2、将线性反馈移位寄存器进行一次移位,得到更新后的线性反馈移位寄存器值,其移位算法即为上述当前移位算法;
3、将输入数据data_in的第三位D2与经步骤2移位后更新的线性反馈移位寄存器的最高位的值D22进行异或运算,得到输出数据data_out的第三位,同时将输入数据data_in的第四位D3与经步骤2移位后新的线性反馈移位寄存器的次高位D21进行异或,得到输出数据 data_out的第四位。
重复步骤2和3,直至当前周期数据的所有比特位都处理完,最终得到本周期输入数据 data_in的scramble结果输出数据data_out。
下一个周期重复步骤1到步骤4,根据本周期最后的线性反馈移位寄存器的数值和下一个周期输入的新data_in数值计算下一个周期的scramble的输出数据data_out。
虽然在上述实施例中,所述输入数据的奇数比特位或偶数比特位的值均是从低位至高位输入与LFSR进行运算的,但是在其它实施例中亦可加以变化,并非以此为限。
对应上述加扰电路,本发明还可提供一种数据传输的解扰电路,接收所述的USB数据传输的加扰电路的输出数据,并还原成加扰前的输入数据并输出;由于所述解扰电路是实现与加扰电路运算的逆运算,因此其结构与所述加扰电路对称,故不再以实施例加以具体展示,本领域技术人员应当可以根据本发明的教示获得。
另外,基于上述,本发明提供一种数据发送装置,包括所述的数据传输的加扰电路;以及,本发明还可提供一种数据接收装置,包括所述的数据传输的解扰电路;所述数据发送装置和数据接收装置均可为具有依循USB3.0、USB3.1或PCI-Express3.0协议标准的接口的电子装置或部件,两者间可相互连接而构成数据传输系统。
以下提供具体的比对数据,以说明本发明技术方案的有益效果:
下面将以32比特位宽为例对基于不同比特位(bit)为单位展开的scramble和descramble 硬件实现方案的延时进行比较,其中,有以1比特为单位、本发明的2比特为单位、4比特为单位及8比特为单位的方案,详细如下:
对于USB3.1和PCI-Express3.0协议中定义的基于单比特迭代的scramble和descramble 实现方案:
1以1比特为单位进行迭代:
1)单周期内延时最大的是生成数据的最高位(bit 32),需要迭代31次,每次迭代的延时是1个“单比特数据异或”所需的硬件延时(此处记为T),迭代所需的总延时为31*T,迭代后生成输出结果还需要1个“单比特数据异或”的延时,因此生成最高比特结果共耗时32 *T;
2)单周期内迭代生成移位32比特后的用于下周期计算的线性反馈移位寄存器(LFSR) 值需要迭代32次,总耗时为32*T;
因此基于1比特迭代方案单周期数据生成的最大延时取1)和2)的最大值,为32*T。
2对于本发明中提出的基于双比特展开和迭代的scramble和descramble实现方案:将多项式按照图2所示进行基于2比特的展开,再以2比特为单位进行迭代:
1)单周期内延时最大的是生成数据的最高位(bit 32)和次高为(bit 31),需要迭代15 次,每次迭代的延时是1个“单比特数据异或”所需的硬件延时(此处记为T),迭代所需的总延时为15*T,迭代后生成输出结果还需要1个“单比特数据异或”的延时,因此生成最高比特结果共耗时16*T;
2)单周期内迭代生成移位32比特后的用于下周期计算的线性反馈移位寄存器(LFSR) 值需要迭代16次,每次迭代的延时是1个“单比特数据异或”所需的硬件延时(此处记为T),总耗时为16*T;
因此基于2比特迭代方案单周期数据生成的最大延时取1)和2)的最大值,为16*T。
3对于基于4比特为单位展开和迭代的scramble和descramble实现方案:
1)单周期内延时最大的是生成数据的最高的4位(bit 32-bit 29),需要迭代7次,每次迭代的延时是3个“单比特数据异或”所需的硬件延时(此处记为T),迭代所需的总延时为21*T,迭代后生成输出结果还需要2个“单比特数据异或”的延时,因此生成最高比特结果共耗时23*T;
2)单周期内迭代生成移位32比特后的用于下周期计算的线性反馈移位寄存器(LFSR) 值需要迭代8次,每次迭代的延时是3个“单比特数据异或”所需的硬件延时(此处记为T),总耗时为24*T;
因此基于4比特迭代方案单周期数据生成的最大延时取1)和2)的最大值,为24*T。
4对于基于8比特展开和迭代的scramble和descramble实现方案:
1)单周期内延时最大的是生成数据的最高的4位(bit 32-bit 25),需要迭代3次,每次迭代的延时是5个“单比特数据异或”所需的硬件延时(此处记为T),迭代所需的总延时为15*T,迭代后生成输出结果还需要5个“单比特数据异或”的延时,因此生成最高比特结果共耗时20*T;
2)单周期内迭代生成移位32比特后的用于下周期计算的LFSR值需要迭代4次,每次迭代的延时是5个“单比特数据异或”所需的硬件延时(此处记为T),总耗时为20*T;
因此基于8比特迭代方案单周期数据生成的最大延时取1)和2)的最大值,为20*T。
另外,请同时参见下表表1,其中对常用的不同数据位宽对USB3.1和PCI-Express3.0协议中定义的基于单比特迭代的scramble和descramble实现方案与本发明中提出的基于双比特展开和迭代的scramble和descramble实现方案完成单周期数据运算所需的硬件延时进行了比较,同时也比较了基于4比特展开和迭代以及基于8比特展开和迭代的方案。
表1
从中可见,本发明的基于双比特展开和迭代的scramble和descramble的技术方案所引起的硬件延时最小。
综上所述,本发明的数据传输加扰和解扰电路、发送和接收装置、及系统,其中,加扰或解扰电路在每个周期中以输入数据的两个比特位为单位进行迭代运算,相比现有的通信协议标准所定义的单比特迭代方案,本发明的方案能有效减少延时硬件延时,使系统可以工作在更高的频率。
本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。