Xilinx 千兆以太网TEMAC IP核 MDIO 配置及物理接口

news2024/11/15 12:33:15

基于AXI4-Lite接口可以访问MDIO(Management Data Input/Output)接口,而MDIO接口连接MAC外部的PHY芯片,用户可通过AXI4-Lite接口实现对PHY芯片的配置。

1 MDIO接口简介

开放系统互连模型OSI的最低两层分别是数据链路层和物理层,数据链路层的主要功能包括数据帧的构建、数据差错检查、发送控制和向网络层提供标准的数据接口等;物理层定义了数据发送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,支持向数据链路层设备提供标准接口。以太网的PHY(物理层)提供传输介质并与MAC层进行连接,将数据转换为光或电信号,而MAC需要配置PHY器件寄存器信息,以保证PHY器件按照使用需求收发数据。

MAC对PHY器件工作状态的确定和对PHY器件的控制是使用MDIO接口读/写 PHY器件的寄存器来完成的。PHY器件的寄存器的地址空间为5位,地址从0到31最多可以定义32个寄存器。IEEE802.3定义了地址为0~15这16个寄存器的功能,地址为16~31的寄存器留给芯片制造商自由定义。PHY器件的状态反映在寄存器内,MAC通过MDIO总线不断读取PHY器件的状态寄存器以得知PHY器件当前的状态,如连接速度、双工能力等。

MAC对PHY器件设定的控制管理内容包括:工作速率,10/100/1000Mbps固定速率或自动协商速率;传输介质,光纤或铜线连接物理层设备;工作模式,光纤连接的TBI模式,铜线连接的MII、GMII等模式。MDIO接口正是用于传输MAC对PHY器件控制管理信息的模块,其应用环境如图1所示。

479e9d8c6ab546a58fe972e7f5944e8a.png

图1 MDIO接口的应用环境

2 MDIO接口信号定义

MDIO接口的应用协议由IEEE802.3标准定义,接口信号包括管理数据时钟(MDC)和MDIO管理数据。

(1)管理数据时钟(MDC)

MDC由MAC驱动,作为MDIO信号线上的时序参考输出到PHY器件。协议定义了MDC的最高工作频率不超过2.5MHz。

(2)MDIO 管理数据

MDIO管理数据是MAC与PHY器件之间的双向串行数据,它被用于传输两者间的状态信息和控制信息。其中,控制信息由MAC产生并与MDC同步,以供PHY器件采样;状态信息由PHY器件驱动,以供MAC读取。

(3)数据帧定义

MDIO接口上的信息是以数据帧的形式进行传输的,MDIO接口数据帧格式如表1所示。

表1 MDIO 接口数据帧格式

2a0f1353b67a4d4faa802d304d0a5e9b.png

● PRE 为帧同步码,MAC向PHY器件发送32个连续的“1”用于器件的同步通信(需要注意的是,该域不是必需的,部分PHY器件的MDIO操作没有PRE)。

● ST 为帧开始标志,MAC输出“01”通知PHY器件帧传输开始。

● OP为帧操作码,“01”表示该帧为1次写操作请求,“10”表示该帧为1次读操作请求。

● PHYAD为PHY器件地址,5bit宽,即一个MDIO总线最多可以外加32(25)个PHY器件。每个PHY器件都把自己的地址与PHYAD进行比较,若匹配则响应后续操作,若不匹配则忽略后续操作。

● REGAD为PHY器件寄存器地址,5bit宽,用于选择PHY器件内部的32个寄存器中的某一个寄存器的地址。

● TA 为状态转换域,2比特。读操作时,第1比特由MDIO模块送出的高阻态来进行设置,第2比特由PHY芯片置为“0”,即“Z0”。写操作时,MDIO信号由MDIO模块控制,输出“10”。

● DATA 为帧寄存器数据域,16比特。读操作时为PHY器件送到MDIO模块的串行数据,写操作时为MDIO模块送到PHY器件的串行数据。

● IDLE为帧结束后的空闲状态,此时是高阻态。由于主从双方共享双向总线,所以一方在控制帧发送完成以后,需迅速将信号置于高阻态,便于其他方占用。

3 TEMAC核中的MDIO控制

