数据转发方法及装置、电子设备与流程

文档序号:12134089阅读:232来源:国知局
数据转发方法及装置、电子设备与流程

本发明涉及一种通信技术,尤其涉及一种数据转发方法及装置、电子设备。



背景技术:

“手拉手”结构的串联网络因其结构简单、布线方便,被广泛地应用在工业总线、现场会议总线等系统中。如图1所示,图1示出了“手拉手”串联网络的结构示意图,数据通过各节点的转发在链路中传播。

工业总线、现场会议总线等应用对网络的实时性要求较高,必须在各节点实现低延时转发才能保证数据传输的实时性。

如果图1中所示的转发节点的输入数据流RX和输出数据流TX的速率不相等,即存在漂移时,漂移累积就可能造成数据位错误。因此,漂移累积成为数据流转发中的主要问题。

目前,解决漂移累积问题的一种方法是时钟同步,即使用锁相环使网络中的所有节点的时钟频率同步,保证进入与离开转发节点的数据流的速率完全相等,直接消除漂移。第二种被广泛使用的方法是存储转发,即转发节点接收并存储一个上游数据帧,然后向下游转发,第二种方法是以大量的缓存空间来吸收漂移累积。

然而,上述第一种时钟同步方法中,锁相环电路的使用增加了设计的复杂度,也提高了硬件成本;且在“手拉手”串联网络中,如果各节点都向它的上游节点同步,形成逐级同步的结构,则越往后的锁相环的稳定性越差,尤其在较大型的串联网络中很容易引起不稳定现象。

现有的第二种存储转发方法中,为了在长时间连续数据流转发中吸收偏移累积,需要较深的缓存深度,造成较大的转发延时。尤其在“手拉手”串联网络中各级转发延时累积在一起,使网络无法满足实时性要求。



技术实现要素:

针对现有技术中的缺陷,本发明提供一种数据转发方法及装置、电子设备,该方法可以保证数据转发的正确性、实时性及稳定性。

第一方面,本发明提供一种数据转发装置,包括:

用于接收输入数据流RX的先入先出队列FIFO;

与所述FIFO连接的且用于输出数据流TX的移位寄存器;

所述FIFO和所述移位寄存器构成用于数据转发的缓存结构;该缓存结构中的输入数据流和输出数据流的速率差值在预设范围内。

可选地,所述装置还包括:分别连接所述FIFO和所述移位寄存器的复位单元,

所述复位单元用于在所述FIFO溢出和/或所述移位寄存器耗尽时对所述FIFO和移位寄存器进行复位。

可选地,所述装置还包括:分别连接所述FIFO和所述移位寄存器的控制单元,

所述控制单元用于根据所述输入数据流中的释放信息确定所述缓存结构中吸收漂移累积的时间。

另外,本发明还提供一种电子设备,包括上述任一所述的数据转发装置。

可选地,所述电子设备属于手拉手结构中的转发设备。

第二方面,本发明提供一种基于上述任一所述的数据转发装置的数据转发方法,包括:

在所述数据转发装置接收到输入数据流时,所述FIFO根据所述输入数据流中时钟的高电平信息和低电平信息确定需要写入的数据,以及所述移位寄存器根据所述输出数据流中时钟的高电平信息和低电平信息缓冲处理FIFO中写入的数据,并将缓冲处理后的数据作为输出数据流发送。

可选地,所述方法还包括:

在所述FIFO溢出时,所述数据转发装置丢弃当前待转发的数据帧,并执行复位操作;

和/或,

在所述移位寄存器耗尽时,所述数据转发装置丢弃当前待转发的数据帧,并执行复位操作。

可选地,所述方法还包括:

控制单元在所述FIFO接收到输入数据流时,确定所述输入数据流中是否包括释放信息;

若包括,根据所述释放信息对缓存结构进行释放。

由上述技术方案可知,本发明的数据转发装置,通过设置FIFO和移位寄存器连接的缓存结构对漂移累积进行“吸收”和“释放”,进而可保证上述数据转发装置的低时延转发,同时保证转发数据的实时性和稳定性,提升用户体验。

