以太 (Ethernet)是一种计算机局域 组 技术,基于IEEE 802.3标准,它规定了包括物理层的连线、电信 和介质访问层协议。
Ethernet接口的实质是MAC通过MII总线控制PHY的过程。
硬件原理分析
Ethernet 口通常由CPU、MAC和PHY三部分组成,通常用DMA控制器参与 口数据传输,以减轻CPU的负担。有的CPU内部集成MAC控制器,有的则采用外置的MAC芯片。
MII(Media Independent Interface 媒体独立接口)是IEEE 802.3标准定义的以太 行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口。MII数据接口包括分别用于发送器和接收器的两条独立信道,每条信道拥有数据、时钟和控制信 ,共16条信 线。MII管理接口即MDIO接口包含一个时钟信 (MDC)和一个数据信 (MDIO),通过管理接口,上层能监视和控制PHY。根据IEEE802.3标准定义,MII管理接口最多支持同时管理32个PHY。
CPU/MAC通过MDIO接口(类似于I2C接口,因此PHY拥有PHY ADDR)管理PHY芯片。
MAC和PHY之间的数据传输接口类型有MII/RMII(Reduced MII)/SMII(Stream MII)/GMII几种,根据传输速率(10M/100M/1000M)又有不同细分,比如千兆GMII/RGMII/SGMII。
每个数据帧64位,LSB先发。
PRE_32: 帧前缀(连续的32个bit,均为1)
ST: 起始信 (2个bit,’01’)
OP: 操作码(2个bit,’10’ – read,’01’-write)
PA5: PHY Addr(5个bit的PHY地址域,因此MDIO最多可以管理32个PHY)
RA5: Reg Addr(5个bit的PHY内部寄存器地址,同理,PHY寄存器最多包含32个寄存器)
TA: Turn-around(状态转换域,2个bit,写操作时,输出’10’;读操作时,释放MDIO数据线)
D16: 数据域(16个bit数据域)
MII接口PHY模式
软件架构和驱动代码分析
按照OSI七层协议,MAC工作在数据链路层,PHY工作在物理层。在Linux 络子系统中,IP层、TCP/UDP层及其上的应用层均为软件实现,由内核协议栈和用户态socket代码实现。
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24880 人正在系统学习中 相关资源:Ztrans丹诚软件Z39.50客户端-其它工具类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!