一种并行总线相位校正的方法及装置与流程

文档序号:20683070发布日期:2020-05-08 18:35阅读:367来源:国知局
一种并行总线相位校正的方法及装置与流程

本发明涉及数据传输技术领域。本发明进一步涉及一种并行总线相位校正的方法及装置。



背景技术:

并行总线的主要特点是同一时刻可以传输多bit数据,即多位宽的数据总线;同时大部分并行总线的发送端和接收端采用共同时钟设计,来保证数据发送和接收的正确性。为了确保发送端和接收端具有共同的时钟,在设计中可以采用同一晶振(或时钟模块)提供时钟,也可以由发送端将发送时使用的时钟同数据总线一起传输给接收端,接收端使用该时钟采样数据总线,这种方式叫做随路时钟。随着传输频率的增加,由于物理器件或工艺的限制,数据总线与时钟总线在板卡pcb或线缆传输时延的微小差别就会导致接收端无法正确采样数据总线,导致通信错误。同时电器设备工作环境、工作温度等外在条件的变化,也会给电器性能,总线延时等带来变化,造成采样偏差,导致通信错误。以上也是限制并行总线传输频率的一个难点。

通常,发送端通过外部晶振获得时钟输入,内部通过时钟发生器模块,产生所需时钟用于总线传输,作为随路时钟,如图1所示。在该随路时钟下将待发送数据传输到数据总线上,同时将该随路时钟直接传输到时钟线上。理想情况下,在发送端数据与时钟时序关系如图2所示。

以图1所示的现有技术的实施例为例,接收端接收时钟线上的时钟直接作为接收数据的工作时钟,在该时钟下采样数据总线获得传输数据。

然而,现有的并行总线数据传输中主要存在以下问题:

1.由于发送端与接收端间传输介质特性和制作工艺限制,无论是pcb还是传输线缆,均无法实现数据总线与时钟线的绝对等长或者传输时延绝对一致。该情况可能导致信号到达接收端时,数据和时钟的时序关系出现偏差,直接使用随路时钟采样数据总线,无法获得正确的数据。时钟上升沿无法对齐数据中心较稳定位置,导致采样错误,如图3所示。

2.数据总线中每个数据bit的传输延时也可能出现不一致的情况,导致部分bit能够正常采样,部分bit无法正常采样。

3.电子器件工作环境的变化,工作发热后导致器件或线路的性能变化,导致原本正常采样的时序关系发生变化,传输不稳定。

现有技术方案的上述缺陷,随着传输频率的增加,随路时钟的周期会越来越小,对传输的影响将越来越严重。

因此,需要针对并行总线设计总存在时钟与数据时序偏差问题、多bit数据总线延时不一致问题、环境敏感等问题,提出一种优化方法以有效校准偏差,确保数据传输的正确性。



技术实现要素:

一方面,本发明基于上述目的提出了一种并行总线相位校正的方法,其中该方法包括以下步骤:

以数据总线的预设的多个第二相位调整值中的最小值校正数据总线,根据时钟线的预设的多个第一相位调整值分别对时钟线进行相位校正测试,并记录相应的时钟测试结果;

根据时钟测试结果确定时钟线的第一最优窗口;

以第一最优窗口的中间值校正时钟线,根据多个第二相位调整值分别对数据总线进行相位校正测试,并记录相应的数据测试结果;

根据数据测试结果确定数据总线的第二最优窗口;

基于第一最优窗口的中间值和第二最优窗口的中间值对正常数据传输进行相位校正。

根据本发明的并行总线相位校正的方法的实施例,其中以数据总线的预设的多个第二相位调整值中的最小值校正数据总线,根据时钟线的预设的多个第一相位调整值分别对时钟线进行相位校正测试,并记录相应的时钟测试结果进一步包括:

根据最小的第二相位调整值校正数据总线;

根据多个第一相位调整值按从小到大的顺序分别对时钟线进行相位校正并测试;

按测试顺序记录相应的时钟测试结果。

根据本发明的并行总线相位校正的方法的实施例,其中根据时钟测试结果确定时钟线的第一最优窗口进一步包括:

