0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

ElfBoard 2024-02-26 14:26 次阅读

在当前的嵌入式系统设计趋势中,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管理接口数据传输格式及含义如下表所示:

wKgZomXcImCAfylYAAVuHixGzVI298.png

需要注意的是,TA在读操作和写操作两种状态下数据位不同,TA是介于寄存器地址和寄存器数据之间的2个bit位,用来转换数据传输方向。读操作时,地址传输和数据传输控制方不同,设置2bit TA的目的就是为了防止MDIO总线上产生竞争。TA的第1位z,PHY和MAC均释放总线控制输出高阻,且后面MAC一直保持高阻态状态,第2位0由PHY提供。第2位相当于一个应答信号,如果第2位为高电平,PHY无应答。除此之外,Idle为空闲状态,此时MDIO无源驱动,处高阻状态,但一般用上拉电阻使其处在高电平。

wKgZomXcIoSAZmpZAAJ9BdZvIX0266.png

关于网络信号模式

常见网络信号模式包含:MII、RMII、GMII、RGMII、SGMII。每种模式包含的信号线数量和控制线数量各不相同,通讯速度也不相同:MII、RMII为百兆网络,GMII、RGMII、SGMII为千兆网络,区别和关系参考表以下图表。

wKgaomXcLaaAJPT6AAIurxwsrb4954.png

网络变压器

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。

wKgaomXcLe-Aa-K4AB6A6OV1dbw335.png底板网口原理图

wKgaomXcLgWAD-R5ABW7Le8dRd4141.png扩展板网口原理图

网口电路设计指南

