您的位置 首页 传感器

在FPGA中完成嵌入式TCP/IP通信协议栈

引言随着电子信息技术的发展,网络化日益普遍,以太网被广泛应用到各个领域,只要在设备上增加一个网络接口并实现TCP/IP协议,就可以方便地接入到现有的网络中,完成远程数据传输的相关功能。因此,嵌入式网络

导言

跟着电子信息技能的开展,网络化日益遍及,以太网被广泛运用到各个领域,只要在设备上增加一个网络接口并完结TCP/IP协议,就可以便利地接入到现有的网络中,完结长途数据传输的相关功用。因而,嵌入式网络技能一直是重视的焦点,现在现已广泛运用于通讯、工业操控、消费电子等各个领域。近年来,跟着可编程逻辑器件的飞速开展,人们开端考虑将整个嵌入式体系集成到单片FPGA中完结,其间也包含了以太网的嵌入式片上体系。

本文从实践运用动身,以Xilinx FPGA的软核CPUY MicroBlaze IPCore树立的片上体系(System—on—Chip),构建了嵌入式网络硬件开发渠道,完结了TCP/IP通讯协议栈LwIP(Light-weight Internet Protocol)在实时操作体系Xilkernel上的移植。具体介绍了其软硬件的体系组成和原理,论述了FPGA的片上体系装备,及其驱动层和协议栈层软件的结构,并给出部分要害源码。

1 体系硬件渠道规划

Xilinx为嵌入式网络通讯解决方案供给了广泛的组件和资源。Xilinx嵌入式解决方案的一个首要长处是其处理器、IP内核以及软件组件的灵敏性和可扩展才能,其强壮的灵敏性答运用户根据需求敞开或制止处理器、IP内核以及软件渠道的选项和高档功用,并且可以对许多独立参数进行精密调整,直到在软件级满意运用要求。

体系选用Xilinx公司的FPGA芯片XC5VFX70T为硬件规划渠道,以MicroBlaze软核作为中央处理器,以VHDL硬件描绘言语完结协处理功用模块,以片上总线衔接MicroBlaze处理器和外围设备(IP)来树立嵌入式片上体系。

Xilinx以IBM CoreConnect总线通讯链作为嵌入式处理器的片上总线,供给了丰厚的接口资源,首要有PLB(Processor Local Bus,处理器本地总线)接口、高速的LMB(Local Memory Bus,本地存储器总线)接口、FSL(Fast Simplex Link,快速单衔接)主从设备接口、XCL(Xilinx Cache Link,Xilinx缓存链路)接口。PLB总线可将外设IP核衔接到Micro Blaze体系中,常用在速度要求不高的场合;LMB专门用于完结对片上块RAM的高速拜访;XCL则用于完结对片外存储器的高速拜访。FSL是MicroBlaze处理器特有的一个根据FIFO的单向链路,可完结用户自定义IP核与MicroBlaze内部通用寄存器的点对点直接相连,一般用在传输速度要求较高的场合。

已完结的体系由MicroBlaze处理器、ILMB总线、DLMB总线、Block RAM、DDR SDRAM、10/100/1000 Soft TEMAC、GPIO接口、UART16550串口、PLB TIMER定时器,以及根据PLB总线技能的DDC(数字下变频)自定义IPCore和根据FSL总线技能的FFT(快速傅里叶变换)自定义IPCore组成。规划的体系架构如图1所示,整个体系在Xilinx的EDK开发东西中构建,具有彻底的可编程特性,可根据不同使命需求来更改相关的装备参数。

在FPGA中完结嵌入式TCP/IP通讯协议栈

2 体系软件渠道规划

2. 1 LwIP协议栈

LwIP是一个开源TCP/IP协议栈,在完结TCP/IP协议栈首要功用的基础上减少了对RAM的占用,一般只需求几十KB的RAM和40 KB左右的ROM就可以运转,因而十分适合在硬件装备较低的嵌入式体系中运用。EDK为LwIP库供给了杰出的接口,并为Xilinx公司TEMAC IP核供给了适配器,在EDK工程中便利地运用LwIP协议栈完结网络功用。LwIP具有如下特色:

①支撑多网络接口下的IP转发;

②支撑%&&&&&%MP协议;

③包含实验性扩展的UDP(用户数据报协议);

④包含堵塞操控、RTT预算以及快速康复和转发的TCP(传输操控协议);

⑤供给专门的内部回调接口(Raw API)用于进步运用程序功用;

⑥可选择的Berkeley接口API(多线程情况下);

⑦在最新的版别中支撑PPP;

⑧新版别中增加了的IP fragment的支撑;

⑨支撑DHCP协议,动态分配IP地址。

