当前位置: 首页 > news >正文

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.

相关文章:

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或PCB4 其他方式实现…...

优先级队列(堆)

目录 优先级队列 堆的概念 堆的创建 堆的向下调整 堆的插入 完整代码 优先级队列 队列是一种先进先出的数据结构,有些时候操作的数据可能带有优先级,出队列时就需要优先级高的数据先出队列。 在这种情况下,数据结构应该提供两个最基本…...

帧率和丢帧分析理论

一、丢帧问题概述 应用丢帧通常指的是在应用程序的界面绘制过程中,由于某些原因导致界面绘制的帧率下降,从而造成界面卡顿、动画不流畅等问题。以60Hz刷新率为例子,想要达到每秒60帧(即60fps)的流畅体验,每…...

solidwork找不到曲面

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

mac安装JetBtains全家桶新版本时报错:Cannot start the IDE

mac安装JetBtains全家桶新版本时报错:Cannot start the IDE 前言报错信息解决方法 前言 作者使用的是Mac电脑,最近想要更新JetBrains相关工具的软件版本,但是在安装时突然报错,导致安装失败,现在将报错信息以及解决方…...

MVCC机制解析:提升数据库并发性能的关键

MVCC机制解析:提升数据库并发性能的关键 MVCC(Multi-Version Concurrency Control) 多版本并发控制 。 MVCC只在事务隔离级别为读已提交(Read Committed)和可重复读(Repeated Read)下生效。 MVCC是做什么用的 MVCC是为了处理 可重复读 和…...

如何使用Postman搞定带有token认证的接口实战!

现在许多项目都使用jwt来实现用户登录和数据权限,校验过用户的用户名和密码后,会向用户响应一段经过加密的token,在这段token中可能储存了数据权限等,在后期的访问中,需要携带这段token,后台解析这段token才…...

Linux Vim编辑器常用命令

目录 一、命令模式快捷键 二、编辑/输入模式快捷键 三、编辑模式切换到命令模式 四、搜索命令 注:本章内容全部基于Centos7进行操作,查阅本章节内容前请确保您当前所在的Linux系统版本,且具有足够的权限执行操作。 一、命令模式快捷键 二…...

【Android】浅析MVC与MVP

【Android】浅析MVC与MVP 什么是架构? 架构(Architecture)在软件开发中指的是软件系统的整体设计和结构,它描述了系统的高层组织方式,包括系统中各个组件之间的关系、依赖、交互方式,以及这些组件如何协同…...

spark 面试题

spark 面试题 1、spark 任务如何解决第三方依赖 比如机器学习的包,需要在本地安装?--py-files 添加 py、zip、egg 文件不需要在各个节点安装 2、spark 数据倾斜怎么解决 spark 中数据倾斜指的是 shuffle 过程中出现的数据倾斜,主要是由于…...

青柠视频云——如何开启HTTPS服务?

前言 由于青柠视频云的语音对讲会使用到HTTPS服务,这里我们说一下如何申请证书以及如何在实战中部署并且配置使用。 一、证书申请 1、进入控制台 我们拿阿里云的免费个人证书为例,首先登录阿里云,在控制台找到数字证书管理服务,进…...

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

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

vue-使用refs取值,打印出来是个数组??

背景: 经常使用$refs去获取组件实例,一般都是拿到实例对象,这次去取值的时候发现,拿到的竟然是个数组。 原因: 这是vue的特性,自动把v-for里面的ref展开成数组的形式,哪怕你的ref名字是唯一的&#xff01…...

微服务_入门1

文章目录 一、 认识微服务二、 微服务演变2.1、 单体架构2.2、 分布式架构2.3、 微服务2.4、 微服务方案对比 三、 注册中心3.1、 Eureka3.2、 Nacos3.2.1、服务分级存储模型3.2.2、权重配置3.2.3、环境隔离 一、 认识微服务 二、 微服务演变 随着互联网行业的发展,…...

【学习资料】袋中共36个球,红白黑格12个,问能一次抽到3个红4个白5个黑的概率是多少?

1、公式计算 1.1 题目1 袋中共 36 36 36个球, 红 \fcolorbox{red}{#FADADE}{\color{red}{红}} 红​ 白 \fcolorbox{white}{#808080}{\color{white}{白}} 白​ 黑 \fcolorbox{#808080}{#0D0D0D}{\color{#808080}{黑}} 黑​各 12 12 12个,问能一次抽到 3…...

@PathVariable,@RequestParam,@RequestBody注解,springboot与前端请求之间的数据类型转换

前端数据与springboot java数据类型转换 springboot&mybatis中数组和字符串数据类型的转换-CSDN博客中曾经提到,在Spring Boot中,通过URL传参、payload中的key-value形式或json形式,将前端数据以字符串格式发送到后端,后端We…...

在Python中优雅地打开和操作RDS

在Python中优雅地打开和操作RDS 随着数据存储需求的不断增长,关系数据库服务(Relational Database Service, RDS)成为了许多企业首选的数据存储方式。那么,在Python中如何轻松地与RDS进行交互呢?以下是一份详尽的指南…...

.whl文件下载及pip安装

以安装torch_sparse库为例 一、找到自己需要的版本,点击下载。 去GitHub的pyg-team主页中找到pytorch-geometric包。网址如下: pyg-team/pytorch_geometric​github.com/pyg-team/pytorch_geometric 然后点击如图中Additional Libraries位置的here&am…...

望繁信科技受邀出席ACS2023,为汽车行业数智化护航添翼

2023年5月25-26日,ACS2023第七届中国汽车数字科技峰会在上海成功举行。此次峰会汇聚了众多汽车领域的顶级专家、产业链代表及企业高管,共同探讨当今汽车产业的转型与未来发展趋势。 作为唯一受邀的流程挖掘厂商代表,望繁信科技携最新行业优势…...

基于 C语言的 Modbus RTU CRC 校验程序

一、CRC校验原理 Modbus RTU是一种常用于工业设备通信的协议,它基于串行通信,如RS-232或RS-485。在Modbus RTU中,CRC(循环冗余校验)是一种常用的错误检测机制,用于确保数据在传输过程中的完整性和准确性。 …...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

基础测试工具使用经验

背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

网络编程(UDP编程)

思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...

快刀集(1): 一刀斩断视频片头广告

一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...