引言DP83848C 是美国国家半导体公司生产的一款鲁棒性好、功能全、功耗低的 10/100 Mbps单路物理层(PHY)器件它支持MII(介质无关接口)和 RMII(精简的介质无关接口),使 设计更简单灵活;同时,支持10BASE〜T和100BASE-TX以太网外设,对其他标准以太网 解决方案有良好的兼容性和通用性MII(Medium Independent InteRFace)是 IEEE802. 3u 规定的一种介质无关接口,主要 作用是连接介质访问控制层(MAC)子层与物理层(PH-Y)之间的标准以太网接口,负责MAC 和PHY之间的通信由于MII需要多达16根信号线,由此产生的I/O 口需求及功耗较大, 有必要对MII引脚数进行简化,因此提出了 RMII(Reduced Medium In depe ndent In terface, 精简的介质无关接口),即简化了的MII1 硬件设计1.1 电路设计DP83848C的收发线路各是一对差分线,经过变比为1: 1的以太网变压器后与网线相 连以太网变压器的主要作用是阻抗匹配、信号整形、网络隔离,以及滤除网络和设备双方 面的噪音典型应用如图 1 所示。
團1 DPS鹑關C典型应用MPU/ CPU介质 访问 控制竺徑 DPS3848CEMET TXIW HNRT TXTIITX_CLKTWITXD2T咖网hll MODE rx EMENIT MDjOMOIOMDCCRS?OS I>V.TaFE)jCFG RX RIWEC EN~COGVilYjWflRXDKPHYAD4J RX CLE1 FWR DOVWNTKii^T NR 53ENTTritXD]25MILZ QLFT图2是DP83848C与MAC的连接电路其中,Xl为50 MHz的有源振荡器LED LED LED_ACrtOLfAN EN 阳AESPW1T111. 2 PCB布局布线11电源或地屋图4鑒分信号対层间跨趣布局方面,精度为1%的49. 9 Q电阻和100 nF的去耦电容应靠近PHY器件放置,并 通过最短的路径到电源如图3所示,两对差分信号(TD和RD)应平行走线,避免短截,且 尽量保证长度匹配,这样可以避免共模噪声和 EMI 辐射理想情况下,信号线上不应有交 叉或者通孔,通孔会造成阻抗的非连续性,所以应将其数目降到最低;同时,差分线应尽可 能走在一面,且不应将信号线跨越分割的平面,如图4所示。
信号跨越一个分割的平面会造 成无法预测的回路电流,极可能导致信号质量恶化并产生EMI问题注意,图3和图4中, 阴影部分为错误方法图g差分信号対和短栽2 RMll 模式描述RMII模式在保持物理层器件现有特性的前提下减少了 PHY的连接引脚RMII由参考时钟REF_CLK、发送使能TX_EN、发送数据TXD[1: 0]、接收数据RXD[1: 0]、载波侦听/接收数据有效CRS_DV和接收错误RX_ER(可选信号)组成在此基础上, DP83848C还增加了 RX_DV接收数据有效信号2. 1 REF_CLK——参考时钟REF_CLK 是一个连续时钟,可以为 CRS_DV、 RXD[1: O]、 TX_EN、 TXD[1: O]、 RX_DV 和RX_ER提供时序参考REF_CLK由MAC层或外部时钟源源提供REF_CLK频率应为 50 MHz±50x10-6,占空比介于35%和65%之间在RMII模式下,数据以50 MHz的时钟 频率一次传送2位因此,RMII模式需要一个50 MHz有源振荡器(而不是晶振)连接到器件 的 X1 脚2. 2 TX_EN—发送使能TX_EN表示MAC层正在将要传输的双位数据放到TXD[1: 0]上。
TX_EN应被前导符的 首个半字节同步确认,且在所有待传双位信号载入过程中都保持确认跟随一帧数据的末 2 位之后的首个REF_CLK上升沿之前,MAC需对TX_EN取反TX_EN的变化相对于REF_CLK 是同步的2. 3 TXD[1: 0]—发送数据TXD[1: 0]的变换相对于REF_CLK是同步的TX_EN有效后,PHY以TXD[1: 0]作为 发送端在 10 Mbps 模式下,由于 REF_CLK 的频率是在 10Mbps 模式中数据速率的 10 倍因 此TXD[1: 0]上的值必须在10个脉冲期间保持稳定,确保DP83848C能够每隔10个周期 进行采样发送时序如图 5 所示,发送延时情况如表 l 所列其中, PMD 为物理介质关联层 (physical media depe n-dent)接口41=>
CRS_DV解除确认后,RXD[1: 0]为“00〃,表示 进入空闲状态CRS_DV确认后,在产生正确的接收解码之前,DP83848C将保证RXD[1 : 0]=“00”DP83848C 提供的恢复数据总是半字节或成对双位信号的形式,这对于由前导符开始的 所有数据值都成立因为CRS_DV是异步确认的,不能假设先于前导符的“00〃数据会是双位 信号形式100 Mbps模式下,在CRS_DV确认之后的正常接收过程中, RXD[1: 0]将会保持“00〃,直到接收器检测到正确的起始串分界符 (STart St-ream Delimiter,SSD)一旦检测到 SSD,DP83848C 将会驱动前导符(“01”),后 面紧跟着起始帧分界符(Start of Frame. Delimiter SFD)(u01n^'01n^'01"^'11")MAC 应该开始 SFD 之后的数据如果检测到接收错误,在载波活动结束前, RXD[1: 0]将会替换为接收字 符串''01〃而由于帧中剩余数据被替换,MAC的奇偶校验将会拒绝错误的信息包如果检 测到错误的载波(坏的 SSD), RXD[1: 0]将会替换为“10”,直到接收事件结束。
这种情况下, RXD[1: 0]将会从“00〃变为“10〃,而无需标明前导符 (“01〃)10 Mbps模式下,CRS_DV确认后,RXD[1: O]将会一直保持“00〃,直到DP83848C有 恢复脉冲并能对接收数据进行解码为止当存在有效接收数据时, RXD[1: 0]以“01〃为前导 符接收恢复的数据值因为REF_CLK频率是10 Mbps模式下数据速率的10 倍, MAC对RXD[1: 0]上的值每隔 10个周期采样一次接收时序如图6所示,接收延时情况如表2所列PMD输入对XIRX DV
RX-DV是没有结合CRS 的接收数据有效信号(Receive Data Valid)第一个正确的恢复数据(前导符)或伪载波检测到 来时, RX_DV 被确认,在恢复数据的末两位传送之后解除确认通过使用该信号,全双工 MAC不必再从CRS _DV信号中恢复RX_DV信号2 6 CRS_DV—— 波侦听/接收数据有效当接收介质处于非空闲状态时,由PHY来确认CRS_DV在载波检测中,CRS_DV依据 与工作模式相关的标准异步确认 10BASE_T 模式下,静噪通过时发生该事件在 100BASE-TX 模式,当 10位中检测到2 个非相邻的零值时,发生该事件在RMII规范(1. 2版)中提到,载波丢失将导致与REF_CLK周期同步的CRS_DV解除 确认,这在RXD[1: 0]半字节的首两位出现(即CRS_DV仅在半字节边界解除确认)在 CRS_DV首次解除确认后,如果DP83848C还有数据位要加在RXD[1: 0]上,则在REF_CLK 周期中,DP83848C应在每半个字节的第2个双位上确认CRS_DV,并在一个半字节的第1 个双位解除确认这样,从半字节边界开始,到CRS(载波侦听/接收信号)在RX_DV前结 束时,CRS_DV以25 MHz(100 Mbps模式)或2. 5MHz(10 Mbps模式)的频率翻转(假设当载 波事件结束时DP83848C还有待传送的数据位)。
通过编程DP83848C能够与RMII规范(1. 0版)很好地兼容在该模式下,CRS_DV将 会异步地与 CRS 进行确认,但是要等传送完最后的数据时才会解除确认, CRS_DV 在数据 包的末端不会被翻转该模式虽然不能对来自CRS_DV的CRS信号进行精确的恢复,但是 却可以使MAC层的设计更简单在出错的载波活动时间中,CRS_DV保持确认一旦确认CRS_DV,则可以认为在RXD[1: 0]上的数据是有效的然而,由于CRS_DV的确认相对于REF_CLK是异步的,因而在正确 解码接收信号之前, RXD[1: 0]上的数据应为“002. 7 RX_ER收错误遵照IEEE802. 3标准的规定,DP83848C提供一个RX_ER输出端RX_ER可以维持 一个或更多的REFCLK周期,来标识一个在当前PHY到帧的传输过程中曾出现的错误(MAC 子层不一定能检测到,但PHY可以检测到的编码错误或其他错误)RX_ER的变化相对于 REF_CLK 是同步的由于DP83848C是通过以固定数据代替原来数据的方式干扰到RXD[1: O],所以MAC 不需要RX_ER,而只需CRC校验(即奇偶校验)就可以检测到错误。
2.8 冲突检测RMII不向MAC提供冲突标志对于半双工操作,MAC必须从CRS_DV和TX_EN信号 中产生它自己的冲突检测为了实现这一点MAC必须从CRS-DV信号中恢复CRS信号,并 和TX_EN进行逻辑与注意,不能直接使用CRS_DV,因为CRS_DV可能在帧的末端触发 以标志CRS解除确认3 RMII模式配置DP83848C的RMII模式配置包括硬件和软件两个方面3.1 硬件配置如图2所示,DP83848C的X1(34)脚上提供50 MHzCMOS电平的振荡信号在上电和 复位时,强制 DP83848C进入RMII模式方法是通过在RX_DV / MII_MODE(39脚)接入一个上拉电阻MAC_BASE_ADDR + 0x100))it define PKY_REG,RBR 0^171 * RMII和Byfgs寄存器箕/# define CR.RMII 0x00000200/ * RMII 接口具 /define CR_PASS,RUN。