首页 » 通讯 » 实践经验分享:以太网MAC和PHY层问题的解决筹划_暗记_数据

实践经验分享:以太网MAC和PHY层问题的解决筹划_暗记_数据

雨夜梧桐 2025-01-14 22:32:52 0

扫一扫用手机浏览

文章目录 [+]

OSI(Open System Interconnect),即开放式系统互连。
一样平常都叫OSI参考模型,是ISO组织在1985年研究的网络互连模型。
该体系构造标准定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和运用层),即OSI开放系统互连参考模型。

网卡事情在osi的末了两层,物理层和数据链路层,物理层定义了数据传送与吸收所须要的电与光旗子暗记、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备供应标准接口。
物理层的芯片称之为PHY。
数据链路层则供应寻址机构、数据帧的构建、数据差错检讨、传送掌握、向网络层供应标准的数据接口等功能。
以太网卡中数据链路层的芯片称之为MAC掌握器。
很多网卡的这两个部分是做到一起的。
他们之间的关系是pci总线接mac总线,mac接 phy,phy接网线(当然也不是直接接上的,还有一个变压装置)。

实践经验分享:以太网MAC和PHY层问题的解决筹划_暗记_数据 通讯

MII/GigaMII(Media Independed Interfade,介质独立界面)界面连接MAC和PHY。
而MAC对PHY的事情状态的确定和对PHY的掌握则是利用SMI(Serial Management Interface)界面通过读写PHY的寄存器来完成的。
smi(Serial Management Interface)是一种串行接口,接口包括两根旗子暗记线:MDC和MDIO,通过它,MAC层芯片(或其它掌握芯片)可以访问物理层芯片的寄存器(前面100M物理层芯片中先容的寄存器组)。
MDC:管理接口的时钟,它是一个非周期旗子暗记,旗子暗记的最小周期(实际是正电平时间和负电平时间之和)为400ns,最小正电平时间和负电平时间为160ns,最大的正负电平时间无限制。
它与TX_CLK和RX_CLK无任何关系。
MDIO是一根双向的数据线。
用来传送MAC层的掌握信息和物理层的状态信息。
MDIO数据与MDC时钟同步,在MDC上升沿有效。
MAC通过SMI总线不断的读取PHY的状态寄存器以得知目前PHY的状态,例如连接速率,双工的能力等。

物理连接的MII界面和SMI总线还是PHY的状态寄存器和掌握寄存器都是有IEEE的规范的,因此不同公司的MAC和PHY一样可以折衷事情。
当然为了合营不同公司的PHY的自己特有的一些功能,驱动须要做相应的修正。
一片网卡紧张功能的实现就基本上是上面这些器件了。
其他的,还有一颗EEPROM芯片,常日是一颗93C46。
里面记录了网卡芯片的供应商ID、子系统供应商ID、网卡的MAC地址、网卡的一些配置,如SMI总线上PHY的地址,BOOTROM的容量,是否启用BOOTROM勾引系统等东西。

如果操作系统没有加载网卡驱动,网卡虽然在系统设备树上,但网卡接口创建不了,那网卡实际能不能吸收到数据?

这里面有很多细节, 我根据Intel网卡的Spec大概写了写, 想只管即便写的普通一些,以是没有刻意用Spec里的术语,其余本文虽然讲的是MAC/PHY,但光口卡的(SERDES)也是类似的。

