当前位置:   article > 正文

FPGA学习笔记——以太网_phy与fpga连接

phy与fpga连接

简介

以太网是一种产生较早,使用相当广泛的局域网技术,局域网就是一个区域的网络互联,可以使办公室也可以是学校等等,大小规模不一。包括标准以太网(10 Mbit/s)、快速以太网(100 Mbit/s)、千兆以太网(1000 Mbit/s)和万兆以太网(10 Gbit/s)等。这里单位是bit,换成byte百兆网能达到的最大网速为12.5MByte/s,千兆网能达到的最大网速为 125MByte/s。

网络模型


只考虑4层模型:

  • 应用层:FTP、HTTP、SMTP
  • 传输层:TCP、UDP
  • 网络层:IP、ICMP、ARP/RARP
  • 网络接口层:MAC

架构

此次学习考虑的架构图如下,用户数据在经过传输层时,传输层对用户数据进行封装,在用户数据的基础上添加了一个 TCP/UDP (这里用UDP协议)首部数据,此时数据包变成了 UDP 段;当它经过网络层时,网络层对 UDP 段进行封装,UDP 段变为IP 数据报;当它经过网络接口层时,网络接口层对 IP 数据报进行封装,此时 IP 数据报变成了完整的以太网帧。打包好数据帧后通过MII/GMII/RGMII等接口经过PHY芯片,通过网口传出。到达目的主机后每层协议再剥掉相应的首部数据,将用户数据解析出来处理。

其中PHY芯片作用:PHY在发送数据的时候,收到MAC过来的数据(对PHY来说没有帧的概念),然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去。收数据时的流程反之。PHY还有个重要的功能就是可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个随机时间后将送数据出去。
 

数据帧格式

总体数据帧大致如下:

1、MAC层


1.1  目的MAC:

        目的MAC地址从应用上可分为单播地址、组播地址和广播地址。        

  • 单播:第一个字节的最低位为0,比如00-00-00-11-11-11,用于标志唯一的设备;
  • 组播:第一个字节的最低位为1,比如01-00-00-11-11-11,用于标志同属一组的多个设备;
  • 广播:所有bit全为1,即FF-FF-FF-FF-FF-FF,它用于标志同一网段中的所有设备。
1.2  类型:
  • 数值小于1536:这个字段表示长度
  • 数值大于1536:0X0800-IP        0X0806-ARP

2、IP层

  • 版       本:4bit,0100-IPV4 0110-IPV6。
  • 首部长度:4bit,表示IP首部一共有多少个32位(4字节),没有可选字段时数值固定为5
  • 服务类型:8bit。3位优先级字段+4位TOS,最后一位固定为0。一般为0,表示一般服务。
  • 总  长 度:16bit,表示IP报文总长度:IP首部+IP数据。
  • 标       识:16bit,表示第几条报文,上电初识为0,每发一条报文+1。
  • 标       志:3bit,分片。第1位保留,第2位(1是不分片,0分片),第3位标志更多的分片。
  • 片  偏 移:13bit,片偏移,在接收方进行数据报重组时用来标识分片的顺序。
  • 生存时间:8bit,防止丢失的数据包无休止的传播,一般设置为64或128(每转发一次-1)。
  • 协       议:8bit,此数据报所携带上层数据使用的协议类型,TCP-6,UDP-17,ICMP-1。
  • 首部校验:16bit,该字段只校验数据报的首部,不包含数据部分;校验IP数据报头部是否被破坏、篡改和丢失等。
  • 源  地  址:32bit,自身IP地址。
  • 目的地址:32bit,接收方的IP。
  • 可选字段:数据报中的一个可变长度的可选信息,选项字段以32bit为界,不足时插入值为0的填充字节,保证IP首部始终是32bit的整数倍。

3、UDP层

UPD特点是:无连接、不可靠、高速率,格式如下:

UDP首部共8个字节,同IP首部一样,也是一行以32位(4个字节)为单位。

  • 源端口号:16位发送端端口号,范围从0到65535。
  • 目的端口号:16位接收端端口号。
  • UDP长度:16位UDP长度,包含UDP首部长度+数据长度,单位是字节(byte)。
  • UDP校验和:16位UDP校验和。UDP计算校验和的方法和计算IP数据报首部校验和的方法相似,但不同的是IP数据报的校验和只检验IP数据报的首部,而UDP校验和包含三个部分:UDP伪首部,UDP首部和UDP的数据部分。伪首部的数据是从IP数据报头和UDP数据报头获取的,包括源IP地址,目的IP地址,协议类型和UDP长度,其目的是让UDP两次检查数据是否已经正确到达目的地,只是单纯为了做校验用的。在大多数使用场景中接收端并不检测UDP校验和。

ICMP层和ARP层后面再详细写。

MII接口

PHY芯片与FPGA之间的接口为MII,即媒体独立接口,它是IEEE-802.3定义的以太网行业标准。“媒体独立”表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。它包括一个数据接口,以及一个MAC和PHY之间的管理接口。MII接口的类型有很多,常用的有MII、RMII、GMII、RGMII、SGMII,下面对它们进行一一介绍,不做赘述,只简单对比一下。

1.MII RMII

MII数据接口包含16个信号和2个管理接口信号。分别有单独的接收时钟和发送时钟。它的TX和RX数据线分别有四根,以4位半字节方式传送数据双向传输,时钟速率25MHz时其工作速率可达100Mb/s。当时钟频率为2.5MHz时,对应速率为10Mb/s。MII接口虽然很灵活但由于信号线太多限制了多接口网口的发展。

RMII(精简的媒体独立接口),它减少了以太网通信所需要的引脚数。根据IEEE802.3标准,RMII标准则将引脚数减少到了7个,收发数据为2bit,所以百兆网中时钟信号需要提高到50MHz,收发时钟均采用50MHz时钟源。MAC和外部的以太网PHY需要使用同样的时钟源。

总结(以百兆网为例):

  • MII传输4bit数据,时钟频率为25MHz;RMII传输2bit数据,时钟频率为50MHz。
  • MII有两条时钟线,RMII只有一条。
  • MII不需要与MAC层时钟一致。RMII需与MAC层时钟一致,通常从MAC层获取该时钟源。

2.GMII  RGMII

GMII(Gigabit Media Independant Interface),千兆MII接口。GMII采用8位接口数据两条时钟线,工作时钟125MHz,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps工作方式。

RGMII,精简GMII接口。它的发送/接收数据线由8条改为了4条,时钟线还是两条。虽然RGMII信号线减半,但时钟仍为125Mhz,为了达到1000Mbit的传输速率,TXD/RXD信号线在时钟上升沿发送接收GMII接口中的TXD[3:0]/RXD[3:0],在时钟下降沿发送接收TXD[7:4]/RXD[7:4],即RGMII为双沿传输

总结:

  • GMII传输8bit数据,时钟频率为125MHz;RGMII双沿传输4bit数据,时钟频率为125MHz。
  • GMII和RGMII都有两条时钟线。

MII接口详解:以太网详解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介绍-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/941583
推荐阅读
相关标签
  

闽ICP备14008679号