一种基于串行接口的数据传输方法及装置的制作方法

文档序号:6365329阅读:205来源:国知局
专利名称:一种基于串行接口的数据传输方法及装置的制作方法
技术领域
本发明涉及网络通信技术领域,具体涉及一种基于串行接口的数据传输方法及装置。
背景技术
SMII(串行的介质无关接口)、MII(介质无关接口)、RMII(简化的介质无关接口)是10M/100M以太网中MAC(介质访问控制)芯片与PHY(物理层)芯片之间的标准接口,用于MAC芯片和PHY芯片之间的信号传输。
下面简要介绍一下这几种接口的应用方法及其特点。
(1)SMII介绍SMII工作时钟频率为125MHz,SMII的工作时钟由外部时钟提供。
SMII的具体应用如附图1所示。
在图1中,SMII_REFCLK信号是外部提供给SMII的工作时钟,其时钟频率为125MHz。
SMII_TXD信号是基于SMII的MAC芯片发送给基于SMII的PHY芯片的数据信号,与SMII_REFCLK信号同步。
SMII_RXD信号是基于SMII的PHY芯片发送给基于SMII的MAC芯片的数据信号,与SMII_REFCLK信号同步。
SMII_SYNC信号是基于SMII的MAC芯片和基于SMII的PHY芯片的接收/发送数据同步指示信号。MAC芯片每10个SMII_REFCLK时钟周期将SMII_SYNC信号置一个SMII_REFCLK时钟周期的高电平。SMII_TXD和SMII_RXD上的数据和控制信息每10个比特为一组,以SMII_SYNC信号为高电平来表示一组数据的开始。
(2)MII介绍在传输速率为10M以太网中MII的工作时钟频率为2.5MHz,在传输速率为100M以太网中MII的工作时钟频率为25MHz。MII的工作时钟由物理层芯片提供。
MII的具体应用如附图2所示。
在图2中,MII_TXCLK是基于MII的物理层芯片提供给基于MII的MAC芯片的发送时钟,在传输速率为10M以太网中MII_TXCLK时钟频率为2.5MHz,在传输速率为100M以太网中MII_TXCLK的时钟频率为25MHz。
MII_TXEN是基于MII的MAC芯片发送给基于MII的PHY芯片的发送数据有效信号。
MII_TXER是基于MII的MAC芯片发送给基于MII的PHY芯片的发送数据错误信号。
MII_TXD[3:0]是基于MII的MAC芯片发送给基于MII的PHY芯片的数据信号。MII_TXD[3:0]表示发送数据信号是一个4位宽的数据信号,发送数据信号由MII_TXD[3]、MII_TXD[2]、MII_TXD[1]、MII_TXD
组成。
MII_RXCLK是基于MII的PHY芯片提供给基于MII的MAC芯片的接收时钟,在传输速率为10M以太网中MII_RXCLK的时钟频率为2.5MHz,在传输速率为100M以太网中MII_RXCLK的时钟频率为25MHz。
MII_CRS是基于MII的PHY芯片提供给基于MII的MAC芯片的载波有效信号,不要求与MII_RXCLK同步。
MII_COL是基于MII的PHY芯片提供给基于MII的MAC芯片的冲突指示信号,不要求与MII_RXCLK同步。
MII_RXDV是基于MII的PHY芯片提供给基于MII的MAC芯片的接收数据有效信号。
MII_RXER是基于MII的PHY芯片提供给基于MII的MAC芯片的接收数据错误信号。
MII_RXD[3:0]是基于MII的MAC芯片从基于MII的PHY芯片处接收的接收数据信号。MII_RXD[3:0]表示接收数据信号是一个4位宽的数据信号,接收数据信号由MII_TXD[3]、MII_TXD[2]、MII_TXD[1]、MII_TXD
组成。
(3)RMII介绍接口工作时钟为50MHz,RMII的工作时钟由外部时钟提供。
RMII的具体应用如附图3所示。
在图3中,RMII_REFCLK信号是外部提供给RMII的工作时钟,其时钟频率为50MHz。
RMII_TXEN是基于RMII的MAC芯片发送给基于RMII的PHY芯片的发送数据有效信号。
RMII_TXD[1:0]是基于RMII的MAC芯片发送给基于RMII的PHY芯片的数据信号。RMII_TXD[1:0]表示发送的数据信号是一个2位宽的数据信号,发送数据信号由RMII_TXD[1]、RMII_TXD
组成。
RMII_CRS_DV是基于RMII的PHY芯片提供给基于RMII的MAC芯片的载波有效/接收数据有效信号。
RMII_RXER是基于RMII的PHY芯片提供给基于RMII的MAC芯片的接收数据错误信号。
RMII_RXD[1:0]是基于RMII的MAC芯片从基于RMII的PHY芯片处接收的接收数据信号。RMII_RXD[1:0]表示接收数据信号是一个2位宽的数据信号,接收数据信号由RMII_TXD[1]、RMII_TXD
组成。
从上述关于几种接口的介绍中得知,MII和RMII的工作时钟频率较低,所以在MAC芯片和PHY芯片间基于MII或RMII进行数据传输时数据传输的距离较远;但是由于MII和RMII进行数据传输需要的信号数量多,所以接口复杂。
而在MAC芯片和PHY芯片间基于SMII进行数据传输,则由于需要的信号数量少、接口简单,获得了较广泛的应用。现在许多MAC芯片,或者集成了MAC功能的其他芯片都采用了SMII进行数据传输。但是,由于SMII的工作时钟频率为125MHz,工作时钟频率较高,所以基于SMII的芯片进行数据传输时数据传输的距离将受到限制,即无法进行长距离的数据传输。SMII的这一特点制约了的基于SMII的芯片实现数据传输的产品的结构布局。