附图说明

图1为现有技术中“手拉手”串联网络的结构示意图;

图2为本发明一实施例提供的数据转发装置的结构示意图;

图3至图5分别为本发明一实施例提供的数据转发方法的示意图;

图6为本发明一实施例提供的数据转发装置中的缓冲结构释放间隔的示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

本发明实施例提供一种数据转发装置,如图2所示,该数据转发装置包括:用于接收输入数据流(RX)的FIFO(First Input First Output,先入先出队列);和与所述FIFO连接的且用于输出数据流(TX)的移位寄存器。

本实施例中的FIFO和所述移位寄存器构成用于数据转发的缓存结构;该缓存结构中的输入数据流和输出数据流的速率差值在预设范围内。

通常,缓存深度是不变的。操作人员可根据具体的应用情况来调整使用的缓存结构的缓存深度。

在一种可选的实现方式中,前述的数据转发装置还可包括:处理器;其中缓冲结构中的FIFO和所述移位寄存器分别连接所述处理器。可以理解的是,如果转发节点采用的是处理器芯片,则缓存结构是处理器芯片中代码实现的。

上述数据转发装置可实现低延时的数据流转发,能够保证数据转发的正确性、实时性及稳定性。

以下集合图3至图5分别说明图2所示的数据转发装置的具体使用方法。

如图3所示,在图3中输入数据流和输出数据流的速率相同。图3中,RxData为接收数据流,它按照RxClk的节拍到达转发节点,RxDv以高电平标记帧数据,低电平标记帧间隔。

这里需要说明的是,图中的TXCLK是由转发节点(即本实施例中数据转发装置所属的节点)本身产生的,转发节点就是根据TXCLK的节拍来发送RxData的。

在RxData中A、B、C、D、E、F、G、H、I、J分别表示帧数据。TxData为输出数据流,它按照TxClk的节拍离开转发节点,Tx,En以高电平标记帧数据,低电平标记帧间隔。

每RxClk的上升沿时,如果RxData为帧数据,则将该数据写入FIFO,图中标出了写入FIFO中的帧数据的操作箭头。

每TxClk下降沿时,将移位寄存器下移一位;并且如果此时FIFO中有帧数据则将该数据读出并填入移位寄存器顶部。图中3,将写FIFO的操作以小箭头标记,且在图中以文字标出,读FIFO的操作以小箭头标记。每次操作后缓存结构中的数据情况发生变化,在图3中以两排列出,上排展示每次写FIFO操作后的情况,下排展示每次移位操作后的情况。

RxData的帧数据到达转发节点即本实施例中数据转发装置所属的节点,则被写入FIFO,然后从FIFO读出并被填入移位寄存器顶部,再经过三次移位后到达移位寄存器底部,TxData即取自移位寄存器底部的数据,这个过程经过了4个时钟的时间,即转发延时为4个时钟。转发延时由移位寄存器的深度决定,为保证较小的转发延时,要设置较小的移位寄存器深度。

在图3总仅示意给出的是四个时钟,在其他实施例中并不限定移位寄存器的深度为四个时钟,可根据实际需要调整。

图3中RxClk与TxClk频率相同,即进入与离开转发节点的数据流的速率相同,此时不存在数据流速率漂移及累积的情况。在图3所示的实施例中,转发的帧数据及帧间隔都保持完整。

为更好的理解图2中的数据转发装置的数据转发方法,以下对输入数据流和输出数据流的速率不相同的情况进行详细说明。

当输入数据流速率与输出数据流速率不相等时,速率漂移累积后就会造成进出数据流之间的错位,该错位被转发节点中的数据转发装置的缓存结构“吸收”从而保证转发数据与输入数据一致。

当输入数据速率较高时,漂移累积被缓存结构中的FIFO吸收,表现为FIFO中累积数据;当输出数据速率较高时,漂移累积被缓存结构中的移位寄存器吸收,表现为移位寄存器的深度被压缩。

