nuc970的emac接口
nuc970的EMAC以太网接口与PHY芯片之间的数据交换是通过MII(Media Independent Interface)或RMII(Reduced Media Independent Interface)接口实现的。
在MII接口中,EMAC和PHY之间通过4对数据线(TXD0–TXD3和RXD0–RXD3)、两条时钟线(TX_CLK和RX_CLK)、一个数据同步线(TX_EN和RX_EN)以及一个管理线(MDC)进行数据传输。
在RMII接口中,EMAC和PHY之间只需要通过2对数据线(TXD0和RXD0)、两条时钟线(REF_CLK和TX_EN/RX_EN)以及一个管理线(MDIO)进行数据传输。具体的数据传输流程可以参考MII或RMII协议的规定。
RMII通信大致过程
在NUC这样的mpu上用得多的还是,RMII通信协议,而RMII(Reduced Media Independent Interface)是一种简化版的MII(Media Independent Interface)协议,用于连接MAC(Media Access Control)和PHY(Physical Layer)之间的通信。相比于MII,RMII只需要使用2对差分信号线(TXD0/RXD0和TXD1/RXD1)和2条时钟信号线(REF_CLK和TX_EN/RX_EN),可以减少芯片的引脚数量和板子的复杂度。RMII协议的通信过程如下:
-
PHY通过MDIO(Management Data Input/Output)接口向MAC发送PHY的ID,以便MAC能够识别PHY的类型。
-
MAC通过MDIO接口向PHY发送配置信息,例如速度、双工模式、自动协商等。
-
当MAC需要发送数据时,它将数据放入TXD0和TXD1差分信号线中,并在TX_EN信号线上发送一个高电平的脉冲,表示数据已经准备好发送。
-
PHY接收到TX_EN信号后,会将数据从TXD0和TXD1差分信号线中读取出来,并将数据发送到物理介质上进行传输。
-
当PHY接收到数据时,它将数据放入RXD0和RXD1差分信号线中,并在RX_EN信号线上发送一个高电平的脉冲,表示数据已经准备好接收。
-
MAC接收到RX_EN信号后,会将数据从RXD0和RXD1差分信号线中读取出来,并进行后续处理,例如检查CRC校验和、解析数据包等。
如上就是RMII协议的大致通信,当然了具体实现可能会因为芯片设计的不同而有所差异。
RMII与MII的对比
-
引脚数量:MII需要使用4对差分信号线(TXD0~TXD3和RXD0~RXD3)、2条时钟信号线(TX_CLK和RX_CLK)、一个数据同步线(TX_EN和RX_EN)以及一个管理线(MDC),总共需要14根信号线。而RMII只需要使用2对差分信号线(TXD0/RXD0和TXD1/RXD1)和2条时钟信号线(REF_CLK和TX_EN/RX_EN),总共需要6根信号线。
-
速率:MII的最大速率为100Mbps,而RMII的最大速率为100Mbps或10Mbps。
-
管理接口:MII使用MDC(Management Data Clock)和MDIO(Management Data Input/Output)两个信号线,用于MAC和PHY之间的管理通信。而RMII只使用MDIO信号线,且其通信速率为MII的一半。
-
帧同步:在MII中,TX_EN和RX_EN信号线用于帧同步,而在RMII中,REF_CLK信号线用于帧同步。
总的来说,RMII相对于MII来说,具有引脚数量少、速率较快、协议简单等优势,因此在一些资源受限的应用场景中,RMII被广泛应用。
【最后一个bug】多平台都有更新和发布,大家可以一键三连,关注+星标,不错过精彩内容~~