发明内容
本发明的目的在于,提供一种基于串行接口的数据传输方法及装置,实现基于SMII的芯片进行数据传输时数据传输距离拉远的目的。
为达到上述目的,本发明提供的基于串行接口的数据传输方法包括a、将物理层芯片的待传输的并行数据转换成串行数据,并将其传输到基于串行接口的介质访问控制芯片;b、将基于串行接口的介质访问控制芯片的待传输的串行数据转换成并行数据,并将其传输到所述物理层芯片。
所述的基于串行接口的介质访问控制芯片包括基于SMII(串行介质无关接口)的介质访问控制芯片。
所述的物理层芯片包括基于MII(介质无关接口)的物理层芯片或基于RMII(简化的介质无关接口)的物理层芯片。
所述的步骤a还包括a1、将管理接口的待传输的当前链路状态信息转换成串行数据,并将其传输到所述基于串行接口的介质访问控制芯片。
所述的当前链路状态信息为根据所述基于SMII的介质访问控制芯片和所述物理芯片之间的管理接口总线上的数据帧获取当前链路状态信息。
所述的获取当前链路状态信息包括
根据所述管理接口总线上的数据帧的相应字段与预定值是否相等,确定有效的数据帧并从中获取当前链路状态信息。
所述的当前链路状态信息包括当前链路上数据传输的速率、双工、链路、超长帧状态信息。
所述的步骤a包括a2、将所述物理层芯片的待传输的并行数据进行并行位数转换,并将转换后的并行数据在所述物理层芯片提供的时钟作用下输入到第一异步先进先出队列;a3、所述第一异步先进先出队列中的数据在所述SMII的外部时钟控制下,串行传输到所述基于SMII的介质访问控制芯片直至所述第一异步先进先出队列为空。
所述的步骤a3包括当所述第一异步先进先出队列中的数据量达到第一预定阈值时,将所述第一异步先进先出队列中的数据在SMII的外部时钟作用下串行传输到所述基于SMII的介质访问控制芯片直到所述第一异步先进先出队列为空。
所述的步骤b包括b1、接收所述基于SMII的介质访问控制层芯片传输来的串行数据并将其转换成并行数据在所述SMII的外部时钟的作用下输入到第二异步先进先出队列;b2、将所述第二异步先进先出队列中的数据在所述物理层芯片提供的时钟的作用下并行传输到所述物理层芯片,直到所述第二异步先进先出队列为空。
所述的步骤b2包括
当所述第二异步先进先出队列中数据量达到第二预定阈值时,将所述第二异步先进先出队列中的数据,在所述物理层芯片提供的时钟的作用下并行传输到所述物理层芯片,直到所述第二异步先进先出队列为空。
本发明还提供一种基于串行接口的数据传输装置,包括并串转换模块接收物理层芯片传输来的并行数据并将其转换成串行数据传输到所述基于串行接口的介质访问控制芯片;串并转换模块接收基于串行接口的介质访问控制芯片传输来的串行数据并将其转换成并行数据传输到所述物理层芯片。
所述的装置还包括管理接口状态检测模块从基于串行接口的介质访问控制芯片和所述物理层芯片之间的管理接口总线上的数据帧中获取当前链路状态信息并提供给并串转换模块和串并转换模块。
所述的管理接口状态检测模块包括移位寄存器用于获取所述管理接口总线上的数据帧,并提供给比较器和状态寄存器;比较器用于比较所述数据帧承载的信息和预定值是否相等,确定所述数据帧是否为有效的数据帧,当所述数据帧为有效的数据帧时向状态寄存器输出更新控制信号;状态寄存器当接收到所述更新控制信号时,将所述状态寄存器中的数据更新为移位寄存器中当前数据帧承载的当前链路状态信息;并将其提供给并串转换模块和串并转换模块。
所述的并串转换模块,包括状态检测处理子模块用于对所述物理层芯片传输来的数据进行载波检测、数据状态检测,将检测结果和管理接口状态检测模块传输来的当前链路状态信息传输到并转串子模块;
第一先进先出写入控制器当所述物理层芯片传来的并行数据为有效时,将所述物理层芯片的时钟频率作为写时钟提供给所述第一异步先进先出队列,并将写使能信号输出到所述第一异步先进先出队列,将所述并行数据写入第一异步先进先出队列;第一异步先进先出队列当接收到所述写使能信号时,允许在所述写时钟作用下第一异步先进先出写入控制器写入从所述物理层传来的并行数据;当接收到读使能信号时,允许读出控制器在读时钟作用下按照当前链路上数据传输的速率向并转串子模块读出其数据;当其中的数据量达到第一预定阈值时,向第一异步先进先出读出控制器输出达到第一预定阈值信号;当其中的数据为空时,向第一异步先进先出读出控制器输出第一异步先进先出队列为空信号;第一异步先进先出读出控制器将串行接口的时钟频率作为读时钟提供给所述第一异步先进先出队列;当接收到所述达到第一预定阈值信号时,向所述第一异步先进先出队列输出读使能信号;将第一异步先进先出队列中的数据在读时钟的作用下按照当前链路上数据传输的速率读出到并转串子模块;同时将接收的数据有效状态输出到并转串子模块并控制第一开关选通所述第一异步先进先出队列;在接收到所述第一异步先进先出队列为空信号时,控制第一开关选通链路状态信息,并将接收数据无效状态输出到并转串子模块;第一开关当选通所述第一异步先进先出队列时,允许所述第一异步先进先出读出控制器从第一异步先进先出队列中读出的并行数据输出到并转串子模块;当选通所述链路状态信息时,允许所述链路状态信息输出到所述并转串子模块;并转串子模块用于将其存储的并行数据在串行接口的外部时钟作用下串行输出到基于串行接口的介质访问控制芯片。
所述的并串转换模块还包括并行位数转换子模块用于根据当前链路上数据传输的速率将所述物理层芯片传输来的并行数据经过并行位数转换后输入所述第一异步先进先出队列。
所述的串并转换模块包括串转并子模块用于将所述基于串行接口的介质访问控制芯片传输来的串行数据转换成预定位数的并行数据,并输出到所述第二异步先进先出队列,并将所述发送的串行数据是否有效信号输出到第二异步先进先出写入控制器;第二异步先进先出写入控制器当所述的串行数据为有效数据时,将串行接口的时钟频率作为写时钟提供给第二异步先进先出队列;向第二异步先进先出队列输出写使能信号;控制第二开关选通所述串转并子模块;将所述串转并子模块输出的并行数据与所述串转并子模块输出的并行数据是否为错误信号一起或单独将所述串转并子模块输出的并行数据根据当前链路上数据传输速率在写时钟的作用下写入到所述第二异步先进先出队列;第二开关当选通串转并子模块时,允许所述串转并子模块输出的并行数据输出到第二异步先进先出队列;第二异步先进先出队列当接收到所述写使能信号时,允许第二异步先进先出写入控制器将所述串转并子模块输出的并行数据与所述发送的数据是否为错误状态信号一起或单独将所述串转并子模块输出的并行数据根据当前链路上数据传输速率在写时钟的作用下写入到所述第二异步先进先出队列;在所述第二异步先进先出队列中的数据量达到第二预定阈值时,向第二异步先进先出读出控制器输出达到第二预定阈值信号;在所述第二异步先进先出队列为空时,向第二异步先进先出读出控制器输出为空信号;当接收到读使能信号时,允许第二异步先进先出读出控制器将其中的数据读出传输到所述物理层芯片;
第二异步先进先出读出控制器用于将所述物理层芯片的时钟频率作为读时钟提供给第二异步先进先出队列;当接收到所述达到第二预定阈值信号时,向所述第二异步先进先出队列输出读使能信号;将所述第二异步先进先出队列中的数据根据当前链路上数据传输速率在写时钟的作用下读出传输到所述物理层芯片;同时将数据为有效状态输出到所述物理层芯片;当接收到所述为空状态信号时将数据为无效状态输出到所述物理层芯片。
利用本发明,当基于SMII的MAC芯片接收从PHY芯片传输来的数据时,将基于工作时钟频率较低的接口的PHY芯片传输来的并行数据转换成串行数据传输到MAC芯片;由于PHY芯片是基于工作时钟频率较低的接口进行数据传输,所以保证了数据的远距离可靠传输,从而实现了基于SMII的MAC芯片与PHY芯片间进行数据接收时,数据传输距离拉远的目的。同理,当基于SMII的MAC芯片发送数据到PHY芯片时,将所述发送的串行数据转换成并行数据传输到基于工作时钟频率较低的接口的PHY芯片的,实现了基于SMII的MAC芯片与PHY芯片间进行发送数据时,数据传输距离拉远的目的。因此,本发明实现了基于SMII的MAC芯片和PHY芯片间进行数据传输时,数据传输距离拉远的目的,从而使基于SMII进行数据传输的产品不会因数据传输的距离受限制而制约产品的结构,优化了产品的结构布局。