图4展示了输入数据速率更高时的情况,即RxClk的频率高于TxClk的频率。此时写FIFO的动作频率略高于读FIFO的动作频率,累积后会出现连续两次写FIFO的动作。图4中标记第4次写FIFO动作的箭头出现在标记第3次读FIFO动作的箭头之前,导致FIFO中多积累了一个数据,即FIFO吸收了一次偏移累积。当RxData的数据帧结束后,因为在帧间隔期间不向FIFO中写入数据,所以FIFO中积累的数据被直接读出,即FIFO在数据帧期间吸收的漂移累积得以在帧间隔期间被释放。此时,输出数据流中的帧数据保持与输入数据流一致,但是帧间隔被压缩了,在图4中表现为输入数据流中长度为3的帧间隔在转发数据流中被压缩到长度为2。

进一步地,图5展示了输入数据速率更低时的情况,即RxClk的频率低于TxClk的频率。此时写FIFO的动作频率略低于移位寄存器的移位动作频率,累积后会出现连续两次试图读FIFO的动作。图5中标记第4次试图读FIFO动作的读FIFO的箭头出现在标记第4次写FIFO动作的箭头之前。第4次读FIFO时,因为FIFO为空而无法读出数据,导致无法向移位寄存器顶部填入数据,此时将移位寄存器压缩一位,即将原来的次顶位作为新的顶位,如图中下排第4个缓存结构中将连接FIFO与移位寄存器的箭头指向次顶位。这个“压缩”的动作表示由移位寄存器吸收了一次漂移累积。当RxData的数据帧结束后,将移位寄存器恢复到原深度,如图5中下排第7个缓存结构中将连接FIFO与移位寄存器的箭头重新指向顶部,即移位寄存器在数据帧期间吸收的漂移累积得以在帧间隔期间被释放。此时,输出数据流中的帧数据保持与输入数据流一致,帧间隔则被扩展了,在图5中表现为输入数据中长度为3的帧间隔在转发数据中被扩展到长度为4。

“FIFO+移位寄存器”的缓存结构能够吸收两个方向上的漂移累积在数据帧期间造成的错位,在帧间隔期间将累积释放,使缓存结构复原以保持持续的缓冲能力。这个及时“释放”的机制使得该缓存结构仅以极少的缓存深度即可以保持长时间持续地缓冲能力,从而保证了极低的转发延时。

在一种可选的实现方式中,上述图2所示的数据转发装置还包括图中未示出的分别连接FIFO和移位寄存器的复位单元,该复位单元用于在所述FIFO溢出和/或所述移位寄存器耗尽时对所述FIFO和移位寄存器进行复位。

也就是说,在实际应用中,“FIFO+移位寄存器”的缓存结构依靠及时的“释放”机制来保证持续的缓冲能力,如果缓存结构长时间得不到释放将会导致它失效,表现为FIFO溢出或移位寄存器耗尽,此时造成转发帧数据出错。即,FIFO发生溢出或移位寄存器耗尽后,对缓冲结构复位,然后保持在复位状态,一直等到当前的数据帧结束后,再开始正常的转发后续数据帧。

缓存结构在数据帧期间持续地吸收漂移累积,数据帧长度、缓存深度以及速率偏移程度三者之间相互限制。

例如,设数据帧长度为L,RxClk与TxClk的频率偏差为P=|frxclk-ftxclk|/frxclk,缓存深度为H,则保证正确转发数据流,则要求满足关系H≥(L·P)。如图4和图5中,H=4,假设时钟频率偏差为P=20/106(即20ppm,对于常见的晶振,这是一个很宽松的指标),则要求数据帧长度满足L≤2×105,可见仅使用很小的缓存深度,无需对晶振的精度提出很高要求,即可保证对数据帧的正确转发。

上述“FIFO+移位寄存器”的缓存结构以及利用它“吸收”及“释放”漂移累积的方式,是本发明能够保证低转发延时及持续缓冲能力的关键。

