一种交叉芯片间进行数据传输的方法及装置制造方法

文档序号:7798317阅读:311来源:国知局
一种交叉芯片间进行数据传输的方法及装置制造方法
【专利摘要】本发明公开了一种交叉芯片间进行数据传输的方法及装置,该方法包括:当检测到主交叉芯片在输出方向的复帧定位信号,缓存主交叉芯片输出的数据,并经过从交叉芯片的数据输入延时产生从交叉芯片在输入方向的复帧定位信号;当产生从交叉芯片在输入方向的复帧定位信号,从缓存中读取主交叉芯片输出的数据并输入从交叉芯片,并经过从交叉芯片的处理延时产生从交叉芯片在输出方向的复帧定位信号;当产生从交叉芯片在输出方向的复帧定位信号,缓存从交叉芯片输出的数据;当检测到主交叉芯片在输入方向的复帧定位信号,从缓存中读取从交叉芯片输出的数据并输入主交叉芯片。本发明能够在一些对传输时延要求比较敏感的应用场合,避免收发时延不一致的问题。
【专利说明】一种交叉芯片间进行数据传输的方法及装置
【技术领域】
[0001]本发明涉及光通信【技术领域】,尤其涉及一种交叉芯片间进行数据传输的方法及装置。
【背景技术】
[0002]在同步数字序列(Synchronous Digital Hierarchy, SDH)的光网络系统中,以常见的多业务接入平台(MSAP)系统为例,一般都会有SDH的群路盘和SDH的支路盘,SDH群路盘完成对SDH支路盘的汇聚功能,有多种类型,比如:STM1/STM4/STM16 ;SDH支路盘完成对远端设备的接入功能,类型也有多种,如STM1/STM4。
[0003]如图1所示,SDH群路盘和SDH支路盘之间通过TELEC0MBUS总线(图1中的双箭头部分)互相连接。群路盘上都会有SDH交叉连接芯片(交叉芯片),完成与支路数据的交叉连接,该芯片的容量一般为16X16VC4/32X32VC4或者更大;而有一些SDH支路盘上也有交叉连接芯片,交叉容量一般为3X3VC4或者4X4VC4或者更大,这时候就涉及到了不同的群路盘的交叉芯片和不同的SDH支路盘交叉芯片之间TELEC0MBUS总线的时序兼容性问题,支路盘的TELEC0MBUS总线时序需要根据群路盘的时序、群路盘输出输入之间的延时等,进行相应的时序调整,从而符合群路盘的时序,进而与群路盘时序能够兼容。
[0004]其中,TELEC0MBUS总线是处理SDH VC4/VC3/VC12业务的一种总线,如图1所示,TELEC0MBUS总线包括输入(IN)和输出(OUT)两个方向,该总线承载复帧中的系统时钟(SYSCLK),数据信号(din、dout),帧定位信号(FP_IN、FP_0UT)和复帧定位信号(MFP_IN、MFP_0UT)等信息,其中,帧定位信号的周期是125us,是个8K信号,复帧定位信号的周期是500us,是2K信号。
[0005]交叉芯片的输入输出存在一定的延时,由于每一种交叉芯片的时序都是不相同,因此每种交叉芯片的输入和输出的延时都不确定,根据时分交叉的实现原理,需要把输入的数据存储到DM (DATA MEMORY,数据存储器)中,然后配置RAM (Read Access Memory,随机存储器)按照软件的交叉信息从DM中取出数据,每个交叉芯片在进行内部处理时的延时不一样,因此每一种交叉芯片的输入和输出延时存在差异,如果背板业务是TU12的数据,是一个周期为500us的复帧结构,那么该延时一般大于3us,小于500us,即一个SDH复帧(一个TU12字节数据是51.44ns,最小要存63个TU12周期)。
[0006]以复帧周期为500us,背板业务是TU12的数据为例,现有的群路盘交叉芯片(主交叉芯片)和支路盘交叉芯片(从交叉芯片)通过TELEC0MBUS总线互连的时候,调整支路盘交叉芯片时序的方法为:
[0007]如图2所示,SYSCLK为系统时钟,MFP_IN_A表示SDH群路盘上交叉芯片A的输入方向复巾贞定位信号,DIN_A表不交叉芯片A的数据输入,MFP_0UT_A表不交叉芯片A的输出方向复帧定位信号,D0UT_A表示交叉芯片A的数据输出,MFP_IN_B表示SDH群路盘上交叉芯片B的输入方向复帧定位信号,DIN_B表示交叉芯片B的数据输入,MFP_0UT_B表示交叉芯片B的输出方向复巾贞定位信号,D0UT_B表不交叉芯片B的数据输出,JO表不一个复巾贞信号的帧头。其中,MFP_OUT_A的时序与MFP_IN_B的时序相同,DOUT_A与DIN_B相同。假设交叉芯片A的输出相对于输入延迟了 X个系统时钟周期,交叉芯片B的输出相对于输入延迟了 Y个系统时钟周期,X和Y的值根据不同的交叉芯片会不一样。现有的技术需要采用一个RAMi夹,当交叉芯片B输出MFP_OUT_B时,将交叉芯片A输出的数据缓存(写)到RAM中,当交叉芯片A输入MFP_IN_A时,将RAM块中的数据取(读)出送给交叉芯片A,从而使交叉芯片B的时序符合交叉芯片A的时序,此时交叉芯片A和交叉芯片B即可完成数据通信。不同的交叉芯片会带来不同的时序要求,群路盘和支路盘的交叉芯片根据设备型号的不同可能会不一样,因此如上所述的X和Y的值是会变化的。但是由于群路盘是系统中的核心,一般采用集中交换的方式,不对各个支路盘的时序自适应。
[0008]现有技术只是通过在支路盘数据输出或者输入方向上增加延时,来使支路盘交叉芯片符合主路盘交叉芯片的信号时序,从而实现支路盘和主路盘之间的数据通信,这样会造成该方向上的传输延时增加很多(在交叉芯片B输出数据方向上增加的延时最大可以接近500us),这样会导致发送和接收方向上时延差距很大,在一些对传输延时要求比较敏感的应用场合,例如电力系统中的输电线路的光纤电流差动保护装置,对收发路由时延一致性有很高的要求,应用在这些场合中的时候,容易导致收发时延不一致,性能达不到使用要求。

