在当前的嵌入式系统设计趋势中,MAC功能普遍被整合至CPU内核,形成一种高度集成的网络功能模块。与此同时,PHY芯片作为独立器件,专注于应对物理层错综复杂的电气特性和信号转换需求。为了确保PHY芯片能够在所需的各种网络模式和参数设定下精确运作,业界广泛采用了MDIO(Management Data Input/Output)管理总线进行配置和调控。通过MDIO总线接口,开发工程师能够深入访问并灵活调整PHY芯片内部的寄存器设置,进而实现实时的自适应速率调整、全双工与半双工模式切换等多种关键功能。
针对ELF 1开发板的具体架构,其PHY芯片与内置MAC控制器间的数据传输互动是借助RMII(Reduced Media Independent Interface)高效接口技术来完成的。RMII标准因其精简的引脚数量和高效的传输速率,显著减少了电路板布局的复杂度,节约了系统硬件资源,并提升了以太网数据的传输速度。得益于这一接口技术,ELF 1开发板成功地实现了从物理层到数据链路层的平滑过渡和完美融合,从而有力支持了基于TCP/IP协议栈的各类应用程序在嵌入式环境中的稳定高效运行。
了解MDIO总线
MDC是开漏(OD)输出,只能输出低电平,因此需要上拉处理,为MDIO提供时钟信号;MDIO管理接口数据传输格式及含义如下表所示:
需要注意的是,TA在读操作和写操作两种状态下数据位不同,TA是介于寄存器地址和寄存器数据之间的2个bit位,用来转换数据传输方向。读操作时,地址传输和数据传输控制方不同,设置2bit TA的目的就是为了防止MDIO总线上产生竞争。TA的第1位z,PHY和MAC均释放总线控制输出高阻,且后面MAC一直保持高阻态状态,第2位0由PHY提供。第2位相当于一个应答信号,如果第2位为高电平,PHY无应答。除此之外,Idle为空闲状态,此时MDIO无源驱动,处高阻状态,但一般用上拉电阻使其处在高电平。
关于网络信号模式
常见网络信号模式包含:MII、RMII、GMII、RGMII、SGMII。每种模式包含的信号线数量和控制线数量各不相同,通讯速度也不相同:MII、RMII为百兆网络,GMII、RGMII、SGMII为千兆网络,区别和关系参考表以下图表。
ELF 1开发板使用的RJ45内部集成了网络变压器,其4、5脚位中心抽头引脚,该引脚有两种接法:电流型,中心抽头直接接电源;电压型,中心抽头通过100nF电容接地(ELF 1开发板的接法,引脚4、5接100nF电容C87和C88)。实际使用中需要如何处理中心抽头需要根据PHY芯片的驱动类型确定。
PHY芯片电路原理说明
ELF 1开发板最多支持两路百兆网口,底板和扩展板上各一路。开发板使用两个KSZ8081RNB型号的PHY芯片实现网络通信,KSZ8081RNB是通过MDIO总线挂载到EL开发板上,MDIO总线对应芯片的11、12引脚主要负责通过配置PHY芯片KSZ8081RNB的寄存器控制PHY芯片的网口速率、网口双工模式、自协商使能等功能。KSZ8081RNB的数据接口是通过RMII和开发板连接,并传输网络数据的。
ENET_PHYAD0、ENET_PHYAD1和ENET_RXD1在芯片上电复位时会锁存一个电平状态作为芯片的PHY地址,在芯片上电后,其数据被锁存到相应寄存器中,而后恢复芯片的默认功能,不会影响通信。由于该款芯片有三条地址线,因此理论上同一块板卡最多可以挂载7颗(001—111。000作为广播地址,是不可以被使用的)。
ENET_CRS_DV、ENET_CFG1、ENET_CFG0是芯片接口模式选择, ELF 1开发板设置为100。
底板网口原理图
扩展板网口原理图
网口电路设计指南
(1)ELF 1开发板可支持两路百兆网。
(3)MDIO以及RMII接口的引脚要注意电平匹配,核心板为3.3V电平。
(4)MDIO总线上需要加上拉电阻,阻值可以根据实际情况调整。
网口PCB设计指南
(1)MDIO总线上挂载多个PHY芯片时,使用串联方式,不要分叉布线。
(2)RGMII接口分为发送信号,接收信号和控制信号,各组阻抗控制在50Ω±10%。
(3)发送信号和接收信号,布线长度不超过100mm,组内信号长度误差不超过2.54mm。
(4)时钟预留对地电容,方便后期调试。
(5)MDI接口采用差分布线,阻抗100Ω±10%。
(6)MDI组内差分误差不超过0.12mm。
(7)芯片内部DCDC连接的功率电感要靠近芯片保证回路最短,并且保证地回路的完整。
(8)数据线上预留的串联电阻需要靠近源端放置。
(9)保护器件建议放置在变压器内侧,在变压器和PHY之间,靠近变压器。
(10)供电部分要考虑电流的大小,线宽尽量宽一点。要有足够的载流能力,滤波电容的位置尽量靠近芯片。
(11)网口 RJ45 在布线时要注意进行隔离地。
网口问题排查思路
在遇到网口问题时排查网口问题首先要明确问题点,网口不通的情况下首先要看 PHY 有没有成功挂载上,可通过是否可以启动网卡来判断,如果根本看不到设备节点或者在输入启动网卡的命令后报错,找不到 PHY 芯片说明 PHY 芯片没有成功挂载。如果可以正常启动网卡说明 PHY 可以成功挂载。
如果 PHY 没挂载上排查思路如下:
(1)首先看是否有缺件、少件,原件焊接错误的情况,PHY 芯片焊接是否过关等。
(2)检查各路供电是否正常,电源是否稳定,是否有明显压降、跌坑现象。滤波电容容量是否达标。
(3)检查复位电路是否有复位动作,复位后是否可以正常抬起复位信号,复位信号低电平的维持时间是否满足 PHY 的要求。
(4)检查芯片的时钟频率、幅值、以及信号质量是否满足手册要求。不同类型的时钟输入方式原理是否正确。
(5)检查 PHY 芯片的地址、模式、电平配置等参数设置的上下拉电阻是否正常。
(6)检查 MDIO 总线的波形幅值、斜率、是否正常,振铃是否严重,是否有下降沿压降不到 0 的现象,在 MDC 的上升沿来临时 MDIO 的电平维持时间是否满足硬件资料里网口芯片手册要求等问题。
先将芯片成功挂载后再看网口通不通。如果经过以上检测排查成功将 PHY 芯片挂载但是网口还是不通,那就需要继续检查数据接口部分。根据不同接口的规定来对数据接口的总线进行检查。
(1)按照具体的接口形式检查数据线连接是否正确,在使用MII,RMII,GMII,RGMII时的线序,检查参考时钟波形是否正常。
(2)检查网络变压器的中心抽头的接法是否与PHY 规定的网络变压器的驱动类型相对应。
以上就是对ELF 1开发板网口组件中的几个核心概念做了讲解。然而,“实践出真知”,我们诚挚建议各位小伙伴在理论学习之余,更要亲自进行实践操作,如测试、故障排查等,以便深入理解和掌握网口模块的内在机制。唯有亲手实践,才能使知识领悟更为深刻全面。倘若在嵌入式学习探索过程中遇到任何疑问或难题,欢迎各位小伙伴与ElfBoard的技术支持团队进沟通交流。我们坚信,通过共同探讨与分享,定能助力您的嵌入式学习之路更上一层楼,一同见证彼此的进步与发展。