将时钟测试结果为正确的连续若干个第一相位调整值设置为一个相位调整窗口,并以包含第一相位调整值数量最多的相位调整窗口作为第一最优窗口。

根据本发明的并行总线相位校正的方法的实施例,其中以第一最优窗口的中间值校正时钟线,根据多个第二相位调整值分别对数据总线进行相位校正,并记录相应的数据测试结果进一步包括:

根据第一最优窗口的中间值校正时钟线;

根据多个第二相位调整值按从小到大的顺序分别对数据总线中的每一位的总线进行相位校正并测试;

按测试顺序记录每一位的总线的相应的数据测试结果。

根据本发明的并行总线相位校正的方法的实施例,其中根据数据测试结果确定数据总线的第二最优窗口进一步包括:

对每一位的总线,将数据测试结果为正确的连续若干个第二相位调整值设置为一个相位调整窗口,并以包含第二相位调整值数量最多的相位调整窗口作为相应位的总线的第二最优窗口。

根据本发明的并行总线相位校正的方法的实施例,其中相位校正测试进一步包括:

生成时钟序列及测试序列;

将时钟序列及测试序列在时钟线及数据总线进行发送和接收;

对接收到的测试序列进行校验以判断数据的接收是否正确。

另一方面,本发明还提出了一种并行总线相位校正的装置,其中该装置包括:

至少一个处理器;和

存储器,该存储器存储有处理器可运行的程序指令,该程序指令在被处理器运行时执行以下步骤:

以数据总线的预设的多个第二相位调整值中的最小值校正数据总线,根据时钟线的预设的多个第一相位调整值分别对时钟线进行相位校正测试,并记录相应的时钟测试结果;

根据时钟测试结果确定时钟线的第一最优窗口;

以第一最优窗口的中间值校正时钟线,根据多个第二相位调整值分别对数据总线进行相位校正测试,并记录相应的数据测试结果;

根据数据测试结果确定数据总线的第二最优窗口;

基于第一最优窗口的中间值和第二最优窗口的中间值对正常数据传输进行相位校正。

根据本发明的并行总线相位校正的装置的实施例,其中以数据总线的预设的多个第二相位调整值中的最小值校正数据总线,根据时钟线的预设的多个第一相位调整值分别对时钟线进行相位校正测试,并记录相应的时钟测试结果进一步包括:

根据最小的第二相位调整值校正数据总线;

根据多个第一相位调整值按从小到大的顺序分别对时钟线进行相位校正并测试;

按测试顺序记录相应的时钟测试结果;并且,

根据时钟测试结果确定时钟线的第一最优窗口进一步包括:

将时钟测试结果为正确的连续若干个第一相位调整值设置为一个相位调整窗口,并以包含第一相位调整值数量最多的相位调整窗口作为第一最优窗口。

根据本发明的并行总线相位校正的装置的实施例,其中以第一最优窗口的中间值校正时钟线,根据多个第二相位调整值分别对数据总线进行相位校正,并记录相应的数据测试结果进一步包括:

根据最优第一相位调整值校正时钟线;

根据多个第二相位调整值按从小到大的顺序分别对数据总线中的每一位的总线进行相位校正并测试;

按测试顺序记录每一位的总线的相应的数据测试结果;并且,

根据数据测试结果确定数据总线的第二最优窗口进一步包括:

对每一位的总线,将数据测试结果为正确的连续若干个第二相位调整值设置为一个相位调整窗口,并以包含第二相位调整值数量最多的相位调整窗口作为相应位的总线的第二最优窗口。

根据本发明的并行总线相位校正的装置的实施例,其中相位校正测试进一步包括:

生成时钟序列及测试序列;

将时钟序列及测试序列在时钟线及数据总线进行发送和接收;

对接收到的测试序列进行校验以判断数据的接收是否正确。

