发明内容
本发明要解决的主要技术问题是,提供一种XGMII接口数据处理方法及装置以及芯片间双向握手的方法,保证了芯片之间不同XGXS通信的普遍适用性,并使其初始数据传输更可靠。
本发明提供的一种XGMII接口数据处理方法,包括步骤:
配置标准数据字节顺序;
分析接收到的单数据速率XGMII接口数据的数据字节顺序并与所述标准数据字节顺序进行比较,在接收到的单数据速率XGMII接口数据的数据字节顺序与所述标准数据字节顺序不符时,将接收到的单数据速率XGMII接口数据的数据字节顺序调整为所述标准数据字节顺序。
在本发明XGMII接口数据处理方法的一种实施例中,所述将接收到的单数据速率XGMII接口的数据字节顺序调整为所述标准数据字节顺序按如下方式进行:根据接收到的单数据速率XGMII接口数据的数据字节顺序所对应的数据字节顺序校正规则,按所述数据字节顺序校正规则将接收到的单数据速率XGMII接口数据的数据字节顺序调整为所述标准数据字节顺序。
在本发明XGMII接口数据处理方法一种实施例中,所述数据字节顺序校正规则根据如下方式获得:通过单数据速率XGMII接口数据的测试数据与标准数据的字节顺序对比,将发生错位的字节按标准数据字节顺序进行移位或进行字节位置交换而得到标准数据字节,由错位字节的字节移位或位置交换过程获得所述数据字节顺序校正规则。
在本发明XGMII接口数据处理方法一种实施例中,所述数据字节顺序校正规则配置在字节顺序校正寄存器中。
在本发明XGMII接口数据处理方法的一种实施例中,所述分析接收到的单数据速率XGMII接口数据的数据字节顺序并与所述标准数据字节顺序进行比较,在接收到的单数据速率XGMII接口数据的数据字节顺序与所述标准数据字节顺序不符时,将接收到的单数据速率XGMII接口数据的数据字节顺序调整为所述标准数据字节顺序的步骤之前还包括步骤:
对齐接收到的单数据速率XGMII接口数据。
在本发明XGMII接口数据处理方法的一种实施例中,所述对齐接收到的单数据速率XGMII接口数据,包括步骤:
在接收的单数据速率XGMII接口数据中寻找到界定数据包格式的定界符,确定采样的数据是否发生分离;
如果所述采样数据发生分离,则根据发生分离的情况按照预定的分类规则进行对齐。
本发明一种XGMII接口数据处理装置,包括:
标准数据字节顺序配置模块,用于配置标准的数据字节顺序;
分析调整模块,用于分析接收到的单数据速率XGMII接口数据的数据字节顺序并与所述标准数据字节顺序进行比较,在接收到的单数据速率XGMII接口数据的数据字节顺序与所述标准数据字节顺序不符时,将接收到的单数据速率XGMII接口数据的数据字节顺序调整为所述标准数据字节顺序。
在本发明XGMII接口数据处理装置的一种实施例中,所述分析调整模块将接收到的单数据速率XGMII接口的数据字节顺序调整为所述标准数据字节顺序按如下方式进行:根据接收到的单数据速率XGMII接口数据的数据字节顺序所对应的数据字节顺序校正规则,按所述数据字节顺序校正规则将接收到的单数据速率XGMII接口数据的数据字节顺序调整为所述标准数据字节顺序。
在本发明XGMII接口数据处理装置的一种实施例中,所述数据字节顺序校正规则根据如下方式获得:通过单数据速率XGMII接口数据的测试数据与标准数据的字节顺序对比,将发生错位的字节按标准数据字节顺序进行移位或进行字节位置交换而得到标准数据字节,由错位字节的字节移位或位置交换过程获得所述数据字节顺序校正规则。
本发明XGMII接口芯片间双向握手的方法,包括步骤:
接收端配置标准的数据字节顺序;
接收端接收由发送端发送的请求包数据;
接收端分析接收到的所述请求包数据的数据字节顺序并与所述标准数据字节顺序进行比较,在接收到的请求包数据的数据字节顺序与所述标准数据字节顺序不符时,将接收到的请求包数据的数据字节顺序调整为所述标准数据字节顺序;
接收端按预定规则判断所述调整后的请求包数据是否有效,若有效,则所述接收端向所述发送端发送预定规则的握手响应包数据;
所述发送端按预定规则判断所述握手响应包是否有效,若有效,则接收端、发送端依次终止握手配置流程,并向链路层的高层发送通道双向初始化完毕指示,通知所述高层进行用户数据操作。
本发明的有益效果是:
通过分析接收到的单数据速率XGMII接口数据的数据字节顺序并与所述标准数据字节顺序进行比较,将接收到的单数据速率XGMII接口数据的数据字节顺序调整为标准数据字节顺序,解决了芯片之间不同XGXS通信之间的数据可能发生的不确定性错位问题,从而保证了芯片之间通信的普遍适用性;并且通过芯片之间在数据初始化时发送端发送请求包数据,接收端对请求包数据字节顺序进行调整并发送握手响应包到发送端实现芯片间双向握手,从而保证了芯片之间初始化数据传输的可靠性以及不同芯片间数据传输的普遍适用性。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
请参考图2和图4,发送端发送宽度为(64+8)bits的数据,其中8bits为控制字宽度。XGXS IP CORE随后对接收的72bit 中的64bits信息数据进行转换,转换到内部标准的32bits数据进行传输,即将一个64bits数据拆分为两个32bits数据。然后XGXS完成对32bits数据,即4路8bits数据进行8B/10B编码后进行并串转换成4路XAUI接口的高速串行信号发送,该串行信号的传输速率为3.125Gbit/s。接收端的IP CORE接收该4路高速串行的数据,经过内部处理为32bits数据。这时,要将两个32bits数据拼接恢复为一个64bits数据,但由于恢复时接收时钟的相位偏差导致其接口数据采样分离,因此两个32bits数据可能不能在单个时钟周期内完整的输出为一个64bits数据,而是输出到两个64bits数据中。并且,发送端与接收端会因为不同的IP CORE实现通道数据宽度转换定义不同而产生不确定性错位。为了消除这种不确定性错位,通过对发生不确定性错位的数据进行仿真发现其数据发生不确定性错位具有一定的规律,因此,想到可通过按预定的规则进行调整数据字节顺序来消除这种数据的不确定性错位。
本发明一种XGMII接口数据处理方法,包括步骤:
配置标准数据字节顺序;
分析接收到的单数据速率XGMII接口数据的数据字节顺序并与所述标准数据字节顺序进行比较,在接收到的单数据速率XGMII接口数据的数据字节顺序与所述标准数据字节顺序不符时,将接收到的单数据速率XGMII接口数据的数据字节顺序调整为所述标准数据字节顺序。
发送端将标准数据字节顺序提前告知接收端。在本发明一种实施例中,经过配置的标准的数据字节顺序参照如下:
数据源:用户发送数据的标准格式:
发送端控制字TXC[7:0] |
发送端数据TXD[63:0] |
FF |
07 07 07 07 07 07 07 07 |
01 |
77 66 55 44 33 22 11 FB |
80 |
FD EE DD CC BB AA 99 88 |
请参考图4,在接收端数据经过捕获模块处理得出所述接口数据的字节顺序偏移规律,紧接着数据进入配置模块,用户可通过总线访问配置寄存器并配置字节顺序校正规则,配置后通道将根据此规则完成接口数据的字节排序,实现了通道固定校正传输,同时,如果判断配置无效,则系统具有通道重配置功能,可重新捕获,从而完成二次配置。经过配置字节顺序校正寄存器,数据就根据配置字节顺序校正寄存器的校正规则进行相应的字节顺序调整,从而恢复错位的数据。上述捕获模块、配置模块、调整模块即完成分析接收到的单数据速率XGMII接口数据的数据字节顺序并与所述标准数据字节顺序进行比较,在接收到的单数据速率XGMII接口数据的数据字节顺序与所述标准数据字节顺序不符时,将接收到的单数据速率XGMII接口数据的数据字节顺序调整为所述标准数据字节顺序的功能。
请参考图4,接收端可通过自动配置模块完成硬件自校正,此时无需人工进行软件编写参与配置,硬件将根据捕获到的接口数据内容,自动判断数据排序规则,同时完成对校正规则的配置。
请参考图2和图4,通过解析数据中的定界符完成数据的捕获,并写入寄存器提供总线的只读访问,实现了接口数据的可监控性。
在一种实施例中,将接收到的单数据速率XGMII接口的数据字节顺序调整为所述标准数据字节顺序按如下方式进行:根据接收到的单数据速率XGMI I接口数据的数据字节顺序所对应的数据字节顺序校正规则,按所述数据字节顺序校正规则将接收到的单数据速率XGMII接口数据的数据字节顺序调整为所述标准数据字节顺序。
在一种实施例中,数据字节顺序校正规则根据如下方式获得:通过单数据速率XGMI I接口数据的测试数据与标准数据的字节顺序对比,将发生错位的字节按标准数据字节顺序进行移位或进行字节位置交换而得到标准数据字节,由错位字节的字节移位或位置交换过程获得所述数据字节顺序校正规则。
在一种实施例中,数据字节顺序校正规则配置在字节顺序校正寄存器中。
在一种实施例中,分析接收到的单数据速率XGMII接口数据的数据字节顺序并与所述标准数据字节顺序进行比较,在接收到的单数据速率XGMII接口数据的数据字节顺序与所述标准数据字节顺序不符时,将接收到的单数据速率XGMII接口数据的数据字节顺序调整为所述标准数据字节顺序的步骤之前还包括步骤:
对齐接收到的单数据速率XGMII接口数据。
在一种实施例中,对齐接收到的单数据速率XGMII接口数据,包括步骤:
在接收的单数据速率XGMII接口数据中寻找到界定数据包格式的定界符,确定采样的数据是否发生分离;
如果所述采样数据发生分离,则根据发生分离的情况按照预定的分类规则进行对齐。
请参考图2,在接收的SDR XGMII接口上,由于恢复出的接收时钟的相位偏差,导致采样时钟分别在Idle码处采样以及在数据处采样,因此实际上从32bits数据拼接到64bits的过程中会将两个32bits数据拼接到两个64bit中,如下表所示的接收端RXD原始未对齐的接收数据就是这样的情况。表中穷举了某两种IP CORE在实际使用中,由于分别作为发送或接收端的情况下,产生的8种原始未对齐数据以及对齐后的数据。
接收数据穷举表:
|
发送端→接收端 |
接收端原始未对齐数据 |
接收端RXD对齐数据 |
① |
IP-A→IP-A |
33 22 11 FB 07 07 07 07 |
77 66 55 44 33 22 11 FB |
② |
IP-A→IP-A |
77 66 55 44 33 22 11 FB |
77 66 55 44 33 22 11 FB |
③ |
IP-A→IP-B |
33 07 22 07 11 07 FB 07 |
77 33 66 22 55 11 44 FB |
④ |
IP-A→IP-B |
77 33 66 22 55 11 44 FB |
77 33 66 22 55 11 44 FB |
⑤ |
IP-B→IP-A |
66 44 22 FB 07 07 07 07 |
77 55 33 11 66 44 22 FB |
⑥ |
IP-B→IP-A |
77 55 33 11 66 44 22 FB |
77 55 33 11 66 44 22 FB |
⑦ |
IP-B→IP-B |
66 07 44 07 22 07 FB 07 |
77 66 55 44 33 22 11 FB |
⑧ |
IP-B→IP-B |
77 66 55 44 33 22 11 FB |
77 66 55 44 33 22 11 FB |
实际上,基于XAUI协议的XGMII接口是32bits的接口,因此需要将与MAC交互的SDR XGMII 64bit接口数据在物理编码子层PCS层中组合成两个XGMII数据发送或接收,低32bits数据组成第一个XGMII数据,高32bits数据组成第二个XGMII数据。因此,在接收端的数据流中就可通过寻找能够界定数据包格式的起始符和结束符,来确定此次接收采样是否发生分离,并且可以根据发生分离的情况进行分类对齐处理。经过对齐模块处理后,通道的所有后续数据将一直按照此规则对齐,保持对齐规则的连续性,为后续接口数据配置及初始化握手提供了基础。请参考图4,将接收端拼接的64bits数据先经对齐模块处理,解决了由于恢复出接收时钟的相位偏差导致接口数据采样分离的情况,保证了处理后数据在单时钟周期内完整输出,为后续的XGMII接口数据配置及芯片间握手提供了基础。
本发明XGMII接口数据处理装置,包括:
标准数据字节顺序配置模块,用于配置标准的数据字节顺序;
分析调整模块,用于分析接收到的单数据速率XGMII接口数据的数据字节顺序并与所述标准数据字节顺序进行比较,在接收到的单数据速率XGMII接口数据的数据字节顺序与所述标准数据字节顺序不符时,将接收到的单数据速率XGMII接口数据的数据字节顺序调整为所述标准数据字节顺序。
在一种实施例中,分析调整模块将接收到的单数据速率XGMII接口的数据字节顺序调整为所述标准数据字节顺序按如下方式进行:根据接收到的单数据速率XGMII接口数据的数据字节顺序所对应的数据字节顺序校正规则,按所述数据字节顺序校正规则将接收到的单数据速率XGMII接口数据的数据字节顺序调整为所述标准数据字节顺序。
本发明XGMII接口芯片间双向握手的方法,包括步骤:
接收端配置标准的数据字节顺序;
接收端接收由发送端发送的请求包数据;
接收端分析接收到的所述请求包数据的数据字节顺序并与所述标准数据字节顺序进行比较,在接收到的请求包数据的数据字节顺序与所述标准数据字节顺序不符时,将接收到的请求包数据的数据字节顺序调整为所述标准数据字节顺序;
接收端按预定规则判断所述调整后的请求包数据是否有效,若有效,则所述接收端向所述发送端发送预定规则的握手响应包数据;
所述发送端按预定规则判断所述握手响应包是否有效,若有效,则接收端、发送端依次终止握手配置流程,并向链路层的高层发送通道双向初始化完毕指示,通知所述高层进行用户数据操作。
芯片间握手机制通过双向周期发送请求包并正确解析响应包判断握手流程完成。握手机制即为XGMII接口配置的捕获功能提供了数据源,也提供了双向发送接收模块的能够正常工作的保证。握手机制中的请求包及响应包具有明显的特定规则,用户模式可以通过软件捕获到握手数据并获得配置规则,也可以通过硬件自动配置功能将捕获到的握手数据分解出校正规则完成配置功能。
同时,数据检测机制即实现XGMII接口配置后数据是否正确的判断功能,也为握手机制提供对请求包或是响应包的判断功能,进而实现芯片间的握手功能。同时,也为芯片间通信提供了通道初始检测功能,保证握手检测模式后的用户数据处在安全稳定的通道中传输。
请参考图5和图6,由于系统双端均可以进行此流程,因此这里仅论述发送端从芯片A开始的情况。
1、系统上电或复位后,IP CORE完成通道同步及时钟恢复,会指示XGXS标志单侧的IP CORE状态稳定能够进行数据收发。
2、启动链路层的初始化握手配置状态机,首先芯片A检测到IP状态稳定后,将会向对端芯片B连续不断的周期发送握手请求包P0。为了能够让对端芯片快速准确的接收到请求,发送逻辑按照两端预先规定好的规则组包发送(请求包P0采用XGMII接口上的最短包格式组成,请求的信息包含在数据包中)。
3、在对端芯片B中,经过IP CORE的XGMII接口后接收到的握手请求包变成了Px包(代表请求包P0的字节顺序经过IP的XGMII接口重新分配变成未知的Px包)。
4、首先通道的对齐模块会消除XGMII接口采样32bits数据时由于时钟偏差导致Px包数据32bits分离的情况,将数据规整到单周期的64bits内,以方便后续数据配置处理。
5、根据请求包Px的起始符控制字及控制码捕获请求信息,将捕获到的Px包传输到寄存器并通过软件读取。通过与接收正常数据进行比对判断获得数据配置的规则。
6、通过写XGMII接口字节顺序校正寄存器完成配置,接收到的数据将根据此寄存器进行顺序调整,使请求Px包恢复到P0包。
对应的8种原始未对齐数据的情况,通过配置后调整的数据如下表所示:
|
发送端→接收端 |
接收端对齐后数据 |
接收端配置并调整后数据 |
① |
IP-A→IP-A |
77 66 55 44 33 22 11 FB |
77 66 55 44 33 22 11 FB |
② |
IP-A→IP-A |
77 66 55 44 33 22 11 FB |
77 66 55 44 33 22 11 FB |
③ |
IP-A→IP-B |
77 33 66 22 55 11 44 FB |
77 66 55 44 33 22 11 FB |
④ |
IP-A→IP-B |
77 33 66 22 55 11 44 FB |
77 66 55 44 33 22 11 FB |
⑤ |
IP-B→IP-A |
77 55 33 11 66 44 22 FB |
77 66 55 44 33 22 11 FB |
⑥ |
IP-B→IP-A |
77 55 33 11 66 44 22 FB |
77 66 55 44 33 22 11 FB |
⑦ |
IP-B→IP-B |
77 66 55 44 33 22 11 FB |
77 66 55 44 33 22 11 FB |
⑧ |
IP-B→IP-B |
77 66 55 44 33 22 11 FB |
77 66 55 44 33 22 11 FB |
在通过软件配置字节顺序校正寄存器完成数据恢复功能情况下,设计也加入了硬件自动完成配置流程的功能,针对接收到Px数据包并分析其中的数据分布规律,自动生成数据配置规则并完成配置。因此,可以通过配置相应的寄存器来完成是否选择硬件自动完成配置方式还是选择软件配置方式,极大的提高了接口的灵活性和选择性。
7、接收端收到L个有效的P0包后,完成接收确认并启动应答包发送机制;如果无法确认收到L个有效的P0包,需要重新捕获并确认配置无效的原因。(通过判断接收到L个有效的P0请求包,即完成了请求确认的功能,同时,在此配置初始化阶段,能够有效的检测通道是否正常稳定的传输数据,起到了通道自测的功能)。
8、芯片B进入应答包状态机后,也会向对端芯片A连续不断的周期发送握手相应包P1。P1包也是按照两端预先规定好的规则发送,响应信息包含在数据包中。
9、芯片A接收端接收到M个有效的P1包后,获得芯片B的数据配置完成及握手完成响应信息,将退出接收端初始化阶段,将接收通道切换到正常数据接收模式等待用户数据到达。同时,向芯片A的发送端发送终止初始化握手进程的命令,停止请求包P0的发送进程。
10、芯片A发送端获得终止初始化握手进程的命令后停止发送进程,同时,退出发送端初始化阶段,将发送通道切换到正常数据发送模式等待用户数据发送。芯片A的初始化握手配置流程完毕。
11、等待芯片A和B初始化握手配置都流程结束后,向链路层的高层发送通道双向初始化完毕指示,通知高层可以进行用户数据操作。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。