硬件阻抗不匹配导致的RGMII通信异常问题

这篇具有很好参考价值的文章主要介绍了硬件阻抗不匹配导致的RGMII通信异常问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 问题背景

最近在开发的过程中遇到了一个关于RGMII通信非常少见的问题,通过与硬件同事将近一个月的排查,终于定位到了问题,现在对问题的排查过程大致做一个复盘记录。我们的产品采用了NXP的SJA1105Q系列交换机,与交换机相连的PHY芯片采用了MARVELL的88Q2120千兆车载PHY。这个网络方案在我们其他产品开发中已经算得上应用的比较成熟的方案了,但是在这次的开发中出现了交换机到phy能够ping通,一旦将产品接上思博伦打流测试仪进行打流测试,思博伦与88Q2120相连的port就会出现反复 link down  然后link up的现象,并且此时双向速率只有不到1.5G,88Q2120的RX方向出现了大量丢包。

2 问题排查

rgmii加switch才正常,linux,驱动开发,网络协议,嵌入式硬件

通过打流测试判定目前异常通路为:千兆PHY----SJA1105----88Q2120

此时通过与硬件工程师讨论,大致得出了以下几个判断:

  1. phy是一个被动芯片,是内核对交换机配置存在问题,导致交换机MAC端发出的125M时钟或TX信号不稳定导致phy出现了速率不稳定以及link down
  2. phy 周围的包括25M晶振和其他硬件信号出现异常,导致PHY的工作状态异常

针对第一个判断:

我又重新检查了内核关于交换机端口的配置,并且确保交换机配置已经写进去,spi信号正常。接下来在硬件的协助下又对MAC到phy的时钟以及tx 信号进行了排查,均未发现异常。

针对第二个判断:

硬件同事将phy周围的晶振信号以及电流逐一进行了排查,可能异常的都更换了,但是仍然没有任何效果。

此时,针对上面两个判断基本都pass了。

后面通过和硬件再次沟通,从交换机MAC到PHY的RGMII是采用了等长走线,并且,PHY端的RXC=1,TX和RX均配置了延时,同样的配置在其他板子上都是正常的。后来找到了一块其他产品正常的板子,硬件量取PHY周围的信号进行对比,也并未发现问题。此时我便开始有点怀疑是否是这批板子在RGMII走线部分打板质量有问题?但并没有直接的证据证明,因此继续排查。

后来硬件将SJA1105Q系列换成了SJA1105T交换机,此时发现,通信竟然正常了,但这个现象也更加让我疑惑了,为什么更换了交换机就可以呢?难道RGMII走线没有问题?难道真实交换机MAC配置存在问题?针对这一连串突入起来的问号开始查阅手册资料,再次检查代码。

rgmii加switch才正常,linux,驱动开发,网络协议,嵌入式硬件通过对比SJA1105手册发现,SJA1105Q为SJA1105T的升级版本,增强功能之一就是SJA1105Q遵循RGMII V2.0规范时序,而SJA1105T遵循RGMII V1.3时序。

RGMII V1.3规范需要外部延时,通过PCB走线实现或对端设备支持配置延时实现;

RGMII V2.0规范较V1.3增加了内部配置时钟延时的功能。

为了验证上面的疑惑,硬件将Phy端的RXC下拉改为上拉,此时phy端tx延时=0,rx延时仍然保留。软件通过操作交换机寄存器对MAC端配置tx延时,经过多个不断的调试,发现tx延时2.2ns左右时,通过硬件量取波形发现基本为最佳延时。

rgmii加switch才正常,linux,驱动开发,网络协议,嵌入式硬件

但此时通过iperf 测试速率发现,从交换机到phy的上行平均速率虽然从之前的几十Mbits/s提升到了600-700Mbits/s,但仍然不正常,并且伴随着采样速率起伏过大,不稳定的现象。

rgmii加switch才正常,linux,驱动开发,网络协议,嵌入式硬件

保持在2.2ns延时情况下,随后我又对交换机打流的两个port进行了流量统计,读取了交换机关于port丢帧以及crc error的寄存器,发现打流的两个port都tx 和rx 方向都没有出现大量丢包的现象,状态寄存器也没有报错。因此基本排除交换机端口转发丢包CRC报错导致RGMII速率不稳定。

rgmii加switch才正常,linux,驱动开发,网络协议,嵌入式硬件

排除了以上mac配置的问题,再次对板子进行打流测试,发现此时速率已经可以提升到1.8G左右,但是仍然会伴随link down以及rx方向丢包的问题。此时读取phy的寄存器,发现phy仍然报rx线上错误以及link down。

 后来,硬件同事又将这块异常的板子与另外一块正常的板子进行交叉飞线,即将问题板子的phy飞到正常板子的交换机上,将正常板子的phy飞到问题板子的交换机上,并且为了彻底排除内核注册phy device时对phy寄存器操作导致的异常,将SOC到phy的mdio也断掉了,最终通过打流测试两种情况均正常。

到目前为止已经基本验证,驱动方面对交换机配置是没有问题的。后来硬件尝试在同一块板子上将原来在port4的88q2120飞线到port2,发现link down 以及速率异常的问题也没有了。至此,可以确定问题根源在于交换机port4至88q2120这段RGMII上。后续还原单板,更换RGMII线上串阻测试。

硬件去除飞线后,还原板上33Ω串阻,打流复现link down问题,速率1.8G-1.9G。将12个串阻由33Ω更换为0Ω,link down问题依旧存在,且速率降为1.4G。再将阻值更换为22Ω,link down问题依旧存在,但速率由1.4G升至1.6G。考虑是否阻值较大,信号质量较好?于是将阻值更换100Ω,打流10秒钟发现思博伦不再闪红灯,速率达到2G,且不丢包。