TEMAC核的MDIO总线系统为主从结构,如图2所示。TEMAC核作为主机, PHY器件作为从设备,主机通过MDIO总线发出修改寄存器配置和访问状态寄存器的请求,从设备必须对主机的请求做出响应。

a9cf365e44cb47cdb2281ea9c9da0f10.png

图2 MDIO总线系统示例

(1)MDIO 接口的读/写时序

读/写过程由MDIO管理数据帧实现,且由工作在主模式的MDIO初始化,所有工作在从模式的MDIO只要被选中就必须做出应答。MDIO详细说明请参考IEEE802.3标准。如图3所示为MDIO写时序,是MAC核驱动MDIO的过程,操作码OP为“01”,通过匹配PHYAD选中PHY器件,并将16比特的数据域(WRITE DATA)写入PHY器件中匹配REGAD的寄存器。MDIO读时序如图4所示,分为MAC驱动MDIO和PHY驱动MDIO两个阶段,操作码OP为“10”,PHYAD匹配的PHY器件将被REGAD选中的寄存器信息返回给 MDIO模块。

cb5ba9b5e19e46d0b3b5d38806344919.png

图3 MDIO时序

582cef54e92c4a758e1135c9aa1f0a8d.png

图4 MDIO读时序

(2)基于 MDIO 的PHY配置与控制

通过管理接口访问MDIO接口是寄存器映射过程,进而实现对PHY寄存器的配置。 MDIO配置寄存器地址如表2所示,各寄存器的比特位详细定义请参考UG800。

表2 MDIO配置寄存器地址

89e44e39145b490894ebfa754cdde914.png

通过AXI4-Lite接口实现1次MDIO写操作:首先将要写入的数据置于MDIO写数据寄存器(WRITEDATA)中,写操作初始化由AXI4-Lite接口设定MDIO配置字1(MDIO Configuration Word1)寄存器实现,OP置为“01”,将要访问的PHY器件地址及其寄存器地址分别写入PHYAD和REGAD。MDIO配置字1寄存器中的第7比特为MDIO READY信号,用于表示MDIO读/写操作是否可用。当写操作配置完成时,MDIO READY信号会被置于无效状态,且MDIOREADY在这次写操作完成后才结束无效状态。

通过AXI4-Lite接口实现1次MDIO读操作:同样由AXI4-Lite接口设定MDIO的配置字1寄存器实现初始化,OP置为“10”,将要访问的PHY器件地址及其寄存器地址分别写入PHYAD和REGAD。当读操作配置完成时,MDIO READY信号会被置于无效状态,直到这次读操作完成;当MDIO READY再次有效时,表示请求读取的数据在MDIO的READ DATA寄存器中,可以被AXI4-Lite接口读出。

4 MII接口分析

MII即媒体独立接口,也叫介质无关接口,它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口和管理接口:数据接口支持10/100Mbps数据速率,包括16个信号,分为2个独立的发送和接收通道,收发通道都有自己的数据、时钟和控制信号,数据位宽为4比特:管理接口是一个双信号接口,一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY器件。MII接口速率为10Mbps时,时钟频率为2.5MHz:MII接口速率为100Mbps时,时钟频率为25MHz。TEMAC核的MII接口信号简要说明如表3所示。

表3 MII 接口信号简要说明

0463c8f4d6384b17bfdfe57815318645.png

MII接口使用灵活,但其由2根时钟信号线和14根数据状态信号线组成,接口信号线过多;以MII接口作为交换机接口,将造成引脚数目较多,给芯片和PCB设计带来了一定的难度。通过信号复用、调整数据宽度,设计出了简化版的MII,将MII的16根数据线减少为8根,即RMII接口,数据位宽为2比特。由于TEMAC并不支持RMII,所以这里不再赘述。

5 GMII/RGMII接口分析

千兆媒体独立接口GMII是对MII的扩展,接口位宽为8比特,支持1000Mbps传输速率(工作时钟为125MHz),同时兼容MII 的10/100Mbps模式。TEMAC核的GMII接口信号简要说明如表4所示。

表4 GMII 接口信号简要说明

59b984aa9fa642cba96b31f460ca406e.png