采用上述技术方案,本发明至少具有如下有益效果:通过在测试过程中对时钟线和数据总线分别进行相位调整来校准时钟与数据的相位关系;在校准过程中,不是仅查找数据正确接收的相位调整点,而是遍历整个时钟与数据的相位调整范围,查找正确接收的最大相位调整窗口,并取中间值为最优相位调整值,从而使得总线在正常工作过程中,即使因外部环境或器件稳定性问题导致时钟微量偏移,也同样可以保证数据传输的正确性和准确性。

本发明提供了实施例的各方面,不应当用于限制本发明的保护范围。根据在此描述的技术可设想到其它实施方式,这对于本领域普通技术人员来说在研究以下附图和具体实施方式后将是显而易见的,并且这些实施方式意图被包含在本申请的范围内。

下面参考附图更详细地解释和描述了本发明的实施例,但它们不应理解为对于本发明的限制。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对现有技术和实施例描述中所需要使用的附图作简单地介绍,附图中的部件不一定按比例绘制,并且可以省略相关的元件,或者在一些情况下比例可能已经被放大,以便强调和清楚地示出本文描述的新颖特征。另外,如本领域中已知的,结构顺序可以被不同地布置。

图1示出了现有技术中传统的并行总线数据传输的示意图;

图2示出了理想情况下在发送端数据与时钟时序关系的示意图;

图3示出了在接收端的数据和时钟时序偏差的示意图;

图4示出了根据本发明的并行总线相位校正的方法的实施例的示意性框图;

图5示出了应用本发明的并行总线相位校正的方法的实施例的并行总线数据传输的示意图。

具体实施方式

虽然本发明可以以各种形式实施,但是在附图中示出并且在下文中将描述一些示例性和非限制性实施例,但应该理解的是,本公开将被认为是本发明的示例并不意图将本发明限制于所说明的具体实施例。

为了解决以图1所示的实施例为代表的现有技术中存在的并行总线数据传输时接收端(参见图3示出的数据和时钟时序偏差)相对于发送端(参见图2数据与时钟时序关系)出现了相位偏移的问题,本发明的方法对并行总线进行了优化的相位校正。图4示出了根据本发明的并行总线相位校正的方法的实施例的示意性框图。在如图4所示的实施例中,该方法至少包括以下步骤:

s1:以数据总线的预设的多个第二相位调整值中的最小值校正数据总线,根据时钟线的预设的多个第一相位调整值分别对时钟线进行相位校正测试,并记录相应的时钟测试结果;

s2:根据时钟测试结果确定时钟线的第一最优窗口;

s3:以第一最优窗口的中间值校正时钟线,根据多个第二相位调整值分别对数据总线进行相位校正测试,并记录相应的数据测试结果;

s4:根据数据测试结果确定数据总线的第二最优窗口;

s5:基于第一最优窗口的中间值和第二最优窗口的中间值对正常数据传输进行相位校正。

为了实现上述方法,本发明针对传统的并行总线数据传输在功能结构上增加了一些必要的功能模块,如图5所示,其中,在一些实施例中,在传统的并行总线基础上做如下改进:

1.在发送端增加测试序列发生器模块,用于产生约定的测试序列,并发送到数据总线上;

2.在接收端增加时钟线的相位调整模块,用于在控制器模块的控制下,对输入时钟做一定相位调整,达到对时钟时序进行偏移调整的目的;

3.在接收端增加数据总线的相位调整模块(多个,根据总线数据位宽而定),对输入数据总线每一位都分别进行相位调整,达到对数据时序进行偏移调整的目的;

4.在接收端增加序列校验模块,用于判断当前接收的数据是否为约定的测试序列中相应的数据,以便确定判断当前相位偏移下,数据能否正确接收;

5.在接收端增加控制器模块,用于接收序列校验模块的反馈,以明确相应的相位调整是否可用,并进一步决定是否改变相位调整模块的偏移量。

