ELF 1技术贴|开发板网口功能讲解

在当前的嵌入式系统设计趋势中,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开发板可支持两路百兆网。

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

以上就是对ELF 1开发板网口组件中的几个核心概念做了讲解。然而,“实践出真知”,我们诚挚建议各位小伙伴在理论学习之余,更要亲自进行实践操作,如测试、故障排查等,以便深入理解和掌握网口模块的内在机制。唯有亲手实践,才能使知识领悟更为深刻全面。

倘若在嵌入式学习探索过程中遇到任何疑问或难题,欢迎各位小伙伴与ElfBoard的技术支持团队进沟通交流。我们坚信,通过共同探讨与分享,定能助力您的嵌入式学习之路更上一层楼,一同见证彼此的进步与发展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/492590.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一周学会Django5 Python Web开发-Django5文件上传实现

锋哥原创的Python Web开发 Django5视频教程: 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计26条视频,包括:2024版 Django5 Python we…

邀请函 | 2024年数据技术嘉年华集结号已吹响,期待您参会!

龙腾四海内,风云际会时,2024年中国数据嘉年华如约而至。从起初小范围的网友聚会,到如今面向全国各地从业者、爱好者的年度集会,纵使岁月更迭,我们初心依旧。我们在各自最好的年华里共同见证了中国数据库行业的蓬勃发展…

NLP 使用Word2vec实现文本分类

🍨 本文为[🔗365天深度学习训练营学习记录博客 🍦 参考文章:365天深度学习训练营 🍖 原作者:[K同学啊 | 接辅导、项目定制]\n🚀 文章来源:[K同学的学习圈子](https://www.yuque.com/…

浅谈门级驱动电压对IGBT性能的影响

绝缘门极双极型晶体管(IGBT)是复合了功率场效应管和电力晶体管的优点而产生的一种新型复合器件,具有输入阻抗高、工作速度快、热稳定性好、驱动电路简单、饱和压降低、耐压高电流大等优点,因此现今应用相当广泛。但是IGBT良好特性…

TypeScrip遍历对象报错问题

解决TypeScrip遍历对象报错问题 文章目录 解决TypeScrip遍历对象报错问题声明接口,遍历对象报错解决方式keyof给对象声明一个接口泛型as anyas any 声明接口,遍历对象报错 interface DEPT {name: string;age: number,[key: string]: any }解决方式 // 用…

【C#】获取文本中的链接,通过正则表达式的方法获取以及优化兼容多种格式

欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。…

邮件营销神器Focussend,轻松实现1美元转化72美元的营销高回报!

随着社交媒体营销逐渐成为主流,一家名为Focussend的公司却在邮件营销领域崭露头角。成立于2009年,Focussend经过尝试综合营销后,选择进入古早但高回报的邮件营销市场。目前,该公司在跨境平台中排名靠前,服务着上万名中…

项目管理基本要素--项目、项目集、项目组合

本文描述从事项目管理和了解项目管理领域所需的基本要素,词汇定义来自于《项目知识管理体系》(PMBOK指南)第六版,仅作个人学习使用,任何对此文章的引用,应当说明源出处,不得用于商业用途。 如有侵权、联系速删 文章目录…

Linux Debian12安装fcitx5中文拼音输入法

我使用Debian系统已经4年了,我常在Debian系统上安装ibus google拼音输入法,但是有时这个输入法会卡死,停上几分钟后又恢复正常了,经常被这个困扰。不过在Debian 11或Debian12中我们可以使用fcitx5中文拼音输入法了&am…

用c# 自己封装的Modbus工具类库源码

前言 Modbus通讯协议在工控行业的应用是很多的,并且也是上位机开发的基本技能之一。相关的类库也很多也很好用。以前只负责用,对其并没有深入学习和了解。前段时间有点空就在这块挖了挖。想做到知其然还要知其所以然。所以就有了自己封装的Modbus工具类库…

linux僵尸进程

僵尸进程(Zombie Process)是指在一个进程终止时,其父进程尚未调用wait()或waitpid()函数来获取该进程的终止状态信息,导致进程的资源(如进程表中的记录)仍然保留在系统中的一种状态。 当一个进程结束时&am…