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博客

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
FPGA自学笔记——设计与验证JMB FPGA(可编程逻辑门阵列)是一种可编程的硬件平台,可以实现各种数字电路的设计与验证。本文将简要介绍使用FPGA自学设计与验证JMB(低功耗、高效能、集成度高的多媒体芯片)的过程。 首先,我们需要了解JMB的功能和特性。JMB是一种面向多媒体应用的芯片,具备低功耗、高效能和高集成度的优势。我们需要详细研究JMB的硬件架构和内部模块,包括处理器核、存储器模块、图像和音频处理模块等。 接下来,我们可以使用FPGA开发板来设计和验证JMB。首先,我们需要熟悉FPGA设计工具,例如Vivado或Quartus等。这些工具提供了图形化界面和硬件描述语言(HDL)等设计方法。我们可以使用HDL编写JMB的功能模块,并将其综合为FPGA可执行的位流文件。 在设计完成后,我们需要验证JMB的功能和性能。我们可以使用仿真工具(例如ModelSim或ISE Simulator)来模拟JMB在不同情况下的行为。通过设计测试程序并运行仿真,我们可以验证JMB的各个模块是否正确地工作,是否满足设计要求。 在验证完成后,我们可以将位流文件下载到FPGA开发板中进行智能芯片的物理实现和测试。通过与外部设备的连接以及相关测试程序的运行,我们可以验证JMB在实际硬件中的功能和性能。 总结起来,学习FPGA设计与验证JMB,我们需要熟悉JMB的硬件架构和内部模块,并使用FPGA开发工具进行设计与验证。通过仿真和物理实现测试,我们可以验证JMB的功能和性能。这些过程需要理论知识和实践经验的结合,希望这些笔记能够给你提供一些参考和指导。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值