版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一个以FPGA和PHY芯片开发板为基础的百兆以太网通信系统设计摘要说道以太网通信系统,我们都不陌生,因为互联网给我们生活的方方面面带来了巨大的便利,广泛应用于各个领域,对生产具有重要的作用。游戏,工作,购物是日常互联网的重要内容。与传统的通信方式相比,以太网具有质的提高,但是对于当前最新的5G仍然具有可提高的空间。本文分析了几种常见的互联网和局域网,对他们的原理进行了分析,且对工作方式进行了比较和思考。因此本文在此基础上进行展开,以FPGA和PHY芯片开发板为基础设计了一个百兆以太网通信系统,并通过该系统把模拟电压发送到电脑上以验证系统的有效性。本文对系统各部分进行了设计与优化,能够实现基本的以太网通信功能。软件部分采用Verilog语言进行编程。相较于传统局域网,本设计能够更加稳定地工作,具有广泛的应用前景。关键词:以太网、FPGA、通信目录TOC\o"1-2"\h\u引言 11背景 51.1国内以太网发展历史和现状 51.2课题内容及相关知识 72综合设计 122.1总体设计方案 122.2FPGA选型 132.3PHY芯片选型 132.4AD转换选型 153硬件电路分析 183.1系统模块框图 183.2FPGA硬件电路设计 193.3PHY硬件电路设计 213.4高速AD电路设计 244软件设计 264.1总程序设计 264.2模数转换环节程序 284.3百兆以太网模块化子程序 294.4传输层UDP子程序 304.5本章小结 335系统调试 345.1分步调试 345.2本章小结 356总结 36参考文献 38引言自从上世纪电子信息技术和互联网技术的诞生起,以太网就逐步进入我们的生活之中。稳定性、快速性、准确性是互联网通信的重要指标。伴随着科学技术以及人类自身需求的不断发展,人们也在追求更加快速,稳定的通信系统。而百兆互联网通信系统就很好的符合了这些需求。在典型的百兆以太网通信系统之中,电路结构包括了FPGA、上位机。是一种面向无连接的传输层协议。无连接是指在传输数据时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。这样就大大提高了运行的稳定性。FPGA由于其出色的稳定性与可靠性,使其在图像处理领域得到广泛应用。百兆以太网具有高速率、高可靠性、远距离传输的优点,非常适合传输数据量大的传输。
1背景1.1课题的背景互联网是现代生产生活的主要形式之一,产业的发展已经初具规模,新型的网络5G也在原有的设计方案上迅速完善,近些年来,我们国家的通信行业发展步入世界前列,这是一个值得骄傲的事情。同时在漫长的历史过程中,我国互联网发展经历了以下几个发展过程。改革开放以来:长达半个世纪时间,计算机行业是中国急需去提高的行业首选,被广泛使用,影响深远。随着以太网技术的飞速发展,以太网按照传输速率划分有标准以太网(10Mbit/s),快速以太网(100Mbit/s),千兆以太网(1000Mbit/s)和万兆以太网(10Gbit/s)。市场上出现的万兆以太网(10Gbit/s),它扩展了IEEE802.3协议和MAC规范,使其技术支持10Gbit/s的传输速率。在实际生活应用中,标准以太网和快速以太网已经能够基本满足人们的日常需求,对通信速率要求较高的场合,才会用到千兆以太网。但是随着各类技术的发展,在通信的传输中,各个行业的设备需要采集的数据量越来越大,对数据的传输速度和距离要求越来越高。传统的总线技术,比如RS485及RS232等传输通信协议已经无法满足需要。以太网通信具有传输速度快和传输距离长的优点,并且目前的以太网控制器大多集成了以太网硬件协议栈,使得以太网通讯的开发和实现变得越来越简单,因此在遥测设备中得到越来越广泛的应用。当前,以太网很普及,电脑上的以太网接口,Wi-Fi接口,以太网交换机、路由器上的千兆,万兆以太网口,还有网线,它们都是以太网的组成部分,以太网可以用在局域网、广域网、也可以用在互联网上。图1.1以太网原理图图1.2485转以太网连接以太网,属于网络低层协议,通常在数据链路层和OSI模型的物理层操作。它是总线型协议中最常见的,数据速率为10Mbps(兆比特/秒)的同轴电缆系统。该系统相对比较便宜且容易安装,直接利用每个工作站网卡上的BNC-T型连接器,就可以将电缆从一个工作站连接到另一个工作站,完成网络传输控制任务。随着相关科学技术的不断发展,百兆以太网通信装置开始向体积小型化,结构简单化,接线清晰化的方向发展。图1.3以太网示意图1.2课题内容及相关知识本系统是一个根据通信原理而自动化控制调节的百兆以太网通信系统,结合实际的需求和应用场景,改善了效率、功耗、智能化程度,具体来说,本文设计了一个百兆以太网通信系统,并通过该系统把模拟电压发送到电脑上以验证系统的有效性。本设计的主要研究内容有:1.使用FPGA开发板以及PHY芯片开发板。2.通过FPGA控制PHY芯片的驱动。3.通过模数转换器(采样率大于10MSPS,位数大于8bit)采集电压信号,然后利用该以太网系统把电压信号发送到电脑上。4.使用开源上位机网络调试助手而需要完成以上内容就需要了解相关知识:路由就是当一台路由器(或其他三层设备)收到一个IP数据包时,路由器查看IP数据包的IP头部,将IP头部中的目的IP地址拿到路由表中进行查找,找到匹配的条目后,依照条目所指示的下一跳IP地址及出接口信息将数据包进行转发。连接在这台交换机上的PC,都属于一个LAN。这些PC都拥有同一个网段的IP地址,同时也处于同一个广播域中,所谓的一个广播域,指的是一个广播数据帧所能泛洪的范围,举个简单的例子,那就是PC1发送一个广播帧,接在交换机上的所有的PC都会收到这个广播数据帧并且都要去分析这个报文。通常使用专门的网络接口卡或通过系统主电路板上的电路实现。以太网使用收发器与网络媒体进行连接。收发器可以完成多种物理层功能,其中包括对网络碰撞进行检测。收发器可以作为独立的设备通过电缆与终端站连接,也可以直接被集成到终端站的网卡当中。以太网的本质实质上就是局域网。其最初是由Xerox公司创建并由Xerox、Intel和DEC三家公司联合开发的基带局域网规范,后来被电气与电子工程师协会(IEEE)所采纳作为802.3的标准。以太网的分类有标准以太网(10Mbit/s),快速以太网(100Mbit/s)和千兆以太网(1000Mbit/s)。随着以太网技术的飞速发展,市场上也发展出现了万兆以太网(10Gbit/s),万兆以太网扩展了IEEE802.3协议和MAC规范,使其技术支持10Gbit/s的传输速率。我们的毕业设计在此基础上能够很好的得以学习和应用。与FPGA的匹配性和适应性都非常的好,所以本次设计使用FPGA来完成。以下是以太网和传统数据传输得对比。图1.4以太网示意图图1.5集成开发示意图以太网传统数据传输优点1.传送频带较宽(100Hz—5KHz)适宜于大量的数据传输2.抗干扰性强,内设限幅器除可去幅度干扰3.应用范围广,能够用于多种信息传递4.可实现广播1.价格便宜,并且编程部分容易实现2.部分通信协议抗干扰性强,内设限幅器除去幅度干扰3.应用范围广泛,可以用于多种信息传递4.可配合嵌入式设备实现缺点传播中易受干扰,噪声大传播衰减大,覆盖范围小以太网取得巨大的成功,得到不断发展,与fpga的组合更是一日千里。以中央控制器为Xilinx公司的FPGA(XC3S400)为例,以太网控制器采用Wiznet公司的W5300,隔离变压器采用TI-6T,TI-6T支持频率高达300MHz,既能够满足百兆以太网的频率要求,也能有效地保护接口电路,同时还实现了设备的小型化。本文采用模块化的设计思想将整个系统划分为初始化模块、FIFO数据模块、数据传输缓存模块、上位机显示模块。百兆以太网传输模块实现数据传输,上位机进行接收数据并进行实时显示。百兆以太网模块中物理层的实现,采用PHY芯片开发板;数据链路层(MAC)将待发送的数据封装成以太网数据帧;网络层(IP)负责分割和重新组合数据包,进行不同网络系统间的路径选择;传输层(UDP)将数据组织成数据段,用一个寻址机制来标识一个特定的应用程序(端口号)。UDP传输协议的数据传输是基于数据包形式的。每个数据包的包头内嵌有4字节的发送端IP地址、2字节的发送端端口号和2字节的数据包长度。对FPGA的配置过程即对SOCKET的初始化,其中FPGA的初始化即配置通用寄存器,分3个步骤:主机接口设置、网络信息设置和内部TX/RX存储器空间的分配。设置主机接口及网络信息等过程需要先后完成对26个不同寄存器的设置。FPGA如果采用一般方法来设置这些寄存器,不仅设置过程繁琐,而且逻辑比较复杂,降低了逻辑的园活性。所以在本接口的设计中,通过构建RAM,完美地解决了这一问题。具体过程为:调用了FPGA内部的IP核,搭建深度为64B。以上就是本次设计所需要掌握和了解的基本内容,掌握了这些内容才能更好的开始本次设计。图1.6接口配置图
2综合设计2.1总体设计方案本文所设计的通信系统主要功能有:通过FPGA控制PHY芯片的驱动,模数转换器实现信号的采集、将采集到的相应电压发送至电脑上位机,这些功能能够方便用户的使用和开发。框图如下所示,PLL时钟模块将发送信号到达UDP顶层模块,UDP对信号采集和处理,UDP顶层模块实现了以太网UDP数据包的接收和CRC校验的功能,再将数据发送FPGA模块,FPGA内部的通道再对电路信号进行检测和采样。因为数据过大,所以设置FIFO模块和储存数据模块,存储数据模块可以进行数据缓存,同步FIFO模块是由Vivado软件自带的FIFOIP核生成,用于满足单包数据量较大的情况下工作。在完成模数转换后,将接收到的信号通过phy芯片传输至上位机。图2.1总体结构图2.2FPGA选型方案一:EP4CE6E22C8FPGA芯片,这是一款应用十分广泛的芯片。拥有79个IO口,在1.15~1.25V的电压环境下工作。可以使用的引脚为44个,io口为79个,可以满足本次设计的需求。芯片工作时温度要求在0~65摄氏度的环境下,仅仅只有1.44mm的高度体型小巧。考虑到EP4CE6E22C8FPGA芯片的稳定性以及相对较低的价格,所以选择这块芯片。方案二:FPGA型号EP4CE10F17C8,与EP4CE6E22C8相比,EP4CE10F17C8不仅拥有EP4CE6E22C8所拥有的各种优点,同时还拥有更多可以使用的引脚(256个),高达179个的io口,能够进行更多的器件调试,所需要的电压仅为1.15v到1.25v,同时还可以支持最高85摄氏度的高温工作环境。与EP4CE6E22C8相比其实性能更为优越,但考虑到本次实验的具体要求以及其两倍于EP4CE6E22C8的价格,所以将此方案放弃。PHY芯片选型PHY是物理接口收发器,它能够实现物理层IEEE-802.3标准,定义了以太网PHY。包括MDI子层,PMA(物理介质附加)子层,PCS(物理编码子层)子层,PMD(物理介质相关)子层,MII/GMII(介质独立接口)子层。它符合IEEE-802.3k中用于10BaseT和100BaseTX的规范。PHY在发送数据的时候,收到MAC过来的数据。把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去。接收数据时的流程则正好相反。PHY还有一个重要的功能就是实现CSMA/CD的部分功能。它可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,而一旦检测到网络有空闲,会等待一个随机时间,后将接收的数据发送出去。方案一:RTL8211芯片:RealtekRTL8211是高度集成的以太网收发器,符合10Base-T,100Base-TX和1000Base-TIEEE802.3标准,数据传输的稳定性,不同工作模式下,不管是强制,自协商SPEEDDUPLEX使用iperf工具进行长时间的打流测试。设置发包的大小,不同字节的包进行打流测试。它提供了所有必要的物理层功能,以通过CAT5UTP电缆或CAT3UTP(仅10Mbps)电缆发送和接收以太网数据包。同时具有支持自动协商,支持并行检测,交叉检测和自动更正自动极性校正等功能,PHY芯片主时钟工作正常,link正常,MII,RMII,SMII,GMII以及RGMII通信时钟要满足标准这个可以使用示波器进行测量在强制或者自协商模式下进行工。而且还有内置开关稳压器,0.11μm工艺,拥有节能模式,功耗极低等优点。接口方面,RTL8211芯片PHY支持的接口工作模式,和主芯片SOC的MAC支持的接口工作模式TRGMII,RMII,MII等匹配,同时满足产品网络带宽的规格。工作时钟方面不管是晶体给PHY供时钟,还是主芯片给PHY芯片提供时钟,这个都满足芯片的本身要求。图2.2为RTL8211芯片的原理图。,图2.2RTL8211芯片原理图方案二:DP83865芯片:DP83865芯片是使用较多的PHY芯片,具有SGMII接口、支持工作温度范围的耐用型低延迟千兆位以太网PHY收发器等优点。不过在博客上发现此芯片可能具有以下问题:1)不做任何软件配置的前提下,在自适应的情况下能够与带千兆以太网的电脑连接上,但是与百兆网卡连接,则会出现信号不够稳定的情况。2)禁止自适应功能,把传输速度固定在百兆,这种情况下可以与部分百兆网卡的电脑连接上,但是还是会有部分电脑不能连接上。3)在千兆模式下进行工作时,芯片发热问题严重。图2.3为DP83865芯片的原理图图2.3DP83865芯片原理图2.4AD芯片选型:首先需要知道,高速AD的主要区别在位数和速度上。1.位数越高,电路规模度会呈现几何级的增长,动态范围也会更大,所以对工艺线和集成度要求更高。2.基准电压源。精度要求足够高,投入的研究精力和使用难度也会变大。还有温度稳定性,很多超出常规知识范围之外的东西都会造成影响。3.速度。速度和位数实际是矛盾的,除非制造的相关技术得到巨大提升。国内有高速低位的也有低速高位的。所以,在选择AD转换芯片的时候需要将这些因素考虑进去。方案一:ADC0832模块,是一个数字(模拟)输入模块,是一种经常使用的模块。ADC0832是一种拥有双通道A/D转换,同时能够进行8位分辨率的芯片。它具有体积小,兼容性强,性价比高等优点。同时.在一般情况下工作时功耗仅为0.015W,功耗极低;.输入输出电平与TTL/CMOS相兼容等特点,可以用于各种设备状况的通信量的模拟,检测和模拟的速度非常准确和稳定,转成数字信号(DO)和模拟信号(AO)输出,并广泛应用于单片机的设计之中套件。本次在模拟之中得以使用。方案二:AD0809模块,AD0809是一个8位逐次逼近型A/D转换器。它的组成包括一个A/D转换器、一个8路模拟开关、一个地址锁存译码器以及一个三态输出锁存器。多路开关可选通8个模拟通道,允许8路模拟量分时输入,同时使用A/D转换器进行转换。但是AD0809模块信号单极性,电压范围的可工作值是0-5V,若信号太小,就必须进行放大;而输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,就需要在输入前增加采保样持电路。但是AD0809模块的转换精度受到了极大的限制,加之与FPGA的共同工作效果也并不出色,综合考虑之后,本次不予采用。方案三:正点原子的高速AD模块,高速AD转换芯片由恩瑞浦公司生产的,型号是3PA1030。模块的硬件结构图如下图所示。3PA1030芯片的输入模拟电压转换范围是0V~2V,所以电压输入端需要先经过电压衰减电路,使输入的-5V~+5V之间的电压衰减到0V~2V之间,然后经过3PA1030芯片将模拟电压信号转换成数字信号。3PA1030芯片,10位,50MSPS,也就是每秒采样百万次的模数转换器,集成片上基准电压源和采样保持放大器。拥有高性能低功耗的特点。并且正点原子是口碑比较好商家。图2.43PA1030芯片工作原理3硬件电路分析3.1电路模块框图图3-1开发示意图图3-1给出本系统的总体结构框图。本系统主要可以分成为三大模块:数模转换模块、PHY接口模块、MAC核心处理模块。上位机通过RJ45接口也就是我们常说的网线接口与PHY相连接,PHY芯片在发送数据时,会通过MII接口将MAC层,也就是FPGA发过来的并行数据转化为串行流数据,按照物理层的编码规则把数据编码转换为模拟信号通过网口发送出去,接收数据的流程则正好相反。在给网卡接入网线的时候,PHY芯片会不断发出脉冲信号来确定连接端是否有设备,双方自动协商并确定连接速度、双工模式、是否采用流控等。而协商的结果一般会是两个设备中所能够同时支持的最大速度和最佳的双工模式。而数模转换模块则是与FPGA模块相连,将数字量信号转换成模拟量信号,接收并缓存信号,再发送给FPGA端,FPGA将这些数据发给电脑上位机,完成以太网通信系统的测试。图3.2FPGA原理图片3.2FPGA硬件电路设计这次使用的开发板使用Intel公司CycloneIV系列的EP4CE6E22C8型FPGA芯片,EP4CE6E22C8型FPGA芯片具有成本低,功耗低,资源较丰富的特点。板载SPIFLASH作为配置器件,是一款精致的FPGA最小系统。以下是FPGA的电路。1)具体来说,SPIFLASH作为大容量掉电不丢失存储器,可用于存储FPGA配置数据(固件),等效EPCS角色。也可用于存储用户数据。晶振:开发板上载有50MHz的有源晶振,能够为FPGA提供稳定的时钟信号。电源:整板只需输入一路5V电源即可工作,板载可实现从5V转3.3V、5V转2.5V和5V转1.2V。电源芯片使用的是高效率开关电源芯片,由安森美公司生产制造,开关频率高达1.7MHz,效率最高可达96%。用户LED:板载4个LED灯,低电平有效。扩展IO:核心板提供总共36+36+4=76个扩展IO,用于和其它外设相连。图3.2FPGA最小系统电路分配引脚图如下:TXERGPIO0-16PIN_110RXD5GPIO0-5PIN_126TXENGPIO0-14PIN_112RXD4GPIO0-4PIN_127TXD7GPIO0-25PIN_86RXD3GPIO0-3PIN_128TXD6GPIO0-24PIN_87RXD2GPIO0-2PIN_129TXD5GPIO0-23PIN_98RXD1GPIO0-1PIN_132TXD4GPIO0-22PIN_99RXD0GPIO0-0PIN_133TXD3GPIO0-21PIN_100RXCGPIO0-9PIN_120TXD2GPIO0-20PIN_103RSTGPIO0-17PIN_106TXD1GPIO0-19PIN_104MDIOGPIO0-27PIN_84TXD0GPIO0-18PIN_105MDCGPIO0-26PIN_85TXCGPIO0-15PIN_111GTXCGPIO0-11PIN_115RXERGPIO0-10PIN_119CRSGPIO0-13PIN_113RXDVGPIO0-8PIN_121COLGPIO0-12PIN_114RXD7GPIO0-7PIN_124RXD6GPIO0-6PIN_1253.3以太网通信电路设计在本次毕业设计中,选用PHY芯片开发板。在FPGA的学习中对PHY芯片并不陌生。该芯片模块已作为很多电子产品和路由器交换机设备的器件,优势是编程简单易懂,而且功能易于实现,同时考虑到效率及其他因素,为了达到数据更新更快以及降低通信更加方便,PHY的下行接口为差分线(接RJ45水晶头),接收和发送的是模拟信号,上行口是MII,接收和发送的是数字信号。MAC的上行口是PCI总线或SOC内部总线,下行是MII接口连接的是PHY的上行口。采用FPGA作为中央控制器,完成对以太网控制器的控制、对数据的编码和存储。在接口和遥测设备之间采用隔离变压器以保护接口。电路图如下图所示,引脚包括3.3v电压管脚,接地管脚,复位管脚,在低电平时有效。以及两个配置接口,4个发送方向接口和4个接收方向的接口图3.31百兆网模块通过这里与开发板相连接图3.3PHY芯片原理图PHY芯片的引脚连接即作用图如下:管脚名说明方向备注D3V33.3V电压管脚I注意电压要求。通电前要再三确认电压GND接地管脚IE_RESET千兆网复位管脚。值为低电平时,复位有效。I配置接口E_MDIO配置接口中数据总线IO配置接口是通用标准接口,E_MDC配置接口的时钟线I发送方向接口(开发板发送数据给本模块,本模块再发给网络另一端)E_TXER发送包文错误指示信号。表示该包文是错误的。不常用,建议置为0即可。I发送接口的时序,其实关键的是TXC、TXD、TXEN。这跟明德扬的规范信号一致的,TXC就是时钟,TXD就是数据,TXEN就是VLD信号。但以太网发送的数据有格式要求,必须是以太网格式的包文。E_TXD发送包文数据总线,GMII使用8位;RGMII使用其中的4位。IE_TXC发送包文的时钟信号,非GMII/RGMII模式时使用。IE_TXEN发送包文数据使能信号。表示传输给本模块的数据有效。IE_GTXC发送包文的时钟信号。GMII/RGMII模式时,时钟必须是125MHz。I接收方向接口(本模块从网络另一端接收到数据,然后发给开发板)E_RXER接收包文错误指示信号,表示此包文有错误O接收接口的时序,关键的是RXC、RXD、RXDV。RXC就是时钟,RXD就是数据,RXDV就是VLD信号。接收到数据容易,但要识别出数据的内容,则需要按照以太网格式去解析。E_RXD接收的数据总线,GMII使用8位;RGMII使用其中的4位。OE_RXDV接收包文数据使能信号。表示传输给开发板的数据有效OE_RXC接收包文的时钟信号。GMII/RGMII模式时,时钟正常是是125MHz。O图3.4自动协商设置PHY芯片发出脉冲信号来检测对端是否有设备,它们通过标准的"语言”交流,互相协商并确定连接速度、双工模式、是否采用流控等,以便两个设备中能同时支持的最大速度和最好的双工模式。3.4高速AD电路设计AD模块电路主要包括扩展口,AD芯片,电源电路模块和低通滤波器,衰减电路。高速双路AD模块在电路中的作用是同时采集两路外部模拟信号,在模块内部实现模数转换/模数转换,将转换后的数字信号传给FPGA管脚,FPGA内部逻辑系统通过抓取数据将外部的模型信号呈现出来。双路AD模块使用到的管脚连接道路JP1上,这些管脚包括十位的数据,时钟以及电源等信号。U2用于将5V电压转成VCC+(2.8V)供U1使用,U1将VCC+转成了VCC-(-2.8V),±2.8V电压供双电源运放TPH2501使用。U3负责将5V电压转成VCC(3.3V)。低通滤波器则是容许低频信号通过,但减少频率高于截止频率的信号的通过。衰减电路则是如图3.42所示,输入的模拟信号IN1(V1)经过衰减电路后得到AD_IN1(VO)信号,两个模拟电压信号之间的关系是VO=VI/5+1,即当VI=5V时,VO=2V;VI=-5V时,VO=0V。图3.5是AD的电源电路以及拓展口,3.6是衰减电路原理图图3.5电源电路以及拓展口图3.6衰减电路原理图
4软件设计软件设计主要是通过Verilog进行编写,可分为配置接口部分和网络数据传输部分,这样可以便于程序的编写,有利于进一步的分析和接下来的调试环节。整个系统的功能是由硬件和软件的配合而实现的,之前的部分完成了硬件部分的分析和调试。从实现的功能分析,分成FPGA主程序,它是整个控制环节的核心部分,负责各部分的总控制工作;第二部分就是上位机执行的子程序,又称为执行环节,也就是一个小的环节。4.1总程序设计系统软件设计部分包括对PHY进行初始化配置、模拟电压采集、FIFO数据缓存、百兆以太网传输、上位机设计。首先,通过编写代码完成初始化内部寄存器配置,然后数据捕获模块接收摄像头传输的数据并加以处理输入FIFO存储器中,当FIFO中的数据够以太网发送一次时,百兆以太网模块便从FIFO中取出数据进行传输,最后由上位机接收数据并实时显示。图4-1程序流程图数据流的具体走向则如系统框图如图4.12所示,FPGA开发板通过开发板上面的网口连接网线,然后网线连接电脑的网口来和上位机进行通信。FPGA程序部分设计模块的顶层模块包括UDP模块,fifo缓存数据模块以及脉冲信号同步处理模块。而为了方便实验,将以太网数据接收模块,以太网数据发送模块以及以太网数据发送crc32校验模块都放入了UDP模块。这样的话,可以直接调用这些模块,而不用修改内部模块。上位机通过网口发送数据,到达FPGA的开发板,开发板通过网口来接受数据。网口下面有PHY芯片,PHY芯片将网线上面传输的数据流转化成一个MII的接口,收据接收模块根据MII的接口来把数据解析出来,然后将解析出来的有效数据,即UDP的数据段,写到fifo里面。数据接收完成之后,以太网发送模块开始从fifo中读出数据,然后通过MII接口传送到PHY芯片上。PHY芯片通过发送数据的接口,转化成网线上传输的数据,再发送给上位机,而同时,crc检验模块对数据进行校验。这就是整个数据流的走向。图4.2系统原理图图4.3MII接口的发送时序图发送数据的时候,只要在发送时钟的驱动下,拉高发送数据的使能信号,在结束发送的时候,再拉低信号。在拉高数据使能信号的同时,给出数据,就可以将信号以字节为单位发送出去。在发送时钟的驱动下,RXDV为高电平的时候接受数据有效,为低电平的时候接收数据完成。图4.4MII接口的接收时序图4.2模数转换环节程序:当信号发生器产生模拟输出源时,接口接到双路AD芯片的信号输入端,在双路AD内部实现AD转换,将转换后的信号送给FPGA,在FPGA端只需要给AD芯片输出驱动时钟信号和使能信号,AD芯片就可以完成模拟采集并且将采集到的模拟信号转换成数字信号。图4.5双路AD系统框图当检测到FPGA的PA1引脚为高电平时,即表示系统工作在数据采集情况下,则使得电压采样工作。在设定电压采样循环为1秒钟时候,会用到FPGA内部的定时器/计数器。可以根据不同的需要配置出不同的计数方式。该系统主要涉及完成对INTO引脚的信号的捕捉,对信号脉冲宽度的记录以及对相连3个脉冲信号的宽度进行比较。当信号捕捉程序流程框图如图所示。图4.6信号捕捉流程图图4.7程序流程图以上是模拟信号转换成数字信号的流程图,在源程序中是不断循环不断采样的。首先采集初始化,即对各个控制信号线复位,随后就是对电压是否异常进行判断,如果存在异常则重新采集电压。如果不是则进行下一步,将数据进行采集,并且进行数模转换,然后将转换后的数据传输至上位机,然后程序结束。4.3百兆以太网模块化子程序在设计过程之中,百兆以太网系统的实现方式主要有:1)利用百兆以太网IP核,配合专用的PHY芯片实现数据传输;2)利用专用的网络集成芯片,内部集成MAC和PHY的功能,实现以太网数据传输。前者不仅价格昂贵,而且配置不灵活;后者传输速度不高。为此,本小节采用分模块化的方法设计了一种基于子程序,将整个百兆以太网模块拆分为物理层(PHY)模块、数据链路层(MAC)模块、网络层(IP)模块、传输层(UDP)模块,同时将目的MAC地址、源MAC地址、目的IP地址、源IP地址、目的端口、源端口等用端口引出,当应用环境发生变化,只需在顶层模块中修改端口参数,使得模块的灵活性、可移植性增强。程序的编写过程也变得更加容易清晰子程序部分子程序部分源IP地址目标IP数据统计报文检测可选字段数据传输查询图4.8程序流程图4.4传输层UDP子程序UDP用户数据报协议,是一种面向无连接的传输层协议。无连接是指在传输数据时,数据的发送端和接收端不建立逻辑连接。简单来说,就是当一台计算机向另外一台计算机发送数据时,发送端不会对接收端的存在进行确认,直接发出数据,同样的,在接收端在收到数据时,也不会对发送端收到数据与否进行反馈。由于UDP协议具有消耗资源小,通信效率高的特点,所以通常用于音频、视频和普通数据的传输(如视频会议等)等方面的应用传输,在应用传输中,即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。UDP协议是传输层中非常重要的两个协议之一,是一种无连接的传输层协议。在本次毕业设计的程序中,传输层子程序采用状态机加线性序列机的方式实现,同时为了实现模块的复用,将数据长度UDP_Lenth、目的端口号Receive_UDP_addr、源端口Send_UDP_addr作为独立的端口进行引出,当应用于其他环境需要改变数据发送长度与端口号时,只需在顶层模块中修改参数即可。图4.9udp模块展开图Udp模块包括以太网的校验模块,以太网的发送模块和接收模块。以太网的发送模块和以太网的接收模块的信号端口都是直接与udp的顶层模块相连接,发送模块与接收模块没有直接的数据交换,而crc校验模块是为发送模块做校验的。因为以太网复位信号是低电平有效,所以给udp高电平,让其保持工作状态。发送模块:首先定义七个状态,如上图4.10所示初始状态检测到上升沿(tx_start_en),也就是开始发送的信号后,对ip的首部做校验,校验完成之后跳转到发送前导码和帧界定符的状态,前导码和帧界定符的发送完成之后,再发送以太网的帧头,以太网帧头包括目的mac地址,原mac地址以及ip协议类型,发送完成之后再按照互联网协议根据格式发送ip的首部和udp的首部,接下里便是发送有效数据,紧接着发送四个字节crc的校验值,发送完成数据之后,再次跳转到空闲状态,再次检测发送信号,当开始发送信号来临,过程再次循环。接收模块:接收模块与发送模块有些类似,同样是定义了七个状态,但是不需要crc校验,只需要按照以太网的格式进行数据解析。接收过程如上图4.11所示,首先是初始状态,在初始状态不断检测以太是否有接收到数据,当接收到的数据是55,那么就有可能是一个前导码,那么开始检测前导码,如果接收前导码或者帧界定符错误,则是直接跳转到接收结束状态,如果接收到的数据格式正确,则是接收到了前导码和帧界定符,这个情况则是跳转到下一个状态,接收以太网的帧头。以太网帧头包含目的mac地址,如果mac地址错误,同样直接跳转到接收结束状态,如果mac地址是开发板地址,则跳转到接收ip首部,ip首部包含目的ip地址,如果接收ip地址和开发板地址不同,同样直接跳转到接收结束状态,如果ip地址和开发板地址相同,说明接收正确,跳转到接收udp的首部,udp首部接收完成之后,就接收有效数据,接收有效数据完成之后就算是接收完成了,接收完成之后跳转到初始化状态,重新开始一轮数据的接收。图4.10发送过程图4.11接收过程4.5本章小结这一章对主要的程序流程进行了详细的设计,是整个程序的难点部分,首先进行主程序的设计,然后对各个子程序,分别进行设计,最后再通过调用文件中断等,进行整体的系统完善和代码编写。
5系统调试5.1分步调试1、测试工具测试仪器及软件:数字万用表,PC机,串口调试助手,quartusⅡ,上位机网络调试助手。2、测试方法使系统运行,观察系统硬件检测是否正常(包括FPGA最小系统,A/D转换板等)。系统自带测试表格数据,观察显示数据是否相符合即可。百兆网应用系统的硬件调试和软件调试是分不开的,但通常是先排除系统中明显的硬件故障后才和软件结合起来调试。在进行硬件调试时先进行静态调试,用万用表等工具在样机加电前根据原理图和装配图仔细检查线路核对元器件的型号、规格的连接是否正常。然后加电检查各点电位是否正常。接下来再借助仿真器进行联机调试,分别测试扩展的RAM、I/O口、I/O设备、程序存储器以及晶振和复位电路并改正其中的错误。图5.1实物连接图使用串口调试助手与万用表,观察开发板与串口之间传输数据正确与否,上位机所显示的电压是否正常。3、测试结果分析自检正常,上位机显示正常,串口传输数据正确,FPGA和PHY工作。因为芯片是塑料封装,所以对长时间工作的稳定性不是相当高,需要一个很短的时间才能达到稳定。最后将硬件及软件结合起来进行系统的统一调试。实现相应的功能。图5.2测试结果5.2本章小结这一章主要是对系统实物部分进行详细的测试,通过测试可以验证程序的正确性,是一个非常重要的步骤,通过测试可知,本次实验可以使用FPGA开发板以及PHY芯片开发板,通过FPGA控制PHY芯片的驱动,通过模数转换器(采样率大于10MSPS,位数大于8bit)采集电压信号,然后利用该以太网系统把电压信号发送到开源上位机,本设计功能实现完全正常。6总结本文前面五章,对通信数据传输模型进行了详细的阐述,设计了以FPGA为核心的百兆以太网通信,能够实现通信数据模拟的功能。在本次设计过程中,我先参阅整理了大量资料,再结合所学专业知识设计多种方案,经过比较确定了最终方案,接着分别设计出各个单元电路,完成了一个完整的系统设计。需要注意的是各电路中很多数值、公式、计算方法的设置运用。同时也让我充分了解并熟悉了这些理论知识的诸多运用。首先利用AD/DA实现电压的采集,FPGA检测到了电压的信号,利用AD转换实现了模拟量到数字量的转换从而实现传输,转换结果最终实现了以下效果:以太网系统成功将数据传输至上位机。总而言之,达到了预期的功能效果。接着在此结构的基础上,在未来的工作中打算验证其在千兆条件下系统的可行性,进一步提出为千兆通信的新的系统而机构。
参考文献[1]徐志辉.FPGA和以太网的实时视频图像传输系统[J].电子世界,2022(01):51-52+55.DOI:10.19353/ki.dzsj.2022.01.025.[2]郑瑞,肖顺文,王涌.基于FPGA的千兆以太网实时图像采集与传输系统设计[J/OL].西华师版):1-7[2022-01-25]./kcms/detail/51.1699.N.20220112.1735.002.html.具体来说,系统时钟经过PLL时钟模块后,输出时钟,用于IDELAY[3]苏长青,余沛,杨阳,贺楠.基于STM32H743的仿真转台控制器设计[J].电子产品世界,2022,29(01):40-45.[4]孙晓磊,王红亮,陈航.基于FPGA的双FLASH数据记录器设计与实现[J/OL].电子测量技术:1-6[2022-01-25]./kcms/detail/11.2175.TN.20211229.1515.010.html.[5]杜伟豪,张瑞,吴琼,石金,王志斌,张鹏,李孟委.宽波段激光告警中以太网接收图像系统设计[J].激光杂志,2021,42(12):30-34.DOI:10.14016/ki.jgzz.2022.12.030.[6]冯云婷,张军,毛紫荆.实时以太网视频传输系统的设计[J].天津职业技术师范大学学报,2021,31(04):40-44+51.DOI:10.19573/j.issn2095-0926.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医处方权考试题库及答案
- 建设工程安全生产管理考试试题(答案)
- 企业注销考试题库及答案
- 国家消防员的面试题及答案
- 艺术概论热点题库及答案
- 执业医师考试试题及答案
- 医院医师入职考试试题及答案
- 江苏镇江市事业单位招聘工作人员笔试试题附答案
- bim工程师面试问题及答案
- 静脉治疗考核试题及答案
- 易制爆单位安全培训课件
- 2025员工安全知识培训课件
- 地下矿山顶板管理安全培训课件
- 监狱消防培训 课件
- 道路建设工程设计合同协议书范本
- 2025年安徽阜阳市人民医院校园招聘42人笔试模拟试题参考答案详解
- 2024~2025学年江苏省扬州市树人集团九年级上学期期末语文试卷
- 2026届江苏省南京溧水区四校联考中考一模物理试题含解析
- 民用建筑热工设计规范
- 学堂在线 雨课堂 学堂云 唐宋词鉴赏 期末考试答案
- 2025至2030中国辐射监测仪表市场投资效益与企业经营发展分析报告
评论
0/150
提交评论