基于MicroBlaze的UDP通信设计与实现文献综述
2020-04-28 20:32:13
1、目的及意义 1.1 研究目的及意义 随着计算机技术与微电子技术的相互促进、相互融合和飞速发展,微型化设备逐渐成为可能,随后延伸发展为嵌入式技术。嵌入式以太网设备具有分布广泛、组网方便、成本低廉、系统兼容性好、传输距离远、传输速度快等优势,广泛应用在工业生产、教育科研、军工航天和日常生活等各个方面。 针对数据传输量大、实时性要求高的应用,UDP(User DataProtocol)提供了一种高效的、低延时的称为数据报的传输协议。目前业界常用的嵌入式以太网解决方案为在微控制器内移植软件TCP/IP 协议栈和在ASIC 内置协议栈,但往往都不能同时兼顾传输效率、可集成化和可移植性。 FPGA(Field-ProgrammableGate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。在FPGA 上实现嵌入式以太网传输的方案,不仅可以弥补上述方案出现的不足,而且在传输效率和资源占用率上都会得到改进。 MicroBlaze是基于Xilinx公司FPGA的微处理器IP核。相比于其他嵌入式软核处理器,MicroBlaze有其独特的优势:配置灵活,可以按功能需求添加相应组件来定制自己的CPU 软核处理器,使系统的集成度进一步加强。 综合以上事实和研究,本文拟采用Xilinx FPGA对基于MicroBlaze核的UDP通信协议进行研究,并对其网络传输速度进行测试、分析以及提升,实现PC与MicroBlaze的高速数据传输,
1.2 国内外研究现状 目前有多种分别基于不同的嵌入式平台实现网络数据传输的硬件实施方案。硬件系统设计中网络接入的技术难点在于如何使用有限的资源对信息进行网络协议处理达到速度、效率、成本的最优指标。常见有以下三种网络数据传输的硬件实施方案。 (1)ARM Linux 网卡。ARM Linux 的硬件设计优势是,芯片主频高,开放式面向多种语言的指令集,使不同应用领域的代码易于集成移植。但为单纯实现数据的传输加入网卡需自行编写外设与网络协议驱动,操作复杂,前期设计成本高,维护难度大。数据传输作为系统的辅助功能,此方案无法凸显ARM 作为系统核心的优势,且不利于集成。 (2)DSP PHY 芯片。DSP 数值处理能力强,优化的内部总线结构加强了数值处理效率,同样是系统开发的主流器件。针对网络应用,愈来愈多的 DSP 芯片直接在封装时嵌入了千兆网络通信接口,例如6455 系列中的EMAC 口,利用专门针对网络应用而开发的 LIB 库,其中包含的函数实现协议功能。这种方案相比(1)的情况开发难度有所降低,应用也较为成熟。但由于DSP 内部CPU 仍采取类似微机中的串行调用方式,效率有待提高,并且通过修改LIB 达到裁剪协议难度较大,未能达到节省存储资源的效果,此方案灵活性不高。 (3)FPGA PHY 芯片。FPGA 典型的特点在于以强大的内部资源换取实现的效率,不同于内部以CPU 为控制的串行结构,不受指令周期影响发挥并行触发的特色,加入高效IP 核,IP 核作为一段具有特定电路功能的硬件描述语言,通过对其的调用与设置完成MAC 层的功能。FPGA 外部对接物理层芯片88E1111,采用基于行为的VHDL 语言,可以灵活编写针对UDP 以及相关的协议栈,物理连接简易,不存在外设驱动与控制,只要在FPGA 内部资源允许的情况下,并行完成数据源传输协议,而且易于以模块形式集成。本文即采取这种方案进行设计与实现。 |
2. 研究的基本内容与方案
{title} 2、研究(设计)的基本内容、目标、拟采用的技术方案及措施 本方案的设计思路是在保证正常网络通信协议的前提下,将传统的开放式系统互联(Open SystemInterconnection,OSI)七层协议模型简化为五层协议模型,其中每一层执行某一特定任务,使各种硬件在相同的层次上相互通信。 简化过的协议模型如图1所示。
本系统遵从自顶向下的设计思想,参考精简后的系统模型,UDP/IP 协议栈根据模块功能独立性,以及发送和接收方向的数据传输协议特点来划分模块。模块接口间采用低耦合、高内聚的的设计思想,按UDP/IP 协议栈功能设计模块结构。系统主要划分为三大模块:CPU_Microblaze 模块、UDP_Complete 模块、MAC_Layer 模块。 UDP_Complete 模块又包含UDP 收发模块、IP 收发模块、ARP 模块以及数据选通模块TX_Arb。 系统的总体模块划分如图2所示。 拟采用的技术方案为:
(1)CPU_Microblaze 模块采用 Xilinx FPGA 内部嵌入式软核处理器Microblaze实现。CPU 通过AXI_Lite 总线与各模块进行交互控制; (2)UDP_Complete 模块是系统的核心,主要对帧数据进行处理,相对发送方向来说,其功能是将应用层的数据流进行数据帧封装,并将要发送的数据帧发送到网络总线上;相对接收方向来说,其功能是将外部来的数据帧进行解封,获得数据信息。 (3)MAC_Layer 模块采用FPGA 内部提供的三速以太网MAC(Tri-ModeEthernet MAC Wrapper)IP 核进行设计,用以实现MAC帧的封装、解封、发送和接收功能。 当系统启动发送帧数据时,系统开始对原始数据进行帧封装,应用层数据首先经过UDP_TX 模块,添加相应UDP 首部信息后将新的数据发送到IP_TX 模块,同样会给数据添加IP 层的首部信息,数据在向对方主机发送数据时,不仅需要知道目的IP 地址,还要知道对方的物理MAC 地址。首先查询自己的ARP 缓存表,如果缓存表内保存了目的主机的MAC 地址,就将MAC 地址填充到数据帧的相应位置,经过网口发送到网络总线上。当缓存表内没有目的主机的 MAC 地址时,要通过ARP 模块发送ARP 请求帧,以得到附带目的MAC地址的 ARP 响应帧。数据选通模块 TX_Arb 的功能是选通发送ARP 请求帧还是直接发送带有IP 首部信息的帧。
|
4、参考文献 [1]陈学泉,关宇东.嵌入式TCP/IP 协议单片机技术在网络通信中的应用[J].电子技术应用, 2002(8). [2]IETF.IPv4[S].http://zh.wikipedia.org/wiki/IPv4. [3] IETF.RFC768 Userdatagram protocol. [4]K Morita,K Abe.Implementation of UDP/IP pro-tocol on FPGA and its performance evaluation[C].IPSJ General Conf,Special5. [5]潘松,黄继业.EDA 技术与VHDL[M].北京:清华大学出版社, 2005. [6]赵研,谷弘毅.基于ARM 的以太网通信控制器[J].长春理工大学学报:自然科学版, 2010. [7]王敏.嵌入式系统的通用网络驱动模型设计与实现[J].长春理工大学学报:自然科学版, 2007. [8]崔鹤,刘云清,盛家进.基于FPGA 的UDP/IP 协议栈的研究与实现[J].长春理工大学学报:自然科学版, 2014. [9]甘仲民.毫米波通信技术与系统[M].北京:电子工业出版社, 2013. [10]Xilinx. MicroBlazeProcessor Reference Guide(Revision 5.1), 2005. [11]Adam D. Design andImplementation of the LwIP TCP/IP Stack, 2001. [12]Weigang HOU,Cunqian YU, Lei GUO,Xuetao WEI. Virtual network embedding for power savingsof servers and switches in elastic data center networks [J]. Science China(Information Sciences), 2016(12). [13]王珏,何秋燕,王露凯.基于UDP改进的可靠传输协议研究与实现[J].电脑知识与技术, 2015(09). [14]戴岳,苗长云,荣锋.基于MicroBlaze软核处理器的Bootloader设计[J].工矿自动化, 2009(11). [15]高一沅,黄春晖.基于MicroBlaze的以太网通信系统平台设计的研究[J].现代电子技术. 2007(17). [16]AlessioBotta,Antonio Pescape. IO and data management for infrastructure as a serviceFPGA accelerators[J]. The Journal ofSystems and Software, 2015. [17] AlessioBotta,Antonio Pescape.IP packet interleaving for UDP bursty losses[J]. TheJournal of Systems amp; Software, 2015. |