一种主从mii管理接口串行通信方法专利名称:一种主从mii管理接口串行通信方法技术领域:本发明涉及计算机技术及通信技术领域,特别涉及一种主从MII管理接口串行通"[目方法背景技术:MII 接口(Media Independent Interface,介质无关接口)是 IEEE-802.3 定义的以太网串行通信标准接口,MII接口提供了 MAC层(介质访问控制层)与PHY层(物理层)之间的互联技术MII接口中的管理接口(简称做MII管理接口,也称作Serial ManagementInterface,串行管理接口)用于MAC层与PHY层之间传送控制信息和状态信息,通过MII管理接口进行MDIO数据串行通信,MAC层芯片可以访问PHY层芯片的寄存器,并通过这些寄存器来对PHY层芯片进行控制和管理在MDIO数据串行通信协议中,MDIO数据帧结构如图1所示,包括开始标识字段(ST)、帧操作字段(OP)、PHY层地址字段(PHYAD)、寄存器地址字段(REGAD)、状态转换字段(TA)和数据字段(DATA)其中:起始标识字段(ST)包含2个比特,即比特“01”,表示MDIO数据帧的起始位置帧操作字段(OP)包含2个比特,比特“10”表示此帧为一个读操作帧,比特“01”表示此帧为一个写操作帧。
PHY层地址字段(PHYAD)包含5个比特,用于指示物理层芯片的地址寄存器地址字段(REGAD)包含5个比特,用于指示物理层芯片中的寄存器地址状态转换字段(TA)包含2个比特,若此帧为读操作帧,则第一比特高阻态,第二比特由PHY层芯片置“0”;若此帧为写操作帧,则由MAC层芯片控制连续输出“10”两个比特数据字段(DATA)包含16个比特,若此帧为读操作帧,则用于承载PHY层芯片传送到MAC层芯片的状态信息数据;若此帧为写操作帧,则用于承载MAC层芯片传送到PHY层芯片的控制信息数据在MDIO信号线传输每个MDIO数据帧之前以32个连续的“I”比特作为帧间隔标识(或称作帧前缀字段 ,PRE);在MDIO信号线空闲时(空闲状态以IDLE表示),由于无源驱动,处高阻状态,但通常用上拉电阻使其处在高电平MAC层芯片与PHY层芯片进行MDIO数据串行通信时,MAC层芯片的MII管理接口与PHY层芯片的MII管理接口都需要连接两根信号线,即MDC (Management Data Clock,管理数据时钟)信号线和MDIO (Management Data Input/Output,管理数据输入/输出)信号线;MDC信号线用于传输MDC时钟,但MDIO数据串行通信协议中的MDC时钟频率通常与MAC层芯片、PHY层芯片所在系统的系统时钟频率不同,通常MDC时钟频率为2.5MHz ;MD10信号线用于传输MDIO数据,即MAC层芯片的控制信息数据和PHY层芯片的状态信息数据;MDIO数据与MDC时钟同步传送至MII管理接口,MII管理接口在MDC时钟的上升沿触发传输MDIO数据的数据比特。
MAC层芯片的MDIO处理模块和PHY层芯片的MDIO处理模块则根据处理程序控制,按照MDIO数据串行通信协议的MDC时钟频率将MII管理接口接收到的MDIO数据写入或者向MII管理接口 MII管理接口读出MDIO数据在MAC层芯片与PHY层芯片进行MDIO数据串行通信过程中,读操作帧与写操作帧的MDIO数据帧时序关系有所不同;在进行帧间隔传输以及MDIO写操作帧传输期间,MAC层芯片的MDIO处理模块始终为读操作状态,PHY层芯片的MDIO处理模块始终为写操作状态;在MDIO读操作帧的起始标识字段到寄存器地址字段的传输期间,MAC层芯片的MDIO处理模块为读操作状态,PHY层芯片的MDIO处理模块为写操作状态,而在MDIO读操作帧的状态转换字段传输期间,MAC层芯片的MDIO处理模块从读操作状态切换为写操作状态,PHY层芯片的MDIO处理模块从写操作状态切换为读操作状态,此后MDIO读操作帧中16个MDC时钟周期的数据字段传输期间,MAC层芯片的MDIO处理模块保持写操作状态,PHY层芯片的MDIO处理模块保持读操作状态在MDC时钟的同步控制下,MAC层芯片与PHY层芯片进行MDIO数据串行通信的MDIO读操作帧时序关系以及MDIO写操作帧时序关系分别如图2、图3所示。
MDIO串行通信协议允许一个MAC层芯片通过MII管理接口的MDIO串行通信同时驱动控制多个PHY层芯片(最多支持32个),构成一驱多的主从控制系统在这种一驱多的主从控制系统中,通常将处于主导控制地位的MAC层芯片通常称为主控器件,被控制的PHY层芯片通常称为从属器件,其系统结构框图如图4所示可以看到,由于MAC层芯片和PHY层芯片的MII管理接口需要在MDC时钟频率下工作,而MAC层芯片和PHY层芯片的其它模块在系统时钟频率工作,因此主控器件和各个从属器件除了需要连接系统时钟驱动芯片获得系统时钟(Systm Clock,简称SYSC)之外,还需要在MII管理接口连接MDC时钟驱动芯片获得MDC时钟(简称MDC),或者由主控器件连接MDC时钟驱动芯片获得MDC时钟后再通过MII管理接口之间的MDC信号线将MDC时钟传送至各个从属器件;且由于从属器件数量较多,因此连线也较为繁多,容易导致系统PCB走线困难、PCB层数增加等情况,增加系统PCB走线设计难度;而且由于主控器件与从属器件的MII管理接口之间存在MDIO数据与MDC时钟时序同步的要求,在PCB走线时,如果MDIO信号线与MDC信号线的走线等长处理不当,可能会因为走线传输延迟差异而导致MDIO数据与MDC时钟时序错误,从而从另一个层面进一步增加了系统PCB走线设计的难度;并且系统中多个时钟的使用,无疑也增加了系统中的时钟驱动芯片使用量或者时钟驱动芯片的管脚使用量,相应的增加了硬件成本。
发明内容针对现有技术的上述不足,本发明的目的在于提供一种主从MII管理接口串行通信方法,使得在不借助MDC时钟驱动芯片、无需MDC信号线的情况下,主控器件的MII管理接口与多个从属器件MII管理接口之间即可进行MDIO数据串行通信,以降低一驱多主从控制系统的PCB设计难度,减少一驱多主从控制系统的硬件成本为实现上述目的,本发明采用的技术方案如下: 一种主从MII管理接口串行通信方法,用于主控器件的MII管理接口与多个从属器件MII管理接口之间的MDIO数据串行通信;主控器件的MDIO处理模块以及各个从属器件的MDIO处理模块均按照MDIO串行通信协议进行MDIO数据处理,主控器件的MII管理接口以及各个从属器件的MII管 理接口仅连接MDIO串行总线;主控器件的MDIO处理模块和MII管理接口之间还设有主控计数锁存处理模块,每个从属器件的MDIO处理模块和MII管理接口之间还设有从属计数锁存处理模块,且主控器件和各个从属器件所在系统的系统时钟频率设置为MDIO串行通信协议中MDC时钟频率的N倍,N为正整数,主控器件的主控计数锁存处理模块以及各个从属器件的从属计数锁存处理模块均以系统时钟频率进行累加计数和数据采样操作;其中: 主控器件中,在主控器件的MDIO处理模块进行读操作期间,主控计数锁存处理模块将MDIO处理模块需要读出的MDC时钟频率的MDIO数据以系统时钟频率进行N倍采样转换为MDIO系统时钟采样数据,通过主控器件的MII管理接口以系统时钟频率将MDIO系统时钟采样数据发送至MDIO总线,且每当MDIO系统时钟采样数据中出现连续32N个高电平数据比特以后的第一个低电平数据比特时或者每当累加计数到N时,主控计数锁存处理模块将计数复位为零并重新开始进行累加计数;在主控器件的MDIO处理模块进行写操作期间,主控计数锁存处理模块以系统时钟频率获取主控器件的MII管理接口从MDIO总线接收到的MDIO系统时钟采样数据,且每当累加计数到N时,主控计数锁存处理模块将计数复位为零并重新开始进行累加计数,每当累加计数到第一预设取数值nl时,主控计数锁存处理模块将MDIO系统时钟采样数据中当前时刻的一个比特数据锁存并传送给主控器件的MDIO处理模块,从而从MDIO系统时钟采样数据中恢复出MDC时钟频率的MDIO数据传送给主控器件的MDIO处理模块进行MDIO数据处理;其中,0〈nl〈N ; 从属器件中,在从属器件的MDIO处理模块进行写操作期间,从属计数锁存处理模块以系统时钟频率获取从属器件的MII管理接口从MDIO总线接收到的MDIO系统时钟采样数据,且每当MDIO系统时钟采样数据中出现连续32N个高电平数据比特以后的第一个低电平数据比特时或者每当累加计数到N时,从属计数锁存处理模块将计数复位为零并重新开始进行累加计数,每当累加计数到第二预设取数值n2时,从属计数锁存处理模块将MDIO系统时钟采样数据中当前时刻的一个比特数据锁存并传送给从属器件的MDIO处理模块,从而从MDIO系统时钟采样数据中恢复出MDC时钟频率的MDIO数据传送给从属器件的MDIO处理模块进行MDIO数据处理;其中,0〈n2〈N ;在从属器件的MDIO处理模块进行读操作期间,从属计数锁存处理模块将MDIO处理模块需要读出的MDC时钟频率的MDIO数据以系统时钟频率进行N倍采样转换为MDIO系统时钟采样数据,通过从属器件的MII管理接口以系统时钟频率将MDIO系统时钟采样数据发送至MDIO总线,且每当累加计数到N时,从属计数锁存处理模块将计数复位为零并重新开始进行累加计数。
进一步,所述主控器件进行MDIO数据串行通信的过程中,主控器件的MDIO处理模块在读出MDIO读操作帧中寄存器地址字段的全部数据之后主控计数锁存处理模块第I次计数复位为零时,主控器件的MDIO处理模块从读操作切换为写操作;主控器件的MDIO处理模块在接收到MDIO读操作帧中数据字段的全部数据之后主控计数锁存处理模块第I次计数复位为零时,主控器件的MDIO处理模块从写操作切换为读操作进一步,所述从属器件进行MDIO数据串行通信的过程中,若从属器件的MDIO处理模块接收到MDIO读操作帧,且该MDIO读操作帧中PHY层地址字段指示的物理层芯片地址与从属器件的芯片地址相同,则从属器件的MDIO处理模块在接收到该MDIO读操作帧中寄存器地址字段的全部数据之后从属计数锁存处理模块第I次计数复位为零时,从属器件的MDIO处理模块从写操作切换为读操作;从属器件的MDIO处理模块在读出MDIO读操作帧中数据字段的全部数据之后从属计 数锁存处理模块第I次计数复位为零时,从属器件的MDIO处理模块从读操作切换为写操作进一步,所述N的优选取值范围为1(T100进一步,所述第一预设取数值nl的优选取值范围为N/3 ≤nl ≤2N/3 ;所述第二预设取数值n2的优选取值范围为N/3 ≤ n2 ≤ 2N/3。
进一步,所述主控器件和从属器件可分别采用FPGA芯片编程实现相比于现有技术,本发明具有下述优点: 1、采用本发明主从MII管理接口串行通信方法,一驱多主从控制系统可以在不借助MDC时钟驱动芯片、无需MDC信号线的情况下,顺利的完成主控器件的MII管理接口与多个从属器件MII管理接口之间的MDIO数据串行通信,从而减少了主控器件的MII管理接口与多个从属器件MII管理接口之间的数据连线,有助于降低系统PCB走线难度,减少PCB层数,有助于降低系统PCB走线设计难度2、采用本发明主从MII管理接口串行通信方法,由于无需MDC信号线,因此无需考虑因MDIO信号线与MDC信号线的走线等长处理不当导致MDIO数据与MDC时钟时序错误的问题,由主控器件的主控计数锁存处理模块以及从属器件的从属计数锁存处理模块的控制,即可保证MDIO数据串行·通信以及MDIO数据处理的时序正确性,从而进一步从整体上降低了系统PCB走线设计的难度3、本发明主从MII管理接口串行通信方法中,在不借助MDC时钟驱动芯片的条件下实现了主控器件的MII管理接口与多个从属器件MII管理接口之间的MD。