MDIO C22协议访问MMD寄存器

news2024/9/24 11:33:13

以太网PHY芯片中SMI(Serial Management Interface)串行管理接口,也称MDIO(Management Data Input/Output),通常作为MII管理接口(MII Management Interface)。有两根线,分别为双向的MDIO和单向的MDC,用于以太网设备中上层对物理层(PHY)的管理。

MDIO接口有两种协议:C22(Clause 22)和C45(Clause 45)。C22由最初是IEEE RFC802.3定义的,最初的定义中,一个单独的MDIO接口可以访问32个不同的PHY设备中的32个通用寄存器,这些寄存器提供状态和控制信息。

为了满足以太网设备的普及发展,在IEEE 802.3ae 定义了C45可以访问,满足更多的扩展寄存器访问。

MDC频率范围为2.5MHz至50MHz,MDIO的C22和C45协议定义这里不赘述,想学习的同学可以通过虚拟逻辑分析仪(Kinggs)抓取波形进行分析,如下是C45抓取的一个波形情况。
在这里插入图片描述


通用标准寄存器

一共32个PHY寄存器,IEEE802.3 定义了地址为0-15 这16个寄存器的功能,地址16-31的寄存器留给芯片制造商自由定义。这些寄存器通常能被C22直接被访问到。
在这里插入图片描述


MMD扩展寄存器

由于phy寄存器越来越多,32个标准寄存器已不满足厂家需求,PHY 芯片采用分页技术来扩展地址空间以定义更多的寄存器,这些通常由C45能直接访问到,因为C45的协议里会携带DEVAD(MMD设备号)。寄存器的定义不通厂家也有区别,需要查看datasheet。
新标准定义了MMD的Device号值所代表不同类型寄存器,不限于如下。
在这里插入图片描述


C22 方式访问MMD扩展寄存器

这是本文的重点。如果C45协议出现异常,MMD扩展寄存器也可以通过C22协议访问到,换句话说,能被间接访问到。
通用寄存器里,13和14号就是实现C22间接访问MMD寄存器的控制和数据寄存器。先通过配置reg13,给出控制信息和device addr,再配置reg14给出响应数据/地址。
在这里插入图片描述
在这里插入图片描述

linux内核里的实现

如何间接访问,我们先看下linux内核代码有这部分的接口实现。

文件路径:drivers/net/phy/phy-core.c
__phy_read_mmd、__phy_write_mmd:是封装后的phy读写接口,devad即为MMD设备号。
__mdiobus_write、__mdiobus_read:为底层的C22 读写phy接口。