图1是现有技术中SMII的具体应用;图2是现有技术中MII的具体应用;图3是现有技术中RMII的具体应用;图4是现有技术中管理接口的具体应用;图5是本发明的基于SMII的MAC芯片和基于MII的PHY芯片之间数据传输的距离拉远方案;
图6是本发明的基于SMII的MAC芯片和基于RMII的PHY芯片之间数据传输的距离拉远方案;图7是本发明的基于串行接口的数据传输装置的逻辑框图;图8是本发明的管理接口状态检测模块逻辑框图;图9是本发明的基于SMII的介质访问控制芯片和基于MII的物理层芯片之间进行数据传输的并串转换模块逻辑框图;图10是本发明的SMII接收数据时序图;图11是本发明的基于SMII的介质访问控制芯片和基于MII的物理层芯片之间进行数据传输的串并转换模块逻辑框图;图12是本发明的SMII发送数据时序图;图13是本发明的基于SMII的介质访问控制芯片和基于RMII的物理层芯片之间进行数据传输的并串转换模块逻辑框图;图14是本发明的基于SMII的介质访问控制芯片和基于RMII的物理层芯片之间进行数据传输的串并转换模块逻辑框图。
具体实施例方式
下面结合附图与具体实施方式
对本发明作进一步详细说明。
当本发明所述的方法具体应用于基于SMII的MAC芯片和基于MII的PHY芯片之间的数据传输时,如附图5所示。
在图5中500是基于SMII的MAC芯片,510是数据转换部分,520是基于MII的PHY芯片。由于MII的工作时钟频率为2.5MHz/25MHz,能够进行远距离传输,所以通过数据转换部分510将基于SMII的MAC芯片和基于MII的PHY芯片之间需要传输的数据进行数据格式的转换从而实现了基于SMII的MAC芯片和基于MII的PHY芯片之间数据传输距离的拉远。
基于SMII的MAC芯片500需要接收的数据信息有两种,一种是当前链路状态信息,另一种是基于MII的PHY芯片需要传输到基于SMII的MAC芯片的数据。
当前链路状态信息是从MAC芯片和PHY芯片之间的管理接口总线上的数据帧获取的。
管理接口是MAC芯片与PHY芯片之间的一个接口。MAC芯片可以通过管理接口访问PHY芯片内部的寄存器,对PHY芯片进行控制和管理。管理接口工作时钟频率小于2.5MHz。管理接口的应用如附图4所示。在图4中,MDC是管理接口的时钟信号,MDIO是管理接口双向数据信号。
当前链路状态信息包括当前链路上数据传输的速率、双工、链路、超长帧等状态信息。数据传输的速率反映数据传输速率是10M还是100M。获取当前链路状态信息的方法如下根据所述管理接口总线上的数据帧的OP字段、PHYAD字段、REGAD字段中的内容与预定值是否相等,确定所述数据帧是否为有效的数据帧;读取有效数据帧中的16位DATA字段中的内容,获取当前链路状态信息。将获取的当前链路状态信息提供给数据转换部分510。预定值中的OP字段为“10”时表示读操作,为“01”时表示写操作;PHYAD字段为PHY芯片的端口地址;REGAD字段为“00000”时是控制寄存器,为“00001”时是状态寄存器。
管理接口总线上的数据帧结构定义如表1所示。
表1管理接口数据帧结构定义

