论文部分内容阅读
以太网是局域网中应用最广泛的联网技术,其速率已经从最初的10Mbit/s发展到现在的10Gbit/s,而且其应用领域也已经从最初的局域网延伸到城域网、广域网。以太网由于其成本和性能优势,硬件实用性以及容易实施等优点,逐渐成为工厂首选网络协议。2007年8月,Altera首次宣布实现了对关键工业以太网协议的FPGA IP支持。但是集成以太网协议的IP内核只在Altera的一些高端FPGA上可以实现。尽管Altera的IP合作伙伴之一IXXAT提供以太网的开发套件,但是收费非常高。因此,自行开发出合理的协议堆栈、MAC、TCP/IP协议堆栈以及接口应用将具有很重大的意义和经济价值。本文主要工作在于,完成基于IEEE 802.3标准的以太网数据帧格式的封装实现。即把从应用层来的报文先后进行运输层的UDP协议封装,网络层网际协议IP封装,并最终打包成符合IEEE802.3标准的以太网数据帧格式。封装好的数据可以实现在网线上的传送。文中首先介绍了IEEE802.3标准规定的以太网数据帧格式,以及在TCP/IP协议族中UDP和IP数据报的格式。其后利用VHDL硬件描述编程语言,在QuartusⅡ环境下设计和验证实现封装的各个模块,实现了UDP封装、IP封装、MAC层以太网帧的封装。其中重点讨论了循环冗余校验CRC的实现。CRC32传统的串行移位寄存器实现方法的数据吞吐量只有330Mbps远远达不到千兆以太网1Gbps的要求。因此本文设计了一种并行输入结构的方法使用16位并行输入的结构数据吞吐量高达2Gbps,完全满足了本文千兆以太网的要求。本文实现封装的这一帧以太网数据,从上层协议送来的数据为1428个字节;UDP协议加上自己的首部,其中包括计算得到的检验和字段共8个字节,因此UDP封装数据长度为1436个字节;随后加上IP首部的20个字节,IP数据报总长度为1456个字节;最后加上以太网数据帧的22字节的首部和4个字节的FCS位,整个以太网帧长1482个字节。(这里的以太网数据部分满足46字节—1500字节的标准)。数据输出频率为250Mhz,每次取出4bit的数据,并行发送给PHY,达到了千兆以太网的要求。在论文的最后,给出两个系统模块的仿真,而且实现了两个核心模块CRC模块和UDP检验和模块的FPGA验证。