本发明涉及光传送网(opticaltransportnetwork,otn)技术领域,具体涉及一种基于sfi4-2接口查找输入时延的方法及装置。
背景技术:
sfi4-2接口是由光互联论坛(oif)提出的一种串并行转换器与成帧器间的并行高速接口,sfi4-2接口主要应用在otn系统中,通过4对2.5gb/s的差分数据线实现odu2信号的传送。在实际的otn系统中,一些asic(applicationspecificintegratedcircuits,专用集成电路)芯片的10g信号接口都采用sfi4-2接口,sfi4-2接口使asic芯片之间的对接更加容易。
在otn系统中,接收端输入的高速源同步信号满足光互联论坛oif提出的sfi4-2接口的时钟数据关系,由于在fpga内部,时钟信号与数据信号到达高速接收单元的输入时延不一致,导致无法正确的取样数据。
有鉴于此,急需控制接收方向的时延,以便正确的取样数据。
技术实现要素:
本发明所要解决的技术问题是解决在fpga内部的时钟信号与数据信号到达高速接收单元的输入时延不一致,导致无法正确取样数据的问题。
为了解决上述技术问题,本发明所采用的技术方案是提供一种基于sfi4-2接口查找输入时延的方法,包括以下步骤:
输入数据信号流,并在输入延迟值的可用取值范围内,随机搜索其中一个输入延迟值;
对检测到的数据信号流进行定帧处理,若定帧成功则将该输入延迟值加入取值范围队列,然后继续搜索,直至遍历完可用取值范围内的所有输入延迟值;若定帧失败,则将该输入延迟值从可用取值范围内去除;
对取值范围队列中的输入延迟值进行中间值计算,并将计算出的中间值作为最终的输入延迟值。
在上述技术方案中,对取值范围队列中的输入延迟值进行中间值计算,具体包括以下步骤:
s10、对取值范围队列中的输入延迟值进行筛选,只保留处于连通区域的输入延迟值;
s20、判断取值范围队列是否存在多个连通区域,若是,转s30;否则,转s40;
s30、退出中间值计算,重新确定取值范围队列;
s40、判断连通区域是否包含可用取值范围中的最小值和最大值,若是,转s50;否则转s60;
s50、将连通区域的两端点的数值之和加可用取值范围的周期,然后再取中间值,转s70;
s60、对连通区域的两端点的数值之和取中间值,结束;
s70、判断得到的中间值是否大于可用取值范围的周期,若是,转s80;否则,结束;
s80、将得到的中间值减去可用取值范围的周期,结束。
在上述技术方案中,采用prbs信号作为数据信号流输入,并采用otn帧头对检测到的数据信号流进行定帧处理。
在上述技术方案中,在对检测到的数据信号流进行定帧处理之前,还包括:
复位fifo,若复位fifo后数据信号流正常,则进行定帧处理;否则,重新输入数据信号流。
在上述技术方案中,对检测到的数据信号流反复进行多次定帧处理,直至将可用取值范围中的边界值排除。
在上述技术方案中,定帧处理是否成功的判定条件为:
检测到的数据信号流的帧头正常,则判定为定帧成功;
检测到的数据信号流的帧头异常,则判定为定帧失败。
本发明还提供了一种基于sfi4-2接口查找输入时延的装置,包括prbs发生器、选择器、接口模块、fifo、idelay发生器、定帧模块、中间值计算模块以及控制模块;
prbs发生器,发送prbs信号到接口模块;
选择器,选择prbs发生器发送的prbs信号作为数据信号流,并在输入时延值查找完成时,恢复正常的数据信号流;
接口模块,根据控制模块的控制信号,对接收到的数据信号流进行相应处理;
fifo,根据控制模块的控制信号,对经过接口模块处理的数据信号流按照先进先出进行处理;
idelay发生器,根据控制模块的控制信号,在输入延迟值的可用取值范围内,随机搜索其中一个输入延迟值;
定帧模块,对检测到的数据信号流进行定帧处理,若定帧成功则将该输入延迟值加入取值范围队列,然后继续搜索,直至遍历完可用取值范围内的所有输入延迟值;若定帧失败,则将该输入延迟值从可用取值范围内去除;
中间值计算模块,对取值范围队列中的输入延迟值进行中间值计算,并将计算出的中间值作为最终的输入延迟值。
在上述技术方案中,所述中间值计算模块包括去抖动单元,对取值范围队列中的输入延迟值进行去抖动处理。
本发明采用动态搜索的方式确定输入时延值的可用取值范围,在可用取值范围内,通过取中间值的方法确定输入延迟值,避免了取值边缘化。
附图说明
图1为本发明提供的一种基于sfi4-2接口查找输入时延的方法流程图;
图2为本发明提供的sfi4-2接口输入时延取中间值的算法示意图;
图3为本发明提供的sfi4-2接口输入时延取中间值的算法示意图;
图4为本发明提供的一种基于sfi4-2接口查找输入时延的装置结构示意图。
具体实施方式
本发明应用在otn系统中,由于每个硬件pcb的不同板卡之间的输入延迟值存在差异性、且不唯一,因此针对不同的硬件pcb不能采用统一的输入延迟值,而是需要采用动态搜索的方式来确定每个硬件pcb的输入延迟值的可用取值范围,在可用取值范围内,通过取中间值的方法确定不同板卡各自唯一确定的输入延迟值,避免了取值边缘化。为了满足实际应用的要求,在otn设备中采用fpga与asic的sfi4-2接口进行对接,实现了asic芯片的odu2信号在fpga内的正确接收及处理后的正确发送,该sfi4-2接口的工作速率为2.5gb/s,主要用于系统之间的连接。
下面结合说明书附图和具体实施方式对本发明做出详细的说明。
本发明实施例提供了一种基于sfi4-2接口查找输入时延的方法,如图1所示,包括以下步骤:
s101、采用prbs(pseudorandombinarysequence,伪随机二进制序列)发生器发送的prbs信号作为数据信号流输入。
上述prbs信号可为otn设备的维护信号(从而下游信号可以采用otn帧头进行定帧处理)。在搜索输入延迟值时,外部信号发生变化可能导致搜索结果出错,将合适的输入延迟值排除在外,于是本方案采用prbs信号,以便进行后续的定帧处理时,可以最大限度地排除外在干扰。
s102、在输入延迟值的可用取值范围内,随机搜索其中一个输入延迟值。
本方案中,将输入延迟值的可用取值范围设为1~20,通过设置输入延迟值,保证了数据信号流对齐。
s103、复位fifo(firstinfirstout,先进先出队列),并判断复位fifo后数据信号流是否正常,如果是,转s104;否则,转s101。
由于fifo的深度有限,存在溢出的可能,因此本方案在进行定帧处理之前,通过复位fifo,对硬件pcb的4个板卡的数据信号流进行对齐处理,最大限度地排除了外在干扰。
s104、采用otn帧头对检测到的数据信号流进行定帧处理,判断是否定帧成功,若是,转s105;否则,转s102。
定帧处理符合g.709和g.798规定,定帧处理是否成功的判定条件为:
检测到的数据信号流的帧头正常,则判定为定帧成功;
检测到的数据信号流的帧头异常,则判定为定帧失败。
s105、将定帧成功的输入延迟值加入取值范围队列。
s106、在可用取值范围内(1~20),判断是否搜索完毕,如果是,转s107;否则,转s102,继续搜索,直至遍历完可用取值范围内的所有输入延迟值。
一般来说,满足定帧要求的取值不止一个,而是一个范围,因此,搜寻值会选择连续的取值范围。于是,在第i个值可以定帧时,继续搜索第i+1个值,直至将全部范围值搜索完毕,再根据搜索到的取值范围进行相应处理,最终确定可用输入时延值。
s107、对取值范围队列中的输入延迟值进行中间值计算,并将计算出的中间值作为最终的输入延迟值
对检测到的数据信号流反复进行多次定帧处理,直至将可用取值范围中的边界值排除。
s108、取消发送prbs信号,恢复正常数据信号流。
如图2所示,为sfi4-2接口输入时延取中间值的算法示意图,输入延迟值的可用取值范围为1~20,由于定帧成功的输入延迟值并不唯一,因此在1~20范围内采用取中间值的算法,进行取值搜索。去掉孤立点,在逐个点的尝试过程中,由于整个取值范围为一个圆(循环),可能出现取值范围为不连续的两个区间,因此需要针对不连续的区间进行周期处理,最终取得合适的中间值。
如图3所示,为sfi4-2接口输入时延取中间值的算法流程图,具体包括以下步骤:
s10、对取值范围队列中的输入延迟值进行筛选,只保留处于连通区域的输入延迟值。
由于输入延迟的取值均是整数,有一个取值范围,一个区域内数值之间不能间断,例如取值为1、2、3、4则是表示连通,如果取值为1、2、3、5,存在单个的散点,则表示不连通,其中,连通区域至少包括两个数值。
s20、判断取值范围队列是否存在多个连通区域,若是,转s30;否则,转s40。
如果取值范围队列中有多个数值,而且这多个数值可划分为多段,每一段中均是连续值,则认为该取值范围队列中存在多个连通区域,例如取值范围队列中包括数值1、2、3、6、7、8,则1、2、3为一个连通区域,6、7、8为一个连通区域。
s30、退出中间值计算,重新确定取值范围队列。
如果连通区域存在多个,则无法取值中间点,因此搜索出的范围不符合要求,如果不存在多个连通区域,则表明取值范围队列的输入延迟值正常,输入延迟值的分布合理。
s40、判断连通区域是否包含可用取值范围中的最小值和最大值,若是,转s50;否则转s60。
s50、将连通区域的两端点的数值之和加可用取值范围的周期,然后再取中间值,转s70。
这里是一个周期的概念,由于连通区域刚好包含了最小值和最大值,因此需要对最小值加入一个周期(20)然后取中间值。
s60、对连通区域的两端点的数值之和取中间值,转s100。
s70、判断得到的中间值是否大于可用取值范围的周期,若是,转s80;否则,转s90。
s80、将得到的中间值减去可用取值范围的周期,转s100。
当得到的中间值大于20时,则表明得到的中间值加入了一个周期,因此需要减去20;当得到的中间值小于20时,则表明得到的中间值在正常范围(1~20)。
s90、将得到的中间值直接作为最终的输入时延值,转s100。
s100、结束。
本发明实施例还提供了一种基于sfi4-2接口查找输入时延的装置,如图4所示,包括prbs发生器10、选择器20,接口模块30、fifo40、idelay发生器50、定帧模块60、中间值计算模块70以及控制模块80;
prbs发生器10,发送prbs信号到接口模块30;
选择器20,选择prbs发生器10发送的prbs信号作为数据信号流,并在输入时延值查找完成时,恢复正常的数据信号流;
接口模块30,根据控制模块80的控制信号,对接收到的数据信号流进行相应处理;
fifo40,根据控制模块80的控制信号,对经过接口模块30处理的数据信号流按照先进先出进行处理;
idelay发生器50,根据控制模块80的控制信号,在输入延迟值的可用取值范围内,随机搜索其中一个输入延迟值;
定帧模块60,对检测到的数据信号流进行定帧处理,若定帧成功则将该输入延迟值加入取值范围队列,然后继续搜索,直至遍历完可用取值范围内的所有输入延迟值;若定帧失败,则将该输入延迟值从可用取值范围内去除;
中间值计算模块70,对取值范围队列中的输入延迟值进行中间值计算,并将计算出的中间值作为最终的输入延迟值。
中间值计算模块70包括去抖动单元701,对取值范围队列中的输入延迟值进行去抖动处理。
本发明不局限于上述最佳实施方式,任何人在本发明的启示下作出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。