基于上述在并行总线发送端和输出端的改进,根据本发明的方法的实施例中,在总线工作启动时刻,发送端和接收端均先进入总线链路建立模式。在链路建立模式中,发送端启动测试序列发生器模块,将约定的测试序列发送到数据总线上。在此基础上,首先步骤s1以数据总线的预设的多个第二相位调整值中的最小值校正数据总线,根据时钟线的预设的多个第一相位调整值分别对时钟线进行相位校正测试,并记录相应的时钟测试结果。其中,数据总线的预设的多个第二相位调整值中优选地包括“0”相位,也就是说,步骤s1中优选地,在对数据总线不进行相位校正的情况下,以预设的多个第一相位调整值分别对时钟线进行相位校正,分别进行测试得到相应的时钟测试结果,该结果包括“正确/t/1”或“错误/f/0”。经过校正测试并记录了时钟测试结果之后,步骤s2根据时钟测试结果确定时钟线的第一最优窗口,即用于时钟线的第一相位调整值的第一最优窗口。为了使总线在正常工作过程中,即使因外部环境或器件稳定性问题导致时钟微量偏移,也同样可以保证数据传输的正确性和准确性,选择第一最优窗口的中间值来校正时钟线。并且,在此基础上,在步骤s3中以预设的多个第二相位调整值分别对数据总线进行相位校正,分别进行测试以得到相应的数据测试结果,该结果包括“正确/t/1”或“错误/f/0”。然后步骤s4根据数据测试结果确定数据总线的第二最优窗口,即用于数据总线的第二相位调整值的第二最优窗口。同样,为了使总线在正常工作过程中,即使因外部环境或器件稳定性问题导致时钟微量偏移,也同样可以保证数据传输的正确性和准确性,选择第二最优窗口的中间值作为最终选定的校正数据总线的相位调整值。完成了所有时钟线和数据总线的相位调整的最优窗口的确定之后,结束总线链路建立模式,步骤s5基于第一最优窗口的中间值和第二最优窗口的中间值对正常数据传输进行相位校正,即在正常的并行总线数据传输过程中以第一最优窗口的中间值校正时钟线、以第二最优窗口的中间值校正数据总线。在一些实施例中,上述多个第一相位调整值和多个第二相位调整值分别为一定范围内的连续值,从而保证选出更加精确、范围更大的相位调整值的窗口。

下文将说明本发明的进一步实施例,需要注意的是,其中提到的步骤的编号在没有特殊说明的情况下,仅用于便捷明确地指示该步骤,并不限定步骤的顺序。

在本发明的并行总线相位校正的方法的一些实施例中,步骤s1以数据总线的预设的多个第二相位调整值中的最小值校正数据总线,根据时钟线的预设的多个第一相位调整值分别对时钟线进行相位校正测试,并记录相应的时钟测试结果进一步包括:

s11:根据最小的第二相位调整值校正数据总线;

s12:根据多个第一相位调整值按从小到大的顺序分别对时钟线进行相位校正并测试;

s13:按测试顺序记录相应的时钟测试结果。

为了准确且方便地为时钟线确定最合适的相位调整值的窗口,在一些实施例中步骤s1的校正测试过程包括以上三个子步骤,其中子步骤s11根据最小的第二相位调整值校正数据总线,优选以“0”为第二相位调整值,即对校正数据总线不做校正。在子步骤s11的基础上,子步骤s12根据多个第一相位调整值按从小到大的顺序分别对时钟线进行相位校正并测试。然后子步骤s13按测试顺序记录相应的时钟测试结果,也就是按第一相位调整值从小到大的顺序记录相应的时钟测试结果。例如,预设的第一相位调整值为“0~15”中的连续整数,共计16个调整值。经过测试,可得到例如如表1所示的结果。

(表1)

在本发明的并行总线相位校正的方法的进一步实施例中,步骤s2根据时钟测试结果确定时钟线的第一最优窗口进一步包括:将时钟测试结果为正确的连续若干个第一相位调整值设置为一个相位调整窗口,并以包含第一相位调整值数量最多的相位调整窗口作为第一最优窗口。以上述表1中的相位调整值及测试结果为例,“2~3”、“8~12”、“14~15”分别为三个相位调整窗口。其中以包含第一相位调整值数量最多的相位调整窗口作为第一最优窗口,即以“8~12”这个相位调整窗口作为第一最优窗口。由此,随后的步骤中就可以从上述“8~12”这个第一最优窗口中选择一个相位调整值进行相位校正,其中,优选地选择“8~12”的中间值“10”,保证最终选定的相位调整值的左右冗余量相同。