如果当前链路状态信息中数据传输的速率为100M,当基于SMII的MAC芯片500需要接收从基于MII的PHY芯片520传输来的数据时,由于SMII能够接收的数据是在125MHz频率下传输的串行数据,MII传输来数据是在2.5MHz/25MHz频率下传输的4位并行数据,所以需要将在2.5MHz/25MHz频率下传输的4位并行数据转换成在125MHz频率下传输的串行数据。
当从基于MII的PHY芯片传输来的数据为有效状态的数据时,将4位并行数据输入第一异步先进先出队列。
4位并行数据可以不转换并行位数直接输入第一异步先进先出队列或转换成其他并行位数的并行数据后写入第一异步先进先出队列。在实际应用中将4位并行数据转换成8位并行数据后写入第一异步先进先出队列是较好的一种方法。
采用第一异步先进先出队列可以实现两个时钟域的隔离。第一异步先进先出队列的大小应足以允许数据写入第一异步先进先出队列时采用的时钟频率和数据从第一异步先进先出队列读出时所采用的时钟频率的误差。写入第一异步先进先出队列的并行数据的并行位数应和第一异步先进先出队列的宽度相对应。如果将4位并行数据转换成8位并行数据写入第一异步先进先出队列,那么第一异步先进先出队列可以采用大小为8×15的队列,即宽度为8bit,深度为15bit。8×15的第一异步先进先出队列允许时钟差的范围为±100ppm。
在第一异步先进先出队列中的数据量达到第一预定阈值时将其中的数据读出,将读出的数据转换为串行数据在SMII的工作时钟作用下串行传输到基于SMII的MAC芯片。第一预定阈值在实际应用中经常选用1/2,即第一异步先进先出队列中的数据量达到半满状态。
当基于SMII的MAC芯片500没有需要接收从基于MII的PHY芯片520传输来的数据时,基于SMII的MAC芯片500需要接收当前链路状态信息。将获取的当前链路状态信息直接转换成串行数据在SMII的工作时钟频率下串行传输到基于SMII的MAC芯片。
如果当前链路状态信息中数据传输的速率为10M,上述基于SMII的MAC芯片接收从基于MII的PHY芯片520传输来的数据时,需要每10个SMII_SYNC周期从第一异步先进先出队列中读取一次数据。其他步骤均与当前链路状态信息中数据传输的速率为100M时,基于SMII的MAC芯片500需要接收从基于MII的PHY芯片520传输来的数据的方法相同。
当基于SMII的MAC芯片500有数据需要发送到基于MII的PHY芯片520时,由于SMII发送的数据是在125MHz频率下传输的串行数据,MII能够接收的是在2.5MHz/25MHz频率下传输的4位并行数据,所以需要将在125MHz频率下传输的串行数据转换成在2.5MHz/25MHz频率下传输的4位并行数据。
如果当前链路状态信息中数据传输的速率为100M,当需要将数据从基于SMII的MAC芯片500发送到基于MII的PHY芯片时,将基于SMII的MAC芯片500发送的串行数据,在串行数据为有效状态的数据时,将串行数据分高4位和低四位分两次与发送数据错误信号一起在SMII的时钟作用下并行写入第二异步先进先出队列。
采用第二异步先进先出队列可以实现两个时钟域的隔离。第二异步先进先出队列的大小应足以允许数据写入第二异步先进先出队列时采用的时钟频率和数据从第二异步先进先出队列读出时所采用的时钟频率的误差。写入第二异步先进先出队列的并行数据的并行位数应和第二异步先进先出队列的宽度相对应。如果在4位并行数据中增加一个发送数据错误信号,那么第二异步先进先出队列可以采用大小为5×15的队列,即宽度为5bit,深度为15bit。5×15的第二异步先进先出队列允许时钟差的范围为±100ppm。
发送数据的有效状态直接传输到基于MII的PHY芯片。在第二异步先进先出队列中的数据量达到第二预定阈值时在MII的工作时钟作用下,读出第二异步先进先出队列中的数据。读出的4位并行数据传输到基于MII的PHY芯片,读出的发送数据错误状态位传输到基于MII的PHY芯片。第二预定阈值在实际应用中经常选用1/2,即第二异步先进先出队列中的数据量达到半满状态。
如果当前链路状态信息中数据传输的速率为10M,上述将串行数据从基于SMII的MAC芯片500发送到基于MII的PHY芯片520时,需要每10个SMII_SYNC周期向第二异步先进先出队列中写入一次数据。其他步骤均与当前链路状态信息中数据传输的速率为100M时,基于SMII的MAC芯片500需要发送数据传输到基于MII的PHY芯片520的方法相同。
当本发明所述的方法具体应用于基于SMII的MAC芯片和基于RMII的PHY芯片之间的数据传输时,如图6所示。
在图6中600是基于SMII的MAC芯片,610是数据转换部分,620是基于RMII的PHY芯片。由于RMII的工作时钟频率为50MHz,能够进行远距离传输,所以通过数据转换部分610将基于SMII的MAC芯片和基于RMII的PHY芯片之间需要传输的数据进行数据格式的转换从而实现了基于SMII的MAC芯片和基于RMII的PHY芯片之间数据传输距离的拉远。
基于SMII的MAC芯片600需要接收的数据信息有两种,一种是当前链路状态信息,另一种是基于RMII的PHY芯片需要传输到基于SMII的MAC芯片的数据。
当前链路状态信息是从MAC芯片和PHY芯片之间的管理接口总线上的数据帧获取的。当前链路状态信息包括当前链路上数据传输的速率、双工、链路、超长帧等状态信息。数据传输的速率反映当前以太网的传输速度是10M还是100M。
获取当前链路状态信息的方法如下根据所述管理接口总线上的数据帧的OP字段、PHYAD字段、REGAD字段中的内容与预定值是否相等,确定所述数据帧是否为有效的数据帧;读取有效数据帧中的16位DATA字段中的内容,从DATA字段中获取当前链路状态信息。将获取的当前链路状态信息提供给数据转换部分610。
当基于SMII的MAC芯片600需要接收从基于RMII的PHY芯片620传输来的数据时,由于SMII能够接收的数据是在125MHz频率下传输的串行数据,RMII传输来数据是在50MHz频率下传输的2位并行数据,所以需要将在50MHz频率下传输的2位并行数据转换成在125MHz频率下传输的串行数据。
如果当前链路状态信息中数据传输的速率为100M,当从基于RMII的PHY芯片传输来的数据为有效状态的数据时,将2位并行数据转换成8位并行数据后写入第一异步先进先出队列。
2位并行数据可以不转换并行位数直接写入第一异步先进先出队列或转换成其他并行位数的并行数据后写入第一异步先进先出队列。在实际应用中将2位并行数据转换成8位并行数据后写入第一异步先进先出队列是较好的一种方法。
采用第一异步先进先出队列可以实现两个时钟域的隔离。第一异步先进先出队列的大小应足以允许数据写入第一异步先进先出队列时采用的时钟频率和数据从第一异步先进先出队列读出时所采用的时钟频率的误差。写入第一异步先进先出队列的并行数据的并行位数应和第一异步先进先出队列的宽度相对应。如果将2位并行数据转换成8位并行数据写入第一异步先进先出队列,那么第一异步先进先出队列可以采用大小为8×15的队列,即宽度为8bit,深度为15bit。8×15的第一异步先进先出队列允许时钟差的范围为±100ppm。
在第一异步先进先出队列中的数据量达到第一预定阈值时将其中的数据读出,将读出的数据转换为串行数据,在SMII的工作时钟作用下串行传输到基于SMII的MAC芯片。第一预定阈值在实际应用中经常选用1/2,即第一异步先进先出队列中的数据量达到半满状态。
当基于SMII的MAC芯片600没有需要接收从基于RMII的PHY芯片620传输来的数据时,基于SMII的MAC芯片600需要接收当前链路状态信息。将获取的当前链路状态信息直接转换成串行数据在SMII的工作时钟频率下串行传输到基于SMII的MAC芯片。
如果当前链路状态信息中数据传输的速率为10M,上述基于SMII的MAC芯片600需要接收从基于RMII的PHY芯片620传输来的数据时,需要每10个RMII_REFCLK周期对传输来的数据采样一次,将采样后的数据进行并行位数转换或不经并行位数转换在RMII时钟作用下直接写入第一异步先进先出队列。从第一异步先进先出队列中读取数据时需要每10个SMII_SYNC周期从第一异步先进先出队列中读取一次数据传输到MAC芯片。其他步骤均与当前链路状态信息中数据传输的速率为100M时,基于SMII的MAC芯片600需要接收从基于RMII的PHY芯片620传输来的数据的方法相同。
当基于SMII的MAC芯片600有数据需要发送到基于RMII的PHY芯片620时,由于SMII发送的数据是在125MHz频率下传输的串行数据,RMII能够接收的是在50MHz频率下传输的2位并行数据,所以需要将在125MHz频率下传输的串行数据转换成在50MHz频率下传输的2位并行数据。
如果当前链路状态信息中数据传输的速率为100M,当需要将数据从基于SMII的MAC芯片600发送到基于RMII的PHY芯片时,将基于SMII的MAC芯片600发送的串行数据,在串行数据为有效状态的数据时,将串行数据从高位到低位划分为4个2位并行数据在SMII的时钟作用下并行写入第二异步先进先出队列。
第二异步先进先出队列实现第二异步先进先出队列的功能。
采用第二异步先进先出队列可以实现两个时钟域的隔离。第二异步先进先出队列的大小应足以允许数据写入第二异步先进先出队列时采用的时钟频率和数据从第二异步先进先出队列读出时所采用的时钟频率的误差。写入第二异步先进先出队列的并行数据的并行位数应和第二异步先进先出队列的宽度相对应。如果采用2位并行数据写入第二异步先进先出队列,那么第二异步先进先出队列可以采用大小为2×15的队列,即宽度为2bit,深度为15bit。2×15的第二异步先进先出队列允许时钟差的范围为±100ppm。
在第二异步先进先出队列中的数据量达到第二预定阈值时在RMII的工作时钟作用下,读出第二异步先进先出队列中的数据。读出的2位并行数据传输到基于RMII的PHY芯片。第二预定阈值在实际应用中经常选用1/2,即第二异步先进先出队列中的数据量达到半满状态。
如果当前链路状态信息中数据传输的速率为10M,上述将串行数据从基于SMII的MAC芯片600发送到基于RMII的PHY芯片620时,需要每10个SMII_SYNC周期向第二异步先进先出队列中写入一次数据。从第二异步先进先出队列中读取数据时,需要每10个RMII_REFCLK周期从第二异步先进先出队列中读取一次数据传输到PHY芯片。其他步骤均与当前链路状态信息中数据传输的速率为100M时串行数据从基于SMII的MAC芯片600发送到基于RMII的PHY芯片620的步骤相同。
基于上述本发明所提供的方法,本发明还提供了一种基于串行接口的数据传输的装置,如附图7所示,图7是本发明的基于串行接口的数据传输装置的逻辑框图。基于串行接口的数据传输装置的逻辑框图包括并串转换模块700,串并转换模块710,管理接口状态检测模块720。
并串转换模块700当基于串行接口的介质访问控制芯片接收数据时,将需要接收的从所述物理层芯片传输来的并行数据转换成串行数据传输到所述基于串行接口的介质访问控制芯片。
串并转换模块710当需要将数据从基于串行接口的介质访问控制芯片发送到所述物理层芯片时,将所述的串行数据转换成并行数据发送到所述物理层芯片。
管理接口状态检测模块720用于根据基于串行接口的介质访问控制芯片和所述物理层芯片之间的管理接口总线上的数据帧获取当前链路状态信息;将所述获取的当前链路状态信息提供给并串转换模块和串并转换模块。
管理接口状态检测模块720逻辑框图如图8所示,图8是管理接口状态检测模块逻辑框图,包括移位寄存器800,比较器810,状态寄存器820。
管理接口总线MDIO上的数据帧在管理接口的时钟MDC作用下依次进入32位移位寄存器800。数据帧由前导码PRE,帧头标志ST,操作码OP,PHY地址PHYAD,寄存器地址REGAD,MDIO数据线方向转换时间TA,数据DATA,空闲状态IDLE组成。
当比较器810判断出移位寄存器800的内容全部是“1”以后,即可确认收到了前导码PRE;继续等待帧头标志ST移到最高两位。当ST移到最高两位时移位寄存器800已经保存了完整的管理接口总线上的数据帧。这时将移位寄存器800中的OP、PHYAD、REGAD等字段的内容与预定值比较,确定移位寄存器中的数据帧是否是有效的数据帧。如果内容相等,移位寄存器800中存储的是有效的读数据帧,比较器810向状态寄存器820发送更新控制信号,状态寄存器820从移位寄存器800的DATA字段中读取相应的状态位,更新状态寄存器820。如果内容不相等,移位寄存器800中存储的是无效的读数据帧,比较器810不向状态寄存器820发送更新控制信号,不更新状态寄存器820中的数据。预定值中的OP字段为“10”时表示读操作,为“01”时表示写操作;PHYAD字段为PHY芯片的端口地址;REGAD字段为“00000”时是控制寄存器,为“00001”时是状态寄存器。
当并串转换模块700用于基于SMII的MAC芯片和基于MII的PHY芯片之间进行数据传输时,并串转换模块700的逻辑框图如附图9所示,图9是本发明的基于SMII的MAC芯片和基于MII的PHY芯片之间进行数据传输的并串转换模块逻辑框图,包括状态检测处理子模块900,4位到8位格式转换子模块910,异步先进先出写入控制器920,异步先进先出队列930,8位2选1开关940,异步先进先出读出控制器950,输出移位寄存器960。其中状态检测处理子模块900实现状态检测处理子模块的功能;4位到8位格式转换子模块910实现并行位数转换子模块的功能;异步先进先出写入控制器920实现第一异步先进先出写入控制器的功能;异步先进先出队列930实现第一异步先进先出队列的功能;8位2选1开关940实现第一开关的功能;异步先进先出读出控制器950实现第一异步先进先出读出控制器的功能;输出移位寄存器960实现并转串子模块的功能。
MII的时钟MII_RXCLK由PHY芯片提供,在100M以太网中频率为25MHz,在10M以太网中频率为2.5MHz。SMII的参考时钟SMII_REFCLK由外部时钟源提供,频率为125MHz。由于MII和SMI的时钟频率不同,且不同步,所以并串转换模块采用了异步先进先出队列930以实现两个时钟域的隔离。由于并串转换模块采用了4位到8位格式转换子模块910,所以异步先进先出队列930的大小为8×15,即宽度为8bit,深度为15bit,足以允许MII和SMII的时钟有±100ppm的误差。
图9中其他链路状态信息包括RXER(接收数据错误信号)、VALID(数据有效)、Flase carrier(载波无效指示)和当前链路状态信息;当前链路状态信息包括SPEED(速率)、DUPLEX(双工)、LINK(链路)、JABBER(超长帧)。当前链路状态信息由管理接口状态检测模块提供。其中的SPEED反映当前链路状态信息中数据传输速率是100M还是10M。
状态检测处理子模块900输出的CRS(载波有效信号)由MII_CRS获得,RXER(接收数据错误信号)由MII_RXER获得。VALID由基于MII的PHY传输来的数据位数决定,当传输来的数据是偶数个4位并行数据时VALID=1,当传输来的数据是奇数个4位并行数据时VALID=0;Flase carrier由状态检测处理子模块900根据基于MII的PHY传输来的数据格式确定,Flase carrier的确定方法为每一个以太网数据帧开始传输时载波无效指示Flase carrier=0;当出现MII_RXDV=0、MII_RXER=1、MII_RXD=1110时,载波无效指示Flasecarrier=1,且保持到下一帧数据开始传送。
当MII_RXDV(接收数据有效信号)=0时,表示基于SMII的MAC芯片需要接收的是当前链路状态信息,异步先进先出写入控制器920接收到MII_RXDV=0的信号,不对异步先进先出队列930中写数据,异步先进先出队列930为空,输出FIFO空状态标志。异步先进先出读出控制器950接收到FIFO空状态标志将RXDV置为0,RXDV=0,表示输出的是当前链路状态信息。异步先进先出读出控制器950控制8位二选一开关940选通其他链路状态信息,允许当前链路状态信息和CRS、RXER、RXDV信号一起传输到输出移位寄存器960。输出移位寄存器960在SMII_REFCLK时钟作用下逐位输出串行格式的数据到SMII_RXD。
当MII_RXDV=1时,表示基于SMII的MAC芯片需要接收的是从基于MII的PHY芯片传输来的数据。
异步先进先出写入控制器920接收到MII_RXDV=1的信号,将MII的工作时钟频率作为写时钟提供给异步先进先出队列930;写时钟作为向异步先进先出队列930写入数据的时钟信号。向异步先进先出队列930输出写使能信号,将MII_RXD[3:0]经过4位到8位格式转换子模块910转换成的8位并行数据在写时钟的作用下写入到异步先进先出队列930;异步先进先出队列930接到写使能信号后允许MII_RXD[3:0]经过4位到8位格式转换子模块910转换为的8位并行数据在写时钟的频率下写入异步先进先出队列930中。
当异步先进先出队列930中的数据量达到第一预定阈值时,输出达到第一预定阈值状态信号。
在本实施方案中第一预定阈值选用1/2,即数据量达到异步先进先出队列930的半满状态。
当异步先进先出队列930中的数据量达到半满状态时,输出达到FIFO半满状态信号。
异步先进先出读出控制器950将SMII的时钟频率作为读时钟提供给异步先进先出队列930,作为从异步先进先出队列930中读出数据的时钟信号。当异步先进先出读出控制器950接收到FIFO半满状态信号后向异步先进先出队列930输出读使能信号,并将RXDV置为1,RXDV=1,表示基于SMII的MAC芯片接收到的是数据。异步先进先出读出控制器950控制8位二选一开关940选通异步先进先出队列930。
如果异步先进先出读出控制器950接收到当前链路状态信息中数据传输速率是100M,异步先进先出读出控制器950在读时钟的作用下将异步先进先出队列930中的数据读出和RXDV一起传输到输出移位寄存器960中。
如果异步先进先出读出控制器950接收到当前链路状态信息中数据传输速率是10M,异步先进先出读出控制器950每10个SMII_SYNC周期将异步先进先出队列930中的数据读取一次,将读出的数据和RXDV一起传输到输出移位寄存器960中。
输出移位寄存器960将接收到的数据、RXDV和CRS信号在SMII_REFCLK时钟作用下串行输出到基于SMII的MAC芯片。以上过程一直持续到异步先进先出队列930为空,即一帧数据结束为止。
本实施方案中MII_RXD[3:0]数据可以不经转换或转换成其他格式的数据在写时钟的频率下写入异步先进先出队列930中,如果采用不经转换或转换成其他格式的数据,则相应的逻辑器件根据数据转换的具体情况需要做相应的调整。
从基于MII的PHY芯片传输来的数据结构定义如表2所示。
表2从基于MII的PHY芯片传输来的数据结构定义