【发明内容】

[0009]本发明提供了一种交叉芯片间进行数据传输的方法及装置,用以解决现有技术中交叉芯片在某个方向的上的延时过大时,造成的传输设备不能应用于对传输延时要求比较敏感的应用场合的问题。
[0010]本发明提供了一种交叉芯片间进行数据传输的方法,包括:
[0011]当检测到主交叉芯片在输出方向的复帧定位信号,缓存所述主交叉芯片输出的数据,并经过从交叉芯片的数据输入延时产生所述从交叉芯片在输入方向的复帧定位信号;
[0012]当产生所述从交叉芯片在输入方向的复帧定位信号,从缓存中读取所述主交叉芯片输出的数据并输入所述从交叉芯片,并经过所述从交叉芯片的处理延时产生所述从交叉芯片在输出方向的复帧定位信号;
[0013]当产生所述从交叉芯片在输出方向的复帧定位信号,缓存所述从交叉芯片输出的数据;
[0014]当检测到所述主交叉芯片在输入方向的复帧定位信号,从缓存中读取所述从交叉芯片输出的数据并输入所述主交叉芯片。
[0015]所述方法中,从交叉芯片的数据输出延时和从交叉芯片的数据输入延时之和为从交叉芯片与主交叉芯片间数据传输所需的延时,所述数据输出延时为所述从交叉芯片输出的数据的缓存时间。
[0016]利用本实施例可以根据实际情况将从交叉芯片与主交叉芯片间数据传输所需的延时分配在从交叉芯片的数据输入和数据输出方向上,从而避免了在某一个方向上延时过大的情况出现。
[0017]所述方法中,所述从交叉芯片的数据输出延时与从交叉芯片的数据输入延时的差值不大于一个系统时钟周期。[0018]本发明实施例可以将从交叉芯片与主交叉芯片间数据传输所需的延时相对均匀的分配在从交叉芯片的数据输入和数据输出方向上,从而保证了在从交叉芯片数据输出和数据输入方向上延时相当,避免了在某一个方向上延时过大的情况出现。
[0019]所述方法中,所述当检测到主交叉芯片在输出方向的复帧定位信号,经过所述从交叉芯片的数据输入延时产生从交叉芯片在输入方向的复巾贞定位信号,包括:
[0020]当检测到主交叉芯片在输出方向复帧定位信号,从下一个系统时钟信号开始对系统时钟信号进行计数;
[0021]当对系统时钟信号进行计数的计数值等于所述从交叉芯片的数据输入延时对应的系统时钟信号数时,产生所述从交叉芯片在输入方向的复帧定位信号;
[0022]所述当产生从交叉芯片在输入方向的复帧定位信号,经过所述从交叉芯片的处理延时产生从交叉芯片在输出方向的复帧定位信号,包括:
[0023]当产生从交叉芯片在输入方向的复帧定位信号,从下一个系统时钟信号开始对系统时钟信号进行计数;
[0024]当对系统时钟信号进行计数的计数值等于所述从交叉芯片的处理延时对应的系统时钟信号数,产生所述从交叉芯片在输出方向的复帧定位信号。
[0025]利用本实施例在延迟从交叉芯片的数据输入/输出延时对应的系统时钟信号数时,产生从交叉芯片在输入/输出方向的复帧定位信号,从而使主交叉芯片和从交叉芯片间进行数据通信。
[0026]所述方法还包括,根据产生的从交叉芯片在输入方向的复帧定位信号,产生从交叉芯片在输入方向的帧定位信号;
[0027]根据产生的从交叉芯片在输出方向的复帧定位信号,产生从交叉芯片在输出方向的帧定位信号。
[0028]本发明实施例可以根据所产生的从交叉芯片在输出/输入方向的复帧定位信号,产生从交叉芯片内部所需要的帧定位信号。
[0029]基于与本发明提供的交叉芯片间进行数据传输的方法相同的发明构思,本发明还提供了一种交叉芯片间进行数据传输的装置,包括:
[0030]第一缓存单元,用于当检测到主交叉芯片在输出方向的复帧定位信号,缓存所述主交叉芯片输出的数据,并经过从交叉芯片的数据输入延时产生所述从交叉芯片在输入方向的复帧定位信号;
[0031]第一读取单元,用于当产生所述从交叉芯片在输入方向的复帧定位信号,从缓存中读取所述主交叉芯片输出的数据并输入所述从交叉芯片,并经过所述从交叉芯片的处理延时产生所述从交叉芯片在输出方向的复帧定位信号;
[0032]第二缓存单元,用于当产生所述从交叉芯片在输出方向的复帧定位信号,缓存所述从交叉芯片输出的数据;
[0033]第二读取单元,当检测到所述主交叉芯片在输入方向的复帧定位信号,从缓存中读取所述从交叉芯片输出的数据并输入所述主交叉芯片。
[0034]所述装置中,从交叉芯片的数据输出延时和从交叉芯片的数据输入延时之和为从交叉芯片与主交叉芯片间数据传输所需的延时,所述数据输出延时为所述从交叉芯片输出的数据的缓存时间。[0035]所述装置中,所述从交叉芯片的数据输出延时与从交叉芯片的数据输入延时的差值不大于一个系统时钟周期。
[0036]所述装置中,所述第一缓存单元具体用于:
[0037]当检测到主交叉芯片在输出方向复帧定位信号,从下一个系统时钟信号开始对系统时钟信号进行计数;
[0038]当对系统时钟信号进行计数的计数值等于所述从交叉芯片的数据输入延时对应的系统时钟信号数时,产生所述从交叉芯片在输入方向的复帧定位信号;
[0039]所述第一读取单元具体用于:当产生从交叉芯片在输入方向的复帧定位信号,从下一个系统时钟信号开始对系统时钟信号进行计数;
[0040]当对系统时钟信号进行计数的计数值等于所述从交叉芯片的处理延时对应的系统时钟信号数,产生所述从交叉芯片在输出方向的复帧定位信号。
[0041]所述装置中,所述第一缓存单元还用于:
[0042]根据产生的从交叉芯片在输入方向的复巾贞定位信号,产生从交叉芯片在输入方向的帧定位信号;
[0043]所述第一读取单兀还用于:根据产生的从交叉芯片在输出方向的复巾贞定位信号,产生从交叉芯片在输出方向的帧定位信号。
[0044]利用本发明提供交叉芯片间进行数据传输的方法及装置,具有以下有益效果:在从交叉芯片的输入方向和从交叉芯片的输出方向分别将数据缓存一段时间,使发送和接收方向上时延的差距可根据实际情况进行调整,从而在一些对传输时延要求比较敏感的应用场合,避免了收发时延不一致,性能达不到使用要求的问题。
【专利附图】

