RK3568平台 有线以太网接口之MAC芯片与PHY芯片

一.平台网络网络通路

平台有线以太网通路:有线以太网一般插入的是RJ45 座要与 PHY 芯片(RTL8306M)连接在一起,但是中间需要一个网络变压器,网络变压器经过模数转换后到达网卡(RTL8111)转换为帧数据后到达SOC。

二.网络接口简介

RJ45 接口:

RJ45 座要与 PHY 芯片连接在一起,但是中间需要一个网络变压器,网络变压器用于隔离 以及滤波等,网络变压器也是一个芯片,外形一般如图:

但是现在很多 RJ45 座子内部已经集成了网络变压器。

RJ45 座子上一般有两个灯,一个黄色(橙色),一个绿色,绿色亮的话表示网络连接正常,黄色闪烁的话说明当前正在进行网络通信。这两个灯由 PHY 芯片控制,PHY 芯片会有两个引 脚来连接 RJ45 座上的这两个灯。

三.PHY芯片

PHY的数据是RJ45网络接口(网线口)穿过了的差分信号,而PHY作用就是将差分信号转为数字信号。

PHY 是 IEEE 802.3 规定的一个标准模块,SOC 可以对 PHY 进行配置或者读取 PHY 相关状态,这个就需要 PHY 内部寄存器去实现了。PHY 芯片寄存器地址空间为 5 位,地 址 0~31 共 32 个寄存器,IEEE 定义了 0~15 这 16 个寄存器的功能,16~31 这 16 个寄存器由厂 商自行实现。也就是说不管你用的哪个厂家的 PHY 芯片,其中 0~15 这 16 个寄存器是一模一 样的。仅靠这 16 个寄存器是完全可以驱动起 PHY 芯片的,至少能保证基本的网络数据通信。

四.MAC芯片与PHY芯片在网络七层协议的位置

网络七层协议:

数据链路层的MAC芯片;物理层的PHY芯片。

MAC位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。MAC在发送数据的时候,事先判断是否可以发送数据,如果可以,给数据加上一些控制信息,再将数据以及控制信息以规定的格式封装成帧发送到物理层;在接收数据的时候,MAC只接收发送至本网卡的单播帧、组播帧和广播帧,其余的丢弃,再将帧重新组合成数据,并判断输入的数据是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC层。

PHY位于OSI七层协议中的物理层。PHY在发送数据的时候,收到MAC过来的数据,然后把并行数据转化为串行流数据,按照物理层的编码规则把数据编码,再变为模拟信号送出去,收数据时的流程反之。

五.MDIO的作用

mido协议即SMI协议

SMI协议也是一种通信协议类似与I2C协议但是通信方式不一样

SMI包含两根信号线,一个MDC时钟线,一个MDIO双向传输的数据线,STA(StaTIon Management)为主控设备,PHY为从设备,一个STA最多管理32个PHY。

MDIO主要是传输链接状态、传输速度与选择、断电、低功率休眠状态、TX/RX模式选择、自动协商控制、环回模式控制等。

六.网络硬件架构方案

以太网硬件设计有两种方案:SOC内未集成MAC芯片,SOC内集成MAC芯片。

SOC内未集成MAC芯片:

对于内部没有MAC的SOC芯片,可以使用外置 MAC+PHY一体的网络芯片来实现网络功能。

有些外置的网络芯片更强大,内部甚至集成了硬件TCP/IP协议栈,SOC就不需要移植软件协议

栈,这种方案的优点就是让不支持网络的SOC能够另辟蹊径,实现网络功能,但是缺点就是网络

效率不高,因为一般芯片内置的MAC会有网络加速引擎,比如网络专用DMA,网络处理效率会很

高。而且此类外置芯片网速都不快,基本就是10/100M。另外,相比PHY芯片而言,此类芯片的成

本也比较高,可选择比较少。

SOC内集成MAC芯片:

我们一般说某个SOC支持网络,说的就是他内部集成网络MAC外设,此时我们还需要外接一个网

络PHY芯片。目前几乎所有支持网络的SOC都是内置MAC外设。内部MAC外设会有专用的加速模

块,比如专用的DMA,加速网速数据的处理。网速快,可以支持10/100/1000M网速。外接PHY可

选择性多,成本低。

相关推荐
海盗12343 小时前
微软技术日报 2026-10-01:VS Code 1.140 让模型互相挑错,EWS 今天起关停
人工智能·驱动开发·microsoft·机器人·aigc
铅笔小新z3 小时前
【stm32】SPI Flash 驱动开发
驱动开发·stm32·嵌入式硬件
夜听莺儿鸣12 小时前
502-002_Linux驱动开发模块化编程
linux·驱动开发·模块化编程
wixzjsh21 小时前
i.MX6ULL LCD 驱动开发实战:从引脚到时钟的完整配置
驱动开发
路溪非溪1 天前
Linux中环境变量的问题总结
linux·运维·开发语言·驱动开发
2401_862880822 天前
LCD 显示与触控屏驱动开发
驱动开发·嵌入式硬件
Doraemomo3 天前
Linux内核驱动开发——中断与定时器
linux·运维·驱动开发
@嵌入式扫地僧3 天前
ECC 编程智能体嵌入式适配实战:ESP32/RK3588 驱动开发提效 60%+ 指南
驱动开发·嵌入式开发·代码优化·ai辅助开发·编程智能体
EatFan3 天前
GitHub Trending 三连观察:AI 编码智能体进入“周边生态”竞争阶段
人工智能·驱动开发·github·mcp·superpowers·github trending·spec kit
sukalot3 天前
Windows 驱动实例分析系列:libwdi 驱动分析 - examples 篇(三)
windows·驱动开发