ethernet phy

article/2025/9/27 20:33:10

phy处于physical层,上一层是data link层:MAC,两者通过xMIIMDIO接口通信。

xMII

XMII包含MII(802.3 sec22,适用于10M和100M传输),GMII(802.3 sec35.2.2,适用于1000M传输),RGMII(GMII的简化版)等,用于传输Ethernet frame和相关状态信号,分为tx和rx两路,basic frame transmission如下:

 

 不同的信号组合具有不同的意义:

 ethernet frame

MDIO

MDIO是mac用于配置phy的reg的接口。

百兆phy的reg((sec 22.2.4)如下,包含control,status,ANMMD等。1000BASET的reg见sec40.5.1.1。control包含复位,速度,全/半双工,AN,loop back等,status包含link状态等。

MDIO(sec22.2.2.13)包含上升沿时钟mdc和inout型数据mdio,mdio按下表传输进行reg的读写。

 

MMD

sec22.2.4.3.11 & sec45.2.8

MMD:MDIO manageable device,一种拓展reg访问空间的机制,类似于间接访问。

MMD访问的reg格式为M.R,如下所述,M为MMD,r是reg地址。(称之为shadow reg,在rtl中对应的reg名为sh07_61)。

MMD使用两个reg:MMD access control register (Register 13)和MMD access address data register (Register 14),先通过MDIO配置reg13,给出控制信息和device addr,再配置reg14给出响应数据/地址。比如写7.61reg:写reg13=00<<14 | 7,写reg14=61,再写reg13=01<<14 | 7,然后写reg14=xxx写入值。

AN

sec28:10M&100M,sec40.5.1:1000M

AN:auto-negotiation,用于不同end间自动选取最优工作模式。不同的Phy可能支持不同的speed,duplex,要想协同工作,要么手动设置相同的工作模式,要么开启AN进行自协商,确定最优的工作模式。

AN主要利用FLP进行信息交互,而FLP利用了NLP。NLP(normal link pulse)是10BASET中data transfer处于idle状态时的Link test pulse信号,间隔16ms ± 8ms。FLP则将clk和AN传输的data编码进一簇一簇的脉冲里,脉冲簇与簇的间隔等于NLP的间隔,簇内的pulse间隔则为62.5us ± 7us。

FLP burst encoding

一个FLP由clock和data交互出现,共33个脉冲(也有扩展FLP,共97个脉冲,不清楚用在哪)。

脉冲间隔,簇间隔,脉宽等都有限制,据此可以在接收时提取需要的信息@sec28.2.2.1。

Link codeword encoding

将FLP中的的data提取出来共16bit,组成base page,@sec28.2.1.2

其中,selector field在此为802.3,XNP是extended next page,RF是remote fault,Technology Ability Field,为支持的ability,@Annex 28B.2 & Annex 28D.5

这些发送的ability来源于Auto-Negotiation advertisement register (Register 4) @sec28.2.4.1.3,接收到的对端的ability则存储在Auto-Negotiation Link Partner ability register (Register 5)。

信息交换可能需要额外的page,这就涉及到XNP和NP了,@sec28.2.3.4。

ACK则用于信息传输的握手:

If no Next Page information is to be sent, this bit shall be set to logic one in the link codeword after the reception of at least three consecutive and consistent FLP Bursts (ignoring the Acknowledge bit value). If Next Page information is to be sent, this bit shall be set to logic one after the device has successfully received at least three consecutive and matching FLP Bursts (ignoring the Acknowledge bit value), and will remain set until the Next Page information has been loaded into the Auto-Negotiation Next Page transmit register (Register 7).这个matching的意思是?

整个AN的state diagram见sec28.3,简单总结:

  1. 不断的向对端设备发送FLP_burst,包含base_page信息,同时不断接收对端的FLP脉冲。
  2. 在收到一定次数的base_page并确认连续性后拉高对应的ACK bit位,向对端回复ACK。
  3. 在完成双方的ACK握手后,对接收到的base_page乃至next_page进行解析,确定最高的共同优先级。

parallel detection function:此功能用于对接不支持AN的phy,通过NLP Receive Link Integrity Test来检测10BASE-T的PMA,或者通过检测100BASE-T的idle来识别。由于对端phy不发送ability信息,所以对接不支持AN的phy时,local phy只能开启half deplux模式。

next page function: optional, 在base page之后,共4种:Message Pages, Unformatted Pages, extended Message Pages, and extended Unformatted Pages.是否支持next page是由mac配置的reg5 ability reg决定的:

next page开始于base page交换完成之后,结束于两端都不再有next page时(如果一端有,另一端无,则无next page的一端发null message的page)。

If the Selector Field values do not match, then each series of Unformatted Pages shall be preceded by a Message Page containing a message code that defines how the following Unformatted Pages will be interpreted. If the Selector Field values match, then the convention governing the use of Message Pages shall be as defined by the Selector Field value definition.

Annex 28C给出了message page里字段含义,此字段指定了后续的unformatted page如何解析:

 比如AN支持1000BASE-T时,会发送message code=8的mp和后续的up,支持EEE时,会发送mc=10的mp和后续的up @sec40.5.1.3:

extented next page: 目前还没看到在哪用。

AN相关的reg @sec28.2.4.1。

LPI

LPI: low power idle,低功耗模式,支持Energy-Efficient Ethernet (EEF)的phy可以由mac发起进入LPI模式,mac通过xMII信号控制phy。

支持EEE的phy在pcs的state diagram中会有不同,100BASE-T@sec24.2.4.4,1000BASE-T@sec40.3.4,在pma的link monitor中也会有所不同,100BASE-T@sec24.3.4.4,1000BASE-T@sec40.4.6。10BASE-T不支持EEE。


 下文开始介绍不同速度的phy的pcs和pma,包括10M,100M,1000M的,数字表示速度Mbps,BASE表示Baseband(基带信号),1根线缆只传输1个信号,T是传输媒介,twisted pair。

类型编码时钟
10BASE-TManchester2.5MHz
100BASE-T4B/5B+MLT325MHz
1000BASE-T4D-PAM5125MHz

10BASE-T

在 10BASE-T 中使用曼彻斯特编码的方式让转换的电气信号在双绞线上传输。从 Ethernet frame的Preamble 字段 中得到 20MHz 的时钟频率与 10Mbit/s 的 NRZ数据进行逻辑异或运算,得到在 20MHz 下采用 -V、0、+V 三个电平数值发送信号(V 表示电压)。该运算过程如下图所示,“0”表示“10”,“1”表示“01”。通过曼彻斯特编码后,直流信号部分将不复存在,从而抑制了信号衰减带来的干扰。

在 10BASE-T 中,使用 4 对双绞线中的 1 对(1 号与 2 号)信号线作为 10Mbit/s 信号的发送源,1 对(3 号与 6 号)信号线用于 10Mbit/s 信号的接收,剩余两组空闲不用。

100BASE-T

100BASE-T主要指100BASE-TX,其余T类型非主流。

在 100BASE-TX 的标准中不再使用曼彻斯特编码,而是使用了一种叫做 MLT-3(Multi-Level Transition)的编码方式。该编码方式使用 -、0、+ 三个电平,当下一个数据为 0 时,保持信号电平不变;当下一个数据为 1 时,信号电平跳转。这样使信号电压变化平稳,能够减少信号传递中的谐波数量。

在使用 MLT-3 编码时,数据如果连续为 0,信号电平将不会发生任何变化,这将导致接收方无法检测出每一个时钟频率。为了避免这一问题,标准中采取了将 4bit 数据转换为 5bit 的方法,既能保证在发送的 5bit 数据中有两个以上的“1”,也能够在数据连续为“0”时,找得到同步的位置。另外,还能加入特殊的控制码。4B/5B 转换表@sec24.2.2.1:

由于将原来 4bit 的数据以 5bit 的方式发送,就使得发送速率为 100Mbit/s 的数据实际需要发送速率为 125Mbit/s 的电平信号。

 

1000BASE-T

在 1000BASE-T 中使用了 8B1Q4(8 binary to 1 quinary 4,将8个2值数据 (GMII的data数据)转换成5值4组数据)的编码方式与 4D-PAM5(4-dimensional,5-level Pulse Amplitude Modulation,将从 8B1Q4 数据编码接收到的 4 维五进制符号用五个电压级别传送出去)的调制方式传输数据。8B1Q4 按照每组 8bit 对传输数据进行分割,每组再加上 1bit 的冗余位作为错误校验,一共为 9bit 数据。在 9bit 的数据中,根据冗余 bit 和前两个 bit 数据选择转换表,再根据转换表得到余下 6bit 所对应的 4 个信号值。信号值可以是 -2、-1、0、+1、+2 这 5 个值中的任意一个。例如,10010111 这 个 8bit 的数据,按照 8B1Q4 转换为 +1、-2、0、-1 这 4 个 信号值 后,就可以同时在双绞线上进行传输。将这一系列的数据调制发送就被称为 4D-PAM5 方式。具体编码过程见sec40.3.1.3。

functional block:

pma clock recovery: 负责从接收数据中恢复出clock。

pma link monitor: 用于产生Link_status.

pma phy control @sec40.4.2.4: PHY Control generates the control actions that are needed to bring the PHY into a mode of operation during which frames can be exchanged with the link partner.

slave phy进入training的条件是scr_status=ok:the SLAVE PHY converges its decision feedback equalizer (DFE), acquires timing, and acquires its descrambler state. 可以理解为descrambler已经和master同步。

For the SLAVE PHY, the final convergence of the adaptive filter parameters is completed in the TRAINING state. The MASTER PHY performs all its receiver convergence functions in the TRAINING state. loc_rcvr_status的条件是:the PHY completes successful training and establishes proper receiver operations。具体的算法是implementation dependent, It can be based, for example, on observing the mean-square error at the decision point of the receiver and detecting errors during reception of symbol stream.

EEE时见Sec40.4.6.1 Figure 40–16b。


http://chatgpt.dhexx.cn/article/AcWSHuh3.shtml

相关文章

USB的PHY

Linux USB 3.0驱动分析&#xff08;六&#xff09;——USB主机控制器HCD分析 网卡芯片,也有 controller(mac芯片) 和 PHY部分 USB 芯片,也有 controller 和 PHY部分 5G 芯片,也有 协议层 和 PHY部分USB主机控制器和USB PHY是如何完成收发数据的 USB 全套硬件组成ControllerC…

PHY芯片

以太网媒体接入控制器(MAC) 物理接口收发器(PHY) 以太网接口可分为协议层和物理层。 协议层是由一个叫MAC(Media Access Layer&#xff0c;媒体访问层)控制器的单一模块实现。 物理层由两部分组成&#xff0c;即PHY(Physical Layer&#xff0c;物理层)和传输器。 常见的网卡芯片…

C-PHY技术是什么

2018年5月17日&#xff0c;一加发布了自家旗舰手机一加6&#xff0c;在相机的宣传图片中&#xff0c;首次见到提起C-PHY技术和Type-2对焦这两个概念&#xff0c;于是经过在网络的挖掘和学习&#xff0c;先总结下C-PHY技术的基本概念 C-PHY技术来自哪里 图像传感器&#xff0c;…

MIPI 系列之 D-PHY

目录 1、简述 2、管脚连接 3、D-PHY 的时钟 4、D-PHY Lane (Clock Lane And Data Lane) 4.1、信号摆幅 4.2、信号含义 4.3、状态码 5、传输特性和方向 6、D-PHY Data Lane 6.1、高速 Data Lane 传输 6.2、双向传输 Data Lane Turnaround 6.3、Data Lane 的 Escape …

PHY- PHY芯片概述

1 PHY概述 关于Internet Protocal的分层模型可以参考文章 :【Internet Protocal-OSI模型中的网络分层模型】,下面我们讲讲底层以太网控制器和收发器的知识。其主要是处理OSI模型中的物理层和链路层的事情。 在CAN/CANFD、FlexRay等总线中,有控制器Controller和收发器Transc…

以太网PHY原理介绍

一、以太网分层模型 基于 OSI 七层网络模型&#xff0c; 车载以太网的网络拓扑结构如图1-1所示。 图1-1 车载以太网网络拓扑结构图 从图中可以看到位于 Layer1 和 Layer2 的为物理层和数据链路层。 Layer3 以上各层包含了 TCP/IP、 DOIP、SomeIP 等协议&#xff0c; 由 EthSt…

PHY(Physical Layer,PHY)通俗理解

碎碎念&#xff1a;最近更新的周期有点长... 主要最近和朋友一起重新开了一个公众号&#xff08;FPGA Breaker&#xff09;&#xff0c;这个公众号也和本公众号垂直深度&#xff0c;不会和本公众号内容有太多重叠&#xff0c;主要是本人想推进国内开源IP的使用和发展&#xff0…

MAC和PHY的区别

&#xfeff;&#xfeff; 转载自&#xff1a;https://www.cnblogs.com/feitian629/archive/2013/01/25/2876857.html 一块以太网网卡包括OSI&#xff08;开方系统互联&#xff09;模型的两个层。物理层和数据链路层。物理层定义了数据传送与接收所需要的电与光信号、线路状态、…

PHY寄存器

在之前的文章&#xff0c;我们讲解了STM32的网络外设部分。 文章有《STM32网络电路设计》《STM32网络之MAC控制器》《STM32网络之DMA控制器》《STM32网络之中断》。 STM32只有网络外设时不能进行网络通信的&#xff0c;因为STM32只提供了SMI接口&#xff0c;MII和RMII接口。我们…

以太网基础-MAC和PHY

网卡(Network Interface Card&#xff0c;简称NIC)&#xff0c;也称网络适配器&#xff0c;是电脑与局域网相互连接的设备。无论是普通电脑还是高端服务器&#xff0c;只要连接到局域网&#xff0c;就都需要安装一块网卡。如果有必要&#xff0c;一台电脑也可以同时安装两块或多…

【以太网通信】PHY 芯片回环测试

PHY 芯片通常带有回环&#xff08;Loopback&#xff09;功能&#xff0c;用于 PHY 通信链路的测试。本文主要讨论三种常用 PHY 芯片的回环功能&#xff0c;并使用 Broadcom 的 B50612D 芯片进行 PHY 回环测试。 目录 1 常见 PHY 的回环功能 1.1 KSZ9031 1.2 RTL8211 1.3 B5…

PHY芯片快速深度理解

PHY芯片快速深度理解 什么是phy为什么要熟悉RJ45网口什么是mido协议MDIO读写时序为什么说读取的phy最多32个博客参考 什么是phy 物理层芯片称为PHY、数据链路层芯片称为MAC。 可以看到PHY的数据是RJ45网络接口&#xff08;网线口&#xff09;穿过了的差分信号&#xff0c;而PH…

phy芯片的那些事儿

一、什么是phy 1、phy的基本作用 收到MAC过来的数据&#xff08;PHY没有帧的概念&#xff0c;都是数据而不管什么地址数据还是CRC&#xff09;&#xff0c;进行处理*&#xff0c;然后把并行数据转化为串行流数据&#xff0c;再按照物理层的编码规则把数据编码&#xff0c;再变…

什么是PHY

什么是PHY https://www.cnblogs.com/YINBin/p/10980936.html 转载自&#xff1a;那些城市那些年 PHY&#xff08;&#xff08;Physical Layer&#xff0c;PHY&#xff09;&#xff09;是IEEE802.3中定义的一个标准模块&#xff0c;STA&#xff08;station management ent…

PHY芯片快速深度理解(持续更新中……)

目录 什么是phy 为什么要熟悉RJ45网口 网络七层协议 两个模块进行通信 什么是MDIO协议 MDIO的作用 MDIO没那么重要 MDIO读写时序 为什么说读取的phy最多32个 个人感谢&#xff1a; 看完后建议再看一下&#xff0c;会有更深入的理解 深度理解 RGMII &#xff08;包…

【PHY】关于学习以太网PHY的这件事情

概述&#xff1a; 由于近期要使用以太网PHY芯片&#xff0c;于是在网上查找各种资料&#xff0c;学习这部分的知识&#xff0c;这篇文章是对当前的学习做一个汇总。因为这部分的知识很多&#xff0c;所以只是做一个整体的概要总结&#xff0c;具体的知识点无法详细展开&#x…

NAL Unit解析

NAL Unit结构解析 NAL Unit包含NAL Header 和 NAL Body NAL Header: 一个字节&#xff0c;包括&#xff1a; forbidden_zero_bit: 0禁止位&#xff0c;1bit&#xff1b;nal_ref_idc:参考索引&#xff0c;代表当前NAL Unit重要性&#xff0c;2bit&#xff1b;nal_unit_type: N…

模组使用之常见认证,CCC认证,SRRC认证,ROHS认证,NAL认证

部分内容来自《http://onemo10086.com/#/knowledge》 CCC认证 3C认证的全称为“中国强制性产品认证”&#xff0c;英文名称China Compulsory Certification&#xff0c;目的是国家为保护消费者人身安全和国家安全、加强产品质量管理、依照法律法规实施的一种产品合格评定制度。…

h264编码笔记(nal_ref_idc)

一、nal_ref_idc定义 X264关于nal_ref_idc的枚举定义&#xff1a; nal_ref_idc不等于0时&#xff0c;规定NAL单元的内容包含一个序列参数集&#xff0c;或一个图像参数集&#xff0c;或一个参考图像条带&#xff0c;或一个参考图像的条带数据分割。 如果一个包含一个条带或条带…

H264裸码流 I/P/B帧对应NAL类型

1.NAL类型检测 nal类型检测非常容易&#xff0c;对照下表即可容易判断类型。 较常用nal类型包括&#xff1a;SPS(7)、PPS(8)、IDR(5)、SLICE(1)。 而nal_type嵌在码流数据的nal_header&#xff08;size1Byte&#xff09;中&#xff0c;占据据该字节的后五位bits。 nal_header…