LINUX的PHY抽象层——PAL

英文原文参考:
https://www.kernel.org/doc/html/latest/networking/phy.html

中文翻译参考:有关PHY抽象层的总结
https://blog.csdn.net/eydwyz/article/details/124753313

目录

    • 1 前言
    • 2 PHY接口模式
    • 3 尽量使用PHY端的延时而不是MAC或PCB
    • 4 其他方式实现的延时
    • 5 延时不匹配会怎样
    • 6 ZYNQ的MAC可以调整延时吗
    • 7 RGMII版本

1 前言

(RG)MII/electrical interface considerations
简化的千兆位媒体独立接口(RGMII)是一个12引脚电信号接口(RXCLK、RXCTL、RXD[3:0]、TXCLK、TXCTL、TXD[3:0]),使用同步125MHz时钟信号和多条数据线。由于此设计决定,必须在时钟线(RXC或TXC)与数据线之间添加1.5ns至2ns的延迟,以使PHY(时钟接收器)具有足够的设置和保持时间来正确采样数据线。

2 PHY接口模式

PHY库提供不同类型的PHY_INTERFACE_MODE_RGMII *值,以使PHY驱动程序和可选的MAC驱动程序实现所需的延迟。必须从PHY设备本身的角度理解phy_interface_t的值,从而导致以下结果:

PHY_INTERFACE_MODE_RGMII:PHY不负责自己插入任何内部延迟,它假设以太网MAC(如果能够)或PCB走线插入正确的1.5-2ns延迟
PHY_INTERFACE_MODE_RGMII_TXID:PHY应为PHY设备处理的发送数据线(TXD [3:0])插入内部延迟
PHY_INTERFACE_MODE_RGMII_RXID: the PHY should insert an internal delay for the receive data lines (RXD[3:0]) processed by the PHY device
PHY_INTERFACE_MODE_RGMII_ID:PHY应为PHY设备插入发送和接收数据线的内部延迟

3 尽量使用PHY端的延时而不是MAC或PCB

出于以下原因,尽可能使用PHY端RGMII延迟:

PHY设备可以提供亚纳秒的粒度,以确定它们如何允许指定接收器/发送器侧延迟(例如:0.5,1.0,1.5ns). 可能需要这种精度来解决PCB走线长度的差异
PHY器件通常适用于大范围的应用(工业,医疗,汽车…),并且它们在温度/压力/电压范围内提供恒定且可靠的延迟
PHYLIB中的PHY设备驱动程序本质上是可重用的,能够正确配置指定的延迟,使具有类似延迟要求的更多设计能够正确运行
对于PHY无法提供此延迟但是以太网MAC驱动程序能够执行此操作的情况,正确的phy_interface_t值应为PHY_INTERFACE_MODE_RGMII,并且应正确配置以太网MAC驱动程序以提供所需的传输和/或或者从PHY设备的角度接收侧延迟. 相反,如果以太网MAC驱动程序查看phy_interface_t值,对于除PHY_INTERFACE_MODE_RGMII之外的任何其他模式,它应确保禁用MAC级延迟.

4 其他方式实现的延时

如果根据RGMII标准定义的以太网MAC和PHY都不能提供所需的延迟,则可以使用以下几个选项:

一些SoC可能提供一个引脚焊盘/多路复用器/控制器,能够配置一组给定的引脚强度,延迟和电压; 并且可能是插入预期的2ns RGMII延迟的合适选项.
修改PCB设计以包括固定延迟(例如:使用专门设计的蛇形),这可能根本不需要软件配置.

5 延时不匹配会怎样

Common problems with RGMII delay mismatch
当以太网MAC和PHY之间存在RGMII延迟不匹配时,当PHY或MAC对这些信号进行快照以将其转换为逻辑1或0状态时,这很可能导致时钟和数据线信号不稳定并重建正在传输/接收的数据. 典型症状包括:

发送/接收部分工作,并且观察到频繁或偶然的分组丢失
以太网MAC可能会报告一些或所有因FCS / CRC错误而进入的数据包,或者只丢弃它们
切换到较低的速度,例如10 / 100Mbits / sec会使问题消失(因为在这种情况下有足够的设置/保持时间)

6 ZYNQ的MAC可以调整延时吗

