写点什么

以太网口硬件知识分享

作者:智趣匠
  • 2024-04-26
    四川
  • 本文字数:2477 字

    阅读完需:约 8 分钟

以太网口硬件知识分享

一、了解网口通信基本原理

实现网络通信实质上是 PHY 与 MAC 及 RJ45 接口实现信号传输。MAC 就是以太网控制器,MAC 属于数据链路层,主要负责把数据封装成帧,对帧进行界定实现帧同步。对 MAC 地址和源 MAC 地址及逆行相应的处理并对错误帧进行处理。PHY 属于物理层,在以太网控制器中负责物理层功能的芯片叫 PHY 芯片,因为网线上传输的是模拟信号而 MAC 发出或接收的信号为数字信号所以 PHY 主要负责对网络数据的编解码处理以及一些网络状态的控制。RJ45 就是我们常用的网口座子。

在嵌入式领域通常 MAC 是被集成在 CPU 里面的,这种方案是目前的主流方案,PHY 层(物理层)一般是使用专用的 PHY 芯片。如果要 PHY 芯片在一个特定的模式下工作就需要对 PHY 芯片进行控制,在这里用到的是 MDIO 总线。通过 MDIO 总线对 PHY 芯片的寄存器进行相应配置实现一些模式以及功能的控制。而数据信息,是由另外的网络协议接口进行传输,例如 ELF 1 上的 PHY 和 MAC 之间是用的 RMII 接口实现的数据传输,整体架构如图 2.4 所示:

二、了解 MDIO 总线

MDC 是开漏(OD)输出,只能输出低电平,因此需要上拉处理,为 MDIO 提供时钟信号;根据 KSZ8081RNB 芯片手册(数据手册中查找),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 为千兆网络。区别和关系可以参考表 2.2 和图 2.5。各模式工作原理可根据我们的视频进行详细了解。

常见网络模式区别

网络变压器

ELF 1 使用的 RJ45 内部集成了网络变压器,其 4、5 脚位中心抽头引脚,该引脚有两种接法:电流型,中心抽头直接接电源;电压型,中心抽头通过 100nF 电容接地(ELF 1 的接法,引脚 4、5 接 100nF 电容 C87 和 C88)。

实际使用中需要如何处理中心抽头需要根据 PHY 芯片的驱动类型确定。

四、PHY 芯片电路原理说明

ELF 1 开发板最多支持两路百兆网口,底板(图 2.5)和扩展板(图 2.6)上各一路。ELF 1 使用两个型号为 KSZ8081RNB 的 PHY 芯片实现网络通信,通过对前几段内容的了解可以分析出,KSZ8081RNB 是通过 MDIO 总线挂载到 ELF 1 上的,MDIO 总线对应芯片的 11、12 引脚主要负责通过配置 PHY 芯片 KSZ8081RNB 的寄存器控制 PHY 芯片的网口速率、网口双工模式、自协商使能等功能。KSZ8081RNB 的数据接口是通过 RMII 和 ELF 1 连接,并传输网络数据的。

ENET_PHYAD0、ENET_PHYAD1 和 ENET_RXD1 在芯片上电复位时会锁存一个电平状态作为芯片的 PHY 地址,在芯片上电后,其数据被锁存到相应寄存器中,而后恢复芯片的默认功能,不会影响通信。由于该款芯片有三条地址线,因此理论上同一块板子最多可以挂载 7 颗(001—111。000 作为广播地址,是不可以被使用的);

ENET_CRS_DV、ENET_CFG1、ENET_CFG0 是芯片接口模式选择, ELF 1 设置为 100;

底板网口原理图

扩展板网口原理图

网口电路设计指南

(1)ELF 1 可支持两路百兆网。

(2)设计网口电路时 8081 的 10 号引脚必须连接 6.49K_%1 精度的电阻,否则可能会影响网口正常工作出现芯片无法挂载、网口不 Link 等问题。

(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 规定的网络变压器的驱动类型相对应。


发布于: 刚刚阅读数: 4
用户头像

智趣匠

关注

凡事预则立,不预则废! 2022-06-01 加入

某公司芯片AE工程师,嵌入式开发工程师,InfoQ签约作者,阿里云专家博主,华为云·云享专家,51CTO专家博主,腾讯云社区优秀共创官。

评论

发布
暂无评论
以太网口硬件知识分享_Mac_智趣匠_InfoQ写作社区