SMII接收数据的时序图如附图10所示。
在图10中CRS是载波检测信号,是非同步信号;RX_DV(接收数据有效信号)对应RXDV的状态值;当RX_DV=0时表示后8位是链路状态信息,当RX_DV=1时表示后8位是数据。
当RX_DV=0时后8位信号表示的含义是,RX_ER是接收数据错误信号,当RX_ER=0时,表示接收数据正确,当RX_ER=1时,表示接收数据错误;SPEED是数据传输的速率,当SPEED=0时,表示数据传输的速率为10Mbps,当SPEED=1时,表示数据传输的速率为100Mbps;DUPLEX是双工信号,DUPLEX=0时,表示半双工,当DUPLEX=1时,表示全双工;LINK是链路状态信号,当LINK=0时,表示链路断开,当LINK=1时,表示链路通;JABBER是超长帧信号,当JABBER=0时,表示受到正常数据帧,当JABBER=1时,表示收到超长数据帧;VALID是Dribble指示信号,当VALID=0时,表示上一帧最后一个字节高四位无效,当VALID=1时,表示上一帧最后一个字节高四位有效;False Carrier是载波无效信号,当False Carrier=0时,表示载波有效,当False Carrier=1时,表示载波无效;RXD7固定为1。
当串并转换模块710用于基于SMII的MAC芯片和基于MII的PHY芯片之间进行数据传输时,串并转换模块710的逻辑框图如附图11所示,包括输入移位寄存器110,4位2选1开关111,异步先进先出写入控制器112,异步先进先出队列113,异步先进先出读出控制器114。其中输入移位寄存器110实现串转并子模块的功能;4位2选1开关111实现第二开关的功能;异步先进先出写入控制器112实现第二异步先进先出写入控制器的功能;异步先进先出队列113实现第二异步先进先出写入控制器的功能;异步先进先出读出控制器114实现第二异步先进先出读出控制器的功能。
由于MII接口和SMII接口的时钟频率不同,且不同步,所以串并转换模块采用了异步先进先出队列113来实现两个时钟域的隔离。由于串并转换模块采用了将串行数据转换为4位并行数据传输加一位控制信号传输,所以异步先进先出队列113的大小为5×15,即宽度5bit,深度15bit,足以允许MII和SMII的时钟有±100ppm的误差。
基于SMII的MAC芯片发送的数据SMII_TXD在SMII的时钟SMII_REFCLK作用下进入输入移位寄存器110,当输入移位寄存器110接收到的SMII_TXD中的TXEN=0,表示SMII发送的数据无效,即输入移位寄存器110接收到的数据无效。输入移位寄存器110将TXEN信号输出到异步先进先出写入控制器112,异步先进先出写入控制器112接收到TXEN=0的信号后不向异步先进先出队列113输出写使能信号。异步先进先出队列113为空,输出FIFO空标志信号,异步先进先出读出控制器114接收到FIFO空标志信号后将MII_TXEN信号置为无效,即MII_TXEN=0,表示MII接口输出的数据无效。
当输入移位寄存器110接收到的SMII_TXD中的TXEN=1时,表示基于SMII的MAC芯片发送的数据有效,即输入移位寄存器110接收到的数据有效。异步先进先出写入控制器112接收到TXEN=1的信号后将SMII的时钟频率作为写时钟信号提供给异步先进先出队列113,写时钟作为向异步先进先出队列113写入数据的时钟频率;并向异步先进先出队列113输出写使能信号,同时控制4位2选1开关111选通输入移位寄存器110。
如果异步先进先出写入控制器112接收到当前链路状态信息中数据传输速率是100M,将输入移位寄存器110中数据按低4位、高4位分两次与SMII_TXD中的TXER状态位一起在写时钟的作用下写入到异步先进先出队列113。
如果异步先进先出写入控制器112接收到当前链路状态信息中数据传输速率是10M的信号,将输入移位寄存器110中数据按低4位、高4位分两次与SMII_TXD中的TXER状态位一起每10个SMII_SYNC向异步先进先出队列113写入一次数据。
异步先进先出队列113接收到写使能信号后允许异步先进先出写入控制器112向其写入数据。当异步先进先出队列113中的数据量达到第二预定阈值时,向异步先进先出读出控制器114输出达到第二预定阈值状态信号。
在本实施方案中第二预定阈值选用1/2,即数据量达到异步先进先出队列113的半满状态。
当异步先进先出队列113中的数据量达到半满状态时,异步先进先出队列113输出达到FIFO半满状态标志;异步先进先出读出控制器114将MII的工作时钟频率作为读时钟提供给异步先进先出队列113,读时钟作为从异步先进先出队列113中读出数据的时钟频率。当异步先进先出读出控制器114接收到异步先进先出队列113输出FIFO半满状态标志后向异步先进先出队列113输出读使能信号。异步先进先出读出控制器114在读时钟信号的作用下将异步先进先出队列113中的数据读出,输出到MII_TXD[3:0]和MII_TXER。同时异步先进先出读出控制器114将MII_TXEN置为有效,即MII_TXEN=1,表示MII接口输出的数据有效。以上过程一直持续到异步先进先出队列113为空,即一帧数据结束为止。
在本实施方案中如果移位寄存器110中数据采用其他格式而不按低4位、高4位分两次与SMII_TXD中的TXER状态位一起写入异步先进先出队列113中,则相应的逻辑器件需要做相应的调整。
基于SMII的MAC芯片发送数据的时序图如附图12所示。
在图12中,TX_ER是发送数据错误信号,当TX_ER=0时表示发送数据正确,当TX_ER=1时表示发送数据错误;TX_EN是发送数据有效信号,当TX_EN=0时表示发送数据无效,当TX_EN=1时表示发送数据有效;TXD0至TXD7是数据位。
从基于SMII的MAC芯片发送到基于MII的PHY芯片的数据定义如表3所示表3从基于SMII的MAC芯片发送到基于MII的PHY芯片的数据定义