参考:
https://adaptivesupport.amd.com/s/question/0D52E00006lLh56SAC/can-the-mac-controller-of-zynq7000-adjust-the-clock-and-data-delay?language=en_US

Q: can the mac controller of zynq7000 adjust the clock and data delay?
Using the mac controler of zynq7000 to directly connect to the mac of another arm through the RGMII interface, but the mac of the opposite arm requires 1.5ns delay for clk and data. Is the zynq7000’s mac side required for data and clock latency? Or can the delay be adjusted?

A: There is not tap delay or clock delay structure wtih GEM. We just meet timing with setup/hold values in the datasheet. It’s expected to be added by PHY or PCB trace.

7 RGMII版本

参考:
UG933 (v1.7.1) August 5, 2014
Zynq-7000 PCB Design Guide, page 65

Ethernet GEM
Depending which RGMII specification the external PHY supports, the TX/RX clocks might
need to be delayed on the PCB relative to their respective data and control lines:

PHYs that support RGMII v1.3
Requires clock to be delayed using longer PCB routes by 1.5 ns – 2.0 ns with respect
to average delay of DATA[3:0] and CTL
Delay skew for DATA[3:0] and CTL should be less than 100 ps including package
time

PHYs that support RGMII v2.0 without internal delays
Requires clock to be delayed using longer PCB routes by 1.5 ns – 2.0 ns with respect
to average delay of DATA[3:0] and CTL
Delay skew for DATA[3:0] and CTL should be less than 100 ps including package
time

PHYs that support RGMII v2.0 with internal delays (RGMII-ID)
Delay skew for DATA[3:0] and CTL to clock delay should be less than ±50 ps
including package time
When using EMIO to connect to the PL, ensure that all clocks (TX and RX) route using
clock-capable I/Os.

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

QEMU:模拟 ARM 大端字节序运行环境

文章目录 1. 前言2. ARM 大小端模拟测试2.1 裸机模拟测试2.1.1 大端模拟测试2.1.2 小端模拟测试 2.2 用户空间模拟测试2.2.1 大端模拟测试2.2.2 小端模拟测试 2.3 结论 3. 参考链接 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失&…

PLC通信协议的转化

在自动化程序设计中,常常需要对通信协议进行相互转化。例如,某个控制器需要通过PLC控制设备的某个部件的运动,但PLC只支持ModbusTCP协议,而控制器只支持CanOpen通讯协议。这时,就需要一个网关进行通信协议的转化。网关…

双击就可以打开vue项目,而不用npm run dev

右键点击桌面或其他位置,选择“新建” -> “快捷方式”,在“对象的位置”处直接输入“npm run dev”,然后下一步 自定义一个快捷方式名称 完成后,桌面会创建一个快捷方式,右键快捷方式选择属性,可以看…

MiniCPM3-4B | 笔记本电脑运行端侧大模型OpenBMB/MiniCPM3-4B-GPTQ-Int4量化版 | PyCharm环境

MiniCPM3-4B,轻松在笔记本电脑上运行大模型? 背景一、选择模型二、模型下载三、模型运行四、总结 背景 2024年9月5日,面壁智能发布了MiniCPM3-4B,面壁的测试结果声称MiniCPM3-4B表现超越 Phi-3.5-mini-instruct 和 GPT-3.5-Turbo-…

proxy认识一下

免责声明:本文仅做分享。 遵守规则,自行跳过。 Proxy 代理技术介绍 1. 代理简介 代理(Proxy) 是指在客户端和目标服务器之间充当中介的设备或应用程序。代理服务器的主要功能是接收客户端的请求,并将这些请求转发给目标服务器&a…

解决Mac下Vscode编译运行C语言程序会自动生成DSYM文件夹的问题

🎉 前言 好久没写C语言了,今天打开Vscode打算写点程序练练手,结果发现一个让我非常苦恼的事情,那就是每次我运行程序的时候,左侧的资源管理器就会生成一大堆的文件,如图: 强迫症犯了&#xff…

模方单体化建模,建模的时候画线突然无法显示垂直线,如何解决?

垂直线对应线都可以在联动软件中设定。 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.1新增自动单体化建模功能,支持一键自动提取房屋结构,平均1栋复杂建筑物只…

