逻辑器件及其mdio接口通信方法

文档序号:6398091阅读:280来源:国知局
专利名称:逻辑器件及其mdio接口通信方法
技术领域
本发明涉及通信技术,尤其涉及一种逻辑器件及其MDIO接口通信方法。
背景技术
MDIO (Management Data Input/Output,管理数据输入输出)接口总线由 IEEE 通过以太网标准IEEE802.3的若干条款加以定义,广泛应用于以太网通信。MDIO接口是一种双线串行接口,其包含2个管脚:MDC (Management Data Clock,管理数据时钟)时钟管脚和MDIO数据管脚。MDC时钟是MDIO数据管脚上传输的管理数据的时钟输入,最高速率可达8.3MHz。MDIO是管理数据的输入输出双向接口,数据是与MDC时钟同步的。换言之,MDIO接口包括MDC时钟线和MDIO数据线。在主机与底层设备进行通信时,通常由逻辑器件,如FPGA (Field ProgrammableGata Array,现场可编程门阵列)、PAL (Programmable Array Logic,可编程阵列逻辑)等在主机与底层设备之间实现MDIO接口到其它通信接口,比如SPI (Serial PeripheralInterface,串行外设接口)接口、IIC (Inter-1ntegrated Circuit,交互集成电路)接口、USB (Universal Serial Bus,通用串行总线)接口的转换。逻辑器件可以包括在线可编程的逻辑器件,也可包括固化为芯片的逻辑器件。例如,图1示出通过FPGA实现主机与底层设备之间的通信:FPGA中的MDIO处理模块与主机通信通过MDIO接口总线通信:FPGA中的MDIO处理模块通过MDIO接口从主机接收数据,存入到RAM (Random Access Memory,随机访问存储器)中,FPGA中的SPI处理模块从RAM中获取数据通过SPI接口将数据发送到底层设备的单片机、CPU (Central ProcessingUnit,中央处理机)、或处理器;或者,FPGA中的SPI处理模块通过SPI接口接收底层设备的单片机、CPU、或处理器发送的数据后,存入到RAM中,FPGA中的MDIO处理模块从RAM获取数据后再通过MDIO接口向主机发送。MDIO接口在没有传输数据的空闲状态(IDLE)时,MDIO数据线处于高阻态;MD10接口在进行数据传输时,MDIO数据线上传输的数据是与MDC时钟线上的MDC时钟信号同步的,即在一个MDC时钟周期内,MDIO数据线上同步传输I比特数据。比如,FPGA检测到MDIO接口的MDC时钟线上有10个MDC时钟,则根据这10个MDC时钟,FPGA可检测出MDIO接口的MDIO数据线上同步传输的10个比特的数据。也就是说,MDIO数据接收方可以根据每个MDC时钟同步接收MDIO数据线上传输的每比特数据。根据MDC时钟同步接收MDIO数据线上每比特数据的技术为本领域技术人员所熟知、常用的技术,此处不再进行详细介绍。下面介绍一下MDIO数据线上传输的数据所遵循的MDIO接口的通信协议帧格式,如下表I所示:表IPreamble ST OP PHYADR DEVADD TA ADDRESS/DATA32bits 2bits 2bits 5bits 5bits 2bits 16bits 读/写数据或地址同步前导起始标志I读取标志I物理地址I设备地址转换标志_其中,基于MDIO协议的、在MDIO数据线上传输的一帧数据中通常包括64比特(bit),其中有:32比特的同步前导、2比特的起始标志、2比特的读取标志、5比特的物理地址、5比特的设备地址、2比特的转换标志和16比特的读/写数据或地址。其中,32比特的同步前导为32比特的数据“1”,用以作为同步信号。现有的MDIO接口通信处理方式为:逻辑器件在检测到MDIO数据线不处于高阻的空闲状态时,将MDIO数据线上传输的数据依次存入到移位寄存器中;逻辑器件在检测到移位寄存器中存储有连续的32比特的数据“I”时,确认接收到32比特的同步前导,从而将该32比特的数据“I”之后接收的数据作为同步前导之后的数据进行处理;同步前导之后的32比特数据包括有:2比特的起始标志、2比特的读取标志、5比特的物理地址、5比特的设备地址、2比特的转换标志和16比特的读/写数据或地址。为便于描述,本文将同步前导之后的32比特数据统称为有效数据;即有效数据为一帧数据中,同步前导之后的数据。本发明的发明人发现,现有技术的MDIO接口通信方法可能造成错误接收数据或无法接收数据的问题;并分析出现该问题的原因主要有两个:一个原因是,在同步前导传输过程中有可能出现比特丢失的情况,从而可编程逻辑器件或固化芯片中的移位寄存器所存储的连续的数据“I”少于32比特,使得可编程逻辑器件或固化芯片无法确认接收到32比特的同步前导,也就无法实现正确同步,接收同步前导后的数据,造成无法接收数据、数据丢失的问题;另一个原因是,如果有效数据中出现连续32比特的数据“I”的情况,可编程逻辑器件或固化芯片会由于检测到移位寄存器中存储有连续的32比特的数据“1”,而误判检测到同步前导,将其后续的数据错误地作为同步前导后的数据进行接收。综上所述,现有技术的MDIO接口通信方法,在同步前导传输过程中若出现比特丢失的情况,或有效数据中出现连续32比特的数据“I”的情况下,会导致无法接收数据或接收错误数据,由此,MDIO接口通信的可靠性不高。