在本发明的并行总线相位校正的方法的若干实施例中,步骤s3以第一最优窗口的中间值校正时钟线,根据多个第二相位调整值分别对数据总线进行相位校正,并记录相应的数据测试结果进一步包括:

s31:根据第一最优窗口的中间值校正时钟线;

s32:根据多个第二相位调整值按从小到大的顺序分别对数据总线中的每一位的总线进行相位校正并测试;

s33:按测试顺序记录每一位的总线的相应的数据测试结果。

为了准确且方便地为数据总线确定最合适的相位调整值的窗口,在一些实施例中步骤s3的校正测试过程包括三个子步骤,其中子步骤s31根据步骤s2中确定的第一最优窗口的中间值校正时钟线。在子步骤s31的基础上,子步骤s32根据多个第二相位调整值按从小到大的顺序分别对数据总线中的每一位的总线进行相位校正并测试。由于并行数据总线包括多位(bit)数据线,而由于每一位(bit)数据线之间也可能出现相位偏移的情况,因此需要对每一位数据线进行分别的相位校正,所以需要针对数据总线的每一位都要分别确定其最合适的相位调整值的窗口。然后子步骤s33按按测试顺序记录每一位的总线的相应的数据测试结果,也就是按第二相位调整值从小到大的顺序记录相应的数据测试结果。

在本发明的并行总线相位校正的方法的进一步实施例中,步骤s4根据数据测试结果确定数据总线的第二最优窗口进一步包括:对每一位的总线,将数据测试结果为正确的连续若干个第二相位调整值设置为一个相位调整窗口,并以包含第二相位调整值数量最多的相位调整窗口作为相应位的总线的第二最优窗口。由于并行数据总线包括多位(bit)数据线,因此,在这些实施例中,根据每一位的总线的测试结果分别为每一位的总线确定各自的第二最优窗口。

在本发明的并行总线相位校正的方法的一个或多个实施例中,相位校正测试进一步包括:

生成时钟序列及测试序列;

将时钟序列及测试序列在时钟线及数据总线进行发送和接收;

对接收到的测试序列进行校验以判断数据的接收是否正确。

具体地说,对时钟线和数据总线的相位校正测试的方法可以是相同的。首先,参考图5,在发送端,时钟发生器生成时钟序列,测试序列发生器生成测试序列。将时钟序列发送到时钟线上,将测试序列发送到数据总线上。接收端在接收到时钟序列和测试序列之后,分别经过相位校正,对校正过的时钟序列和测试序列进行数据采样。随后进行序列校验,序列校验模块接收一定量的校正后的测试序列的数据后,将校正后的测试序列的数据与约定的数据进行对比以判断接收到的数据经过校正后是否正确。若两者一致,则相应的测试结果为“正确/t/1”;若不一致或不完全一致则相应的测试结果为“错误/f/0”。

另一方面,本发明还提出了一种并行总线相位校正的装置,其中该装置包括:至少一个处理器;和存储器,该存储器存储有处理器可运行的程序指令,该程序指令在被处理器运行时执行以下步骤:

s1:以数据总线的预设的多个第二相位调整值中的最小值校正数据总线,根据时钟线的预设的多个第一相位调整值分别对时钟线进行相位校正测试,并记录相应的时钟测试结果;

s2:根据时钟测试结果确定时钟线的第一最优窗口;

s3:以第一最优窗口的中间值校正时钟线,根据多个第二相位调整值分别对数据总线进行相位校正测试,并记录相应的数据测试结果;

s4:根据数据测试结果确定数据总线的第二最优窗口;

s5:基于第一最优窗口的中间值和第二最优窗口的中间值对正常数据传输进行相位校正。