在Xilinx的嵌入式开发东西EDK中,LwIP的版别为lwip130,即LwIP的v1.3.0版别。LwIP库供给了RAW形式和Socket形式两类API函数,前者面向高功用,后者面向通用性,供给一组规范的Socket API接口函数。

2.2 Xilkemel实时操作体系

Xilkernel是Xilinx公司供给的用于EDK体系的小型、模块化的嵌入式实时操作体系,支撑MicroBlaze、PowerPC405以及PowerPC440处理器。Xilkernel是一种专用的嵌入式操作体系,内核完好,占用CPU资源较少,运转速度快,内核呼应时刻距离最短可设置为1 ms,且与EDK生成的硬件体系紧密结合,具有可定制的特色,支撑可移植操作体系接口(PO SIX),是中小型规划的抱负操作体系。其内部结构如图2所示。

在FPGA中完结嵌入式TCP/IP通讯协议栈

Xilkernel自身不带有文件处理体系和TCP/IP协议栈,但与LwIP库具有杰出的接口,且支撑LibXil MFS文件体系库,因而,也可构成较为杂乱的嵌入式体系。其具有如下特色:

①内核装备功用都已集成到EDK东西中,运用简略、便利;

②内核启动时,静态创立线程,而动态分配内存;

③可加载或卸载不同的功用模块来完结内核的扩展性;

④供给了一套契合POSIX的API用户程序接口函数;

⑤一切体系调用函数带有参数合法性查看维护,并回来契合POSIX的错误代码。

3 TCP/IP通讯协议完结及测验

3.1 Socket运用程序开发

LwIP Socket API是树立在XilKernel操作体系多线程使命基础上的,与BSD规范的Socket API十分类似,具有开发难度较小、便于用户调用的特色,可满意一般网络运用的要求。运用LwIP的Soeket形式,首要要在初始化线程中调用lwip_init()函数对LwIP协议栈进行初始化,再运用sys_thread_new()函数来发生一个新的线程,即进入主线程。在主线程中首要经过xemac_add()函数来增加网络接口,然后为xemacif_input_thread()函数独自敞开一个线程,将从中止呼应过程中接纳到的数据包移植到LwIP的xemacif_input_thre ad()函数运转的线程中,该线程在LwIP数据包抵达时发出通知,并经过接纳中止句柄将数据存在缓冲中。以下为主线程中增加的网络接口程序代码:

在FPGA中完结嵌入式TCP/IP通讯协议栈

经过上述过程后,就可运用Socket编程树立网络服务器。

3. 2 网络数据传输功用测验

运用RJ45穿插以太网线将Xilinx XC5VFX70T开发板和PC机直连。PC机作为TCP/IP的客户端,Xilinx XC5VFX70T开发板作为TCP/IP的服务端,客户端经衔接呼应后,高速向服务器端接连发TCP包。服务端接纳到数据后核算接纳到的数据总量,不做其他处理。运用iperf网络测验软件测验体系网络直接发送数据的功用。

Socket形式下网络发送速率为27.2 Mb/s,其iperf服务器端显现成果如图3所示。

在FPGA中完结嵌入式TCP/IP通讯协议栈

为了检测本文开发的运用程序中数据发送的速率及其准确度,在核算机端运用LabView软件开发网络服务客户端接纳本体系的数据,并将数据记载为DAT文件,运用多特Net PerSec网络测验软件测验网络的当时速率和均匀速率。在写数据速率为24.1 Mb/s时,NetPerSec显现网络接纳均匀速率为24.8 Mb/s;记载的DAT文件显现图形中无跳变点,数据无丢掉,NetPerSec截图及DAT文件显现图形如图4所示。

在FPGA中完结嵌入式TCP/IP通讯协议栈

写数据速率为24.3 Mb/s时,NetPersec显现网络接纳均匀速率为25.4 Mb/s;记载的DAT数据显现图形中心呈现跳变点,阐明有数据包丢掉,NetPersec截图及DAT数据显现图形如图5所示。

在FPGA中完结嵌入式TCP/IP通讯协议栈

测验成果表明,运用LwIP协议栈Socket形式进行网络数据传输,可完结网速为24.8 Mb/s、接纳侦查信号带宽为750 kHz的安稳数据传输。

结语

本文研讨了TCP/IP通讯协议在Xilinx公司FPGA上的完结,介绍了其软硬件的体系组成及原理。其功用可根据需求进行定制,不光引入了软核处理器和嵌入式操作体系ilker nel,并且运用了LwIP TCP/IP协议栈,一起运用了很多的IP核,体系构建十分灵敏。其软硬件部分的规划选用别离的规划架构,使得整个体系修正和重构愈加便利,真实完结了嵌入式片上体系。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/288432.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部