#define MII_MMD_CTRL        0x0d    /* MMD Access Control Register */
#define MII_MMD_DATA        0x0e    /* MMD Access Data Register */
int __phy_write_mmd(struct phy_device *phydev, int devad, u32 regnum, u16 val)
{
   
    int ret;

    if (regnum > 

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

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

相关文章

LVX+keepalived群集

Keepalived 双 机 热 备 基 础 知 识 Keepalived 起初是专门针对LVS 设计的一款强大的辅助工具,主要用来提供故障切换(Failover) 和健康检查(Health Checking) 功能——判断 LVS负载调度器、节点服务器的可用性,当master 主机出现故障及时切换到b…

MacOS Anaconda 安装教程及虚拟环境创建

一、下载 Anaconda 1、Anaconda 官网 2、清华大学开源软件镜像站 点 Date 按时间排序,根据自己 Mac 芯片类型下载对应最新版本的。 Intel 芯片的下载 x86_64 版本的Apple m1 芯片的下载 arm64 版本的 二、安装 Anaconda 将安装包下载到本地后,双击安…

人工智能|人工智能教育的发展现状及趋势

智能的热潮正席卷全球。国家在人工智能领域展开战略布局,人工智能人才成为国家急需的高层次技术人才。据领英发布的《全球 Al 领域人才报告》显示,国内人工智能人才缺口达到 500 多万。 毫无疑问,人工智能将不可阻挡地影响所有产业。给自己一…

随手记1.0

easyexcel多级表头导出各级设置样式(继承HorizontalCellStyleStrategy实现) package com.example.wxmessage.entity;import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.write.handler.context.CellWriteHandlerContext;…

探索 Amazon Q Developer 那些有趣的功能

我在 McKinsey 2024 年 5 月 30 日提供的一项名为“The state of AI in early 2024-Gen AI adoption spikes and starts to generate value”的调研中读到这么一句话:人工智能在组织中最常见的两个使用职能是:“市场营销和销售”以及“产品和服务开发”&…

vue3-ts:husky + prettier / 代码格式化工具

一、Prettier简介 Prettier是一个流行的代码格式化工具,它的主要作用是帮助开发者自动规范化代码的格式,提高代码的可读性和一致性。Prettier通过解析代码并使用自己的规则重新打印它,以确保代码风格的一致性和符合预设的格式化标准。 二、…

计网学习(四)——网络层

一、网际协议IP 互联网采用的设计思路:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务”,即IP数据报在网络中传输时是不可靠的服务,可能会出现数据丢失等情况TCP/IP体系中网络层常常被称为网际层或IP层与IP协议一起使用…

35分钟教你从0到1,水出SCI(精品),学术裁缝必修课_来自B站水论文的程序猿

系列文章目录 文章目录 系列文章目录一、抽象理解二、具体做法1、什么是Baseline(基础实验)2、怎么和导师说3、怎么做压低baseline 4、怎么写 一、抽象理解 一篇论文A:西红柿炒鸡蛋 一篇论文B:芹菜炒肉 你就可以:西红柿炒肉 二、具体做法 1、什么是Baseline(基础…

视频压缩文件太大了怎么缩小?6个视频压缩技巧,速度收藏起来!

高清视频文件,尤其是那些以 1080p 和 720p 清晰度为特征的视频,通常都拥有相当大的体积,会占据大量计算机存储空间。因此,为了更好地将它们进行分享和存储,您可能需要对它们进行压缩,以减小它们的尺寸。然而…

【秋招笔试】2024-08-07-YT游戏(研发岗)-三语言题解(CPP/Python/Java)

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 本次的题目比较典,…

资料分析6-其他类

一、拉动增长、增量贡献率和容斥问题 1. 拉动增长 拉动增长部分增量/整体前期,即x/A 例题1(2018 年陕西):2017 年,我国电信业务收入12620 亿元,比上年增长6.4%,增速同比提高1 个百分点。……2…

递归:计算思维的核心

引言 人类对这个世界的认识是从特例到普遍,从具体到抽象,从简单到复杂的,是一个递推(Iterative)的过程。这种人类固有的认知与思维方式令我们可以轻易的理解具体的事物,但同时却限制了我们的抽象能力和大局…

【电控笔记z6】无感文献综述

高频注入 afabeta注入 lq/ld越大统好 凸极性大反电动势ZVCD pwm电压向量为主 增加动态特性 设计隆博戈估测器 高频注入: lq/ld比较大 运用在低转速 到高速的时候 , 切换到model_base的方法进行反电动势侦测 smo :速度无法很低 有个极限 受杂讯影响大 高速时候用 总结 用spm …

ArrayList集合源码解读(一)

ArrayList集合源码解读(一) 前言 笔者在阅读网上众多的ArrayList源码解读时发现他们都是以1.8版本的来进行讲解,并且很多都是囫囵吞枣,看的人一脸懵逼。 其实现在的很多公司都换成了17版本的jdk。笔者决定自己写一个ArrayList集…

网工内推 | 国企运维工程师,华为认证优先,最高年薪20w

01 上海陆家嘴物业管理有限公司 🔷招聘岗位:IT运维工程师 🔷岗位职责: 1、负责对公司软、硬件系统、周边设备、桌面系统、服务器、网络基础环境运行维护、故障排除。 2、负责对各部门软件操作、网络安全进行检查、指导。 3、负责…

14.Lambda表达式、可变参数

一.Lambda表达式 1.1 函数式接口 1.什么是函数式接口 在Java中,函数式接口是指只包含单个抽象方法的接口,但它也可以有其他方法,例如默认方法和静态方法。函数式接口可以使用Lambda表达式或方法引用来创建该接口的实例。Java 8引入了函数式…

分享一个基于SpringBoot的大学生创新能力培养平台Java(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

七夕表白代码包

目录 1.像素爱心代码 2.心动爱心代码 3.问答样式代码 1.像素爱心代码 今年的最火的当然是像素风&#xff0c;一个一个小方块拼成的爱心超级可爱。 (1)桌面新建一个文本档.txt (2)输入以下代码,可以直接复制 <!DOCTYPE html><html><head><meta chars…

Vue项目通过宝塔部署之后,页面刷新后浏览器404页面

目录 报错 解决方法 报错 将vue项目在宝塔上部署&#xff0c; 当项目挂载到服务器上去&#xff0c;进行浏览器的访问&#xff0c;是能正常访问的&#xff0c;可是当我们在浏览器上进行刷新之后&#xff0c;浏览器会给我们返回一个404的页面。 解决方法 &#xff08;1&#…

如何利用 LNMP 搭建 WordPress 站点

作者 乐维社区&#xff08;forum.lwops.cn&#xff09; 许远 在这个信息爆炸的时代&#xff0c;拥有一个能够迅速传达信息、展示个性、并能够与世界互动的在线平台&#xff0c;已成为企业和个人的基本需求。WordPress&#xff0c;以其无与伦比的易用性和强大的扩展性&#xff0…