1. PCI设备做reset往后进入D0uninitialized(非初始化的D0状态, 参考PCI电源管理规范),此时网卡的MAC和DMA都不事情,PHY是事情在一个分外的低电源状态的。
2. 操作系统创建设备树时,初始化这个设备,PCI命令寄存器的 Memory Access Enable or the I/O Access Enable bit会被enable, 这便是D0active。
此时PHY/MAC就使能了。
3. PHY被使能该当就可以吸收物理链路上的数据了,否则不能收到FLP/NLP, PHY就不能建立物理连接。
但这类包一样平常是流量间歇发送的.4. 驱动程序一样平常要通过寄存器来掌握PHY, 比如自动协商speed/duplex, 查询物理链路的状态Link up/down。
5. MAC被使能后, 如果没有驱动设置掌握寄存器的一个位(CTRL.SLU )的话, MAC和PHY是不能通讯的, 便是说MAC不知道PHY的link已经ready, 以是收不到任何数据的。
这位设置往后, PHY完成自协商, 网卡才会有个Link change的中断,知道物理连接已经Link UP了。
6. 纵然Link已经UP, MAC还须要enable吸收器的一个位(RCTL.RXEN ),包才可以被吸收进来,如果网卡被reset,这位是0,意味着所有的包都会被直接drop掉,不会存入网卡的 FIFO。
老网卡在驱动退出前利用这位关掉吸收。
Intel的最新千兆网卡发送吸收行列步队的动态配置便是依赖这个位的,重新配置的过程一定要关掉流量。
7. 无论驱动加载与否, 发生reset后,网卡EEPOM里的mac地址会写入网卡的MAC地址过滤寄存器, 驱动可以去修正这个寄存器,当代网卡常日支持很多MAC地址,也便是说,MAC地址是可以被软件设置的。
例如,Intel的千兆网卡就支持16个单播 MAC地址,但只有1个是存在EEPROM里的,其它是软件声称和设置的。
8. 但如果驱动没有加载,网卡已经在设备树上,操作系统完成了步骤1-2的初始化,此时网卡的PHY该当是事情的,但由于没有人设置掌握位(CTRL.SLU)来让MAC和PHY建立联系,以是MAC是不收包的。
这个掌握位在reset时会再设置成0。
9. PHY可以被软件设置加电和断电, 断电状态除了吸收管理命令以外,不会吸收数据。
其余,PHY还能事情在Smart Power Down模式下,link down就进入省电状态。
10. 有些多口网卡,多个网口共享一个PHY, 以是BIOS里设置disbale了某个网口, 也未必会把PHY的电源关掉,反过来,也要小心地关掉PHY的电源。
二、系统概述

从硬件的角度来剖析,以太网的电路接口一样平常由CPU、MAC(Media Access Control)掌握器和物理层接口PHY(physical Layer PHY)组成,如下图所示

对付上述三部分,并不一定都是独立的芯片,紧张有以下几种情形:

1.CPU内部集成了MAC和PHY,难度较高2.CPU内部集成MAC,PHY采取独立芯片(主流方案)3.CPU不集成MAC和PHY,MAC和PHY采取独立芯片或者集成芯片(高端采取)

以常用的CPU内部集成MAC,PHY采取独立的芯片方案,虚线内表示CPU和MAC集成在一起,PHY芯片通过MII接口与CPU上的MAC互联

SMI是一种串行接口,接口包括两根旗子暗记线: MDC:管理接口的时钟,MDIO: 双向的数据线。
紧张是完成CPU对付PHY芯片的寄存器配置MII总线接口,紧张是完成数据收发干系的业务(下方详细先容)网络隔离变压器:传输数据,增强旗子暗记;隔离网线连接的不同网络设备间的不同电平;抗滋扰,保护浸染。

后台私信【内核】自行获取!

三、通讯办法

MII(Media Independent Interface)即媒体独立接口,MII接口是MAC与PHY连接的标准接口。
它是IEEE-802.3定义的以太网行业标准。
MII接供词给了MAC与PHY之间、PHY与STA(Station Management)之间的互联技能。
媒体独立表明在不对MAC硬件重新设计或更换的情形下,任何类型的PHY设备都可以正常事情.它包括一个数据接口,以及一个MAC和PHY之间的管理接口。
MII接口有MII、RMII、SMII、SSMII、SSSMII、GMII、SGMII、RGMII等。
这里简要先容个中的MII和RGMII。

MII接口紧张包括以下三个部分:

从MAC层到PHY层的发送数据接口从PHY层到MAC层的吸收数据接口从MAC层和PHY层之间寄存器掌握和信息获取的MDIO接口

MII 数据接口统共须要 16 个旗子暗记。
MII的时钟为25MHz,传输速率为10/100Mbps。
以是MII的特性如下:

1.支持10Mb/s和100Mb/s的数据速率2.100M事情模式下,参考时钟是25MHz;10M事情模式下,旗子暗记参考时钟是2.5MHz3.支持全双工、半双工两种事情模式4.发送和吸收数据时采取,4bit办法

