逻辑器件及其MDIO接口通信方法技术

技术编号:8717417 阅读:210 留言:0更新日期:2013-05-17 19:32
本发明专利技术公开了一种逻辑器件及其MDIO接口通信方法,所述方法包括:逻辑器件在状态机为前导检测状态时,每检测到MDIO接口中的MDIO数据线上1比特数据“1”,则控制计数器的计数加1;在检测到MDIO数据线上出现数据“0”时,将计数器的计数与阈值进行比较后将计数器清零;若计数器的计数大于阈值,逻辑器件将状态机设置为数据处理状态;在状态机为数据处理状态时,逻辑器件通过MDIO接口继续接收有效数据。逻辑器件的计数器对同步前导中的数据“1”的计数大于阈值,就仍然可以判定其为同步前导,达到数据同步目的,可以继续接收后续的有效数据;从而避免了因该原因无法接收数据的情况,提高了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数据线本文档来自技高网
...

【技术保护点】
一种MDIO接口通信方法,包括:逻辑器件上电或复位后,将本器件中的状态机设置为前导检测状态,将本器件中的计数器清零;在所述状态机为前导检测状态时,所述逻辑器件每检测到MDIO接口中的MDIO数据线上1比特数据“1”,则控制所述计数器的计数加1;所述逻辑器件在检测到所述MDIO数据线上出现数据“0”时,将所述计数器的计数与设定的阈值进行比较后将所述计数器清零;其中,所述数据“0”作为第1比特的有效数据,所述MDIO接口为所述逻辑器件与主机通信的接口;若所述计数器的计数大于所述阈值,所述逻辑器件将所述状态机设置为数据处理状态;在所述状态机为数据处理状态时,所述逻辑器件通过所述MDIO接口继续接收其它有效数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:孙黎明
申请(专利权)人:青岛海信宽带多媒体技术有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1