发明内容
本发明的实施例提供了一种MDIO接口通信方法及装置,用以提高MDIO接口通信的可靠性。根据本发明的一个方面,提供了一种MDIO接口通信方法,包括:逻辑器件上电或复位后,将本器件中的状态机设置为前导检测状态,将本器件中的计数器清零;在所述状态机为前导检测状态时,所述逻辑器件每检测到MDIO接口中的MDIO数据线上I比特数据“1”,则控制所述计数器的计数加I ;所述逻辑器件在检测到所述MDIO数据线上出现数据“O”时,将所述计数器的计数与设定的阈值进行比较后将所述计数器清零;其中,所述数据“O”作为第I比特的有效数据,所述MDIO接口为所述逻辑器件与主机通信的接口 ;
若所述计数器的计数大于所述阈值,所述逻辑器件将所述状态机设置为数据处理状态;在所述状态机为数据处理状态时,所述逻辑器件通过所述MDIO接口继续接收其它有效数据。较佳地,在所述逻辑器件通过所述MDIO接口接收有效数据完毕后,还包括:所述逻辑器件将所述状态机设置为所述前导检测状态。较佳地,所述数据处理状态具体包括:起始标志处理子状态、读取标志处理子状态、物理地址处理子状态、设备地址处理子状态、转换标志处理子状态、读写数据或地址处理子状态;以及所述逻辑器件将所述状态机设置为数据处理状态具体为:所述逻辑器件将所述状态机设置为数据处理状态中的起始标志处理子状态;以及所述在所述状态机为数据处理状态时,所述逻辑器件通过所述MDIO接口继续接收其它有效数据具体包括:在所述状态机为起所述始标志处理子状态时,所述逻辑器件从所述MDIO数据线上接收第2比特的有效数据,并将第I比特和第2比特的有效数据作为所述有效数据中的起始标志;在所述起始标志接收完毕后,所述逻辑器件将所述状态机设置为所述读取标志处理子状态;在所述状态机为所述读取标志处理子状态时,所述逻辑器件将从所述MDIO数据线上接收的2比特数据作为所述有效数据中的读取标志;在所述读取标志接收完毕后,所述逻辑器件将所述状态机设置为所述物理地址处理子状态;在所述状态机为所述物理地址处理子状态时,所述逻辑器件将从所述MDIO数据线上接收的5比特数据作为所述有效数据中的物理地址;在所述物理地址接收完毕后,所述逻辑器件将所述状态机设置为所述设备地址处理子状态;在所述状态机为所述设备地址处理子状态时,所述逻辑器件将从所述MDIO数据线上接收的5比特数据作为所述有效数据中的设备地址;在所述设备地址接收完毕后,所述逻辑器件将所述状态机设置为所述转换标志处理子状态;在所述状态机为所述转换标志处理子状态时,所述逻辑器件将从所述MDIO数据线上接收的2比特数据作为所述有效数据中的转换标志;在所述转换标志接收完毕后,所述逻辑器件将所述状态机设置为所述读写数据或地址处理子状态;在所述状态机为所述读写数据或地址处理子状态时,所述逻辑器件将从所述MDIO数据线上接收的16比特数据作为所述有效数据中的读写数据或地址。较佳地,所述阈值小于32 ;以及所述检测到所述MDIO数据线上出现数据“O”时,将所述计数器的计数与设定的阈值进行比较,以及所述将所述状态机设置为数据处理状态,在一个MDC时钟周期内完成。根据本发明的另一个方面,还提供了一种逻辑器件,包括:控制模块,用于在所述逻辑器件上电或复位后,将本器件中的计数器清零,并将本器件中的状态机设置为前导检测状态后,发送前导检测信号;数据接收模块,用于依次接收MDIO接口中的MDIO数据线上依次传送的各比特数据;其中,所述MDIO接口为所述逻辑器件与主机通信的接口 ;
前导检测模块,用于在接收到所述前导检测信号后,获取所述数据接收模块当前接收的I比特数据;所述前导检测模块对每个获取的数据进行检测;若检测结果为“1”,则控制所述计数器的计数加1,并继续获取所述数据接收模块接收的下一比特数据;若检测结果为“0”,则将所述计数器的计数与设定的阈值进行比较后将所述计数器清零;若所述计数器的计数大于所述阈值,则将所述状态机设置为数据处理状态,并将所述数据“O”作为第I比特有效数据存储;所述控制模块还用于在所述状态机转换为数据处理状态后,发送有效数据接收信号;有效数据处理模块,用于接收到所述有效数据接收信号后,依次获取所述数据接收模块后续接收的数据作为其它有效数据存储。较佳地,所述有效数据处理模块还用于在其它有效数据存储完毕后,将所述状态机设置为所述前导检测状态;以及所述控制模块还用于在所述状态机转换为所述前导检测状态后,向所述前导检测模块发送所述前导检测信号。较佳地,所述数据处理状态具体包括:起始标志处理子状态、读取标志处理子状态、物理地址处理子状态、设备地址处理子状态、转换标志处理子状态、读写数据或地址处理子状态;以及所述前导检测模块为所述状态机设置的数据处理状态具体为所述起始标志处理子状态。较佳地,所述有效数据接收信号包括:起始标志接收信号、读取标志接收信号、物理地址接收信号、设备地址接收信号、转换标志接收信号、读写数据或地址接收信号;以及所述控制模块在所述状态机转换为所述起始标志处理子状态后,发送的有效数据接收信号具体为所述起始标志接收信号;所述控制模块在所述状态机转换为所述读取标志处理子状态后,向所述有效数据处理模块发送所述读取标志接收信号;在所述状态机转换为所述物理地址处理子状态后,向所述有效数据处理模块发送所述物理地址接收信号;在所述状态机转换为所述设备地址处理子状态后,向所述有效数据处理模块发送所述设备地址接收信号;在所述状态机转换为所述转换标志处理子状态后,向所述有效数据处理模块发送所述转换标志接收信号;在所述状态机转换为所述读写数据或地址处理子状态后,向所述有效数据处理模块发送所述读写数据或地址接收信号;以及所述有效数据处理模块具体包括:起始标志接收单元,用于接收到所述起始标志接收信号后,获取所述数据接收模块接收的I比特数据,将获取的数据作为所述有效数据中的起始标志的第2比特数据存储;之后,将所述状态机设置为所述读取标志处理子状态;其中,所述起始标志的第I比特数据为第I比特有效数据;读取标志接收单元,用于接收到所述读取标志接收信号后,获取所述数据接收模块接收的2比特数据作为所述有效数据中的读取标志;之后,将所述状态机设置为所述读取标志处理子状态;物理地址接收单元,用于接收到所述物理地址接收信号后,获取所述数据接收模块接收的5比特数据作为所述有效数据中的物理地址;之后,将所述状态机设置为所述设备地址处理子状态;设备地址接收单元,用于接收到所述设备地址接收信号后,获取所述数据接收模块接收的5比特数据作为所述有效数据中的设备地址;之后,将所述状态机设置为所述转换标志处理子状态;转换标志接收单元,用于接收到所述转换标志接收信号后,获取所述数据接收模块接收的2比特数据作为所述有效数据中的转换标志;之后,将所述状态机设置为所述读写数据或地址处理子状态;读写数据或地址接收单元,用于接收到所述读写数据或地址接收信号后,获取所述数据接收模块接收的16比特数据作为所述有效数据中的读写数据或地址;之后,将所述状态机设置为所述前导检测状态。较佳地,所述阈值小于32 ;以及所述逻辑器件中,提供给所述控制模块、前导检测模块、有效数据处理模块所使用的系统时钟的频率至少为MDC时钟频率的10倍。本发明实施例提供的技术方案中,逻辑器件的计数器对同步前导中的数据“I”的计数大于阈值,就仍然可以判定其为同步前导,达到数据同步目的,可以继续接收后续的有效数据;从而避免了因该原因而无法接收数据或接收错误数据的情况,提高了 MDIO接口通信的可靠性;而且,逻辑器件中还设置了状态机,在状态机为前导检测状态时,逻辑器件进行同步前导检测;在状态机为数据处理状态时,逻辑器件进行有效数据接收,从而在有效数据中出现连续32比特的数据“I”的情况时,不会将其误判为同步前导,也就保证了后续数据的正确接收,避免后续出现数据错误接收的现象,提高MDIO接口通信的可靠性。