RMII是简化的MII接口,在数据的收发上它比MII接口少了一倍的旗子暗记线(2数据位),以是它一样平常哀求是50MHz的总线时钟。
RMII一样平常用在多端口的交流机,所有的数据端口公用一个时钟用于所有端口的收发,这里就节省了不少的端口数目.RMII的一个端口哀求7个数据线,比MII少了一倍,以是交流机能够接入多一倍数据的端口.和MII一样,RMII支持10Mbps和100Mbps的总线接口速率.

后来为了支持千兆网口,也就开始有了千兆网的MII接口,也便是GMII接口。
现在比较常用的是RGMII,减小了MAC和PHY之间的引脚数量。
数据旗子暗记和掌握旗子暗记稠浊在一起,并且在事情时钟的上升沿和低落沿同时采样,其对应关系图如下:

10M带宽对应的是2.5MHz,由于4bit2.5M=10Mbps100M带宽对应的是25MHz,由于4bit25M=100Mbps

1000M带宽对应的是125MHz,由于250MHz频率太高,以是采取双边沿采样技能(会带来设计繁芜度)。
4bit125M2=1000Mbps

SMI是MAC内核访问PHY寄存器接口,它由两根线组成,双工,MDC为时钟,MDIO为双向数据通信,事理上跟I2C总线很类似,也可以通过总线访问多个不同的phy。

MDC/MDIO基本特性:

两线制:MDC(时钟线)和MDIO(数据线)。
时钟频率:2.5MHz通信办法:总线制,可同时接入的PHY数量为32个通过SMI接口,MAC芯片主动的轮询PHY层芯片,得到状态信息,并发出命令信息。

当PHY芯片发送数据,接管到MAC层发送过来的数字旗子暗记,然后转换成仿照旗子暗记,通过MDI接口传输出去。
但是网线传输的间隔又很长,有时候须要送到100米乃至更远的地址,那么就会导致旗子暗记的流失落。
而且外网线与芯片直接相连电磁感应和静电,也很随意马虎导致芯片的破坏,以是就要利用网络变压器,其紧张浸染是:

传输数据,它把PHY送出来的差分旗子暗记用差模耦合的线圈耦合滤波以增强旗子暗记,并且通过电磁场的转换耦合到不同电平的连接网线的其余一端;

隔离网线连接的不同网络设备间的不同电平,以防止不同电压通过网线传输破坏设备;

还能使芯片端与外部隔离,抗滋扰能力大大增强,而且对芯片增加了很大的保护浸染,保护PHY免遭由于电气失落误而引起的破坏(如雷击)。

四、MAC

MAC(Media Access Control),即媒体访问掌握子层协议,该部分有两个观点:MAC可以是一个硬件掌握器以及MAC通讯协议。
该协议位于OSI七层协议中数据链路层的下半部分,紧张是卖力掌握与连接物理层的物理介质。

MAC(Media Access Control),即媒体访问掌握子层协议,该部分有两个观点:MAC可以是一个硬件掌握器以及MAC通讯协议。
该协议位于OSI七层协议中数据链路层的下半部分,紧张是卖力掌握与连接物理层的物理介质。

发送数据:MAC协议可以事先判断是否可以发送数据,如果可以发送将数据加上一些掌握信息,末了将数据以及掌握信息以规定的格式发送到物理层

吸收数据:MAC协议首先判断输入的信息并是否发生传输缺点,如果没有缺点,则去掉掌握信息后发送至LLC(逻辑链路掌握)层。

PHY物理层位于OSI最底层,物理层协议定义电气旗子暗记、线的状态、时钟哀求、数据编码和数据传输用的连接器。

MDI口是快速以太网100BASE-T定义的与介质有关接口(Media Dependent Interface)。
MDI是指通过收发器发送的100BASE-T旗子暗记,即100BASE-TX、FX、T4或T2旗子暗记。
将集线器连接网络接口卡时,其发送和吸收对常日是相互连接的。
集线器之间连接时,常日须要一条跨接电缆,个中的发送和吸收对是反接的。

