发明内容
针对相关技术中设备之间进行并行数据传输过程中数据同步性差导致数据采样易出错的问题而提出本发明,为此,本发明的主要目的在于提供一种用于高速传输数据的方法、系统及板卡,以解决上述问题。
为了实现上述目的,根据本发明的一个方面,提供了一种用于高速传输数据的方法。
根据本发明的用于高速传输数据的方法,可以用于板卡内或板卡之间的数据传输,其中,板卡具有发送端和接收端,包括:发送端获取训练数据序列并发送训练数据序列;接收端根据训练数据序列的相位延迟值获取中间相位延迟值;发送端根据中间相位延迟值传输数据。
进一步地,在发送端根据中间相位延迟值传输数据信号之前,方法还可以包括:接收端在获取中间相位延迟值之后向发送端发送握手信号;发送端匹配握手信号。
进一步地,接收端根据训练数据序列的相位延迟值获取数据信号的中间相位延迟值可以包括:接收端接收第一训练数据序列,在确定第一训练数据序列存在误码时,根据第一训练数据序列获取第一相位延迟值;接收端接收第二训练数据序列,在确定第二训练数据序列不存在误码时,根据第二训练数据序列获取第二相位延迟值;根据第一相位延迟值与第二相位延迟值得到中间相位延迟值,其中,中间相位延迟值为第一相位延迟值与第二相位延迟值的差除以2所得到的值。
进一步地,在接收端接收训练数据序列之前,方法还可以包括:判断训练数据序列的信号是否是有效信号,其中,当信号是有效信号时,接收端接收训练数据序列;当信号是无效信号时,接收端丢弃训练数据序列。
进一步地,接收端每隔预定时间循环重复接收训练数据序列,其中,第一相位延迟值为接收端在接收存在误码的第一训练数据序列之前,接收的不存在误码的训练数据序列的相位延迟值的累加值;第二相位延迟值为接收端在接收不存在误码的第二训练数据序列之前,接收的存在误码的训练数据序列的相位延迟值的累加值。
为了实现上述目的,根据本发明的另一方面,提供了一种用于高速传输数据的板卡。
根据本发明的用于高速传输数据的板卡,可以包括:随机序列产生器,提供训练数据序列;接收端,根据训练数据序列的相位延迟值获取中间相位延迟值;发送端,连接于随机序列产生器和接收端之间,根据中间相位延迟值传输数据。
进一步地,比较器,与接收端相连接,可以用于判断训练数据序列是否存在误码,获取无误码时的第一相位延迟值和有误码时的第二相位延迟值;累加器,与接收端相连接,可以用于对相位延迟值进行累加操作;减法器和除法器,与接收端相连接,可以用于根据第一相位延迟值和第二相位延迟值得到中间相位延迟值。
为了实现上述目的,根据本发明的一个方面,提供了一种用于高速传输数据的系统。
根据本发明的用于高速传输数据的系统可以包括上述用于高速传输数据的板卡的所有技术特征。
更进一步地,系统可以包括:第一板卡,第一板卡的发送端发送训练数据序列;第二板卡,与第一板卡相连接,接收第一板卡的数据,根据训练数据序列的相位延迟值获取中间相位延迟值,并根据中间相位延迟值传输数据。
进一步地,系统还可以包括:第二板卡根据训练数据序列的相位延迟值获取中间相位延迟值之后发送握手信号;第一板卡匹配握手信号。
通过本发明,采用发送端获取训练数据序列并发送训练数据序列;接收端根据训练数据序列的相位延迟值获取中间相位延迟值;发送端根据中间相位延迟值发送数据,解决了相关技术中设备之间进行并行数据传输过程中数据同步性差导致数据采样易出错的问题,进而达到了实现低误码率的高速数据传输的效果。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
根据本发明的实施例,提供了一种用于高速传输数据的方法。
图1是根据本发明实施例的用于高速传输数据的方法的流程图。
如图1所示,该方法用于板卡内或板卡之间的数据传输,其中,所述板卡具有发送端和接收端,该方法包括如下的步骤S 102至步骤S106:
步骤S102,发送端获取训练数据序列并发送训练数据序列;
步骤S104,接收端根据训练数据序列的相位延迟值获取中间相位延迟值;
步骤S106,发送端根据中间相位延迟值传输数据。
其中,中间相位延迟值为时钟和数据之间的最佳相位关系。
本发明通过在发送端和接收端传输数据信号之前,采用训练数据序列的测试方法获取高速传输数据有效相位延迟值,即最优的数据传输窗口的宽度,在该有效的相位延迟值范围内,保证接收端的时钟可以正确采样发送的数据信号,接收端获取中间相位延迟值,发送端依据该中间相位延迟值发送数据信号。从而达到在并行传输高速数据的过程中,保证时钟对数据的正确采样,降低传输的误码率。本发明涉及的方法用于解决在板卡内或设备的各板卡间的高速数据传输。
本发明涉及的协议采用并行数据进行高速数据传输,最高时钟工作频率可达400MHz,双沿(Double Data Rate,简称为DDR)工作模式,数据位宽可根据应用及硬件环境进行设置,协议基于FPGA的硬件资源,可完成对数据相位的调整,以保证高速传输是时钟对数据的正确采样。协议的信号电平为低压差分信号(Low-VoltageDifferential Signaling,简称为LVDS),除定义了并行数据信号外,还定义了数据有效信号以及一对握手信号。
信号的物理连接形式可以是板卡内各器件间的印制电路板(Printed Circuit Board,简称为PCB)走线,也可以是板卡间各种连接器,如紧凑型外围器件互连(Compact Peripheral ComponentInterconnect,简称为CPCI)插槽的J3/J4/J5、PCI夹层板(PCIMezzanine Card,简称为PMC)的P3/P4,因其在对应的CPCI和PMC标准中未使用,可以方便地定义为板卡间互连通道。
本发明实施例在发送端根据中间相位延迟值传输数据信号之前,方法还可以包括:接收端在获取中间相位延迟值之后向发送端发送握手信号;发送端匹配握手信号。即接收端发送第一握手信号到发送端;发送端接收第一握手信号并发送第二握手信号到接收端,其中,第一握手信号与第二握手信号相匹配。握手信号匹配表明系统训练阶段结束,数据传输通道已建立,在通道建立之后任意时刻刻传输相应数据。
本发明实施例中接收端根据训练数据序列的相位延迟值获取数据信号的中间相位延迟值可以包括:接收端接收第一训练数据序列,在确定第一训练数据序列存在误码时,根据第一训练数据序列获取第一相位延迟值;接收端接收第二训练数据序列,在确定第二训练数据序列不存在误码时,根据第二训练数据序列获取第二相位延迟值;根据第一相位延迟值与第二相位延迟值得到中间相位延迟值,其中,中间相位延迟值为第一相位延迟值与第二相位延迟值相减的差的平均值。训练阶段获取时钟与数据之间的最佳相位关系,确定有效窗口的宽度。
其中,在接收端接收训练数据序列之前,方法还可以包括:判断训练数据序列的信号是否是有效信号,其中,当信号是有效信号时,接收端接收训练数据序列;当信号是无效信号时,接收端丢弃训练数据序列。有效信号用于确认数据是否成功到达。
接收端循环重复接收训练数据序列,累加训练数据序列的相位延迟值,其中,第一相位延迟值为接收端在接收存在误码的第一训练数据序列之前,接收的不存在误码的训练数据序列的相位延迟值的累加值;第二相位延迟值为接收端在接收不存在误码的第二训练数据序列之前,接收的存在误码的训练数据序列的相位延迟值的累加值。
本发明基于Xilinx公司的现场可编程门阵列(FieldProgrammable Gate Array,简称为FPGA)器件实现高速数据传输协议,FPGA的硬件资源提供数据相位延迟电路,通过逻辑控制可实现对数据相位的调整。
图2是根据本发明实施例的用于高速传输数据的发送端的方法流程示意图。
如图2所示,该方法包括如下步骤:
步骤S201,发送端的数据传输信道处于空闲状态。
步骤S202,发送端处于等待阶段,系统进行初始化数据传输信道的阶段。
本发明实施例中初始状态下,数据传输通道未建立,发送端连续发送训练数据序列。
步骤S203,判断系统初始化是否结束,初始化结束时进入步骤S204,否则转入步骤S202。
步骤S204,发送训练码找窗阶段。
本发明实施例进入有效窗口的训练阶段,发送端将训练数据序列发送至接收端,如果本次数据传输无误码,则对数据相位延迟电路进行累加操作,并认为此时的相位关系时钟可以正确采样数据。如果本次传输有误码,则此时相位关系不可用,并对相位延迟电路进行累加操作。数据相位延迟后,重新进行数据的比较,如果数据无误码,则认为可用;如果有误码,则不可用,进行相位延迟的累加操作。
发送端基于预定的延迟时间重复发送训练数据序列,在预定周期内处于找窗训练阶段,直至到达最大的相位延迟范围。本步骤将相位延迟值调整到窗口的中心就实现时钟与数据间的最佳相位关系,通过找到有效的中间相位延时值从而可以实现时钟对数据的正确采样。
步骤S205,判断接收端握手信号是否有效。握手信号有效时进入步骤S206,否则转入步骤S204。
本发明实施例中,当获取有效相位延时值后,数据窗口调整到中心位置,接收端通过发送握手信号发送端通道训练结束。
步骤S206,设置发送端握手信号。
本实施例中,发送端接收到该握手信号后,送出对应握手信号,表明数据传输通道已经建立。
步骤S207,通道已建立,进入发送数据阶段。
图3是根据本发明实施例的用于高速传输数据的接收端的方法流程示意图;
步骤S401,接收端的数据传输信道处于空闲状态。
步骤S402,系统进行初始化数据传输信道的阶段,判断初始化是否结束,初始化结束进入步骤S403,否则转入步骤S401。
步骤S403,寻找数据窗阶段。
本发明实施例中,接收端通过数据有效信号判断数据到达,并接收数据,此时因收到的是训练数据序列,因此接收端本地也产生一完全相同的训练序列,逐周期与接收数据进行比较,并进行误码计数。如果本次数据传输无误码,则对数据相位延迟电路进行累加操作,并认为此时的相位关系时钟可以正确采样数据。如果本次传输有误码,则此时相位关系不可用,并对相位延迟电路进行累加操作。
数据相位延迟后,重新进行数据的比较,如果数据无误码,则认为可用;如果有误码,则不可用,进行相位延迟的累加操作。
步骤S404,判断数据窗是否已找到。当数据窗找到时进入步骤S405,否则传入步骤S403。
本发明实施例中,在步骤S403和步骤S404的操作过程中,如果时钟数据相位关系前一延迟值可用,而当前延迟值不可用,则当前延迟值定义为数据有效窗口的结束值,如果前一延迟值不可用,而当前延迟值可用,则当前延迟值定义为数据有效窗口的起始值。找到了结束值和起始值就找到了有效窗口的宽度,在本步骤只需将相位延迟值调整到窗口的中心就可以实现时钟与数据间的最佳相位关系,从而可以实现时钟对数据的正确采样。
步骤S405,接收端发送握手信号。当相位延迟值调整到窗口的中心后,接收端通过发送握手信号发送端通道训练结束。
步骤S406,判断发送端握手信号是否有效,当握手信号有效时进入步骤S407,否则转入步骤S405。
步骤S407,握手信号有效建立数据传输通道,信道进入数据信号传输阶段。
从以上的描述中,可以看出,本发明实现了如下技术效果:本发明可实现高速并行数据传输,通过对数据和时钟相位关系的调整来保证数据采样的正确性,并通过协议实现多通道并行数据的同步性。协议的应用方便,在器件间通过PCB走线来完成物理连接,板卡间互连可采用各种具备可自定义应用的连接器,如CPCI、PMC等,不需要专用连接器。
根据本发明的实施例,提供了一种板卡。
图4是根据本发明实施例的板卡内高速传输数据的结构示意图。
如图4所示,该板卡包括:随机序列产生器11、发送端12、接收端13、累加器14。在板卡内进行高速数据传输。
其中,随机序列产生器11,与发送端12连接,提供训练数据序列,该序列为伪随机序列;接收端13,可以包括加法器和减法器,并产生有效数据信号判断数据是否到达,本发明在接收端13进行误码计数;发送端12,连接于随机序列产生器和接收端之间,本发明实施例发送端12通过信道17传输伪随机序列,并通过同步信号控制在接收端13产生相同的伪随机序列;累加器14为相位延迟电路进行累加操作。其中,在接收端13根据已知的训练数据序列的相位延迟值获取的中间相位延迟值传输数据。
板卡还包括:比较器15、减法器、除法器和存储器16。
其中,比较器15,判断重复发送的训练数据序列中是否存在误码并获取无误码时的第一相位延迟值和有误码时的第二相位延迟值;减法器和除法器,根据第一相位延迟值和第二相位延迟值得到中间相位延迟值,中间相位值是第一相位延迟值减去第二相位延迟值的差除以2的结果。上述结果记录并保存在存储器16中。
本发明实施例中信号的物理连接形式可以是板卡内各器件间的印制电路板(Printed Circuit Board,简称为PCB)走线,也可以是板卡间各种连接器,如紧凑型外围器件互连(Compact PeripheralComponent Interconnect,简称为CPCI)插槽的J3/J4/J5、PCI夹层板(PCI Mezzanine Card,简称为PMC)的P3/P4,因其在对应的CPCI和PMC标准中未使用,可以方便地定义为板卡间互连通道。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图5是根据本发明实施例的用于高速传输数据的系统的示意图。
如图5所示,该系统包括上述板卡的技术特征。
优选地,该系统还包括:第一板卡1;第二板卡2。第一板卡1和第二板卡2之间进行高速数据传输。
其中,第一板卡1的发送端发送训练数据序列;第二板卡2与第一板卡相连接,接收端接收第一板卡1的数据,根据训练数据序列的相位延迟值获取中间相位延迟值,并根据中间相位延迟值传输数据。
优选地,系统还可以包括:第二板卡根据训练数据序列的相位延迟值获取中间相位延迟值之后发送握手信号;第一板卡匹配握手信号。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。