CN103107862A - 逻辑器件及其mdio数据发送方法 - Google Patents
逻辑器件及其mdio数据发送方法 Download PDFInfo
- Publication number
- CN103107862A CN103107862A CN2013100203938A CN201310020393A CN103107862A CN 103107862 A CN103107862 A CN 103107862A CN 2013100203938 A CN2013100203938 A CN 2013100203938A CN 201310020393 A CN201310020393 A CN 201310020393A CN 103107862 A CN103107862 A CN 103107862A
- Authority
- CN
- China
- Prior art keywords
- data
- mdio
- clock
- mdc
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明公开了一种逻辑器件及其MDIO数据发送方法,所述方法包括:主机通过MDIO接口向逻辑器件发送读取请求;逻辑器件根据接收的读取请求,在将第i比特的MDIO数据赋值到所述MDIO数据线后,若检测到MDC时钟上升沿/下降沿,则在检测到MDC时钟上升沿/下降沿的时间点后的第m个处理时钟到来时,触发将第i+1比特的MDIO数据赋值到MDIO数据线的操作。由于在检测到MDC时钟上升沿/下降沿后,延时m个处理时钟就开始发送下个比特的数据,从而保证发送到MDIO数据线上的数据在下个MDC时钟上升沿/下降沿到来时有足够的时间建立,从而避免主机接收到错误数据,提高MDIO接口通信的可靠性。
Description
技术领域
本发明涉及通信技术,尤其涉及一种逻辑器件及其MDIO数据发送方法。
背景技术
MDIO(Management Data Input/Output,管理数据输入输出)接口总线由IEEE通过以太网标准IEEE802.3的若干条款加以定义,广泛应用于以太网通信。MDIO接口是一种双线串行接口,其包含2个管脚:MDC(Management DataClock,管理数据时钟)时钟管脚和MDIO数据管脚。MDC时钟是MDIO数据管脚上传输的管理数据的时钟输入,最高速率可达8.3MHz。MDIO是管理数据的输入输出双向接口,数据是与MDC时钟同步的。换言之,MDIO接口包括MDC时钟线和MDIO数据线。
在主机与底层设备进行通信时,通常由逻辑器件,如FPGA(FieldProgrammable Gata Array,现场可编程门阵列)、PAL(Programmable ArrayLogic,可编程阵列逻辑)等在主机与底层设备之间实现MDIO接口到其它通信接口,比如SPI(Serial Peripheral Interface,串行外设接口)接口、IIC(Inter-Integrated Circuit,交互集成电路)接口、USB(Universal Serial Bus,通用串行总线)接口的转换。逻辑器件可以包括在线可编程的逻辑器件,也可包括固化为芯片的逻辑器件。
例如,图1示出通过FPGA实现主机与底层设备之间的通信:FPGA中的MDIO处理模块与主机通信通过MDIO接口总线通信:FPGA中的MDIO处理模块通过MDIO接口从主机接收数据,存入到RAM(Random Access Memory,随机访问存储器)中,FPGA中的SPI处理模块从RAM中获取数据通过SPI接口将数据发送到底层设备的单片机、CPU(Central Processing Unit,中央处理机)、或处理器;
或者,FPGA中的SPI处理模块通过SPI接口接收底层设备的单片机、CPU、或处理器发送的数据后,存入到RAM中,FPGA中的MDIO处理模块从RAM获取数据后再通过MDIO接口向主机发送。
MDIO接口在没有传输数据的空闲状态(IDLE)时,MDIO数据线处于高阻态;MDIO接口在进行数据传输时,MDIO数据线上传输的数据是与MDC时钟线上的MDC时钟信号同步的,即在一个MDC时钟周期内,MDIO数据线上同步传输1比特数据。比如,FPGA检测到MDIO接口的MDC时钟线上有10个MDC时钟,则根据这10个MDC时钟,FPGA可检测出MDIO接口的MDIO数据线上同步传输的10个比特的数据。也就是说,MDIO数据接收方可以根据每个MDC时钟同步接收MDIO数据线上传输的每比特数据。根据MDC时钟同步接收MDIO数据线上每比特数据的技术为本领域技术人员所熟知、常用的技术,此处不再进行详细介绍。
下面介绍一下MDIO数据线上传输的数据所遵循的MDIO接口的通信协议帧格式,如下表1所示:
表1
其中,基于MDIO协议的、在MDIO数据线上传输的一帧数据中通常包括64比特(bit),其中有:32比特的同步前导、2比特的起始标志、2比特的读取标志、5比特的物理地址、5比特的设备地址、2比特的转换标志和16比特的读/写数据或地址。
其中,32比特的同步前导为32比特的数据“1”,用以作为同步信号。
现有的逻辑器件向主机发送MDIO数据的方法如下:一般而言,主机作为MDIO通信的主方,逻辑器件作为MDIO通信的从方;MDC时钟由主方的主机提供。在主机需要从逻辑器件读取某些数据时,主机提供MDC时钟的同时,向逻辑器件发送读取请求;逻辑器件在接收到读取请求后,向主机返回相应地址的数据。事实上,主机发送的读取请求,以及逻辑器件返回的数据均包括在上述表1所示的一帧数据中,具体过程为:
主机提供MDC时钟,并发送32比特的同步前导、2比特的起始标志、2比特的读取标志、5比特的物理地址、5比特的设备地址、2比特的转换标志;其中,2比特的读取标志标识出此请求为读取数据的请求;逻辑器件在接收到主机发送的读取标志后,可以确认收到主机发送的读取请求,并根据接收的5比特的物理地址和5比特的设备地址将相应地址的数据缓存到buffer中作为主机需要读取的MDIO数据,以备后续向主机发送。
主机发送2比特的转换标志,以便于逻辑器件可以及时准备需要发送的MDIO数据,并起到为发送的数据提供同步信号的作用。
主机在发送了2比特的转换标志后,将释放MDIO数据线;逻辑器件在第2比特转换标志后的第1个MDC时钟的上升沿到来时将缓存到buffer中的MDIO数据赋值到MDIO数据线,通过MDIO数据线向主机发送。
本发明的发明人发现,逻辑器件采用现有技术向主机发送MDIO数据的方法,有时会造成主机接收数据错误,尤其是接收逻辑器件发送的第1比特的MDIO数据错误,使得MDIO接口通信的可靠性不高。
发明内容
本发明的实施例提供了一种逻辑器件及其MDIO数据发送方法,用以保证主机正确接收逻辑器件发送的MDIO数据,提高MDIO接口通信的可靠性。
根据本发明的一个方面,提供了一种MDIO接口通信方法,包括:
主机通过MDIO接口向逻辑器件发送读取请求;
所述逻辑器件根据接收的读取请求,在接收到所述主机发送的第2比特的转换标志后的第一个处理时钟到来时,触发将第1比特的MDIO数据赋值到所述MDIO接口的MDIO数据线上的操作;
在所述逻辑器件发送多比特的MDIO数据过程中,在将第i比特的MDIO数据赋值到所述MDIO数据线后,若检测到MDC时钟上升沿/下降沿,则在检测到MDC时钟上升沿/下降沿的时间点后的第m个处理时钟到来时,触发将第i+1比特的MDIO数据赋值到MDIO数据线的操作,向所述主机发送MDIO数据;其中,i为自然数。
较佳地,所述m个处理时钟的时间段小于一个MDC时钟周期的时间段。
所述m个处理时钟的时间段大于数据维持时间指标所指示的数据维持时间;其中,所述数据维持时间指标为所述MDIO接口的指标之一。
其中,所述检测到MDC时钟上升沿/下降沿具体包括:
在每次处理时钟到达时,对所述MDC时钟进行采样,根据采样的数值的变化,确定检测到所述MDC时钟上升沿/下降沿。
较佳地,在所述逻辑器件发送多比特的MDIO数据前,还包括:
所述逻辑器件对所述MDIO数据线上的数据进行重采样:在每个处理时钟到达时,对所述MDIO数据线上的数据进行采样;并根据重采样的数值接收所述主机通过所述MDIO接口发送的数据。
根据本发明的另一个方面,还提供了一种逻辑器件,包括:
处理时钟输出模块,用于输出处理时钟;
数据接收处理模块,用于通过MDIO接口接收主机发送的数据,并在确定接收到主机发送的读取请求后,根据所述读取请求中的物理地址和设备地址获取相应数据到缓存中;并在接收到所述主机发送的第2比特的转换标志后的第一个处理时钟到来时,发送数据发送信号;
数据发送模块,用于接收所述处理时钟输出模块输出的处理时钟,并在接收到所述数据接收处理模块发送的数据发送信号后,将所述缓存中的第1比特的MDIO数据赋值到所述MDIO接口的MDIO数据线上;以及在将第i比特的MDIO数据赋值到所述MDIO数据线后,若检测到MDC时钟上升沿/下降沿,则在检测到MDC时钟上升沿/下降沿的时间点后的第m个处理时钟到来时,将所述缓存中的第i+1比特的MDIO数据赋值到MDIO数据线向所述主机发送;其中,i为自然数。
其中,所述处理时钟输出模块输出的处理时钟,满足如下要求:m个处理时钟的时间段小于一个MDC时钟周期的时间段。
进一步,所述处理时钟输出模块输出的处理时钟,满足如下要求:m个处理时钟的时间段大于数据维持时间指标所指示的数据维持时间;其中,所述数据维持时间指标为所述MDIO接口的指标之一。
较佳地,所述数据接收处理模块还用于接收所述处理时钟输出模块输出的处理时钟,并使用所述处理时钟对所述MDIO接口的MDIO数据线上传送的数据进行重采样,根据重采样的数值接收所述主机发送的数据。
较佳地,所述数据发送模块包括:
数据赋值单元,在接收到所述数据接收处理模块发送的数据发送信号后,将所述缓存中的第1比特的MDIO数据赋值到所述MDIO接口的MDIO数据线上;
时钟沿检测单元,用于接收所述处理时钟输出模块输出的处理时钟,在每次处理时钟到达时,对所述MDC时钟进行采样,根据采样的数值的变化,确定检测到所述MDC时钟上升沿/下降沿;并在确定检测到所述MDC时钟上升沿/下降沿时,发送延时计数信号;
延时单元,用于接收所述处理时钟输出模块输出的处理时钟,并在接收到所述时钟沿检测单元发送的延时计数信号后,在每次处理时钟到达时进行计数,在计数结果等于m时,发送数据赋值信号;
所述数据赋值单元在将所述缓存中的第1比特的MDIO数据赋值到所述MDIO接口的MDIO数据线后,若接收到所述延时单元发送的数据赋值信号,则将所述缓存中的当前发送数据的下一比特MDIO数据赋值到MDIO数据线向所述主机发送。
本发明实施例提供的技术方案中,逻辑器件由于在检测到MDC时钟上升沿/下降沿后,延时m个处理时钟就开始发送下个比特的数据,从而保证发送到MDIO数据线上的数据在下个MDC时钟上升沿/下降沿到来时有足够的时间建立并保持稳定,从而可以避免主机由此而接收到错误的数据,提高了MDIO接口通信的可靠性。
而且,逻辑器件在由读取数据的状态转换为发送数据状态时,其是在接收到所述主机发送的第2比特的转换标志后,第一个处理时钟到来时,就触发将第1比特的MDIO数据赋值到所述MDIO接口的MDIO数据线上的操作,而不必等待下个MDC时钟上升沿/下降沿到来时再触发该操作,从而保证逻辑器件在由读取数据的状态转换为发送数据状态时,发送到主机的第1比特的MDIO数据在下个MDC时钟上升沿/下降沿到来时有足够的时间建立并保持稳定,从而可以避免主机由此而接收到错误的数据,尤其是避免错误地接收第1比特的MDIO数据,提高了MDIO接口通信的可靠性。
附图说明
图1为现有技术的通过FPGA实现主机与底层设备之间的通信的示意图;
图2为现有技术的主机接收错误的MDIO数据的示意图;
图3为本发明实施例的逻辑器件通过MDIO接口与主机通信的示意图;
图4a为本发明实施例的逻辑器件进行MDIO数据发送的方法流程图;
图4b为本发明实施例的逻辑器件发送MDIO数据的时序示意图;
图5为本发明实施例的逻辑器件的内部结构框图;
图6为本发明实施例的数据发送模块的内部结构框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举出优选实施例,对本发明进一步详细说明。然而,需要说明的是,说明书中列出的许多细节仅仅是为了使读者对本发明的一个或多个方面有一个透彻的理解,即便没有这些特定的细节也可以实现本发明的这些方面。
本申请使用的“模块”、“系统”等术语旨在包括与计算机或芯片或可编程逻辑器件相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。
本发明的发明人对现有技术的逻辑器件向主机发送MDIO数据的方法进行分析:由于在逻辑器件中,是由第2比特转换标志后的第1个MDC时钟的上升沿触发将MDIO数据赋值到MDIO数据线的操作;而主机也是在MDC时钟的上升沿到来进行MDIO数据线的采样。如图2所示,如果在主机对MDIO数据线进行采样时,逻辑器件赋值到MDIO数据线上的MDIO数据还未稳定就有可能导致主机接收错误的MDIO数据。也就是说,逻辑器件在第一个读取MDIO数据的MDC时钟上升沿到来后,将MDIO数据的MSB同步赋值到MDIO线上,但是会造成1个处理时钟的延迟。这样,主机在第一个读取MDIO数据的MDC时钟上升沿到来时读取数据会存在读错数据的隐患。
由此,本发明的发明人考虑到,可以在MDC时钟的上升沿到来之前,逻辑器件提前将MDIO数据赋值到MDIO数据线,在MDC时钟的上升沿到来时,MDIO数据线上的MDIO数据已经处于稳定状态;这样,就可以保证主机在MDC时钟的上升沿到来时采样到稳定的MDIO数据,避免接收错误的数据。
要在MDC时钟的上升沿到来之前,提前将MDIO数据赋值到MDIO数据线,则需要满足两个条件:其一为将MDIO数据赋值到MDIO数据线的操作不能由MDC时钟的上升沿触发;其二为要预知下个MDC时钟的上升沿到来的时刻,从而可以提前将MDIO数据赋值到MDIO数据线。
然而,针对MDIO接口所面临的问题是,MDC时钟是由主机提供的,逻辑器件并不容易预知下个MDC时钟的上升沿到来的时刻;而且,由主机提供的MDC时钟的频率并非是固定不变的,即使在发送同一帧数据的过程中,MDC时钟的频率也可能会发生改变;即发送前1比特数据时的MDC时钟周期可能与之后发送的后1比特数据的MDC时钟周期不同。这样,逻辑器件也无法采样锁相技术来对MDC时钟进行频率与相位的锁定,从而预知下个MDC时钟的上升沿。
基于上述的分析,本发明提供的逻辑器件中设置有MDC时钟的上升沿的检测机制,并采用频率远远高于MDC时钟频率的处理时钟来触发将MDIO数据赋值到MDIO数据线的操作。一般而言,MDC时钟频率最高为4M,采用的处理时钟的频率至少为2倍MDC时钟频率,最好采用MDC时钟频率4倍以上的处理时钟频率。
本发明的思路为,检测到当前MDC时钟上升沿后,在第m个处理时钟到来时,由第m个处理时钟触发将MDIO数据赋值到MDIO数据线的操作;在进行设计时,可以保证m个处理时钟的时间段小于一个MDC时钟周期的时间段,从而由第m个处理时钟触发的将MDIO数据赋值到MDIO数据线的操作可以提前在下个MDC时钟上升沿到达前进行,从而保证下个MDC时钟上升沿到达时,赋值到MDIO数据线上的MDIO数据处于稳定状态。其中,m为自然数,由技术人员根据实际情况设置。
这里需要指出的是,上述是依据在MDC时钟上升沿读取数据的情况所做的分析;对于在MDC时钟下降沿读取数据的情况,上述分析和思路也是适用的;限于篇幅,本发明主要针对MDC时钟上升沿读取数据的情况阐明技术方案,不再针对MDC时钟下降沿读取数据的情况再进行赘述。
下面结合附图详细说明本发明实施例的技术方案。本发明实施例提供的逻辑器件,如图3所示,该逻辑器件通过MDIO接口与主机通信,在逻辑器件中采用的处理时钟的频率至少为MDC时钟频率的2倍,可通过逻辑器件内部的锁相环模块,对逻辑器件的系统时钟进行锁相倍频或分频后得到。
逻辑器件通过内置于本器件中的逻辑编程语言实现MDIO数据发送的方法,流程如图4a所示,包括如下步骤:
S401:主机通过MDIO接口向逻辑器件发送读取请求。
具体地,主机通过MDIO接口向逻辑器件发送读取请求,逻辑器件通过MDIO接口接收主机发送的读取请求。逻辑器件接收主机发送的读取请求的方法既可以采用现有技术的方法,也可以采用本发明提供的重采样的方法;重采样技术将在文中后续进行介绍。
S402:逻辑器件在接收到第2比特的转换标志后,由处理时钟触发将MDIO数据赋值到MDIO数据线的操作。
具体地,逻辑器件根据接收的读取请求,在接收到主机通过MDIO接口发送的第2比特的转换标志后的第一个处理时钟的到来时(具体可以是第一个处理时钟的上升沿或下降沿到来时),触发将需要发送到主机的16比特MDIO数据中的第1比特的MDIO数据赋值到MDIO数据线的操作。
上述需要发送到主机的16比特MDIO数据是逻辑器件根据读取请求中的物理地址和设备地址进行寻址获取的数据。MDIO数据中的第1比特数据通常为16比特MDIO数据中MSB(the Most Significant Bit,最高有效位)数据。
S403:逻辑器件在发送16比特MDIO数据过程中,由在检测到当前MDC时钟上升沿(下降沿)后的第m个处理时钟触发将下个MDIO数据赋值到MDIO数据线的操作。
具体地,逻辑器件在发送MDIO数据过程中,在检测到当前MDC时钟上升沿(下降沿)后的第m个处理时钟到来时,触发将下个需要被发送的1比特MDIO数据赋值到MDIO数据线的操作。例如,逻辑器件在将第1比特的MDIO数据赋值到MDIO数据线后,若检测到1个MDC时钟上升沿(下降沿),则在随后的第m个处理时钟到来时,将第1比特的MDIO数据赋值到MDIO数据线。
也就是说,逻辑器件在发送多比特的MDIO数据(比如16比特的MDIO数据)过程中,如图4b所示,在将第i比特的MDIO数据赋值到MDIO数据线后,若检测到MDC时钟上升沿(下降沿),则在检测到MDC时钟上升沿(下降沿)的时间点后的第m个处理时钟到来时,触发将第i+1比特的MDIO数据赋值到MDIO数据线的操作;其中,i为自然数。
事实上,为了保证下个MDC时钟上升沿(下降沿)到达时,赋值到MDIO数据线上的MDIO数据处于稳定状态,则要求m个处理时钟的时间段小于一个MDC时钟周期的时间段;
此外,通常基于MDIO接口的通信设备会给出一系列指标,数据维持时间指标为所述MDIO接口的指标之一,该指标表明了在MDC时钟上升沿(下降沿)后MDIO数据线上的数据应该维持稳定的时间。例如,如果与逻辑器件通信的主机,其MDIO接口的数据维持时间指标为0.5us,则表明要求逻辑器件向主机发送MDIO数据时,在MDC时钟上升沿(下降沿)后MDIO数据线上的数据应该维持稳定至少0.5us,之后,可以变换为下个比特数据。
因此,为满足数据维持时间指标,还需要求m个处理时钟的时间段大于数据维持时间指标所指示的数据维持时间,从而保证MDIO数据线上的数据在变换为下个比特数据之前,在MDC时钟上升沿(下降沿)后维持足够时间,以保证数据的接收方可以正确接收数据。
上述检测MDC时钟上升沿/下降沿具体方法可以是:在每次处理时钟到达时,对所述MDC时钟进行采样,根据采样的数值的变化,确定检测到所述MDC时钟上升沿/下降沿。
较佳地,由于本发明的逻辑器件采用了频率较高的处理时钟,因此,还可应用该高频率的处理时钟对MDIO数据线上传送的数据进行重采样,根据重采样的数值更为可靠地接收主机通过MDIO接口发送的数据。也就是说,在逻辑器件通过MDIO接口接收主机在MDIO数据线上发送的数据时,例如,在逻辑器件向主机发送多比特的MDIO数据前,逻辑器件可以对所述MDIO数据线上的数据进行重采样:逻辑器件使用处理时钟对MDIO数据线上的数据进行采样,即在每个处理时钟到达时,对MDIO数据线上的数据进行采样,这样,针对MDIO数据线上传送的1比特的数据,逻辑器件可能会获得多个采样值,此即为重采样。逻辑器件可以依据奈奎斯特采样定理计算出MDIO数据线上传送的每个比特的数据,即根据重采样的数值接收所述主机通过所述MDIO接口发送的数据。
事实上,上述以步骤的形式来描述的MDIO接口通信的方法,并不一定是通过程序的流程进行控制的,可以是由逻辑功能模块通过逻辑进行控制的。上述流程的逻辑可以是固化在逻辑器件中的,也可以是在线写入到逻辑器件中可擦除的。
基于上述的逻辑器件实现MDIO数据发送的方法,本发明实施例提供的逻辑器件根据其实现的功能可划分为若干个功能模块,如图5所示,包括:处理时钟输出模块501、数据接收处理模块502、数据发送模块503。
其中,处理时钟输出模块501用于输出处理时钟;处理时钟输出模块501可通过锁相技术,对逻辑器件的系统时钟进行锁相倍频或分频后得到。
较佳地,处理时钟输出模块501输出的处理时钟,满足如下要求:m个处理时钟的时间段小于一个MDC时钟周期的时间段;以及m个处理时钟的时间段大于数据维持时间指标所指示的数据维持时间;其中,所述数据维持时间指标为所述MDIO接口的指标之一。
数据接收处理模块502用于通过MDIO接口接收主机发送的数据,并在确定接收到主机发送的读取请求后,根据所述读取请求中的物理地址和设备地址获取相应数据到缓存中;并在接收到所述主机发送的第2比特的转换标志后的第一个处理时钟到来时,发送数据发送信号。
较佳地,数据接收处理模块502还用于接收处理时钟输出模块501输出的处理时钟,并使用所述处理时钟对所述MDIO接口的MDIO数据线上传送的数据进行重采样,根据重采样的数值接收所述主机发送的数据。
数据发送模块503于接收处理时钟输出模块501输出的处理时钟,并在接收到数据接收处理模块502发送的数据发送信号后,将所述缓存中的第1比特的MDIO数据赋值到所述MDIO接口的MDIO数据线上;以及在将第i比特的MDIO数据赋值到所述MDIO数据线后,若检测到MDC时钟上升沿/下降沿,则在检测到MDC时钟上升沿/下降沿的时间点后的第m个处理时钟到来时,将所述缓存中的第i+1比特的MDIO数据赋值到MDIO数据线向所述主机发送;其中,i为自然数。
具体地,数据发送模块503中的内部结构可以如图6所示,包括:数据赋值单元601、时钟沿检测单元602、延时单元603。
其中,数据赋值单元601在接收到数据接收处理模块502发送的数据发送信号后,将所述缓存中的第1比特的MDIO数据赋值到所述MDIO接口的MDIO数据线上;
时钟沿检测单元602用于接收处理时钟输出模块501输出的处理时钟,在每次处理时钟到达时,对所述MDC时钟进行采样,根据采样的数值的变化,确定检测到所述MDC时钟上升沿/下降沿;并在确定检测到所述MDC时钟上升沿/下降沿时,发送延时计数信号;
延时单元603用于接收处理时钟输出模块501输出的处理时钟,并在接收到所述时钟沿检测单元发送的延时计数信号后,在每次处理时钟到达时进行计数,在计数结果等于m时,发送数据赋值信号;
数据赋值单元601在将所述缓存中的第1比特的MDIO数据赋值到所述MDIO接口的MDIO数据线后,若接收到所述延时单元发送的数据赋值信号,则将所述缓存中的当前发送数据的下一比特MDIO数据赋值到MDIO数据线向所述主机发送;从而实现在将第i比特的MDIO数据赋值到所述MDIO数据线后,若检测到MDC时钟上升沿/下降沿,则在检测到MDC时钟上升沿/下降沿的时间点后的第m个处理时钟到来时,将所述缓存中的第i+1比特的MDIO数据赋值到MDIO数据线向所述主机发送;其中,i为自然数。
本发明实施例提供的技术方案中,逻辑器件由于在检测到MDC时钟上升沿/下降沿后,延时m个处理时钟就开始发送下个比特的数据,从而保证发送到MDIO数据线上的数据在下个MDC时钟上升沿/下降沿到来时有足够的时间建立并保持稳定,从而可以避免主机由此而接收到错误的数据,提高了MDIO接口通信的可靠性。
而且,逻辑器件在由读取数据的状态转换为发送数据状态时,其是在接收到所述主机发送的第2比特的转换标志后,第一个处理时钟到来时,就触发将第1比特的MDIO数据赋值到所述MDIO接口的MDIO数据线上的操作,而不必等待下个MDC时钟上升沿/下降沿到来时再触发该操作,从而保证逻辑器件在由读取数据的状态转换为发送数据状态时,发送到主机的第1比特的MDIO数据在下个MDC时钟上升沿/下降沿到来时有足够的时间建立并保持稳定,从而可以避免主机由此而接收到错误的数据,尤其是避免错误地接收第1比特的MDIO数据,提高了MDIO接口通信的可靠性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如:ROM/RAM、磁碟、光盘等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种MDIO数据发送方法,包括:
主机通过MDIO接口向逻辑器件发送读取请求;
所述逻辑器件根据接收的读取请求,在接收到所述主机发送的第2比特的转换标志后的第一个处理时钟到来时,触发将第1比特的MDIO数据赋值到所述MDIO接口的MDIO数据线上的操作;
在所述逻辑器件发送多比特的MDIO数据过程中,在将第i比特的MDIO数据赋值到所述MDIO数据线后,若检测到MDC时钟上升沿/下降沿,则在检测到MDC时钟上升沿/下降沿的时间点后的第m个处理时钟到来时,触发将第i+1比特的MDIO数据赋值到MDIO数据线的操作,向所述主机发送MDIO数据;其中,i为自然数。
2.如权利要求1所述的方法,其中,所述m个处理时钟的时间段小于一个MDC时钟周期的时间段。
3.如权利要求2所述的方法,其中,所述m个处理时钟的时间段大于数据维持时间指标所指示的数据维持时间;其中,所述数据维持时间指标为所述MDIO接口的指标之一。
4.如权利要求1-3任一所述的方法,其中,所述检测到MDC时钟上升沿/下降沿具体包括:
在每次处理时钟到达时,对所述MDC时钟进行采样,根据采样的数值的变化,确定检测到所述MDC时钟上升沿/下降沿。
5.如权利要求4所述的方法,其中,在所述逻辑器件发送多比特的MDIO数据前,还包括:
所述逻辑器件对所述MDIO数据线上的数据进行重采样:在每个处理时钟到达时,对所述MDIO数据线上的数据进行采样;并根据重采样的数值接收所述主机通过所述MDIO接口发送的数据。
6.一种逻辑器件,包括:
处理时钟输出模块,用于输出处理时钟;
数据接收处理模块,用于通过MDIO接口接收主机发送的数据,并在确定接收到主机发送的读取请求后,根据所述读取请求中的物理地址和设备地址获取相应数据到缓存中;并在接收到所述主机发送的第2比特的转换标志后的第一个处理时钟到来时,发送数据发送信号;
数据发送模块,用于接收所述处理时钟输出模块输出的处理时钟,并在接收到所述数据接收处理模块发送的数据发送信号后,将所述缓存中的第1比特的MDIO数据赋值到所述MDIO接口的MDIO数据线上;以及在将第i比特的MDIO数据赋值到所述MDIO数据线后,若检测到MDC时钟上升沿/下降沿,则在检测到MDC时钟上升沿/下降沿的时间点后的第m个处理时钟到来时,将所述缓存中的第i+1比特的MDIO数据赋值到MDIO数据线向所述主机发送;其中,i为自然数。
7.如权利要求6所述的器件,其中,所述处理时钟输出模块输出的处理时钟,满足如下要求:m个处理时钟的时间段小于一个MDC时钟周期的时间段。
8.如权利要求7所述的器件,其中,所述处理时钟输出模块输出的处理时钟,满足如下要求:m个处理时钟的时间段大于数据维持时间指标所指示的数据维持时间;其中,所述数据维持时间指标为所述MDIO接口的指标之一。
9.如权利要求8所述的器件,其中,所述数据接收处理模块还用于接收所述处理时钟输出模块输出的处理时钟,并使用所述处理时钟对所述MDIO接口的MDIO数据线上传送的数据进行重采样,根据重采样的数值接收所述主机发送的数据。
10.如权利要求6-9任一所述的器件,其中,所述数据发送模块包括:
数据赋值单元,在接收到所述数据接收处理模块发送的数据发送信号后,将所述缓存中的第1比特的MDIO数据赋值到所述MDIO接口的MDIO数据线上;
时钟沿检测单元,用于接收所述处理时钟输出模块输出的处理时钟,在每次处理时钟到达时,对所述MDC时钟进行采样,根据采样的数值的变化,确定检测到所述MDC时钟上升沿/下降沿;并在确定检测到所述MDC时钟上升沿/下降沿时,发送延时计数信号;
延时单元,用于接收所述处理时钟输出模块输出的处理时钟,并在接收到所述时钟沿检测单元发送的延时计数信号后,在每次处理时钟到达时进行计数,在计数结果等于m时,发送数据赋值信号;
所述数据赋值单元在将所述缓存中的第1比特的MDIO数据赋值到所述MDIO接口的MDIO数据线后,若接收到所述延时单元发送的数据赋值信号,则将所述缓存中的当前发送数据的下一比特MDIO数据赋值到MDIO数据线向所述主机发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310020393.8A CN103107862B (zh) | 2013-01-18 | 2013-01-18 | 逻辑器件及其mdio数据发送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310020393.8A CN103107862B (zh) | 2013-01-18 | 2013-01-18 | 逻辑器件及其mdio数据发送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103107862A true CN103107862A (zh) | 2013-05-15 |
CN103107862B CN103107862B (zh) | 2016-02-24 |
Family
ID=48315454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310020393.8A Active CN103107862B (zh) | 2013-01-18 | 2013-01-18 | 逻辑器件及其mdio数据发送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103107862B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407279A (zh) * | 2014-10-28 | 2015-03-11 | 深圳市芯海科技有限公司 | 一种用于自动测试芯片mdio总线协议的码型数据、装置及测试方法 |
CN105117319A (zh) * | 2015-08-25 | 2015-12-02 | 烽火通信科技股份有限公司 | 基于fpga实现对多路mdio设备实时监控的方法 |
CN110175145A (zh) * | 2019-05-23 | 2019-08-27 | 深圳市易飞扬通信技术有限公司 | Mdio接口通信方法和电路 |
CN111324568A (zh) * | 2020-02-20 | 2020-06-23 | 深圳震有科技股份有限公司 | 一种多数据mdio总线 |
CN112860613A (zh) * | 2021-04-06 | 2021-05-28 | 北京集创北方科技股份有限公司 | 通信系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070101043A1 (en) * | 2005-10-31 | 2007-05-03 | Lsi Logic Corporation | Protocol converter to access AHB slave devices using the MDIO protocol |
US20100241878A1 (en) * | 2007-05-23 | 2010-09-23 | Broadcom Corporation | System and Method for Mirroring Power Over Ethernet Registers in a Physical Layer Device Over a Single Isolation Boundary |
CN102291423A (zh) * | 2011-05-12 | 2011-12-21 | 福建星网锐捷网络有限公司 | 控制物理层芯片的方法及控制电路 |
CN102521189A (zh) * | 2011-12-08 | 2012-06-27 | 北京华源格林科技有限公司 | 一种通过cpld实现mdio接口信号转换的方法 |
-
2013
- 2013-01-18 CN CN201310020393.8A patent/CN103107862B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070101043A1 (en) * | 2005-10-31 | 2007-05-03 | Lsi Logic Corporation | Protocol converter to access AHB slave devices using the MDIO protocol |
US20100241878A1 (en) * | 2007-05-23 | 2010-09-23 | Broadcom Corporation | System and Method for Mirroring Power Over Ethernet Registers in a Physical Layer Device Over a Single Isolation Boundary |
CN102291423A (zh) * | 2011-05-12 | 2011-12-21 | 福建星网锐捷网络有限公司 | 控制物理层芯片的方法及控制电路 |
CN102521189A (zh) * | 2011-12-08 | 2012-06-27 | 北京华源格林科技有限公司 | 一种通过cpld实现mdio接口信号转换的方法 |
Non-Patent Citations (2)
Title |
---|
DAVID LAW ET.AL: "IEEE P802.3ae 10Gb/s Ethernet MDC/MDIO Proposal", 《IEEE 802.3AE TASK FORCE MDC/MDIO PROPOSAL-V2.1》, 25 May 2000 (2000-05-25), pages 1 - 12 * |
TAKESHI NISHIMURA ET.AL: "Connector for IEEE802.3bj MDI and Future Multi-hundred Gb/s System", 《IEEE 802.3 INTERIM IN MINNEAPOLIS》, 31 May 2012 (2012-05-31), pages 1 - 12 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407279A (zh) * | 2014-10-28 | 2015-03-11 | 深圳市芯海科技有限公司 | 一种用于自动测试芯片mdio总线协议的码型数据、装置及测试方法 |
CN105117319A (zh) * | 2015-08-25 | 2015-12-02 | 烽火通信科技股份有限公司 | 基于fpga实现对多路mdio设备实时监控的方法 |
CN110175145A (zh) * | 2019-05-23 | 2019-08-27 | 深圳市易飞扬通信技术有限公司 | Mdio接口通信方法和电路 |
CN110175145B (zh) * | 2019-05-23 | 2021-07-06 | 深圳市易飞扬通信技术有限公司 | Mdio接口通信方法和电路 |
CN111324568A (zh) * | 2020-02-20 | 2020-06-23 | 深圳震有科技股份有限公司 | 一种多数据mdio总线 |
CN112860613A (zh) * | 2021-04-06 | 2021-05-28 | 北京集创北方科技股份有限公司 | 通信系统 |
CN112860613B (zh) * | 2021-04-06 | 2024-04-19 | 北京集创北方科技股份有限公司 | 通信系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103107862B (zh) | 2016-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106528478B (zh) | 一种单总线异步串口通信系统及其通信方法 | |
CN102647320B (zh) | 适用于高速1553总线协议控制的集成电路 | |
CN202870808U (zh) | 一种spi串口模块的fpga实现装置 | |
CN101834715B (zh) | 一种数据处理方法及数据处理系统以及数据处理装置 | |
CN103107862A (zh) | 逻辑器件及其mdio数据发送方法 | |
Mahat | Design of a 9-bit UART module based on Verilog HDL | |
US9778971B2 (en) | Slave device, master device, and communication method | |
Liu et al. | A flexible hardware architecture for slave device of i2c bus | |
US9825754B2 (en) | Independent UART BRK detection | |
CN107153412B (zh) | 一种具有发送fifo的can总线控制器电路 | |
CN102571317A (zh) | 软件无线电系统中基于pci总线的数据同步方法及系统 | |
CN104380273B (zh) | 基于环形缓冲器的数据的自适应偏移同步 | |
CN107066419B (zh) | 可扩展的自适应n×n通道数据通信系统 | |
US8510485B2 (en) | Low power digital interface | |
US20060184708A1 (en) | Host controller device and method | |
EP2466479B1 (en) | Interface system, and corresponding integrated circuit and method | |
CN116192624A (zh) | 通信接口的配置方法和通信接口 | |
CN108509365B (zh) | 一种dbi的数据传输方法及系统 | |
CN103840934A (zh) | 一种基于时钟自动恢复的开销传递方法及装置 | |
CN103106162B (zh) | 逻辑器件及其mdio接口通信方法 | |
CN111224877A (zh) | 一种afdx交换机的vl查询方法和装置 | |
CN112104537B (zh) | 一种通信控制器 | |
EP0075625B1 (en) | Conversation bus for a data processing system | |
CN117674780A (zh) | 一种脉冲编码调制数据采集电路及方法 | |
KR20180020164A (ko) | 라인 동작 검출기를 구비한 uart |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |