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

PHY与MAC接口

最近把本科学过的计算机网络过了一遍,当时学习的时候一头雾水,完全不知道学这个有什么用,随着周围人在不同领域实习,以及在第一段实习与同事的交流,现在才算是真的对通信这个领域有点理解,但还没有真正的入门,学习的道路任重而道远。 计算机网络的五层架构中,对于通信领域往往到运输层,再往上一般就是应用开发者的领域,应用开发者直接从传输层的接口开始写一些业务,这些应用开发者是离用户使用者最近的,也是最火的,岗位最多的,周围几乎所有人都在找后端的实习。但难度也可想而知,运气+实力缺一不可。扯远了,下份实习是和通信相关的硬件岗,对这些东西的理解还是在理论上没有实践,现在了解一些电路,做一些自认为的准备吧hh 以太网接口电路主要由MAC和PHY两大部分构成,分别对应数据链路层和物理层,现在这两层都集中在IC的内部了。

1.MAC层

在计网中学过,MAC层负责封装帧、控制介质访问、校验错误;而目标MAC地址是通过ARP协议的广播查询机制,从目标IP地址动态解析得到,并缓存在系统的ARP表中供后续通信使用。但其实以太网数据链路层其实包含MAC(介质访问控制)子层和LLC(逻辑链路控制)子层。一块以太网卡MAC芯片的作用不但要实现MAC子层和LLC子层的功能,还要提供符合规范的PCI界面以实现和主机的数据交换。“PCI界面” 简单来说,它就是指网卡与计算机主板之间的物理和电气接口。现在一般都是PCIe总线连接CPU和内存。

一个完整的网卡

  • 面向网络侧:它要和PHY芯片(物理层)打交道,用MII/RGMII接口,处理的是以太网帧。

  • 面向主机侧:它要和电脑主板打交道,用PCI/PCIe接口,处理的是内存地址、DMA传输、中断请求。

一个完整的MAC结构如下图
image
2.PHY层
 
PHY(物理接口收发器)是连接数字世界(芯片/逻辑电路)与模拟世界(网线/光纤/电磁波)的“模数转换翻译官”,它负责把MAC层送来的数字比特流变成物理介质上传输的电信号/光信号,反过来也做相反的工作。而GTX/GTH IP核 就是FPGA厂商提供的一个 “PHY层解决方案”它把PHY芯片复杂的模拟电路和高速数字逻辑封装成一个在FPGA逻辑中可以直接调用的“硬核模块”。开发者通过配置这个IP核,就能让FPGA直接处理从几Gbps到几十Gbps的高速串行信号,而无需外接独立的PHY芯片
一个PHY结构如下图
image
3.MAC与PHY互联接口
MII(媒体独立接口)是IEEE802.3 规定、MAC 与 PHY 互连的标准接口,兼容 10M/100M 以太网,数据位宽 4bit;分MII 数据通道、SMI 管理通道(MDC+MDIO)两大总线。
image
上面的接口有一些缺点:引脚过多,多口交换机布线臃肿,这催生各类简化接口。

百兆精简:RMII(精简 MII,10/100M)

千兆标准:GMII(千兆 MII,10/100/1000M)

千兆精简:RGMII(精简 GMII)

统一管理接口:SMI (MDIO/MDC)

所有 MII/RMII/GMII/RGMII 架构标配 MDIO 两线管理总线,不受数据接口类型影响:MAC(STA 主机)通过 MDC+MDIO 读写 PHY 寄存器,读链路速率 / 双工 / 链路状态,写配置自协商、流控、端口开关,全系列接口通用。
4.MAC与PHY互联逻辑

1. 发送数据流(上层数据→网线)

CPU 把 IP 数据包写入内存→DMA 自动搬运数据送入 MAC→MAC 封装以太网帧(加 MAC 头 + CRC)→通过 MII/RMII 等并行数据口发给 PHY→PHY 数字转模拟、编码调制→经网变从网线发出。

2. 接收数据流(网线→上层 CPU)

网线模拟电信号→PHY 解调、模数转换、提取时钟→并行数字数据送入 MAC→MAC 校验 CRC、过滤无效帧→合法数据经 DMA 存入系统内存→收帧完成触发中断,CPU 读取报文递交上层协议栈。