机器翻译之数据处理

目录 1.导包 2.读取本地数据 3.定义函数:数据预处理 4.定义函数:词元化 5.统计每句话的长度的分布情况 6. 获取词汇表 7. 截断或者填充文本序列 8.将机器翻译的文本序列转换成小批量tensor 9.加载数据 10.知识点个人理解 1.导包 #导包 import o…

2016年国赛高教杯数学建模A题系泊系统的设计解题全过程文档及程序

2016年国赛高教杯数学建模 A题 系泊系统的设计 近浅海观测网的传输节点由浮标系统、系泊系统和水声通讯系统组成(如图1所示)。某型传输节点的浮标系统可简化为底面直径2m、高2m的圆柱体,浮标的质量为1000kg。系泊系统由钢管、钢桶、重物球、…

生信初学者教程(四):软件

文章目录 RRstudioLinux系统其他软件本书是使用R语言编写的教程,用户需要下载R和RStudio软件用于进行分析。 版权归生信学习者所有,禁止商业和盗版使用,侵权必究 R R语言是一种免费的统计计算和图形化编程语言,是一种用于数据分析和统计建模的强大工具。它具有丰富的统计…

solidwork找不到曲面

如果找不到曲面 则右键找到选项卡,选择曲面

Pybullet 安装过程

Pybullet 安装过程 1. 安装C编译工具2. 安装Pybullet 1. 安装C编译工具 pybullet 需要C编译套件,直接装之前检查下,要不会报缺少某版本MVSC的error,最好的方式是直接下载visual studio,直接按默认的来装。 2. 安装Pybullet 这里…

Mycat中间件

一、案例目标 (1)了解Mycat提供的读写分离功能。 (2)了解MySQL数据库的主从架构。 (3)构建以Mycat为中间件的读写分离数据库集群。 二、案例分析 1.规划节点 使用Mycat作为数据库中间件服务构建读写分…

聚观早报 | 小米三折叠手机专利曝光;李斌谈合肥投资蔚来

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 9月20日消息 小米三折叠手机专利曝光 李斌谈合肥投资蔚来 索尼PS5 Pro包装亮相 新一代Spectacles AR眼镜发布 通…

媒体专访 | CertiK首席安全官李康教授:变化中的加密资产监管环境带来了新机遇

在2024韩国区块链周期间,CertiK首席安全官李康教授接受了韩国媒体E-Today的独家专访。采访中,李康教授探讨了加密资产监管环境的最新动态及其为行业带来的新机遇。同时,他也表达了对加密资产生态系统所面临的安全挑战的担忧,并强调…

无人机视角应急救援(人)数据集

无人机视角应急救援(人),两个数据集 part1,使用DJI Phantom 4A拍摄,分辨率为19201080像素。山区场景,图像中人员姿势分为站立、坐着、躺着、行走、奔跑。共1981张图像6500个不同姿势的标记, par…

低代码平台后端搭建-阶段完结

前言 最近又要开始为跳槽做准备了,发现还是写博客学的效率高点,在总结其他技术栈之前准备先把这个专题小完结一波。在这一篇中我又试着添加了一些实际项目中可能会用到的功能点,用来验证这个平台的扩展性,以及总结一些学过的知识。…

Vue使用代理方式解决跨域问题

1、解决跨域问题 如果 Vue 前端应用请求后端 API 服务器,出现跨域问题(CORS),如下图: 解决方法:在 Vue 项目中,打开 vue.config.js 配置文件,在配置文件中使用代理解决跨域问题。 …

腾讯云ssl证书到期,续期免费证书并部署

首先咱用的免费证书,现在最长90天有效期,今天又到期了,得及时续期避免关联资源访问受限。 我这个证书是关联了一个负载均衡和两个容器服务的(如果您的应用是ngnix或其他的应用那和本文操作可能有点不一样) 所以需要做…

SpringCloud (1) 服务拆解

1 服务拆解和治理 1.1 服务拆解 微服务的核心就是服务拆分,将传统的大项目拆分为多个微型服务(服务或微服务),实现服务之间"高内聚(微服务职责单一),低耦合(微服务功能相对独立)"的目的 (1) 水平(横向)拆分:先搭出拆分框架,比如【公共服务】(比如:common服务,client…