MDI是正常的UTP或STP连接,而MDI-X连接器的发送和吸收对是在内部反接的,这就使得不同的设备(如集线器-集线器或集电器-交流机),可以利用常规的UTP或STP电缆实现背靠背的级联。

4.1MII接口

MII(Media Independent Interface)即媒体独立接口,MII接口是MAC与PHY连接的标准接口。
它是IEEE-802.3定义的以太网行业标准。
MII接供词给了MAC与PHY之间、PHY与STA(Station Management)之间的互联技能。
媒体独立表明在不对MAC硬件重新设计或更换的情形下,任何类型的PHY设备都可以正常事情.它包括一个数据接口,以及一个MAC和PHY之间的管理接口。
MII接口有MII、RMII、SMII、SSMII、SSSMII、GMII、SGMII、RGMII等。
这里简要先容个中的MII和RGMII。

MII接口紧张包括以下三个部分:

从MAC层到PHY层的发送数据接口从PHY层到MAC层的吸收数据接口从MAC层和PHY层之间寄存器掌握和信息获取的MDIO接口

首先来看看MII的MAC层定义接口:

MII 数据接口统共须要 16 个旗子暗记,包括 TX_ER,TXD[3:0],TX_EN,TX_CLK,COL,RXD[3:0],RX_ER,RX_CLK,CRS,RX_DV 等。
MII的时钟为25MHz,传输速率为10/100Mbps。
以是MII的特性如下:

支持10Mb/s和100Mb/s的数据速率100M事情模式下,参考时钟是25MHz;10M事情模式下,旗子暗记参考时钟是2.5MHz支持全双工、半双工两种事情模式发送和吸收数据时采取,4bit办法

RMII的用场:

RMII是简化的MII接口,在数据的收发上它比MII接口少了一倍的旗子暗记线(2数据位),以是它一样平常哀求是50MHz的总线时钟。
RMII一样平常用在多端口的交流机,所有的数据端口公用一个时钟用于所有端口的收发,这里就节省了不少的端口数目.RMII的一个端口哀求7个数据线,比MII少了一倍,以是交流机能够接入多一倍数据的端口.和MII一样,RMII支持10Mbps和100Mbps的总线接口速率.

后来为了支持千兆网口,也就开始有了千兆网的MII接口,也便是GMII接口。
现在比较常用的是RGMII,减小了MAC和PHY之间的引脚数量。
数据旗子暗记和掌握旗子暗记稠浊在一起,并且在事情时钟的上升沿和低落沿同时采样,其对应关系图如下:

10M带宽对应的是2.5MHz,由于4bit2.5M=10Mbps100M带宽对应的是25MHz,由于4bit25M=100Mbps1000M带宽对应的是125MHz,由于250MHz频率太高,以是采取双边沿采样技能(会带来设计繁芜度)。
4bit125M2=1000Mbps

4.2SMI接口

SMI是MAC内核访问PHY寄存器接口,它由两根线组成,双工,MDC为时钟,MDIO为双向数据通信,事理上跟I2C总线很类似,也可以通过总线访问多个不同的phy。

MDC/MDIO基本特性:

两线制:MDC(时钟线)和MDIO(数据线)。
时钟频率:2.5MHz通信办法:总线制,可同时接入的PHY数量为32个通过SMI接口,MAC芯片主动的轮询PHY层芯片,得到状态信息,并发出命令信息。

管理帧格式:

读操作时序

写操作时序

报头: 每个读写均可通过报头字段启动,报头字段对应于MDIO线上32个连续的逻辑“1”位以及MDC的32个周期,该字段用于与PHY设备建立同步起始: 起始由<01>模式定义操作: 定义读写类型PADDR: PHY地址由5位,可构成32个唯一PHY地址RADDR: 寄存器地址有5位

TA:

数据: 数据字段为16位空间: MDIO线驱动为高阻态,三态驱动器必须禁止,PHY的上拉电阻使线路保持高阻态五、PHY

物理层位于OSI最底层,物理层协议定义电气旗子暗记、线的状态、时钟哀求、数据编码和数据传输用的连接器。
物理层的器件称为PHY。

PHY是物理接口收发器,它实现OSI模型的物理层。
IEEE-802.3标准定义了以太网PHY包括MII/GMII(介质独立接口)子层、PCS(物理编码子层)、PMA(物理介质附加)子层、PMD(物理介质干系)子层、MDI子层。

