查看: 304|回复: 0

[经验] [ElfBoard]网口详细讲解

[复制链接]

该用户从未签到

发表于 2024-2-26 14:01:40 | 显示全部楼层 |阅读模式
分享到:
本帖最后由 eefocus_3945399 于 2024-2-26 14:04 编辑

了解网口通信基本原理
实现网络通信实质上是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所示:

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无源驱动,处高阻状态,但一般用上拉电阻使其处在高电平。
2.1

名称
注释
Preamble
前导位32bit,建立MAC和PHY芯片之间的同步
Start
起始位2bit,固定发送01表示数据传输开始
OP
读写位2bit,10为读操作,01为写操作
PHY Address
PHY芯片MDIO接口地址5bit
REG Address
MDIO寄存器地址5bit
TA
地址传输和数据传输转换时的空闲时间2bit
DATA
数据位16bit
Idle
空闲状态



关于网络信号模式
常见网络信号模式包含:MII、RMII、GMII、RGMII、SGMII。每种模式包含的信号线数量和控制线数量各不相同,通讯速度也不相同:MII、RMII为百兆网络,GMII、RGMII、SGMII为千兆网络。区别和关系可以参考表2.2和图2.5。各模式工作原理可根据我们的视频进行详细了解。
2.2 常见网络模式区别
类型
收发
信号数
时钟数
使能数
错误提示
信号
检测
信号数
合计
速度
MII
TXD 4根
RXD 4根
TX_CLK 1根
RX_CLK 1根
TX_EN 1根
RX_DV 1根
TX_ER 1根
RX_ER 1根
CRS 1根
COL 1根
16
百兆
RMII
TXD 2根
RXD 2根
CLK_REF 1根
TX_EN 1根
RX_ER 1根
CRS与RX_DV共用 1根
8
GMII
TXD 8根
RXD 8根
GTX_CLK1根
RX_CLK 1根
TX_EN 1根
RX_DV 1根
TX_ER 1根
RX_ER 1根
CRS 1根
COL 1根
24
千兆
RGMII
TXD 4根
RXD 4根
TX_CLK 1根
RX_CLK 1根
TX_EN与TX_ER共用 1根
RX_DV与
RX_ER共用 1根
CRS 1根
COL 1根
14
SGMII
TXD RXD各1对差分对
PYH提供的参考时钟1根
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;
2.5 底板网口原理图
2.6 扩展板网口原理图
网口电路设计指南
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 规定的网络变压器的驱动类型相对应
总结
上文我们对网口部分中几处重要的知识点进行了逐一的讲解,然而“纸上得来终觉浅”,还是希望大家可以在学习的过程中亲自动手去测,去排查,去熟悉我们的网口模块,这样才能学习的更加透彻。如果大家在学习的过程中有任何的问题,也欢迎大家和我们的技术支持进行进一步沟通和交流,我们期待和您共同进步。



回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条



手机版|小黑屋|与非网

GMT+8, 2024-4-28 14:07 , Processed in 0.117974 second(s), 16 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.