3 问题总结

 阻抗匹配是为了防止信号反射的。将终端反射回来的信号吸收,防止在源端再次发生发射。

具体可以参考:高速数字信号线上添加33欧电阻的作用_ArthurBruin的博客-CSDN博客_串联33欧姆电阻作用

大致总结一下问题排查的过程,从一开始怀疑phy的状态异常,对phy进行排查,到后来对mac进行排查,一直都很少怀疑真的是中间的RGMII通路某些部分出了问题,并且从飞线发现通信正常的时候,就应该怀疑大概率就是阻抗的问题了,飞线线阻要大于PCB走线线阻。通过分享这次记录,希望能给各位开发者在解决此问题时能有所帮助。文章来源地址https://www.toymoban.com/news/detail-792291.html

到了这里,关于硬件阻抗不匹配导致的RGMII通信异常问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 以太网知识-GMII / RGMII接口

    今天和海翎光电的小编一起分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时小编也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下的连接方法。 GMII 接口分析 GMII接口提供了8位数据通道,125MHz的时钟速率,从而1000Mbps的数据传输速率。下图定义

    2024年02月08日
    浏览(40)
  • MII、 RMII、 GMII、 RGMII 接口介绍

    1、RGMII 接口概要 以太网的通信离不开物理层 PHY 芯片的支持,以太网 MAC 和 PHY 之间有一个接口,常用的接口有MII、 RMII、 GMII、 RGMII 等。 MII(Medium Independent Interface, 媒体独立接口): MII 支持 10Mbps 和 100Mbps 的操作,数据位宽为 4 位 在 100Mbps 传输速率下,时钟频率为 25Mhz

    2024年02月10日
    浏览(42)
  • 深度理解 RGMII (包含Linux和realtek)

    目录 RGMII的工作范围 RGMII不同带宽下的波形 RGMII有主从模式吗? Linux中Link up和RGMII的什么有关?

    2023年04月20日
    浏览(30)
  • PHY RGMII Interface Timing注意事项

    RGMII接口是以太网PHY和以太网MAC之间的物理连接。如果使用以太网FMC, PHY是Marvell 88E151x,以太网MAC在FPGA内部。RGMII接口是DDR (dual data rate)接口,由FPGA到PHY的发送路径和PHY到FPGA的接收路径组成。两个路径都有一个独立的时钟,4个数据信号和一个控制信号。 RGMII标准规定数据和时

    2024年04月12日
    浏览(40)
  • FPGA优质开源项目 - UDP RGMII千兆以太网

    本文介绍一个FPGA开源项目:UDP RGMII千兆以太网通信。该项目在我之前的工作中主要是用于FPGA和电脑端之间进行图像数据传输。本文简要介绍一下该项目的千兆以太网通信方案、以太网IP核的使用以及Vivado工程源代码结构。 Vivado 的 Tri Mode Ethernet MAC IP核需要付费才能使用,因

    2024年02月14日
    浏览(77)
  • rk3568 RGMII KSZ8795 MAC TO MAC

    RK3568与KSZ8795交换机芯片连接,直接MAC TO MAC方式,这样一下就扩展会4路网口,应该场合比较多,移植过程如下: 参考《Rockchip_Developer_Guide_Linux_MAC_TO_MAC_CN.pdf》 《rockchip RGMII+mv88e6390 管理型交换机功能调试及vlan定制+Mac绑定_marvel 88e6390分配ip-CSDN博客》 《Linux内核(五) [ RK3568

    2024年02月04日
    浏览(51)
  • 基于FPGA的GMII与RGMII接口相互转换(包含源工程文件)

      这段时间通过FPGA把ARP、ICMP、UDP协议全部通过FPGA实现了一遍,本来本文打算记录一下arp协议的,但在此之前应该先解决RGMII接口与GMII接口的转换问题。   经过前文讲解,开发板上使用的以太网PHY芯片是88R1518,原理图如下所示,留给用户的是RGMII双沿传输数据,时钟频率

    2024年03月18日
    浏览(85)
  • 基于FPGA的UDP协议栈设计第七章_RGMII模块设计

    该部分内容主要需要掌握各种IO和时钟相关的原语使用 以太网的通信离不开PHY芯片,PHY芯片实现实现了RGMII接口到网口(RJ45)的转换, RGMII接口就是PHY芯片和FPGA之间的接口。 GMII :GMII(Gigabit Media Independant Interface),千兆MII接口。GMII采用8位接口数据,工作时钟125MHz,因此传

    2024年04月15日
    浏览(79)
  • 基于FPGA 以太网gmii_to_rgmii模块编写 附源码

    笔者使用的开发板是米联客zynq UitraScale+ xczu4ev-sfvc784-2-i开发板进行测试 由于米联客协议族源码不开源,自己写了一个简易的以太网接口转换模块只支持1000M速率。 (1)接收时序(PHYFPGA) RXC 的上下边沿与 RXD 和 RX_CTL 信号对齐,相位相同。(非延时模式) RXC 的上下边沿与

    2024年02月06日
    浏览(40)
  • 千兆以太网芯片88E1111 RGMII模式的FPGA驱动实现

    千兆以太网芯片88E1111 RGMII模式的FPGA驱动实现 在网络应用领域,千兆以太网已经成为主流,而88E1111作为一款先进的千兆以太网芯片,其驱动实现对于网络设备的性能和稳定性有着至关重要的影响。本文将介绍在RGMII模式下,如何实现88E1111芯片在FPGA上的驱动。 一、准备工作

    2024年01月22日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包