RGMII 接口是简化的GMII接口,支持10/100/1000Mbps的传输速率。TX/RX数据宽度从8位变为4位,时钟频率仍为125MHz,为了保持1000Mbps的传输速率不变,在参考时钟的上升沿发送GMII接口中的TXD[3:0]/RXD[3:0],在参考时钟的下降沿发送 GMII 接口中的TXD[7:4]/RXD[7:4]。由于RGMII使用了双倍速率触发器,并将接口信号线数量从24根减少到14根,比GMII减少了近一半的引脚数,所以PCB设计者更加青睐使用RGMII。TEMAC核的RGMII接口信号简要说明如表5所示。

表5 RGMII 接口信号简要说明

669e5e0ac15f40d0abf47aed2cdd7480.png

6 SGMII/1000Base-X接口分析

串行吉比特媒体独立接口(Serial GMII, SGMII)和1000BASE-X都是串行接口,SGMII接口将并行的GMII/MII转换为串行信号,支持10/100/1000Mbps。SGMII收发端各采用一对差分信号线,时钟频率为625MHz,采用时钟双沿采样。基于节省引脚数量的考虑, SGMII接口受到了PCB设计者的青睐。1000Base-X即光纤千兆以太网,X表示单模或多模光纤。基于SGMII接口的互连系统如图5所示。

e109bcd266194d4cae12e083a83d4f30.png

图5 基于SGMII接口的互连系统

当以太网MAC的物理接口配置为1000BASE-XPCS/PMA或SGMII时,PCS/PMA子层模块将内部并行接口(MII、GMII或RGMII)转换为串行接口(1000BASE-X或 SGMII),串行接口通过串行收发器与外部的光收发器进行通信。当TEMAC配置为1000BASE-X PCS/PMA模式时,与串行收发器的连接如图6所示。

5b02525686cc457fa8cd438702f72d13.png

图6 TEMAC配置为1000BASE-XPCS/PMA模式时的连接示意

TEMAC核的SGMII/1000BASE-X接口信号简要说明如表6所示。

表6 SGMII/1000BASE-X接口信号简要描述

0fa9c109cde3425e939958b551781dc3.png

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1666340.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

探讨欧盟就人工智能监管达成协议

《人工智能法案》是一项具有里程碑意义的立法,它可以创造一个有利的环境,在这种环境中,人工智能的使用将成为一种更优秀的安全和信任的工具,确保整个欧盟的公共和私人机构利益相关者的参与。 历时3天的“马拉松式”谈判圆满结束&…

数据可视化训练第四天(模拟投掷筛子并且统计频次)

投掷一个筛子 import matplotlib.pyplot as plt from random import randint import numpy as npclass Die:"""模拟投掷筛子"""def __init__(self,num_sides6):self.num_sidesnum_sidesdef roll(self):return randint(1,self.num_sides)num1000…

vi\vim编辑器

root用户(超级管理员) 无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。 在Linux系统中,拥有最大权限的账户名为:root(超级管理员) root用户拥有最大的系统操作权限,而普通…

论文盲审吐槽多,谁给盲审不负责的老师买单?如何看待浙江大学「一刀切」的研究生学位论文双盲评审制度?

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验,帮助大家尽早适应研究生生活,尽快了解科研的本质。祝一切顺利!—…

二维数组 和 变长数组

在上一期的内容中,为诸君讲解到了一维数组,在一维数组的基础上,C语言中还有着多维数组,其中,比较典型且运用较为广泛的就是我们今天的主角——二维数组 一 . 二维数组的概念 我们把单个或者多个元素组成的数组定义为一…

DI-engine强化学习入门(七)如何自定义神经网络模型

在强化学习中,需要根据决策问题和策略选择合适的神经网络。DI-engine中,神经网络模型可以通过两种方式指定: 使用配置文件中的cfg.policy.model自动生成默认模型。这种方式下,可以在配置文件中指定神经网络的类型(MLP、CNN等)以及超参数(隐层大小、激活函数等),DI-engine会根据…

【漏洞复现】泛微OA E-Cology XmlRpcServlet文件读取漏洞

漏洞描述: 泛微OA E-Cology是一款面向中大型组织的数字化办公产品,它基于全新的设计理念和管理思想,旨在为中大型组织创建一个全新的高效协同办公环境。泛微OA E-Cology XmlRpcServlet存在任意文件读取漏洞,允许未经授权的用户读…

三星硬盘格式化后怎么恢复数据