在第二种可选的实现方式中,上述图2所示的数据转发装置还包括图中未示出的分别连接FIFO和移位寄存器的控制单元,该控制单元可用于根据所述输入数据流中的释放信息确定所述缓存结构中吸收漂移累积的时间。

可理解的是,缓冲结构在数据帧期间吸收漂移累积以保证对数据帧的正确转发,在帧间隔期间释放偏移累积使错位发生在帧间隔期间,表现为帧间隔的长度被压缩或扩展。

然而,在某些应用中对帧间隔也有要求,例如以太网规定最小帧间隔为96bit长度;另外,在较大规模的“手拉手”串联网络中,数据流要经过多次转发,可能使某一段帧间隔在多次转发中都被压缩,最终导致该段帧间隔的长度缩短至零而使两帧相连,导致该两帧被破坏。

基于以上原因,本实施例设置有控制单元,用于控制缓存结构“释放”漂移累积的时机,以保证在转发时保证帧数据正确及帧间隔完整。

如图6所示,标示出了数据帧、帧间隔。另外在协议中规定一类特殊的帧“释放帧”,图中深灰色标出释放帧。以信号Release来指示“释放帧”的持续时间,当监测到“释放帧”帧头后置高电平,“释放帧”结束后恢复低电平。在Release=0期间,缓存结构持续地吸收漂移累积,保证此期间内的数据帧及帧间隔都被原样转发;在Release=1期间,缓存结构释放漂移累积,这导致“释放帧”长度被压缩或扩展,这正是“释放帧”的作用。

“释放帧”应该有足够的长度,以保证它能够承受在多次转发中都被压缩的情况。两个“释放帧”之间的间隔为缓存结构持续吸收漂移累积的时间,在图6中以L标示,根据上述给出的H≥(L·P)关系,它应该满足L≤(H/P),否则将超出缓存结构的缓冲能力。

另外,本发明实施例还提供一种电子设备,该电子设备可包括上述任意实施例所述的数据转发装置。该电子设备可为上述的转发节点。

通常,该电子设备可属于手拉手结构中的转发设备及转发节点。

根据本发明实施例的第三方面,本发明实施例还提供一种基于上述任一实施例的数据转发方法,该数据转发方法包括下述的图中未示出的步骤A01和A02:

A01、在所述数据转发装置接收到输入数据流时,所述FIFO根据所述输入数据流中时钟的高电平信息和低电平信息确定需要写入的数据;

A02、移位寄存器根据所述输出数据流中时钟的高电平信息和低电平信息缓冲处理FIFO中写入的数据,并将缓冲处理后的数据作为输出数据流发送。

可选地,在数据转发装置包括复位单元时,数据转发方法还包括下述的步骤A03:

A03、在所述FIFO溢出时,所述数据转发装置丢弃当前待转发的数据流,并执行复位操作;

和/或,在所述移位寄存器耗尽时,所述数据转发装置丢弃当前待转发的数据流,并执行复位操作。

可选地,在数据转发装置包括控制单元时,数据转发方法还包括下述的步骤A03:

控制单元在所述FIFO接收到输入数据流时,确定所述输入数据流中是否包括释放信息;

否包括,所述控制单元根据所述释放信息对缓存结构进行释放。

本实施例的数据转发方法可具有下述特点:

第一、低延时,相比于传统的存储转发方法,本发明实施例的数据转发方法具有极低的转发延时,能够满足大型串联网络对实时传输的要求。

第二、稳定性,本发明实施例能够实现跨时钟域的数据实时转发,不要求网络中各节点达到时钟同步。没有使用锁相环电路,从而保证了网络(尤其是大型串联网络)中数据转发的稳定性。

第三、灵活性,本发明实施例使用“FIFO+移位寄存器”的缓存结构,可以方便地改变其缓存深度。允许操作人员根据连续转发时间、节点晶振的频率偏差以及对转发延时的要求等条件灵活地设置缓存深度,更全面地满足各种场景的需求。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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