5.1什么是PHY

发送数据:对付PHY来说,并没有帧的观点,对它来说,不管是地址、数据还是CRC,都会将并行数据转换为串行数据流,在按照物理层的编码规则把数据编码,终极转换成仿照旗子暗记发送出去

吸收数据:从外部吸收数据时,仿照旗子暗记先转成数字旗子暗记,再经由解码得到数据, 经由MII送到MAC

CSMA/CD:可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个随机韶光后将送数据出去。
如果两个恰巧同时送出了数据,那样必将造成冲突。
这时候,冲突检测机构可以检测到冲突,然后各等待一个随机的韶光重新发送数据

5.2MDI

MDI口是快速以太网100BASE-T定义的与介质有关接口(Media Dependent Interface)。
MDI是指通过收发器发送的100BASE-T旗子暗记,即100BASE-TX、FX、T4或T2旗子暗记。
将集线器连接网络接口卡时,其发送和吸收对常日是相互连接的。
集线器之间连接时,常日须要一条跨接电缆,个中的发送和吸收对是反接的。
MDI是正常的UTP或STP连接,而MDI-X连接器的发送和吸收对是在内部反接的,这就使得不同的设备(如集线器-集线器或集电器-交流机),可以利用常规的UTP或STP电缆实现背靠背的级联。

5.3PHY根本知识简介

PHY是IEEE 802.3规定的一个标准模块,SOC可以通过MDIO对PHY进行配置或者读取phy干系状态,PHY内部寄存器必须知足

PHY芯片的寄存器地址空间是5位,一样平常由外部硬件连接决定。

地址空间031共32个寄存器,IEEE定义了015这16个寄存器的功能,16-31这16个寄存器由厂商自行实现。
也便是说不管哪个厂商的PHY芯片,个中0~15这16个寄存器是千篇一律的。

仅靠这 16个寄存器完备可以驱动起PHY芯片,至少能担保基本的网络数据通信。
因此 Linux 内核有通用 PHY 驱动,按道理来讲,不管你利用的是哪个厂家的 PHY 芯片,都可以利用 Linux 的这个通用 PHY 驱动来验证网络事情是否正常。
事实上在实际开拓中可能会碰着一些其他的问题导致 Linux 内核的通用 PHY 驱动事情不正常,这个时候就须要驱动开拓职员去调试了。

随着现在PHY芯片性能越来越强大,32个寄存器已经无法知足厂商的需求,因此很多厂商采取了分页机制来开展寄存器地址空间,以求定义更多的寄存器。
这些多出来的几次器可以实现厂商特有的一些技能,因此在Linux内核里面可以看到很多详细的PHY芯片驱动源码。

6、总结

MAC 便是以太网掌握器,属于OSI的数字链路层。
phy 属于OSI的物理层(Physical layer),以是叫phy。

MAC紧张处理的数字旗子暗记,PHY卖力把MAC的数字旗子暗记进行编码,串行化等操作后,转化为仿照旗子暗记进行发送。
PHY在数据接管时, 进行如上所述的逆操作,将仿照旗子暗记转化为数字旗子暗记,解码,并行化后,传给MAC。

根本以太网物理层非常大略:它是一种物理层收发器(发射器和吸收器),能将一个设备物理地连接到另一个设备。
这种物理连接可以是铜线(例如CAT5电缆——一种家庭利用的蓝色插线电缆)或光纤电缆。

问:造成以太网MAC和PHY单片整合难度高的缘故原由是什么?

答:PHY整合了大量仿照硬件,而MAC是范例的全数字器件。
芯片面积及仿照/数字稠浊架构是为什么先将MAC集成进微掌握器而将PHY留在片外的缘故原由。
更灵巧、密度更高的芯片技能已经可以实现MAC和PHY的单芯片整合。

标签:

相关文章

解锁一个新成就芯片级维修_内存条_也能

先看一下我的16G内存条。事情是这样的,我买了一条16G的内存条,本日去县里维修电脑的地方,想让人家帮我装一下,顺便清一下灰,也不...

通讯 2025-01-15 阅读0 评论0