IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 查以太网时序问题 -> 正文阅读

[嵌入式]查以太网时序问题

序:

当前出现的以太网问题,比较典型,防止后面再踩坑,所以作个记录。以太网驱动和查问题过程都是我同事陈x(大佬级)一手搞定,很荣幸跟着一起讨论,填补了一下自己的知识盲区,拿起我的小本本,赶紧记下来。

后面从五个小点来进行说明:问题简述,实测,分析,总结、感谢

注:

1.下面的图由于是前期测,后面再分析的,所以图只能作为定性分析,当时测试的时候没有考虑在发送端还是接收端测试才是更准确的。

2.实际测试应为:PHY->MAC,应该在MAC端测量,? ?MAC->PHY应该在PHY端测量,原因是减少线路和反射的影响,这样更加准确,

一、问题简述

芯片使用ZYNQ7000,PHY之前使用的是9031,后由于芯片缺货,改为了9021,这一更换就出问题了,数据丢包非常严重,由1000M改为了100M,涛声依旧。以前的老产品,芯片是TI的AM335X搭配9021,100M速度,很稳定,这就不得不查一下原因了。

二、实测(上示波器+文档截图)

1.一代产品,TI AM335X + 9021

1.1 MAC->PHY,一条时钟线 + 一条数据线:

100M是时钟上升沿采集数据,这波形很6.再一张远观的。

时钟上升沿基本在数据的中间位置,

1.2 看一下AM335X的说明:

?芯片在发出数据时,对时序作了控制,当然需要注意,RGMII的版本需要在1.3-2.0之间

1.3 PHY->MAC,一条时钟线 + 一条数据线:

这是PHY发出来的,时钟线和数据线就没有作处理,这就需要软件搞定或在PCB布线上去搞定了。不过AM335X可以识别到这个信号,猜测这个TI芯片内部做了skew,后面再去研究一下这个芯片的文档(有点不严谨,后期再补证明,知识盲区啊)。

2.二代产品,Xilinx?zynq7000?+ 9031

2.1 MAC->PHY:

?这张图是在公司做样机的时候,1000M时测量的,时钟比数据线延后了1.08ns, 高温测试时有丢包,后面通过修改了PHY的skew解决了问题。

2.2 MAC->PHY:

?1000M时测量的,时钟线比数据线延后了1.16ns,

通过上面的图,猜测是在PCB上做了延时处理,这个当时没有向硬件大佬讨教,错失良机。但不影响后面的分析。

3.改版,Xilinx?zynq7000?+ 9021

在100M模式下测试的结果

3.1 MAC->PHY:

时钟线与数据线没有延时,导致采样不准,数据丢包

3.2 PHY->MAC:

?

?时钟线与数据线没有延时,导致采样不准,数据丢包

三、分析

本分析过程,非常感谢同事陈x提供的相当硬核的证据,我赶紧拿小本本记下了:

1.Candence的一个技术手册(陈大佬很猛)

?手册名:《RGMII_DataSheet.pdf》

大体是这样的:RGMII在1.3版本,需要有一个1.5-2ns的时钟延时,需要在PCB上布线来实现,但在2.0的版本中,芯片就提供了可以选择延时的功能,在芯片中配置实现,可以参考GRMII-ID,

这里有一个概念:RGMII有版本之分,必定是国际标准,需要实现RGMII接口的OEM商需要按不同版本来实现相应功能,可能是这个原因吧

2.瑞萨的资料

?手册名:《RZG Series, 2nd Generation Guide to Using RGMII in Making an Ethernet-IF Connection.pdf》

这里就将RGMII在名字上就作了明确的区分:Original RGMII和RGMII-ID, 分别对应RGMII 1.3和RGMII 2.0.? ?我晕了,但你们不能。

这里也提到了,Original RGMII需要通过PCB设计来实现延时,RGMII-ID可通过MAC的配置来实现。

3.项目分析

当前项目比较麻烦,主要是由于芯片短缺,不确定使用何种芯片,硬件设计上,管脚上适应了KSZ9031,KSZ9021,KSZ9131.? (等国家再强大了,就不会被卡脖子了,所以要支持国产啊!!!)

3.1 主芯片zynq7000?

zynq7000使用的是RGMII V2.0,

?来源于:《Ug585.pdf》

可是这个在芯片里,没法配置skew,这就很纳闷儿啊,这也要阉割一下,哭了!!!!!下面就看下不能修改的证据:

停止哭,?我们继续............

?3.2?9031会自己添加延时,(开心的笑了)

?9031使用的2.0版本的RGMII,看一下他是有多么的智能,

?都知道我们搞嵌入式的苦,人人都这样做,那做产品就容易多了,多为用户考虑啊!值得国人学习。可惜9031买不到了,还是得用9021,又得哭了.......

3.3 KSZ9021 V1.3的GRMII

?不用说了,延时得通过硬件绕线处理了,但有个小秘密,这个芯片里也可以配置skew,很良心啊。

五,总结

1.RGMII有两个版本,1.3和2.0,也可以分别叫:Orignal RGMII和RGMII-ID

2.常理是1.3的没有配置延时的功能,2.0的有配置时钟延时的功能。

3.非常理,zynq7000,RGMII v2.0,但延时功能不可调,? KSZ9021 V1.3,但延时功能也支持可调,对zynq7000说,需要改正。? 给KSZ9021点赞。

4.时序调整,一方面通过调整RGMII的SKEW寄存器实现,? 一方面通过PCB绕线或串电阻实现时钟和数据的相位错开。

六、感谢

感谢陈大佬(不便透露真是姓名)。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:23:18  更:2022-05-24 18:25:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:24:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码