3. 配置 & 状态交互(SMI/MDIO 管理链路,全程独立于数据通路)

上电后,MAC 通过 MDIO 总线循环访问 PHY 寄存器:
 
①写寄存器:配置 PHY 强制速率 / 关闭自协商、开启 / 关闭流控;
 
②读寄存器:实时查询网线插拔、协商速率、全双工状态、PHY 故障信息,软件驱动根据状态调整 MAC 工作模式。
 
最后总结一下
MAC 负责数据包逻辑规则(组帧、校验、寻址),PHY 负责物理电气信号(数模转换、网线驱动);MII 系列接口实现二者高速数据互通,MDIO 实现二者寄存器配置与状态管控,三部分配合完成以太网完整通信。
对于一些涉及到比如GTX等实现物理层的IP核,阅读完一些文档后还是一知半解,我的理解是伴随着总线IP核等软件就配置好了,不需要实现细节,只有自己想通过这个模块来实现一个自定义的协议才需要配置,希望后续可以通过实战来解决这个疑问。
 
 
 
 
 
 
 
 
http://www.rkmt.cn/news/1462106.html

相关文章:

  • 2026 北京闲置钻石、钻戒变现指南,亲测这家体验超好 - 奢侈品回收测评
  • 从汽车悬架到手机防抖:阻尼振动微分方程在工程中的那些实用案例
  • 2026 年 6 月证券刷题避坑指南:免费高效工具实测全解 - 讲清楚了
  • 2026 GEO 技术实战:从原理到落地,中小企业 AI 获客全栈指南
  • 2026年江西省PMP培训机构哪家好?官方授权R.E.P.报考指南 - 众智商学院课程中心
  • 终极窗口尺寸控制方案:如何强制调整任意Windows窗口大小
  • 3分钟掌握ncmdumpGUI:解锁网易云音乐NCM加密文件的智能解决方案
  • 2026年AI编程工具深度评测与选型指南
  • 低查重AI写教材指南!借助AI工具,轻松搞定教材写作!
  • openSpec 管变更,让需求、边界、规则、经验被清楚表达
  • Arduino双足机器人DIY:从机械设计到蓝牙控制跳舞全流程解析
  • 鸣潮自动化工具:终极解放双手的智能游戏助手指南 [特殊字符]
  • 阿里云Web应用开发部署全流程详解
  • 终极免费DeepL翻译API解决方案:3分钟搭建专业翻译服务
  • 如何用League Akari成为英雄联盟效率大师:3个核心功能改变你的游戏体验
  • 多语言一站式开发:Eclipse 2025 最新版本安装配置详细教程
  • 2026年最新追踪:AI面试工具TOP榜单与实战选型指南
  • 告别复杂命令行:N_m3u8DL-CLI-SimpleG让你的M3U8下载变简单
  • ncmdumpGUI:网易云音乐NCM文件一键解密终极指南
  • AI Agent开发火爆!手把手教你打造极简智能体,小白也能快速上手!
  • ControlNet-v1.1 FP16模型终极指南:从选择到实战的完整解决方案
  • Sublime Text3 离线可用的前端开发插件包:含Emmet、Less编译、Bootstrap补全与语法增强
  • 告别熬夜救火!运维转网安,是普通人最优翻身选择
  • 2026年,如何挑选口碑炸裂的GEO优化公司? - 品牌测评鉴赏家
  • 基于Arduino与Makeblock的校园智能配送机器人模型全解析
  • 2026年国内镁质风管/螺旋风管/排风管道厂家推荐:盘点优质复合风管厂家有哪些?双面彩钢玻纤复合风管厂商筛选要点 - 栗子测评
  • Oracle 11g + JDK 8 项目实战:避开Maven依赖坑,快速配置ojdbc6驱动
  • DeepSeek V4实测:不炸裂的模型如何重塑AI工程化落地
  • 为什么Python金融数据获取如此复杂?AKShare如何用一行代码解决你的量化投资难题
  • 终极指南:如何用开源工具彻底解决Dell G15笔记本过热问题