【附图说明】
[0045]图1为现有技术中群路盘和支路盘的连接示意图;
[0046]图2为现有技术中交叉芯片间各信号的时序图;
[0047]图3为本发明实施例提供的交叉芯片间进行数据传输的方法流程图;
[0048]图4为本发明实施例提供的确定从交叉芯片输出相对于输入的延时的方法流程图;
[0049]图5为本发明实施例提供的产生从交叉芯片在输入方向复帧定位信号的方法流程图;
[0050]图6为本发明实施例提供的产生从交叉芯片在输出方向复帧定位信号的方法流程图;
[0051 ]图7为本发明实施例提供的产生从交叉芯片在输入方向/输出方向的帧定位信号的方法流程图;
[0052]图8为本发明实施例提供的群路盘和SDH支路盘之间的各信号传递示意图;
[0053]图9为本发明实施例提供的具体实施过程流程图;
[0054]图10为本发明实施例提供的确定交叉芯片A输出相对于输入的延时的流程图;
[0055]图11为本发明实施例提供的确定交叉芯片B输出相对于输入的延时的流程图;
[0056]图12为本发明实施例提供的调整后的MFP_IN_B和FP_IN_B时序图;
[0057]图13为本发明实施例提供的交叉芯片B所配置的RAM示意图;[0058]图14为本发明实施例提供的交叉芯片间进行数据传输的装置示意图。
【具体实施方式】
[0059]下面结合附图和实施例对本发明提出的交叉芯片间进行数据传输的方法进行更详细的说明。
[0060]本发明提供的一种交叉芯片间进行数据传输的方法,如图3所示,包括:
[0061]步骤101,当检测到主交叉芯片在输出方向的复帧定位信号,缓存所述主交叉芯片输出的数据,并经过从交叉芯片的数据输入延时产生从交叉芯片在输入方向的复帧定位信号。
[0062]步骤102,当产生从交叉芯片在输入方向的复帧定位信号,从缓存中读取所述主交叉芯片输出的数据并输入从交叉芯片,并经过所述从交叉芯片的处理延时产生从交叉芯片在输出方向的复帧定位信号。
[0063]步骤103,当产生从交叉芯片在输出方向的复帧定位信号,缓存所述从交叉芯片输出的数据。
[0064]步骤104,当检测到主交叉芯片在输入方向的复帧定位信号,从缓存中读取所述从交叉芯片输出的数据并输入主交叉芯片。
[0065]现有技术中,主交叉芯片在输出方向的复帧定位信号与从交叉芯片输入方向的复帧定位信号的时序相同,从主交叉芯片输出的数据就会立即输入到从交叉芯片中;经过从交叉芯片的处理延时之后,缓存从交叉芯片输出的数据,当检测到主交叉芯片在输入方向的复帧定位信号,从缓存中读取从交叉芯片输出的数据并输入主交叉芯片中。这样,从交叉芯片在等待主交叉芯片在输入方向的复帧定位信号时,数据需要缓存的时间就会很长,即,从交叉芯片与主交叉芯片间数据传输所需的延时都发生在了从交叉芯片数据输出方向,这就容易造成收发时延不一致的问题,从而达不到性能要求。
[0066]在进行交叉芯片间的数据传输前,需要对从交叉芯片定位信号的时序进行调整,根据调整后的定位信号时序,进行交叉芯片间的数据传输。
[0067]在实际应用中,由于群路盘完成对支路盘的汇聚功能,因此群路盘中的交叉芯片(主交叉芯片)的时序不会自适应支路盘中交叉芯片(从交叉芯片)的时序,而是支路盘中交叉芯片的时序自适应群路盘中交叉芯片的时序,即,支路盘中交叉芯片的时序根据群路盘交叉芯片的时序来调整自身的时序,从而使调整后的时序能够符合群路盘交叉芯片的时序。因此,本发明实施例中的主交叉芯片优选为SDH群路盘中的交叉芯片,从交叉芯片优选为SDH支路盘中的交叉芯片。
[0068]时序调整完成之后,利用本发明实施例提供的数据传输方法经过两次数据缓存,即,在从交叉芯片的输入方向和从交叉芯片的输出方向分别将数据缓存一段时间,这两个方向数据缓存的时间长短可根据实际情况进行计算,即,本发明实施例将从交叉芯片与主交叉芯片间数据传输所需的延时,分配在了从交叉芯片数据输出和输入两个方向上,使发送和接收方向上时延的差距可根据实际情况进行调整,从而在一些对传输时延要求比较敏感的应用场合,避免了收发时延不一致,性能达不到使用要求的问题。
[0069]具体的,从交叉芯片的数据输出延时和从交叉芯片的数据输入延时之和为从交叉芯片与主交叉芯片间数据传输所需的延时,所述数据输出延时为所述从交叉芯片输出的数据的缓存时间。
[0070]其中,从交叉芯片与主交叉芯片间数据传输所需的延时,不包括从交叉芯片的处理延时。
[0071]优选地,所述各个延时的大小和缓存时间的长短对应的是系统时钟周期的个数。
[0072]优选地,所述从交叉芯片的数据输出延时与从交叉芯片的数据输入延时的差值不大于一个系统时钟周期。
[0073]具体的,本发明实施例的延时为延迟的系统时钟周期的个数,可以但不限定于通过以下方式确定从交叉芯片的数据输出延时与从交叉芯片的数据输入延时:从交叉芯片与主交叉芯片间数据传输所需的延时为二进制数时,将该二进制数右移一位,确定从交叉芯片的数据输出延时与从交叉芯片的数据输入延时,这两个延时的差值为一个时钟周期或零;将这两个延时中的一个延时确定为从交叉芯片的数据输出延时;将两个延时中的另一个延时确定为从交叉芯片的数据输入延时。
[0074]分别将差值不大于一个系统时钟周期的两个延时确定为从交叉芯片的数据输出和数据输入所需的延时,从而实现从交叉芯片的数据输出和数据输入所需延时的平均分配。
[0075]这样就可以将从交叉芯片与主交叉芯片间数据传输所需的延时,均匀的分配在从交叉芯片数据输出和数据输入两个方向上,使得数据的收发时延相对均衡,从而避免了在某一个方向上延时过大的情况出现。
[0076]具体的,根据一个复帧周期对应的系统时钟周期的总个数减去主交叉芯片输出相对于输入的延时,再减去从交叉芯片输出相对于输入的延时,确定从交叉芯片与主交叉芯片间数据传输所需的延时。
[0077]基于上述实施例,在确定从交叉芯片与主交叉芯片间数据传输所需的延时之前,要先分别确定出主交叉芯片输出相对于输入的延时和从交叉芯片输出相对于输入的延时,可以但不限定于通过以下方式确定主交叉芯片输出相对于输入的延时:
[0078]针对主交叉芯片设定一个复帧计数器,该复帧计数器的初始值可设定为0,当检测到主交叉芯片在输出方向复巾贞定位信号MFP_0UT_A时,从下一个系统时钟信号(系统有效时钟信号)开始,复帧计数器对系统时钟信号进行计数(即,当检测到主交叉芯片在输出方向复帧定位信号MFP_0UT_A时,复帧计数器的值清零;检测到主交叉芯片输出方向的复帧定位信号MFP_0UT_A消失时,复帧计数器开始对系统时钟信号进行计数),每增加一个系统时钟信号,复帧计数器的值加1,当检测到主交叉芯片输入方向的复帧定位信号MFP_IN_A时,计算并输出主交叉芯片输出相对于输入的延时,具体的计算方式可以为:计算一个复帧周期所对应的系统时钟周期的个数减去主交叉芯片在输入方向出现复帧定位信号时对应的复帧计数器的值的结果,将该结果作为主交叉芯片输出相对于输入的延时。
[0079]基于上述实施例,可以但不限定于通过以下方式确定从交叉芯片输出相对于输入的延时,如图4所示:
[0080]步骤201,检测到主交叉芯片在输出方向第N-1个复帧定位信号MFP_0UT_A时,从下一个系统时钟信号开始对系统时钟信号进行计数。
[0081]具体的,检测到主交叉芯片输出方向第N-1个复帧定位信号出现时,结束对系统时钟信号的计数,并将之前对系统时钟信号进行计数的计数值清零,并从下一个系统时钟信号开始对系统时钟信号进行计数,即检测到MFP_OUT_A消失时,开始对系统时钟信号进行计数。
[0082]步骤202,检测到从交叉芯片在输出方向的复帧定位信号MFP_0UT_B时,根据当前对系统时钟信号进行计数的计数值,确定从交叉芯片输出相对于输入的延时。
[0083]具体的,如果本发明实施例是从零开始对系统时钟信号进行计数的,那么需要将当前对系统时钟信号进行计数的计数值加一作为从交叉芯片输出相对于输入的延时;如果本发明实施例是从一开始对系统时钟信号进行计数的,将当前对系统时钟信号进行计数的计数值作为从交叉芯片输出相对于输入的延时。
[0084]该实施例可以使得到的从交叉芯片输出相对于输入的延时更加准确、可靠。
[0085]优选地,N的取值为4,为了保证所确定的从交叉芯片输出相对于输入的延时的可靠性和稳定性,本发明实施例从主交叉芯片在输出方向的第N-1个复帧定位信号消失时,开始对系统时钟信号进行计数。
[0086]在具体实施时,可针对从交叉芯片设定计数器,该计数器的初始值可设定为0,检测到主交叉芯片在输出方向的复帧定位信号,该计数器的值加I ;当该计数器的值等于N-1并检测到主交叉芯片在输出方向第N-1个复帧定位信号消失时,开始对系统时钟信号进行计数;在从交叉芯片输出方向的复帧定位信号出现时,将当前对系统时钟信号进行计数的计数值加一,作为从交叉芯片输出相对于输入的延时,其中,每检测到主交叉芯片输出方向的复帧定位信号出现时,对系统时钟信号进行计数的计数值清零。
[0087]基于上述实施例,优选地,检测到主交叉芯片输出方向第N个复巾贞定位信号时,根据主交叉芯片输出相对于输入的延时和从交叉芯片输出相对于输入的延时,确定从交叉芯片与主交叉芯片间数据传输所需的延时。
[0088]本发明实施例能够使确定的从交叉芯片与主交叉芯片间数据传输所需的延时更加准确可靠。
[0089]具体的,假设一个复帧周期所对应的系统时钟信号的个数为S,从交叉芯片输出相对于输入的延时为Y,主交叉芯片输出相对于输入的延时为X,在针对从交叉芯片设定的计数器的值等于N时,计算S-X-Y的值,并将该值确定为从交叉芯片与主交叉芯片间数据传输所需的延时。
[0090]基于上述实施例,当检测到主交叉芯片在输出方向的复帧定位信号,经过所述从交叉芯片的数据输入延时产生从交叉芯片在输入方向的复巾贞定位信号,包括:如图5所不,包括:
[0091]步骤301,当检测到主交叉芯片在输出方向复帧定位信号,从下一个系统时钟信号开始对系统时钟信号进行计数。
[0092]其中,复帧定位信号是一个系统时钟周期内的高电平信号,当检测到主交叉芯片在输出方向复帧定位信号时,该复帧定位信号的高电平在该时刻所对应的系统时钟信号为当前的系统时钟信号,当该复帧定位信号消失时,则从下一个系统时钟信号开始对系统时钟信号进行计数。
[0093]步骤302,当对系统时钟信号进行计数的计数值等于所述从交叉芯片的数据输入延时对应的系统时钟信号数时,产生所述从交叉芯片在输入方向的复帧定位信号。
[0094]具体的,延时从交叉芯片的数据输入延时对应的系统时钟信周期数后,再产生从交叉芯片在输入方向的复帧定位信号。
[0095]基于上述实施例,当产生从交叉芯片在输入方向的复帧定位信号,经过所述从交叉芯片的处理延时产生从交叉芯片在输出方向的复巾贞定位信号,如图6所不,包括:
[0096]步骤401,当产生从交叉芯片在输入方向的复帧定位信号,从下一个系统时钟信号开始对系统时钟信号进行计数。
[0097]步骤402,当对系统时钟信号进行计数的计数值等于所述从交叉芯片的处理延时对应的系统时钟信号数,产生所述从交叉芯片在输出方向的复帧定位信号。
[0098]该实施例与步骤301-步骤302对应的实施例类似,只是该实施例是产生从交叉芯片在输出方向的复帧定位信号,该实施例的具体实现方式请参照步骤301和步骤302对应的实施方式,这里不再赘述。
[0099]基于上述实施例,本发明实施例提供的交叉芯片间进行数据传输的方法还包括,如图7所示:
[0100]步骤501,根据产生的从交叉芯片在输入方向的复帧定位信号,产生从交叉芯片在输入方向的巾贞定位信号。
[0101]步骤502,根据产生的从交叉芯片在输出方向的复帧定位信号,产生从交叉芯片在输出方向的巾贞定位信号。
[0102]在该实施例中,具体如何根据产生的从交叉芯片在输入/输出方向的复帧定位信号,产生从交叉芯片在输入/输出方向的帧定位信号为现有技术,这里不再赘述。
[0103]本发明实施例提供的交叉芯片间进行数据传输的方法是在从交叉芯片侧进行的,可以但不限定于通过FPGA来实现。
[0104]下面以常见的MSPA系统为例,对本发明实施例提供的交叉芯片间进行数据传输的方法进行更加详细的说明,以38.88M的TELEC0MBUS总线为例,一个复帧周期为0-19439共19440个系统时钟周期(对应500us),上述实施例中的主交叉芯片为SDH群路盘的交叉芯片A,从交叉芯片为SDH支路盘的交叉芯片B,并且,交叉芯片A和交叉芯片B通过背板中的TELEC0MBUS总线连接,其中,群路盘输出系统时钟信号,并且,群路盘通过TELEC0MBUS总线向支路盘输出交叉芯片A在输出方向的帧定位信号FP_0UT_A,交叉芯片A在输出方向的复帧定位信号MFP_0UT_A,交叉芯片A在输出方向的数据输出D0UT_A。同时还向支路盘输出交叉芯片A在输入方向的巾贞定位信号FP_IN_A,交叉芯片A在输入方向的复巾贞定位信号MFP_IN_A,从而使支路盘能够按照这些定时信号给群路盘传输数据DIN_A ;支路盘输出交叉芯片B在输出方向的帧定位信号FP_0UT_B和复帧定位信号MFP_0UT_B。
[0105]本发明实施例在开始之前,支路盘首先要判断群路盘是否正常,即,判断交叉芯片A是否正常,可由群路盘发送的STMM_0K信号来判断,该信号在群路盘被复位或者重新插拔或者发生故障(交叉芯片异常、时钟芯片异常)后会被置高,群路盘正常运行时,该信号为低,即,当该信号为高时,会从新开始本发明实施例提供的时序调整方法,判断群路盘是否正常,可在更换或者插拔群路盘后,使利用本发明实施例提供的时序调整方法所调整的时序依然准确可靠。如图8所示,为实际应用中从交叉芯片进行时序调整之后,群路盘和SDH支路盘之间的各信号传递示意图,其中,SYSTEM为系统时钟,延时测量模块用于测量交叉芯片B所需的数据输出延时和数据输入延时,时序控制模块,用于根据延时测量模块的结果调整交叉芯片B的时序,并产生控制信号,数据控制存储模块用于存储数据。其中,高电平表不信号产生,低电平表不信号消失。
[0106]具体实施时,针对交叉芯片A在输出方向的复帧定位信号设置一个初始值为零的复帧计数器CNT_A_MFP,该计数器的计数方式为:检测到交叉芯片A的输出方向复帧定位信号MFP_0UT_A时,从下一个系统时钟信号开始,CNT_A_MFP对系统时钟信号进行计数,检测到交叉芯片A在输出方向复帧定位信号出现时,CNT_A_MFP清零。针对交叉芯片B设置一个初始值为零的计数器CNT_B,该计数器的计数方式为:检测到交叉芯片A的输出方向复帧定位信号出现时,CNT_B的值加一,检测到交叉芯片A的输出方向复帧定位信号消失时,CNT_B的值保持当前值不变,群路盘被插拔时,CNT_B清零。其中,交叉芯片B的输入方向复帧定位信号MFP_IN_B等于MFP_0UT_A,交叉芯片B的输入方向帧定位信号FP_IN_B等于FP_0UT_A0
[0107]本发明实施例的具体实施过程,如图9所示,包括:
[0108]步骤600,初始化各计数器。
[0109]步骤601,根据计数器CNT_A_MFP和计数器CNT_B,分别确定交叉芯片A输出相对于输入的延时X,以及交叉芯片B输出相对于输入的延时Y。
[0110]步骤601中两个延时的确定没有先后之分,是并行确定的。
[0111]步骤602,判断CNT_B是否等于4,如果是,执行步骤603,否则,执行步骤601。
[0112]步骤603,设定交叉芯片A与交叉芯片B间数据传输所需的延时为Z,Ζ=19440-Χ-Υο
[0113]步骤604,将Z划分成两个差值不大于一个系统时钟周期的延时值J和K。
[0114]步骤605,将J确定为交叉芯片B所需的数据输入延时,即,数据在输入交叉芯片B之前需要增加的延时,K确定为交叉芯片B所需的数据输出延时。
[0115]将J或K确定为交叉芯片B的数据输出延时还是数据输入延时,这里不做限定,具体的,可将J、K的值储存在寄存器中。
[0116]步骤606,根据交叉芯片B所需的数据输入延时J,对交叉芯片B的输入方向复帧定位信号的时序进行调整。
[0117]步骤607,检测到交叉芯片A在输出方向的复帧定位信号时,缓存所述主交叉芯片输出的数据,并延时J之后,产生交叉芯片B在输入方向的复帧定位信号。
[0118]步骤608,从缓存中读取交叉芯片A输出的数据并输入交叉芯片B,并经过所述从交叉芯片的处理延时产生交叉芯片B在输出方向的复巾贞定位信号。
[0119]步骤609,当产生交叉芯片B在输出方向的复帧定位信号,缓存交叉芯片B输出的数据;
[0120]步骤610,检测到交叉芯片A在输入方向的复帧定位信号时,从缓存中读取交叉芯片B输出的数据并输入交叉芯片Α。
[0121]具体的,步骤605结束之后,对从交叉芯片数据输出/输入延时分配过程完成,那么需在下一个复帧周期对交叉芯片B的时序进行调整,具体的调整方式为:检测到交叉芯片A的输出方向复帧定位信号MFP_IN_A时,从下一个系统时钟信号开始,复帧计数器CNT_A_MFP对系统时钟信号进行计数;判断CNT_A_MFP的值是否等于J,如果是,输出交叉芯片B的输入方向复帧定位信号MFP_IN_B ;否则复帧计数器CNT_A_MFP继续对系统时钟信号进行计数。[0122]具体的,确定交叉芯片A输出相对于输入的延时的过程,如图10所示,包括:
[0123]步骤701,判断交叉芯片A在输出方向的复帧定位信号MFP_0UT_A是否消失,即,判断MFP_0UT_A是否等于0,如果是,执行步骤702,否则执行步骤705。
[0124]步骤702,CNT_A_MFP开始对系统时钟信号进行计数,其中,CNT_A_MFP对系统时钟信号进行计数的计数值的取值范围为0-19439个系统时钟周期(系统时钟)。
[0125]步骤703,检测到交叉芯片A在输入方向复帧定位信号出现时,记录复帧计数器的值M。
[0126]步骤704,计算交叉芯片A输出相对于输入的延时X,即X=19440_ (M+1)。
[0127]步骤705,检测到交叉芯片A在输出方向的复帧定位信号出现时,CNT_A_MFP的值清零,并执行步骤701。
[0128]具体的,确定交叉芯片B输出相对于输入的延时的过程,如图11所示,包括:
[0129]步骤801,判断CNT_B的值是否小于4,如果是,执行步骤802,否则,执行步骤808。
[0130]CNT_B的值的取值范围是0-4,CNT_B的值保持4不变,表示支路盘被上电或者复位后确定交叉芯片B输出相对于输入的延时完成,在群路盘断电后,CNT_B的值清零。
[0131]步骤802,判断是否有MFP_0UT_A,即判断MFP_0UT_A是否等于1,如果是,执行步骤803,否则执行步骤804。
[0132]步骤803,CNT_B的值加一,并且CNT_A_MFP的值清零。
[0133]步骤804,CNT_B的值保持当前值不变,并且CNT_A_MFP开始对系统时钟信号进行计数。
[0134]步骤805,判断是否检测到MFP_0UT_B,即,判断MFP_0UT_B是否等于1,如果是,执行步骤806,否则,执行步骤804。
[0135]步骤806,判断CNT_B的值是否等于3,如果是执行步骤807,否则执行步骤802。
[0136]步骤807,记录当前时刻CNT_A_MFP的值C,将C+1作为交叉芯片B输出相对于输入的延时Y。
[0137]步骤808,计算从交叉芯片与主交叉芯片间数据传输所需的延时Z。
[0138]在实际应用中,在两个交叉芯片间进行数据传输之前,还要对交叉芯片B的输入方向帧定位信号的时序进行调整,具体方式为:
[0139]分别根据调整后的MFP_IN_B、调整后交叉芯片B的输出方向复帧定位信号MFP_0UT_B、MFP_IN_A、MFP_0UT_A在一个半复帧周期(一个帧周期)内进行半复帧计数,分别对应初始值为零的计数器 CNT_MFP_INB_HF、CNT_MFP_0UTB_HF、CNT_MFP_INA_HF、CNT_MFP_0UTA_HF ;检测到计数器CNT_MFP_INB_HF的值等于9718或者4857时,交叉芯片B在输入方向帧定位信号FP_IN_B有效。其中,各计数器的计数方式为当各计数器对应的信号的时钟有效或者计数器的值为9719 (半个复帧周期)时,各计数器清零,其他情况正常计数,调整后的MFP_IN_B和FP_IN_B时序如图12所示,其中,各个信号为高电平表示该信号有效,即,检测到该信号出现;各个信号为低电平表示该信号无效,即检测到该信号消失。
[0140]交叉芯片间的时序调整之后,需要根据所调整的时序,交叉芯片B在输入输出方向的控制信号,在交叉芯片B的输入输出方向个设置一个RAM块,以38.88M的TELEC0MBUS总线为例,要求所设置的RAM块能够存储半个复帧周期,其大小为14位地址,4位数据线,所配置的RAM结构如图13所示,根据上述对交叉芯片B的配置,所产生的控制信号为:[0141]clock等于系统时钟,写使能wren、读使能rden —直使能为I ;
[0142]在交叉芯片B的输入方向上,数据输出data [3:0] =D0UT_A,数据输入q [3:0] =DIN_B,写地址 wraddress [13:0] =CNT_MFP_0UTA_HF,读地址 rdaddress [13:0] =CNT_MFP_INB_HF ;
[0143]在交差芯片B的输出方向上,数据输出data[3:0] =D0UT_B,数据输入q[3:0] =DIN_A,写地址 wraddress [13:0] =CNT_MFP_0UTB_HF,读地址 rdaddress [13:0] =CNT_MFP_INA_HF。
[0144]上述实施例中的各个信号在一个系统时钟周期内有效。
[0145]基于与本发明提供的交叉芯片间进行数据传输的方法相同的发明构思,本发明还提供了一种交叉芯片间进行数据传输的装置,如图14所示,包括:
[0146]第一缓存单元901,用于当检测到主交叉芯片在输出方向的复帧定位信号,缓存所述主交叉芯片输出的数据,并经过从交叉芯片的数据输入延时产生所述从交叉芯片在输入方向的复帧定位信号;
[0147]第一读取单元902,用于当产生所述从交叉芯片在输入方向的复帧定位信号,从缓存中读取所述主交叉芯片输出的数据并输入所述从交叉芯片,并经过所述从交叉芯片的处理延时产生所述从交叉芯片在输出方向的复帧定位信号;
[0148]第二缓存单元903,用于当产生所述从交叉芯片在输出方向的复帧定位信号,缓存所述从交叉芯片输出的数据;
[0149]第二读取单元904,当检测到所述主交叉芯片在输入方向的复帧定位信号,从缓存中读取所述从交叉芯片输出的数据并输入所述主交叉芯片。
[0150]所述装置中,从交叉芯片的数据输出延时和从交叉芯片的数据输入延时之和为从交叉芯片与主交叉芯片间数据传输所需的延时,所述数据输出延时为所述从交叉芯片输出的数据的缓存时间。
[0151]所述装置中,所述从交叉芯片的数据输出延时与从交叉芯片的数据输入延时的差值不大于一个系统时钟周期。
[0152]所述装置中,所述第一缓存单元具体用于:
[0153]当检测到主交叉芯片在输出方向复帧定位信号,从下一个系统时钟信号开始对系统时钟信号进行计数;
[0154]当对系统时钟信号进行计数的计数值等于所述从交叉芯片的数据输入延时对应的系统时钟信号数时,产生所述从交叉芯片在输入方向的复帧定位信号;
[0155]所述第一读取单元具体用于:当产生从交叉芯片在输入方向的复帧定位信号,从下一个系统时钟信号开始对系统时钟信号进行计数;
[0156]当对系统时钟信号进行计数的计数值等于所述从交叉芯片的处理延时对应的系统时钟信号数,产生所述从交叉芯片在输出方向的复帧定位信号。
[0157]所述装置中,所述第一缓存单元还用于:
[0158]根据产生的从交叉芯片在输入方向的复巾贞定位信号,产生从交叉芯片在输入方向的帧定位信号;
[0159]所述第一读取单兀还用于:根据产生的从交叉芯片在输出方向的复巾贞定位信号,产生从交叉芯片在输出方向的帧定位信号。[0160]利用本发明提供交叉芯片间进行数据传输的方法及装置,具有以下有益效果:在从交叉芯片的输入方向和从交叉芯片的输出方向分别将数据缓存一段时间,使发送和接收方向上时延的差距可根据实际情况进行调整,从而在一些对传输时延要求比较敏感的应用场合,避免了收发时延不一致,性能达不到使用要求的问题。
[0161]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种交叉芯片间进行数据传输的方法,其特征在于,包括: 当检测到主交叉芯片在输出方向的复帧定位信号,缓存所述主交叉芯片输出的数据,并经过从交叉芯片的数据输入延时产生所述从交叉芯片在输入方向的复帧定位信号; 当产生所述从交叉芯片在输入方向的复帧定位信号,从缓存中读取所述主交叉芯片输出的数据并输入所述从交叉芯片,并经过所述从交叉芯片的处理延时产生所述从交叉芯片在输出方向的复帧定位信号; 当产生所述从交叉芯片在输出方向的复帧定位信号,缓存所述从交叉芯片输出的数据; 当检测到所述主交叉芯片在输入方向的复帧定位信号,从缓存中读取所述从交叉芯片输出的数据并输入所述主交叉芯片。
2.如权利要求1所述的方法,其特征在于,从交叉芯片的数据输出延时和从交叉芯片的数据输入延时之和为从交叉芯片与主交叉芯片间数据传输所需的延时,所述数据输出延时为所述从交叉芯片输出的数据的缓存时间。
3.如权利要求1所述的方法,其特征在于,所述从交叉芯片的数据输出延时与从交叉芯片的数据输入延时的差值不大于一个系统时钟周期。
4.如权利要求1或2所述的方法,其特征在于,当检测到主交叉芯片在输出方向的复帧定位信号,经过所述从交叉芯片的数据输入延时产生从交叉芯片在输入方向的复帧定位信号,包括: 当检测到主交叉芯片在输出方向复帧定位信号,从下一个系统时钟信号开始对系统时钟信号进行计数; 当对系统时钟信号进行计数的计数值等于所述从交叉芯片的数据输入延时对应的系统时钟信号数时,产生所述从交叉芯片在输入方向的复帧定位信号; 当产生从交叉芯片在输入方向的复帧定位信号,经过所述从交叉芯片的处理延时产生从交叉芯片在输出方向的复帧定位信号,包括: 当产生从交叉芯片在输入方向的复帧定位信号,从下一个系统时钟信号开始对系统时钟信号进行计数; 当对系统时钟信号进行计数的计数值等于所述从交叉芯片的处理延时对应的系统时钟信号数,产生所述从交叉芯片在输出方向的复帧定位信号。
5.如权利要求1或2所述的方法,其特征在于,该方法还包括: 根据产生的从交叉芯片在输入方向的复帧定位信号,产生从交叉芯片在输入方向的帧定位信号; 根据产生的从交叉芯片在输出方向的复帧定位信号,产生从交叉芯片在输出方向的帧定位信号。
6.一种交叉芯片间进行数据传输的装置,其特征在于,包括: 第一缓存单元,用于当检测到主交叉芯片在输出方向的复帧定位信号,缓存所述主交叉芯片输出的数据,并经过从交叉芯片的数据输入延时产生所述从交叉芯片在输入方向的复帧定位信号; 第一读取单元,用于当产生所述从交叉芯片在输入方向的复帧定位信号,从缓存中读取所述主交叉芯片输出的数据并输入所述从交叉芯片,并经过所述从交叉芯片的处理延时产生所述从交叉芯片在输出方向的复帧定位信号; 第二缓存单元,用于当产生所述从交叉芯片在输出方向的复帧定位信号,缓存所述从交叉芯片输出的数据; 第二读取单元,当检测到所述主交叉芯片在输入方向的复帧定位信号,从缓存中读取所述从交叉芯片输出的数据并输入所述主交叉芯片。
7.如权利要求6所述的装置,其特征在于,从交叉芯片的数据输出延时和从交叉芯片的数据输入延时之和为从交叉芯片与主交叉芯片间数据传输所需的延时,所述数据输出延时为所述从交叉芯片输出的数据的缓存时间。
8.如权利要求6所述的装置,其特征在于,所述从交叉芯片的数据输出延时与从交叉芯片的数据输入延时的差值不大于一个系统时钟周期。
9.如权利要求6或7所述的装置,其特征在于,所述第一缓存单元具体用于: 当检测到主交叉芯片在输出方向复帧定位信号,从下一个系统时钟信号开始对系统时钟信号进行计数; 当对系统时钟信号进行计数的计数值等于所述从交叉芯片的数据输入延时对应的系统时钟信号数时,产生所述从交叉芯片在输入方向的复帧定位信号; 所述第一读取单元具体用于:当产生从交叉芯片在输入方向的复帧定位信号,从下一个系统时钟信号开始对系统时钟信号进行计数; 当对系统时钟信号进行计数的计数值等于所述从交叉芯片的处理延时对应的系统时钟信号数,产生所述从交 叉芯片在输出方向的复帧定位信号。
10.如权利要求6或7所述的装置,其特征在于,所述第一缓存单元还用于: 根据产生的从交叉芯片在输入方向的复帧定位信号,产生从交叉芯片在输入方向的帧定位信号; 所述第一读取单元还用于:根据 产生的从交叉芯片在输出方向的复帧定位信号,产生从交叉芯片在输出方向的帧定位信号。
【文档编号】H04J3/16GK103888211SQ201410081051
【公开日】2014年6月25日 申请日期:2014年3月6日 优先权日:2014年3月6日
【发明者】江苒 申请人:瑞斯康达科技发展股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1