在本发明的并行总线相位校正的装置的一些实施例中,步骤s1以数据总线的预设的多个第二相位调整值中的最小值校正数据总线,根据时钟线的预设的多个第一相位调整值分别对时钟线进行相位校正测试,并记录相应的时钟测试结果进一步包括:

s11:根据最小的第二相位调整值校正数据总线;

s12:根据多个第一相位调整值按从小到大的顺序分别对时钟线进行相位校正并测试;

s13:按测试顺序记录相应的时钟测试结果;并且,

步骤s2根据时钟测试结果确定时钟线的第一最优窗口进一步包括:将时钟测试结果为正确的连续若干个第一相位调整值设置为一个相位调整窗口,并以包含第一相位调整值数量最多的相位调整窗口作为第一最优窗口。

在本发明的并行总线相位校正的装置的又一些实施例中,步骤s3以第一最优窗口的中间值校正时钟线,根据多个第二相位调整值分别对数据总线进行相位校正,并记录相应的数据测试结果进一步包括:

s31:根据第一最优窗口的中间值校正时钟线;

s32:根据多个第二相位调整值按从小到大的顺序分别对数据总线中的每一位的总线进行相位校正并测试;

s33:按测试顺序记录每一位的总线的相应的数据测试结果;并且,

步骤s4根据数据测试结果确定数据总线的第二最优窗口进一步包括:对每一位的总线,将数据测试结果为正确的连续若干个第二相位调整值设置为一个相位调整窗口,并以包含第二相位调整值数量最多的相位调整窗口作为相应位的总线的第二最优窗口。

在本发明的并行总线相位校正的装置的一个或多个实施例中,相位校正测试进一步包括:

生成时钟序列及测试序列;

将时钟序列及测试序列在时钟线及数据总线进行发送和接收;

对接收到的测试序列进行校验以判断数据的接收是否正确。

本发明实施例公开所述的装置、设备等可为各种电子终端设备,例如手机、个人数字助理(pda)、平板电脑(pad)、智能电视等,也可以是大型终端设备,如服务器等,因此本发明实施例公开的保护范围不应限定为某种特定类型的装置、设备。本发明实施例公开所述的客户端可以是以电子硬件、计算机软件或两者的组合形式应用于上述任意一种电子终端设备中。

本文所述的计算机可读存储介质(例如存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)或快闪存储器。易失性存储器可以包括随机存取存储器(ram),该ram可以充当外部高速缓存存储器。作为例子而非限制性的,ram可以以多种形式获得,比如同步ram(dram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强sdram(esdram)、同步链路dram(sldram)、以及直接rambusram(drram)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。

采用上述技术方案,本发明至少具有如下有益效果:通过在测试过程中对时钟线和数据总线分别进行相位调整来校准时钟与数据的相位关系;在校准过程中,不是仅查找数据正确接收的相位调整点,而是遍历整个时钟与数据的相位调整范围,查找正确接收的最大相位调整窗口,并取中间值为最优相位调整值,从而使得总线在正常工作过程中,即使因外部环境或器件稳定性问题导致时钟微量偏移,也同样可以保证数据传输的正确性和准确性。

应当理解的是,在技术上可行的情况下,以上针对不同实施例所列举的技术特征可以相互组合,从而形成本发明范围内的另外实施例。此外,本文所述的特定示例和实施例是非限制性的,并且可以对以上所阐述的结构、步骤及顺序做出相应修改而不脱离本发明的保护范围。

在本申请中,反意连接词的使用旨在包括连接词。定或不定冠词的使用并不旨在指示基数。具体而言,对“该”对象或“一”和“一个”对象的引用旨在表示多个这样对象中可能的一个。然而,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。此外,可以使用连接词“或”来传达同时存在的特征,而不是互斥方案。换句话说,连接词“或”应理解为包括“和/或”。术语“包括”是包容性的并且具有与“包含”相同的范围。

上述实施例,特别是任何“优选”实施例是实施方式的可能示例,并且仅仅为了清楚理解本发明的原理而提出。在基本上不脱离本文描述的技术的精神和原理的情况下,可以对上述实施例做出许多变化和修改。所有修改旨在被包括在本公开的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1