在数字化时代,硬盘作为数据存储的核心部件,承载着我们的重要文件、照片、视频等资料。然而,不慎的格式化操作可能使我们失去宝贵的数据。面对这样的困境,许多用户可能会感到无助和焦虑。本文旨在为三星硬盘用户提供格式化后的数据…

计算机网络实验2:路由器常用协议配置

实验目的和要求 掌握路由器基本配置原理理解路由器路由算法原理理解路由器路由配置方法实验项目内容 路由器的基本配置 路由器单臂路由配置 路由器静态路由配置 路由器RIP动态路由配置 路由器OSPF动态路由配置实验环境 1. 硬件:PC机; 2. 软…

金三银四面试题(二十六):责任链模式知多少?

什么是责任链模式 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,旨在通过将请求的处理分布在一系列对象上,从而使得多个对象可以尝试处理同一个请求。这些对象被链接成一条链,每个对象都可以对请…

stm32——OLED篇

技术笔记! 一、OLED显示屏介绍(了解) 1. OLED显示屏简介 二、OLED驱动原理(熟悉) 1. 驱动OLED驱动芯片的步骤 2. SSD1306工作时序 三、OLED驱动芯片简介(掌握) 1. 常用SSD1306指令 2. …

专业130+总分400+哈尔滨工程大学810信号与系统考研哈工程水声电子信息通信工程,真题,大纲,参考书。

毕业设计刚搞完,总结一下去年考研的复习经历,希望对大家复习有帮助,考研专业课810信号与系统130总分400,如愿上岸哈工程水声。专业课:130 哈工程水声院810专业课信号与系统难度适中,目前数一难度很高&…

【C语言/Python】嵌入式常用数据滤波处理:卡尔曼滤波器的简易实现方式(Kalman Filter)

【C语言/Python】嵌入式常用数据滤波处理:卡尔曼滤波器的简易实现方式(Kalman Filter) 文章目录 卡尔曼滤波卡尔曼滤波公式卡尔曼滤波数据处理效果C语言的卡尔曼滤波实现附录:压缩字符串、大小端格式转换压缩字符串浮点数压缩Pack…

TCP三次握手四次挥手 UDP

TCP是面向链接的协议,而UDP是无连接的协议 TCP的三次握手 三次传输过程是纯粹的不涉及数据,三次握手的几个数据包中不包含数据内容。它的应用层,数据部分是空的,只是TCP实现会话建立,点到点的连接 TCP的四次挥手 第四…

JVM堆内存分析

jmap工具查看堆内存 jmap:全称JVM Memory Map 是一个可以输出所有内存中对象的工具,可以将JVM中的heap(堆),以二进制输出成文本,打印出Java进程对应的内存 找到pid jmap -heap 19792 Attaching to process ID 19792…

贪心算法-----柠檬水找零

今日题目:leetcode860 题目链接:点击跳转题目 分析: 顾客只会给三种面值:5、10、20,先分类讨论 当收到5美元时:不用找零,面值5张数1当收到10美元时:找零5美元,面值5张数…

bevformer详解(1):论文介绍

3D 视觉感知任务,包括基于多摄像头的3D检测和地图分割对于自动驾驶系统至关重要。本文提出了一种名为BEVFormer的新框架,它通过使用空间和时间的Transformer 学习统一的BEV表示来支持多个自动驾驶感知任务。简而言之,BEVFormer通过预定义的网格形式的Bev Query与空间和时间空…

icap对flash的在线升级

文章目录 一、icap原语介绍(针对 S6 系列的 ICap),之后可以拓展到A7、K7当中去二、程序1设计2.1信号结构框图2.2 icap_delay设计2.3 icap_ctrl设计(可以当模板使用,之后修改关键参数即可) 三、程序2设计四、…

如何同时或者按顺序间隔启动多个程序

首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 1、打开工具,切换到定时器模块,快捷键:Ctrl3 2、新建一个定时器,我这里演示同时打开多个程序(比…

在shell程序里如何从文件中获取第n行

问题: 有没有一种“规范”的方式来做到这一点?我一直在使用 head -n | tail -1,它可以做到这一点,但我一直想知道是否有一个Bash工具,专门从文件中提取一行(或一段行)。 所谓“规范”,我指的是一个主要功…