SOC内部集成网络MAC外设+ PHY网络芯片方案:PHY芯片基础知识

2024-04-01 15:52

本文主要是介绍SOC内部集成网络MAC外设+ PHY网络芯片方案:PHY芯片基础知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.  简介

本文简单了解一下 "SOC内部集成网络MAC外设+ PHY网络芯片方案" 这个网络硬件方案中涉及的 PHY网络芯片的基础知识。

二.  PHY芯片基础知识

PHY IEEE 802.3 规定的一个标准模块。

1.  IEEE规定了PHY芯片的前 16个寄存器功能是一样的

前面说了, SOC 可以对 PHY 进行配置或者读取 PHY 相关状态,这个就需要 PHY 内部寄存器去实现了。 PHY 芯片寄存器地址空间为 5 位,地 0~31 32 个寄存器。
IEEE 定义了 0~15 16 个寄存器的功能, 16~31 16 个寄存器由厂 商自行实现。也就是说不管你用的哪个厂家的 PHY 芯片,其中 0~15 16 个寄存器是一模一 样的。仅靠这 16 个寄存器是完全可以驱动起 PHY 芯片的,至少能保证基本的网络数据通信
因此, Linux 内核有通用 PHY 驱动,按道理来讲,不管你使用的哪个厂家的 PHY 芯片,都可以 使用 Linux 的这个通用 PHY 驱动来验证网络工作是否正常。
事实上在实际开发中可能会遇到一 些其他的问题导致 Linux 内核的通用 PHY 驱动工作不正常,这个时候就需要驱动开发人员去调 试了。

2.  PHY芯片可能扩展寄存器地址空间

但是,随着现在的 PHY 芯片性能越来越强大, 32 个寄存器可能满足不了厂商的需求, 因此,很多厂商采用分页技术来扩展寄存器地址空间,以求定义更多的寄存器。
这些多出来的寄 存器可以用于实现厂商特有的一些技术,因此, Linux 内核的通用 PHY 驱动就无法驱动这些特色 功能了,这个时候就需要 PHY 厂商提供相应的驱动源码了。
所以大家也会在 Linux 内核里面看 到很多具体的 PHY 芯片驱动源码。不管你的 PHY 芯片有多少特色功能,按道理来讲, Linux 核的通用 PHY 驱动是绝对可以让你这 PHY 芯片实现基本的网络通信,因此,大家也不用担心更 PHY 芯片以后网络驱动编写是不是会很复杂。
IEEE802.3 协议英文原版已经放到了开发板光盘中,路径为 4 、参考资料 ->802.3 协议英文 原版 _2018 .pdf ,打开此文档,此文档有 5600 页,按照 SECTION 进行分类,一共 8 SECTION
选中 “ 802.3-2018_SECTION2 ” ,找到 “ 22.2.4 Management functions ” 章节,此章节对 PHY 的前 16 个寄存器功能进行了规定,如下图 所示:
关于这 16 个寄存器的内容协议里面也进行了详细的讲解,这里就不分析了。

这篇关于SOC内部集成网络MAC外设+ PHY网络芯片方案:PHY芯片基础知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/867552

相关文章

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S

Python的pandas库基础知识超详细教程

《Python的pandas库基础知识超详细教程》Pandas是Python数据处理核心库,提供Series和DataFrame结构,支持CSV/Excel/SQL等数据源导入及清洗、合并、统计等功能... 目录一、配置环境二、序列和数据表2.1 初始化2.2  获取数值2.3 获取索引2.4 索引取内容2

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

SpringBoot集成WebService(wsdl)实践

《SpringBoot集成WebService(wsdl)实践》文章介绍了SpringBoot项目中通过缓存IWebService接口实现类的泛型入参类型,减少反射调用提升性能的实现方案,包含依赖配置... 目录pom.XML创建入口ApplicationContextUtils.JavaJacksonUt

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s