图1为现有技术的通过FPGA实现主机与底层设备之间的通信的示意图;图2a为本发明实施例的逻辑器件通过MDIO接口与主机通信的示意图;图2b为本发明实施例的MDIO接口通信的方法流程图;图3为本发明实施例的逻辑器件的内部结构框图;图4为本发明实施例的有效数据处理模块的内部结构框图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举出优选实施例,对本发明进一步详细说明。然而,需要说明的是,说明书中列出的许多细节仅仅是为了使读者对本发明的一个或多个方面有一个透彻的理解,即便没有这些特定的细节也可以实现本发明的这些方面。本申请使用的“模块”、“系统”等术语旨在包括与计算机或芯片或可编程逻辑器件相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。本发明的逻辑器件中,采用状态机、前导计数检测、以及ST (起始标志)检测机制进行不定长前导检测,即本发明的技术方案可根据检测的少于连续32比特的数据“I”的同步前导进行数据同步,从而实现正确接收处理同步前导后的32比特的有效数据;并避免在有效数据中出现连续32比特的数据“I”的情况时,将其误判为同步前导,从而大大提高MDIO接口通信的可靠性。下面结合附图详细说明本发明实施例的技术方案。本发明实施例提供的逻辑器件,如图2a所示,该逻辑器件通过MDIO接口与主机通信,在逻辑器件中设置有状态机、计数器;逻辑器件通过内置于本器件中的逻辑编程语言实现MDIO接口通信的方法,流程如图2b所示,包括如下步骤:S201:逻辑器件上电或复位后,将状态机设置为前导检测状态,将计数器清零。事实上,技术人员在逻辑器件中通常使用状态机进行逻辑控制;状态机处于不同状态时,将进行不同的操作与处理;在满足某个条件时,状态机的状态可以进行转换;而这些条件由技术人员在逻辑器件中进行设置。逻辑器件中的状态机具体可以是逻辑器件中的某个特定寄存器,该特定寄存器中存储的不同的值表示状态机的不同状态。本发明逻辑器件中设置的状态机包括至少两个状态:前导检测状态、数据处理状态。在逻辑器件上电或复位后,进行的初始化过程中,将本器件中的状态机设置为前导检测状态,将本器件中的计数器清零。S202:在状态机为前导检测状态时,逻辑器件每检测到MDIO数据线上I比特数据“1”,则控制计数器的计数加I。在状态机为前导检测状态时,逻辑器件进行同步前导的检测:逻辑器件从MDIO接口中的MDIO数据线上每接收I比特数据“1”,则控制所述计数器加I。如何根据MDIO接口的MDC时钟,从MDIO接口中的MDIO数据线上接收比特数据的技术为本领域技术人员所熟知的,此处不再赘述。这样,逻辑器件检测到MDIO数据线上的同步前导序列时,每接收同步前导中的I比特数据“1”,计数器的计数就会加I。S203:在状态机为前导检测状态时,逻辑器件在检测到MDIO数据线上出现数据“O”后,将计数器的计数与设定的阈值进行比较后将计数器清零;若比较结果为计数器的计数大于阈值,则执行步骤S204 ;否则,重新进行同步前导检测,跳转到步骤S202。具体地,在状态机为前导检测状态时,逻辑器件从MDIO接口中的MDIO数据线上接收到数据“O”后,将计数器的计数与设定的阈值进行比较。逻辑器件将该接收到的数据“O”作为第I比特的有效数据,即作为有效数据中的第I比特的起始标志。其中,设定的阈值小于32,由本领域技术人员根据实际情况设定,比如可以设置阈值为28。由于,根据MDIO接口的通信协议,同步前导之后的数据为2比特的起始标志,而起始标志的赋值通常为“00”或“01”;因此,逻辑器件在接收到数据“O”时,可以确认同步前导已经传输完毕,接收到第I比特的有效数据;此时,计数器的计数反映了逻辑器件所接收的同步前导的比特数。将计数器的计数与设定的阈值进行比较后,若计数器的计数大于阈值,则认为接收到了有效的同步前导,并达到数据同步的目的,可以确认接收到同步前导之后的第I比特的有效数据,执行步骤S204。这样,即使在同步前导传输过程中若出现比特丢失,使得逻辑器件接收到的同步前导中的数据“I”少于32比特的情况下,只要逻辑器件接收到的同步前导中的数据“ I”的比特数大于阈值,就仍然可以判定其为同步前导,达到同步目的,以备接收后续的有效数据;从而避免了因该原因而无法接收数据或接收错误数据,提高了 MDIO接口通信的可靠性。若计数器的计数小于、等于阈值,则认为没有接收到有效的同步前导,还需重新进行同步前导检测。逻辑器件将计数器的计数与设定的阈值进行比较后,不论比较结果是什么,都将计数器清零,以备下次接收同步前导的比特计数。S204:将状态机设置为数据处理状态。较佳地,数据处理状态可包括如下子状态:起始标志处理子状态、读取标志处理子状态、物理地址处理子状态、设备地址处理子状态、转换标志处理子状态、读写数据或地址处理子状态。在本步骤S204中将状态机设置为数据处理状态具体可以是,将状态机设置为数据处理状态中的起始标志处理子状态。S205:在状态机为数据处理状态时,逻辑器件进行其它有效数据的接收。事实上,上述步骤S203中检测到的数据“O”即为第I个比特的有效数据;上述步骤S203中的检测到所述MDIO数据线上出现数据“O”后将计数器的计数与设定的阈值进行比较、步骤S204中的将状态机设置为数据处理状态的过程中,每个处理动作可以由逻辑器件的内部时钟触发;而逻辑器件的内部时钟频率往往远大于MDC时钟频率,从而可以保证上述的步骤S203中的检测到所述MDIO数据线上出现数据“O”后将计数器的计数与设定的阈值进行比较、步骤S204中的将状态机设置为数据处理状态的过程均在一个MDC时钟周期内完成,从而保证在接收第I个比特的有效数据后,可以及时接收其后续的其它有效数据。即在状态机转换为数据处理状态后,逻辑器件开始第2个比特的有效数据的接收,即开始接收有效数据中的起始标志的第2比特数据。具体地,在所述状态机为起所述始标志处理子状态时,所述逻辑器件从所述MDIO数据线上接收第2比特的有效数据,并将第I比特和第2比特的有效数据作为所述有效数据中的起始标志;在所述起始标志接收完毕后,所述逻辑器件将所述状态机设置为所述读取标志处理子状态;在所述状态机为所述读取标志处理子状态时,所述逻辑器件将从所述MDIO数据线上接收的2比特数据作为所述有效数据中的读取标志;在所述读取标志接收完毕后,所述逻辑器件将所述状态机设置为所述物理地址处理子状态;在所述状态机为所述物理地址处理子状态时,所述逻辑器件将从所述MDIO数据线上接收的5比特数据作为所述有效数据中的物理地址;在所述物理地址接收完毕后,所述逻辑器件将所述状态机设置为所述设备地址处理子状态;在所述状态机为所述设备地址处理子状态时,所述逻辑器件将从所述MDIO数据线上接收的5比特数据作为所述有效数据中的设备地址;在所述设备地址接收完毕后,所述逻辑器件将所述状态机设置为所述转换标志处理子状态;在所述状态机为所述转换标志处理子状态时,所述逻辑器件将从所述MDIO数据线上接收的2比特数据作为所述有效数据中的转换标志;在所述转换标志接收完毕后,所述逻辑器件将所述状态机设置为所述读写数据或地址处理子状态;在所述状态机为所述读写数据或地址处理子状态时,所述逻辑器件将从所述MDIO数据线上接收的16比特数据作为所述有效数据中的读写数据或地址。本发明的逻辑器件由于采用状态机的机制,在状态机为数据处理状态时即使接收到连续的32比特“I”的有效数据,也不会将其误判为同步前导;因为,对于同步前导的检测操作仅在状态机为前导检测状态时才会进行。这样,就保证了有效数据中出现连续32比特的数据“I”的情况时,不会将其误判为同步前导,也就保证了后续数据的正确接收,避免后续出现数据错误接收的现象,提高MDIO接口通信的可靠性。S206:逻辑器件在有效数据接收完毕后,将状态机设置为前导检测状态,跳转到步骤S202进行下一帧的同步前导检测。具体地,逻辑器件在有效数据中的读写数据或地址接收完毕后,将状态机设置为前导检测状态,从而可以进行下一帧的同步前导检测。事实上,上述以步骤的形式来描述的MDIO接口通信的方法,并不一定是通过程序的流程进行控制的,可以是通过状态机的状态的变化来进行不同的操作与处理;简言之,在状态机为前导检测状态时,逻辑器件进行同步前导检测;在状态机为数据处理状态时,逻辑器件进行有效数据接收。上述流程的逻辑可以是固化在逻辑器件中的,也可以是在线写入到逻辑器件中可擦除的。基于上述的逻辑器件实现MDIO接口通信的方法,本发明实施例提供的逻辑器件根据其实现的功能可划分为若干个功能模块,如图3所示,包括:状态机301、计数器302、控制模块303、数据接收模块304、前导检测模块305、有效数据处理模块306。其中,控制模块303用于在所述逻辑器件上电或复位后,将本器件中的计数器302清零,并将本器件中的状态机301设置为前导检测状态后,发送前导检测信号; 数据接收模块304用于依次接收MDIO接口中的MDIO数据线上依次传送的各比特数据;其中,所述MDIO接口为所述逻辑器件与主机通信的接口 ;具体地,数据接收模块304根据MDC时钟依次接收MDIO数据线上传送的各比特数据;数据接收模块304将当前接收的I比特数据存入缓存,以备前导检测模块305或有效数据处理模块306获取。前导检测模块305用于在接收到所述前导检测信号后,获取数据接收模块304当前接收的I比特数据;前导检测模块305对每个获取的数据进行检测;若检测结果为“1”,则控制所述计数器的计数加1,并继续获取所述数据接收模块接收的下一比特数据;若检测结果为“0”,则将所述计数器的计数与设定的阈值进行比较后将所述计数器清零;若所述计数器的计数大于所述阈值,则将所述状态机设置为数据处理状态,并将所述数据“O”作为第I比特有效数据存储。其中,设置的阈值小于32。事实上,前导检测模块305在从缓存中获取I比特数据后,若还需从缓存获取下一比特数据,则在一个MDC时钟周期后,从缓存获取下一比特数据。若数据处理状态具体包括如下子状态:起始标志处理子状态、读取标志处理子状态、物理地址处理子状态、设备地址处理子状态、转换标志处理子状态、读写数据或地址处理子状态;则前导检测模块305为所述状态机设置的数据处理状态具体为所述起始标志处理子状态。
控制模块303还用于在状态机301转换为数据处理状态后,向有效数据处理模块306发送有效数据接收信号;有效数据处理模块306用于接收到所述有效数据接收信号后,依次获取数据接收模块304后续接收的数据作为其它有效数据存储。有效数据处理模块306在其它有效数据存储完毕后,将状态机301设置为所述前导检测状态。事实上,有效数据处理模块306在从缓存中获取I比特数据后,若还需从缓存获取下一比特数据,则在一个MDC时钟周期后,从缓存获取下一比特数据。控制模块303在状态机301转换为所述前导检测状态后,向前导检测模块305发送所述前导检测信号。较佳地,控制模块303发送的有效数据接收信号可以包括:起始标志接收信号、读取标志接收信号、物理地址接收信号、设备地址接收信号、转换标志接收信号、读写数据或地址接收信号;而控制模块303在所述状态机转换为数据处理状态后,发送的有效数据接收信号具体为所述起始标志接收信号;控制模块303在状态机301转换为所述读取标志处理子状态后,向所述有效数据处理模块发送所述读取标志接收信号;在所述状态机转换为所述物理地址处理子状态后,向所述有效数据处理模块发送所述物理地址接收信号;在所述状态机转换为所述设备地址处理子状态后,向所述有效数据处理模块发送所述设备地址接收信号;在所述状态机转换为所述转换标志处理子状态后,向所述有效数据处理模块发送所述转换标志接收信号;在所述状态机转换为所述读写数据或地址处理子状态后,向所述有效数据处理模块发送所述读写数据或地址接收信号。相应地,如图4所示,有效数据处理模块306具体可以包括:起始标志接收单元401、读取标志接收单元402、物理地址接收单元403、设备地址接收单元404、转换标志接收单元405、读写数据或地址接收单元406。起始标志接收单元401用于接收到所述起始标志接收信号后,获取所述数据接收模块接收的I比特数据,将获取的数据作为所述有效数据中的起始标志的第2比特数据存储;之后,将所述状态机设置为所述读取标志处理子状态;其中,所述起始标志的第I比特数据为第I比特有效数据;读取标志接收单元402用于接收到所述读取标志接收信号后,获取所述数据接收模块接收的2比特数据作为所述有效数据中的读取标志;之后,将所述状态机设置为所述读取标志处理子状态;物理地址接收单元403用于接收到所述物理地址接收信号后,获取所述数据接收模块接收的5比特数据作为所述有效数据中的物理地址;之后,将所述状态机设置为所述设备地址处理子状态;设备地址接收单元404用于接收到所述设备地址接收信号后,获取所述数据接收模块接收的5比特数据作为所述有效数据中的设备地址;之后,将所述状态机设置为所述转换标志处理子状态;转换标志接收单元405用于接收到所述转换标志接收信号后,获取所述数据接收模块接收的2比特数据作为所述有效数据中的转换标志;之后,将所述状态机设置为所述读写数据或地址处理子状态;
读写数据或地址接收单元406用于接收到所述读写数据或地址接收信号后,获取所述数据接收模块接收的16比特数据作为所述有效数据中的读写数据或地址;之后,将所述状态机设置为所述前导检测状态。逻辑器件中,提供给所述控制模块、前导检测模块、有效数据处理模块所使用的系统时钟的频率至少为MDC时钟频率的10倍;以使得前导检测模块305检测到所述MDIO数据线上出现数据“O”时,将所述计数器的计数与设定的阈值进行比较,以及将所述状态机设置为数据处理状态的过程,可以在一个MDC时钟周期内完成,从而保证在接收第I个比特的有效数据后,可以及时接收其后续的其它有效数据。本发明实施例提供的技术方案中,逻辑器件的计数器对同步前导中的数据“I”的计数大于阈值,就仍然可以判定其为同步前导,达到数据同步目的,可以继续接收后续的有效数据;从而避免了因该原因而无法接收数据或接收错误数据的情况,提高了 MDIO接口通信的可靠性;而且,逻辑器件中还设置了状态机,在状态机为前导检测状态时,逻辑器件进行同步前导检测;在状态机为数据处理状态时,逻辑器件进行有效数据接收,从而在有效数据中出现连续32比特的数据“I”的情况时,不会将其误判为同步前导,也就保证了后续数据的正确接收,避免后续出现数据错误接收的现象,提高MDIO接口通信的可靠性。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如:R0M/RAM、磁碟、光盘等。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种MDIO接口通信方法,包括: 逻辑器件上电或复位后,将本器件中的状态机设置为前导检测状态,将本器件中的计数器清零; 在所述状态机为前导检测状态时,所述逻辑器件每检测到MDIO接口中的MDIO数据线上I比特数据“1”,则控制所述计数器的计数加I ;所述逻辑器件在检测到所述MDIO数据线上出现数据“O”时,将所述计数器的计数与设定的阈值进行比较后将所述计数器清零;其中,所述数据“O”作为第I比特的有效数据,所述MDIO接口为所述逻辑器件与主机通信的接口 ; 若所述计数器的计数大于所述阈值,所述逻辑器件将所述状态机设置为数据处理状态; 在所述状态机为数据处理状态时,所述逻辑器件通过所述MDIO接口继续接收其它有效数据。
2.如权利要求1所述的方法,在所述逻辑器件通过所述MDIO接口接收有效数据完毕后,还包括: 所述逻辑器件将所述状态机设置为所述前导检测状态。
3.如权利要求2所述的方法,其中,所述数据处理状态具体包括:起始标志处理子状态、读取标志处理子状态、物理地址处理子状态、设备地址处理子状态、转换标志处理子状态、读写数据或地址处理子状态;以及 所述逻辑器件将所述状态机设置`为数据处理状态具体为:所述逻辑器件将所述状态机设置为数据处理状态中的起始标志处理子状态;以及 所述在所述状态机为数据处理状态时,所述逻辑器件通过所述MDIO接口继续接收其它有效数据具体包括: 在所述状态机为起所述始标志处理子状态时,所述逻辑器件从所述MDIO数据线上接收第2比特的有效数据,并将第I比特和第2比特的有效数据作为所述有效数据中的起始标志;在所述起始标志接收完毕后,所述逻辑器件将所述状态机设置为所述读取标志处理子状态; 在所述状态机为所述读取标志处理子状态时,所述逻辑器件将从所述MDIO数据线上接收的2比特数据作为所述有效数据中的读取标志;在所述读取标志接收完毕后,所述逻辑器件将所述状态机设置为所述物理地址处理子状态; 在所述状态机为所述物理地址处理子状态时,所述逻辑器件将从所述MDIO数据线上接收的5比特数据作为所述有效数据中的物理地址;在所述物理地址接收完毕后,所述逻辑器件将所述状态机设置为所述设备地址处理子状态; 在所述状态机为所述设备地址处理子状态时,所述逻辑器件将从所述MDIO数据线上接收的5比特数据作为所述有效数据中的设备地址;在所述设备地址接收完毕后,所述逻辑器件将所述状态机设置为所述转换标志处理子状态; 在所述状态机为所述转换标志处理子状态时,所述逻辑器件将从所述MDIO数据线上接收的2比特数据作为所述有效数据中的转换标志;在所述转换标志接收完毕后,所述逻辑器件将所述状态机设置为所述读写数据或地址处理子状态; 在所述状态机为所述读写数据或地址处理子状态时,所述逻辑器件将从所述MDIO数据线上接收的16比特数据作为所述有效数据中的读写数据或地址。
4.如权利要求1-3任一所述的方法,其中,所述阈值小于32。
5.如权利要求4所述的方法,其中,所述检测到所述MDIO数据线上出现数据“O”时,将所述计数器的计数与设定的阈值进行比较,以及所述将所述状态机设置为数据处理状态,在一个MDC时钟周期内完成。
6.一种逻辑器件,包括: 控制模块,用于在所述逻辑器件上电或复位后,将本器件中的计数器清零,并将本器件中的状态机设置为前导检测状态后,发送前导检测信号; 数据接收模块,用于依次接收MDIO接口中的MDIO数据线上依次传送的各比特数据;其中,所述MDIO接口为所述逻辑器件与主机通信的接口 ; 前导检测模块,用于 在接收到所述前导检测信号后,获取所述数据接收模块当前接收的I比特数据;所述前导检测模块对每个获取的数据进行检测;若检测结果为“1”,则控制所述计数器的计数加1,并继续获取所述数据接收模块接收的下一比特数据;若检测结果为“0”,则将所述计数器的计数与设定的阈值进行比较后将所述计数器清零;若所述计数器的计数大于所述阈值,则将所述状态机设置为数据处理状态,并将所述数据“O”作为第I比特有效数据存储; 所述控制模块还用于在所述状态机转换为数据处理状态后,发送有效数据接收信号; 有效数据处理模块,用于接收到所述有效数据接收信号后,依次获取所述数据接收模块后续接收的数据作为其它有效数据存储。
7.如权利要求6所述的器件,其中, 所述有效数据处理模块还用于在其它有效数据存储完毕后,将所述状态机设置为所述前导检测状态;以及 所述控制模块还用于在所述状态机转换为所述前导检测状态后,向所述前导检测模块发送所述前导检测信号。
8.如权利要求7所述的器件,其中,所述数据处理状态具体包括:起始标志处理子状态、读取标志处理子状态、物理地址处理子状态、设备地址处理子状态、转换标志处理子状态、读写数据或地址处理子状态;以及 所述前导检测模块为所述状态机设置的数据处理状态具体为所述起始标志处理子状态。
9.如权利要求8所述的器件,其中,所述有效数据接收信号包括:起始标志接收信号、读取标志接收信号、物理地址接收信号、设备地址接收信号、转换标志接收信号、读写数据或地址接收信号;以及 所述控制模块在所述状态机转换为所述起始标志处理子状态后,发送的有效数据接收信号具体为所述起始标志接收信号; 所述控制模块在所述状态机转换为所述读取标志处理子状态后,向所述有效数据处理模块发送所述读取标志接收信号;在所述状态机转换为所述物理地址处理子状态后,向所述有效数据处理模块发送所述物理地址接收信号;在所述状态机转换为所述设备地址处理子状态后,向所述有效数据处理模块发送所述设备地址接收信号;在所述状态机转换为所述转换标志处理子状态后,向所述有效数据处理模块发送所述转换标志接收信号;在所述状态机转换为所述读写数据或地址处理子状态后,向所述有效数据处理模块发送所述读写数据或地址接收信号;以及 所述有效数据处理模块具体包括: 起始标志接收单元,用于接收到所述起始标志接收信号后,获取所述数据接收模块接收的I比特数据,将获取的数据作为所述有效数据中的起始标志的第2比特数据存储;之后,将所述状态机设置为所述读取标志处理子状态;其中,所述起始标志的第I比特数据为第I比特有效数据; 读取标志接收单元,用于接收到所述读取标志接收信号后,获取所述数据接收模块接收的2比特数据作为所述有效数据中的读取标志;之后,将所述状态机设置为所述读取标志处理子状态; 物理地址接收单元,用于接收到所述物理地址接收信号后,获取所述数据接收模块接收的5比特数据作为所述有效数据中的物理地址;之后,将所述状态机设置为所述设备地址处理子状态; 设备地址接收单元,用于接收到所述设备地址接收信号后,获取所述数据接收模块接收的5比特数据作为所述有效数据中的设备地址;之后,将所述状态机设置为所述转换标志处理子状态; 转换标志接收单元,用于接收到所述转换标志接收信号后,获取所述数据接收模块接收的2比特数据作为所述有效数据中的转换标志;之后,将所述状态机设置为所述读写数据或地址处理子状态; 读写数据或地址接收单元,用于接收到所述读写数据或地址接收信号后,获取所述数据接收模块接收的16比特数据作为所述有效数据中的读写数据或地址;之后,将所述状态机设置为所述前导检测状态。
10.如权利要求6-9任一所`述的器件,其中,所述阈值小于32 ;以及 所述逻辑器件中,提供给所述控制模块、前导检测模块、有效数据处理模块所使用的系统时钟的频率至少为MDC时钟频率的10倍。
全文摘要
本发明公开了一种逻辑器件及其MDIO接口通信方法,所述方法包括逻辑器件在状态机为前导检测状态时,每检测到MDIO接口中的MDIO数据线上1比特数据“1”,则控制计数器的计数加1;在检测到MDIO数据线上出现数据“0”时,将计数器的计数与阈值进行比较后将计数器清零;若计数器的计数大于阈值,逻辑器件将状态机设置为数据处理状态;在状态机为数据处理状态时,逻辑器件通过MDIO接口继续接收有效数据。逻辑器件的计数器对同步前导中的数据“1”的计数大于阈值,就仍然可以判定其为同步前导,达到数据同步目的,可以继续接收后续的有效数据;从而避免了因该原因无法接收数据的情况,提高了MDIO接口通信的可靠性。
文档编号G06F13/20GK103106162SQ20131001950
公开日2013年5月15日 申请日期2013年1月18日 优先权日2013年1月18日
发明者孙黎明 申请人:青岛海信宽带多媒体技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1