(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的技术支持团队进沟通交流。我们坚信,通过共同探讨与分享,定能助力您的嵌入式学习之路更上一层楼,一同见证彼此的进步与发展。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5082

    文章

    19104

    浏览量

    304799
  • Linux
    +关注

    关注

    87

    文章

    11292

    浏览量

    209323
  • 开发板
    +关注

    关注

    25

    文章

    5032

    浏览量

    97371
收藏 人收藏

    评论

    相关推荐

    ELF 1技术|开发板底板电源电路讲解

    ELF1开发板由核心和底板组成,底板集成CAN、Wi-Fi&BT、Ethernet、音频、USB.Camera、LCD显示、温湿度传感器、UART等功能外设,核心
    的头像 发表于 01-15 13:28 1144次阅读
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|<b class='flag-5'>开发板</b>底板电源电路<b class='flag-5'>讲解</b>

    ELF 1技术|在NXP源码基础上适配开发板的按键功能

    ELF1开发板。接下来,我们将详细阐述适配过程中关于按键功能实现的完整步骤。值得一提的是,ELF1开发板上预置了标识为K
    的头像 发表于 03-08 16:58 958次阅读
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|在NXP源码基础上适配<b class='flag-5'>开发板</b>的按键<b class='flag-5'>功能</b>

    如何在NXP源码基础上适配ELF 1开发板的PWM功能

    本次源码适配项目是在NXP i.MX6ULL EVK评估所搭载的Linux内核源码(版本为Linux-imx_4.1.15)基础上进行的,主要目标是通过调整功能接口引脚配置,使其适应ELF
    的头像 发表于 09-10 10:00 918次阅读
    如何在NXP源码基础上适配<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>开发板</b>的PWM<b class='flag-5'>功能</b>

    ElfBoard技术|如何在NXP源码基础上适配ELF 1开发板的UART功能

    UART即通用异步收发器,是一种支持全双工串行通信协议的接口。在i.MX6ULL处理器平台上,该处理器原生支持多达8路的UART接口,提供了丰富的串行通信能力。 针对ELF 1开发板,实际引出
    的头像 发表于 09-25 13:56 2296次阅读
    ElfBoard<b class='flag-5'>技术</b><b class='flag-5'>贴</b>|如何在NXP源码基础上适配<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>开发板</b>的UART<b class='flag-5'>功能</b>

    Oracle如何实现外部调用功能讲解

    Oracle如何实现外部调用功能讲解(直流稳压电源技术参数)-该文档为Oracle如何实现外部调用功能讲解文档,是一份不错的参考文档,感兴趣的可以看看,,,,,,,,,
    发表于 09-28 13:46 10次下载
    Oracle如何实现外部调用<b class='flag-5'>功能讲解</b>

    鸿蒙官方开发板功能讲解

    直播亮点  鸿蒙官方开发板功能讲解,不同设备的硬件和软件差异比较。 直播大纲   1、hi3518板子功能介绍及应用领域; 2、操作系统liteos-a与lite-m,linux差别介
    的头像 发表于 11-21 09:33 2568次阅读
    鸿蒙官方<b class='flag-5'>开发板</b><b class='flag-5'>功能讲解</b>

    鸿蒙官方开发板功能讲解介绍

    鸿蒙官方开发板功能讲解,不同设备的硬件和软件差异比较。
    的头像 发表于 12-01 17:58 4387次阅读

    关于ELF1/ELF1S开发板的音频接口,你需要知道的都在这!

    音乐可以将平凡的画面赋予深厚的意义,那么音频接口就是这个支点;今天就来给大家详细介绍一下ELF1/ELF1S开发板的音频接口。ELF1/ELF1
    的头像 发表于 10-31 14:10 701次阅读
    关于<b class='flag-5'>ELF1</b>/<b class='flag-5'>ELF1</b>S<b class='flag-5'>开发板</b>的音频接口,你需要知道的都在这!

    ELF 1技术|LCD作为终端控制台的方法

    ELF1/ELF1S开发板及显示屏)(ELF1/ELF1S开发板及显示屏)对于嵌入式爱好者来说
    的头像 发表于 12-20 17:11 416次阅读
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|LCD作为终端控制台的方法

    ELF 1技术|在NXP源码基础上适配ELF 1开发板的LED功能

    本次源码适配工作是在NXPi.MX6ULLEVK评估的Linux内核源码(特定版本:Linux-imx_4.1.15)基础上进行的。主要目标是调整功能接口引脚配置,以适应ELF1开发板
    的头像 发表于 12-29 10:04 852次阅读
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|在NXP源码基础上适配<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>开发板</b>的LED<b class='flag-5'>功能</b>

    学习笔记分享|使用C库函数控制ELF 1开发板的LED

    ELF1/ELF1S开发板及显示屏)在嵌入式Linux系统开发中,通过编程控制硬件资源是至关重要的技能之一,今天跟各位小伙伴分享一篇专注于介绍如何使用C库函数控制
    的头像 发表于 01-19 11:12 551次阅读
    学习笔记分享|使用C库函数控制<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>开发板</b>的LED

    ELF 1技术|如何将Python3.6.9移植到开发板

    ELF1开发板的Linux4.1.15eMMC镜像中,默认预装了Python2.7。为了适应更多应用场景,有些小伙伴可能需要移植其他版本的Python,下面将以Python3.6.9为例详细介绍
    的头像 发表于 02-22 14:06 429次阅读
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|如何将Python3.6.9移植到<b class='flag-5'>开发板</b>上

    ELF技术|如何在开发板上实现对Java的支持

    Java作为一种功能强大且广泛应用的编程语言,具有广泛的适应性和实用性。在ELF1开发板上集成Java支持,无疑将赋予嵌入式开发者更广阔的选择空间,今天就为各位小伙伴详细解析如何在
    的头像 发表于 03-13 16:47 504次阅读
    <b class='flag-5'>ELF</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|如何在<b class='flag-5'>开发板</b>上实现对Java的支持

    ElfBoard技术|在NXP源码基础上适配ELF 1开发板的按键功能

    本次源码适配工作是在NXPi.MX6ULLEVK评估的Linux内核源码(特定版本:Linux-imx_4.1.15)基础上进行的。主要目标是调整功能接口引脚配置,以适应ELF1开发板
    的头像 发表于 07-10 09:54 594次阅读
    ElfBoard<b class='flag-5'>技术</b><b class='flag-5'>贴</b>|在NXP源码基础上适配<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>开发板</b>的按键<b class='flag-5'>功能</b>

    ElfBoard技术|如何在ELF 1开发板上搭建流媒体服务器

    流媒体服务器是一种专门用于传输实时数据流的服务器软件,广泛用于视频直播、视频会议、音频播放等应用场景。在嵌入式开发领域,将流媒体服务器部署到开发板上可以实现诸如视频监控、实时数据传输等功能。本文将介绍如何利用nginx和其rtm
    的头像 发表于 08-20 14:48 564次阅读
    ElfBoard<b class='flag-5'>技术</b><b class='flag-5'>贴</b>|如何在<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>开发板</b>上搭建流媒体服务器