一.以太网硬件架构概述
前文讲述了以太网的一些相关知识,本文将详细讲解以太网的硬件架构
以太网的电路架构一般由MAC、PHY、变压器、RJ45和传输介质组成,示意图如下所示:
PHY:Physical Layer,即物理层。物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。简单来讲,就是PHY芯片决定了电信号/光信号如何传输。PHY主要是个模拟芯片,我们只要稍微了解一下就行。在千兆以太网设计中,PHY芯片一般都是独立的集成芯片,并不需要在FPGA层面上来设计PHY,我们只需要掌握好PHY和MAC之间的接口,以及PHY的一些常见寄存器配置即可。
MAC:Media Access Control,即媒体访问控制。MAC是数据链路层的芯片,它的功能是提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。
隔离变压器:Transformer,也叫网络变压器。它主要实现电气上的功能而不实现逻辑功能。比如增强信号从而使传输距离更远;使芯片端与外部隔离,大大增强抗干扰能力,同时对芯片起到了很大的保护作用(如雷击)。理论上变压器不是必需的,没有变压器以太网物理层也能正常工作,只是电气性能会下降,传输距离会受限。
RJ45:网络连接器,RJ是Registered Jack的缩写即 “注册的插座” 。网络连接器并不一定是RJ45,只是目前在千兆以太网中,RJ45是最常见的连接器。它实现的是连接不同主机的网络接口的功能。
传输介质:也就是俗称的 “网线” 。电信号/光信号在这上面以一定的规范进行传输,它是发送和接收信息的载体。传输介质可以分为有线和无线两个大类,有线就是我们日常生活中常见的网线,而无线则是电磁波,例如WIFI和手机通讯等。
1.PHY芯片
PHY是物理层的芯片,它负责实现数据在物理层的传输功能。PHY芯片将数字信号转换为模拟信号,并把它发送到通信介质上;同时从接收的模拟信号中恢复出数字信号,再传输到上层芯片处理。
PHY在发送数据的时候,收到MAC过来的数据(对PHY来说,没有帧的概念,对它来说,都是数据而不管什么地址、数据还是CRC校验值),然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去;收数据时的流程反之。
PHY芯片的主要作用是通过网络介质(例如双绞线或光纤)传输数据。具体地说,它需要完成以下任务:
- 将数字信号转换为模拟信号,并输出到网络介质上
- 监测网络介质上的信号质量,并根据需要调整发送功率、电流等参数
- 从网络介质上接收模拟信号,并将其还原为数字信号
- 根据协议规范和控制器芯片的指令,对接收到的数据进行错误检测、纠错、解码等处理
- 将处理后的数据输出到MAC芯片或其他高层芯片进行进一步处理
PHY芯片的类型有很多,以我的开发板上的RTL8211F为例,其工作时的框图如下所示:
其结构框图如下所示:
引脚分配组成如下:
这里只需要了解其比较重要的几个对外接口即可:
MDIO接口:即Management Data Input/Output,管理数据输入输出接口,也称为 SMI 接口(Serial Management Interface,串行管理接口)。它的主要功能是对PHY内部的寄存器进行读取和配置,速率比较低,一般在10M以下,协议也比较简单。现在的PHY其实都设计得比较先进了,一般上电就可以直接使用,比不需要对内部寄存器进行多余的配置,除非一些特殊的需求。但为了确保PHY的稳定运行,有时候也需要定时读取PHY的一些状态寄存器来确定其处于正常的运行状态。
MDI接口:即Medium Dependent Interface,介质相关接口。它连接的是物理层芯片即PHY和传输介质,也就是说发数据时,MAC把数据通过xMII接口传递到PHY,PHY进行编码等一系列处理后,通过MDI接口发送到传输介质,这样就把数据从主机传出去了;接收数据的过程类似。
RGMII接口:PHY 的 MII 接口有很多种, 例如 MII、 GMII、 RGMII、 SGMII、 XGMII、 TBI、 RTBI 等。其中 RGMII 的主要优势在于,它可同时适用于 1000M、 100M、 10M三种速率,而且接口占用引脚数较少。但也存在缺点,其一, PCB 布线时需要尽可能对数据、控制和时钟线进行等长布线。其二,对其