当并串转换模块700用于基于SMII的MAC芯片和基于RMII的PHY芯片之间进行数据传输时,并串转换模块700的逻辑框图如附图13所示,包括状态检测处理子模块130,2位到8位格式转换子模块131,异步先进先出写入控制器132,异步先进先出队列133,8位2选1开关134,异步先进先出读出控制器135,输出移位寄存器136。其中状态检测处理子模块130实现状态检测处理子模块的功能;2位到8位格式转换子模块131实现并行位数转换子模块的功能;异步先进先出写入控制器132实现第一异步先进先出写入控制器的功能;异步先进先出队列133实现第一异步先进先出队列的功能;8位2选1开关134实现第一开关的功能;异步先进先出读出控制器135实现第一异步先进先出读出控制器的功能;输出移位寄存器136实现并转串子模块的功能。
RMII的时钟RMII_RXCLK由外部时钟提供,频率为50MHz。SMII的参考时钟SMII_REFCLK由外部时钟源提供,频率为125MHz。由于RMII和SMII的时钟频率不同,且不同步,所以并串转换模块采用了异步先进先出队列133来实现两个时钟域的隔离。由于并串转换模块采用了2位到8位格式转换子模块131,所以异步先进先出队列133的大小为8×15,即宽度为8bit,深度为15bit,足以允许RMII和SMII的时钟有±100ppm的误差。
图13中其他链路状态信息包括RXER(接收数据错误信号)、VALID(数据有效)、Flase carrier(载波无效指示)和当前链路状态信息;当前链路状态信息包括SPEED(速率)、DUPLEX(双工)、LINK(链路)、JABBER(超长帧)。当前链路状态信息由管理接口状态检测模块提供。其中的SPEED反映数据传输速率是100M还是10M。
状态检测处理子模块130输出的CRS(载波有效信号)由RMII_CRS_DV获得,RXER(接收数据错误信号)由RMII_RXER获得。VALID由基于RMII的PHY传输来的数据位数决定,当传输来的数据是4N或4N+3个2位并行数据时VALID=1,当传输来的数据是4N+1或4N+2个2位并行数据时VALID=0,其中N为正整数;Flase carrier由状态检测处理子模块130根据基于RMII的PHY传输来的数据格式确定,Flase carrier的确定方法为每一个以太网数据帧开始传输时载波无效指示Flase carrier=0;当出现RMII_RXER=1、RMII_RXD[1:0]=10时,载波无效指示Flase carrier=1,且保持到下一帧数据开始传送。
当RMII_CRS_DV(载波/接收数据有效信号)=0时,表示基于SMII的MAC芯片需要接收的是当前链路状态信息,异步先进先出写入控制器132接收到RMII_CRS_DV为0的信号,不对异步先进先出队列133中写数据,异步先进先出队列133为空,输出FIFO空状态标志。异步先进先出读出控制器135接收到FIFO空状态标志将RXDV置为0,RXDV=0,表示输出的是当前链路状态信息。异步先进先出读出控制器135控制8位2选1开关134选通其他链路状态信息,允许当前链路状态信息和CRS、RXER、VALID、Flase carrier信号一起传输到输出移位寄存器136。输出移位寄存器136在SMII_REFCLK时钟作用下逐位输出串行格式的数据到SMII_RXD。
当RMII_RXDV=1时,表示基于SMII的MAC芯片需要接收的是从基于RMII的PHY芯片传输来的数据。
如果2位到8位格式转换子模块131接收到当前链路状态信息中数据传输速率是100M,2位到8位格式转换子模块131在RMII_REFCLK时钟作用下对RMII_RXD[1:0]进行采样。
如果2位到8位格式转换子模块131接收到当前链路状态信息中数据传输速率是10M,每10个RMII_REFCLK周期对RMII_RXD[1:0]采样一次。
将采样后的数据经过2位到8位格式转换子模块131转换成8位并行数据。
异步先进先出写入控制器132接收到RMII_CRS_DV为1的信号,将RMII的工作时钟频率作为写时钟提供给异步先进先出队列133,写时钟作为向异步先进先出队列133写入数据的时钟信号。异步先进先出写入控制器132向异步先进先出队列133输出写使能信号,将8位并行数据在写时钟的作用下写入异步先进先出队列133。
异步先进先出队列133接到写使能信号后允许8位并行数据在写时钟的频率下写入异步先进先出队列133中。
当异步先进先出队列133中的数据量达到第一预定阈值时,输出达到第一预定阈值状态信号。
在本实施方案中第一预定阈值选用1/2,即数据量达到异步先进先出队列133的半满状态。
当异步先进先出队列133中的数据量达到半满状态时,输出达到FIFO半满状态信号。
异步先进先出读出控制器135将SMII的工作时钟频率作为读时钟提供给异步先进先出队列133,读时钟作为从异步先进先出队列133中读出数据时钟频率。当异步先进先出读出控制器135接收到FIFO半满状态信号后向异步先进先出队列133输出读使能信号,并将RXDV置为1,RXDV=1,表示基于SMII的MAC芯片接收到的是数据。异步先进先出读出控制器135控制8位2选1开关134选通异步先进先出队列133。
如果异步先进先出读出控制器135接收到当前链路状态信息中数据传输速率是100M,异步先进先出读出控制器135在读时钟的作用下将异步先进先出队列133中的数据读出和RXDV一起传输到输出移位寄存器136中。
如果异步先进先出读出控制器135接收到当前当前链路状态信息中数据传输速率是10M,异步先进先出读出控制器135每10个SMII_SYNC周期将异步先进先出队列133中的数据读取一次,将读出的数据和RXDV一起传输到输出移位寄存器136中。
输出移位寄存器136将接收到的数据、RXDV和CRS信号在SMII_REFCLK时钟作用下串行输出到基于SMII的MAC芯片。以上过程一直持续到异步先进先出队列133为空,即一帧数据结束为止。
本实施方案中RMII_RXD[1:0]数据可以不经转换或转换成其他格式的数据在写时钟的频率下写入异步先进先出队列133中,如果采用不经转换或转换成其他格式的数据,则相应的逻辑器件需要做相应的调整。
当串并转换模块710用于基于SMII的MAC芯片和基于RMII的PHY芯片之间进行数据传输时,串并转换模块710的逻辑框图如附图14所示,包括输入移位寄存器140,2位4选1开关141,异步先进先出写入控制器142,异步先进先出队列143,异步先进先出读出控制器144。其中输入移位寄存器140实现串转并子模块的功能;2位4选1开关141实现第二开关的功能;异步先进先出写入控制器142实现第二异步先进先出写入控制器的功能;异步先进先出队列143实现第二异步先进先出写入控制器的功能;异步先进先出读出控制器144实现第二异步先进先出读出控制器的功能。
由于RMII接口和SMII接口的时钟频率不同,且不同步,所以串并转换模块采用了异步先进先出队列143以实现两个时钟域的隔离。由于串并转换模块采用了将串行数据转换为2位并行数据传输,所以异步先进先出队列143的大小为2×15,即宽度2bit,深度15bit,足以允许RMII和SMII的时钟有±100ppm的误差。
基于SMII的MAC芯片发送的数据SMII_TXD在SMII的时钟SMII_REFCLK作用下进入输入移位寄存器140,当输入移位寄存器140接收到的SMII_TXD中的TXEN=0,表示SMII发送的数据无效,即输入移位寄存器140接收到的数据无效。输入移位寄存器140将TXEN信号输出到异步先进先出写入控制器142,异步先进先出写入控制器142接收到TXEN=0的信号后不向异步先进先出队列143输出写使能信号。异步先进先出队列143为空,输出FIFO空标志信号,异步先进先出读出控制器144接收到FIFO空标志信号后将RMII_TXEN信号置为无效,即RMII_TXEN=0,表示RMII接口输出的数据无效。
当输入移位寄存器140接收到的SMII_TXD中的TXEN=1时,表示基于SMII的MAC芯片发送的数据有效,即输入移位寄存器140接收到的数据有效。异步先进先出写入控制器142接收到TXEN=1的信号后,将SMII的工作时钟频率作为写时钟提供给异步先进先出队列143,写时钟作为向异步先进先出队列143写入数据的时钟频率;并向异步先进先出队列143输出写使能信号,并且控制2位4选1开关141选通输入移位寄存器140。
如果异步先进先出写入控制器142接收到当前链路状态信息中数据传输速率是100M,将输入移位寄存器140中数据按从高位到低位划分为4个2位并行数据在写时钟的作用下写入异步先进先出队列143。
如果异步先进先出写入控制器142接收到当前链路状态信息中数据传输速率是10M,将输入移位寄存器140中数据按从高位到低位划分为4个2位并行数据每10个SMII_SYNC向异步先进先出队列143写入一次数据。
异步先进先出队列143接收到写使能信号后允许异步先进先出写入控制器142向其写入数据。当异步先进先出队列143中的数据量达到第二预定阈值时,输出达到第二预定阈值状态信号。
在本实施方案中第二预定阈值选用1/2,即数据量达到异步先进先出队列143的半满状态。
当异步先进先出队列143中的数据量达到半满状态时,异步先进先出队列143输出达到FIFO半满状态标志。
异步先进先出读出控制器144将RMII的工作时钟频率作为读时钟提供给异步先进先出队列143,读时钟作为从异步先进先出队列143中读出数据的时钟。当异步先进先出读出控制器144接收到异步先进先出队列143输出FIFO半满状态标志后向异步先进先出队列143输出读使能信号。
如果异步先进先出读出控制器144接收到当前链路状态信息中数据传输速率是100M,异步先进先出读出控制器144在读时钟信号的作用下将异步先进先出队列143中的数据读出,传输到RMII_TXD[1:0]。
如果异步先进先出读出控制器144接收到当前链路状态信息中数据传输速率是10M,异步先进先出读出控制器144每10个RMII_REFCLK周期将异步先进先出队列143中的数据读取一次,传输到RMII_TXD[1:0]。
同时异步先进先出读出控制器144将RMII_TXEN置为有效,即RMII_TXEN=1,表示RMII接口输出的数据有效。以上过程一直持续到异步先进先出队列143为空,即一帧数据结束为止。
在本实施方案中如果RMII移位寄存器140中数据采用其他格式而不按从高位到低位划分为4个2位并行数据分4次写入异步先进先出队列143中,则相应的逻辑器件需要做相应的调整。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化。
权利要求
1.一种基于串行接口的数据传输方法,其特征在于包括a、将物理层芯片的待传输的并行数据转换成串行数据,并将其传输到基于串行接口的介质访问控制芯片;b、将基于串行接口的介质访问控制芯片的待传输的串行数据转换成并行数据,并将其传输到所述物理层芯片。
2.如权利要求1所述的一种基于串行接口的数据传输方法,其特征在于所述的基于串行接口的介质访问控制芯片包括基于SMII(串行介质无关接口)的介质访问控制芯片。
3.如权利要求1或2所述的一种基于串行接口的数据传输方法,其特征在于所述的物理层芯片包括基于MII(介质无关接口)的物理层芯片或基于RMII(简化的介质无关接口)的物理层芯片。
4.如权利要求3所述的一种基于串行接口的数据传输方法,其特征在于所述的步骤a还包括a1、将管理接口的待传输的当前链路状态信息转换成串行数据,并将其传输到所述基于串行接口的介质访问控制芯片。
5.如权利要求4所述的一种基于串行接口的数据传输方法,其特征在于所述的当前链路状态信息为根据所述基于SMII的介质访问控制芯片和所述物理芯片之间的管理接口总线上的数据帧获取当前链路状态信息。
6.如权利要求5所述的一种基于串行接口的数据传输方法,其特征在于所述的获取当前链路状态信息包括根据所述管理接口总线上的数据帧的相应字段与预定值是否相等,确定有效的数据帧并从中获取当前链路状态信息。
7.如权利要求6所述的一种基于串行接口的数据传输方法,其特征在于所述的当前链路状态信息包括当前链路上数据传输的速率、双工、链路、超长帧状态信息。
8.如权利要求1或4所述的一种基于串行接口的数据传输方法,其特征在于所述的步骤a包括a2、将所述物理层芯片的待传输的并行数据进行并行位数转换,并将转换后的并行数据在所述物理层芯片提供的时钟作用下输入到第一异步先进先出队列;a3、所述第一异步先进先出队列中的数据在所述SMII的外部时钟控制下,串行传输到所述基于SMII的介质访问控制芯片直至所述第一异步先进先出队列为空。
9.如权利要求8所述的一种基于串行接口的数据传输方法,其特征在于所述的步骤a3包括当所述第一异步先进先出队列中的数据量达到第一预定阈值时,将所述第一异步先进先出队列中的数据在SMII的外部时钟作用下串行传输到所述基于SMII的介质访问控制芯片,直到所述第一异步先进先出队列为空。
10.如权利要求1或4所述的一种基于串行接口的数据传输方法,其特征在于所述的步骤b包括b1、将所述基于SMII的介质访问控制层芯片的待传输的串行数据转换成并行数据,并将其在所述SMII的外部时钟的作用下输入到第二异步先进先出队列;b2、将所述第二异步先进先出队列中的数据在所述物理层芯片提供的时钟的作用下并行传输到所述物理层芯片,直到所述第二异步先进先出队列为空。
11.如权利要求10所述的一种基于串行接口的数据传输方法,其特征在于所述的步骤b2包括当所述第二异步先进先出队列中数据量达到第二预定阈值时,将所述第二异步先进先出队列中的数据,在所述物理层芯片提供的时钟的作用下并行传输到所述物理层芯片,直到所述第二异步先进先出队列为空。
12.一种基于串行接口的数据传输的装置,其特征在于包括并串转换模块接收物理层芯片传输来的并行数据,并将其转换成串行数据传输到所述基于串行接口的介质访问控制芯片;串并转换模块接收基于串行接口的介质访问控制芯片传输来的串行数据,并将其转换成并行数据传输到所述物理层芯片。
13.如权利要求12所述的一种基于串行接口的数据传输的装置,其特征在于还包括管理接口状态检测模块从基于串行接口的介质访问控制芯片和所述物理层芯片之间的管理接口总线上的数据帧中获取当前链路状态信息,并提供给并串转换模块和串并转换模块。
14.如权利要求13所述的一种基于串行接口的数据传输的装置,其特征在于所述的管理接口状态检测模块包括移位寄存器用于获取所述管理接口总线上的数据帧,并提供给比较器和状态寄存器;比较器用于比较所述数据帧承载的信息和预定值是否相等,确定所述数据帧是否为有效的数据帧,当所述数据帧为有效的数据帧时向状态寄存器输出更新控制信号;状态寄存器当接收到所述更新控制信号时,将所述状态寄存器中的数据更新为移位寄存器中当前数据帧承载的当前链路状态信息;并将其提供给并串转换模块和串并转换模块。
15.如权利要求12或13所述的一种基于串行接口的数据传输的装置,其特征在于所述的并串转换模块,包括状态检测处理子模块用于对所述物理层芯片传输来的数据进行载波检测、数据状态检测,将检测结果和管理接口状态检测模块传输来的当前链路状态信息传输到并转串子模块;第一先进先出写入控制器当所述物理层芯片传输来的并行数据为有效时,将所述物理层芯片的时钟频率作为写时钟提供给所述第一异步先进先出队列,并将写使能信号输出到所述第一异步先进先出队列,将所述并行数据写入第一异步先进先出队列;第一异步先进先出队列当接收到所述写使能信号时,允许在所述写时钟作用下第一异步先进先出写入控制器写入从所述物理层传来的并行数据;当接收到读使能信号时,允许第一异步先进先出读出控制器在读时钟作用下按照当前链路上数据传输的速率向并转串子模块读出其数据;当其中的数据量达到第一预定阈值时,向第一异步先进先出读出控制器输出达到第一预定阈值信号;当其中的数据为空时,向第一异步先进先出读出控制器输出第一异步先进先出队列为空信号;第一异步先进先出读出控制器将串行接口的时钟频率作为读时钟提供给所述第一异步先进先出队列;当接收到所述达到第一预定阈值信号时,向所述第一异步先进先出队列输出读使能信号;将第一异步先进先出队列中的数据在读时钟的作用下按照当前链路上数据传输的速率读出到并转串子模块;同时将接收的数据有效状态输出到并转串子模块并控制第一开关选通所述第一异步先进先出队列;在接收到所述第一异步先进先出队列为空信号时,控制第一开关选通链路状态信息,并将接收数据无效状态输出到并转串子模块;第一开关当选通所述第一异步先进先出队列时,允许所述第一异步先进先出读出控制器从第一异步先进先出队列中读出的并行数据输出到并转串子模块;当选通所述链路状态信息时,允许所述链路状态信息输出到所述并转串子模块;并转串子模块用于将其存储的并行数据在串行接口的外部时钟作用下串行输出到基于串行接口的介质访问控制芯片。
16.如权利要求15所述的一种基于实现基于串行接口的数据传输的装置,其特征在于所述的并串转换模块还包括并行位数转换子模块用于根据当前链路上数据传输的速率将所述物理层芯片传输来的并行数据经过并行位数转换后输入所述第一异步先进先出队列。
17.如权利要求12或13所述的一种基于实现基于串行接口的数据传输的装置,其特征在于所述的串并转换模块包括串转并子模块用于将所述基于串行接口的介质访问控制芯片传输来的串行数据转换成预定位数的并行数据,并输出到所述第二异步先进先出队列,并将所述发送的串行数据是否有效信号输出到第二异步先进先出写入控制器;第二异步先进先出写入控制器当所述的串行数据为有效数据时,将串行接口的时钟频率作为写时钟提供给第二异步先进先出队列;向第二异步先进先出队列输出写使能信号;控制第二开关选通所述串转并子模块;将所述串转并子模块输出的并行数据与所述串转并子模块输出的并行数据是否为错误信号一起或单独将所述串转并子模块输出的并行数据根据当前链路上数据传输速率在写时钟的作用下写入到所述第二异步先进先出队列;第二开关当选通串转并子模块时,允许所述串转并子模块输出的并行数据输出到第二异步先进先出队列;第二异步先进先出队列当接收到所述写使能信号时,允许第二异步先进先出写入控制器将所述串转并子模块输出的并行数据与所述发送的数据是否为错误状态信号一起或单独将所述串转并子模块输出的并行数据根据当前链路上数据传输速率在写时钟的作用下写入到所述第二异步先进先出队列;在所述第二异步先进先出队列中的数据量达到第二预定阈值时,向第二异步先进先出读出控制器输出达到第二预定阈值信号;在所述第二异步先进先出队列为空时,向第二异步先进先出读出控制器输出为空信号;当接收到读使能信号时,允许第二异步先进先出读出控制器将其中的数据读出并传输到所述物理层芯片;第二异步先进先出读出控制器用于将所述物理层芯片的时钟频率作为读时钟提供给第二异步先进先出队列;当接收到所述达到第二预定阈值信号时,向所述第二异步先进先出队列输出读使能信号;将所述第二异步先进先出队列中的数据根据当前链路上数据传输速率在写时钟的作用下读出并传输到所述物理层芯片;同时将数据为有效状态输出到所述物理层芯片;当接收到所述为空状态信号时将数据为无效状态输出到所述物理层芯片。
全文摘要
本发明提供一种基于串行接口的数据传输方法,包括将物理层芯片的待传输的并行数据转换成串行数据,并将其传输到基于串行接口的介质访问控制芯片;将基于串行接口的介质访问控制芯片的待传输的串行数据转换成并行数据,并将其传输到所述物理层芯片。本发明还提供一种基于串行接口的数据传输的装置,包括并串转换模块、串并转换模块。通过本发明,实现了基于串行接口的介质访问控制芯片与物理层芯片之间进行数据传输时,数据传输距离拉远的目的,使基于SMII进行数据传输的产品不会因数据传输的距离受限制而制约产品的结构,优化了产品的结构布局。
文档编号G06F13/38GK1549141SQ0313800
公开日2004年11月24日 申请日期2003年5月21日 优先权日2003年5月21日
发明者顾冰, 陈振晖, 顾 冰 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1