admin管理员组

文章数量:1531714

2024年5月16日发(作者:)

第2期

2007年6月

水利水文自动化

Automation in Water Resources and Hydrology

NO.2

Jun.,2007

TCP/IP通信技术在Xilinx FPGA上的实现

鲍兴川

(国网自动化研究院/南京南瑞集团公司,江苏 南京 210003)

摘 要:研究了TCP/IP通信协议栈在Xilinx 公司现场可编程门阵列FPGA上的实现,介绍了其软硬件的系统组成

和原理,提出一种不需操作系统的TCP/IP协议栈的高效工作模式,并在Spartan 3 FPGA上移植成功,通过建立测

试平台进行测试,证明其工作方式具有更高的通信性能,为水利水电自动化系统设备开发提供新的思路。

关键词:TCP/IP;通信技术;FPGA;Spartan 3E;IPCore;MicroBlaze

中图分类号:TN92     文献标识码:A      文章编号:1672-3279(2007)02-0020-03

0  前言

由于IEC 61850已成为电力自动化系统及变电站

通信网络唯一的国际标准,其成为国家标准已是大

势所趋,水利水电行业的自动化及通信网络系统标

准必将参照或照搬其标准。IEC 61850推荐在变电站

层与间隔层、间隔层与过程层之间均采用以太网通

信技术,以保证高速可靠的数据传输。这样以太网

和其支撑软件TCP/IP通信协议栈被大量应用在水利

水电自动化和通信系统产品中也将成为必然,目前

国内主要的水利电力产品开发厂家已或将开始着手

研发符合IEC 61850的带双以太网接口的新型水利电

力自动化产品。

目前美国Xilinx 公司的现场可编程门阵列FPGA

和32位CPU技术已在水利水电自动化产品中得到广

泛应用,但各设备之间大量使用的仍然是RS-485或

CAN-bus通信总线搭建的通信网络,本文从实际出

发,以已在Xilinx FPGA的MicroBlaze IPCore(俗称

软32位CPU)搭建的在片系统(System-on-Chip)之

上实现的TCP/IP通信协议栈LWIP为例进行说明,详

细介绍其软硬件的系统组成和原理,阐述了FPGA的

片上系统配置,和其驱动层和协议栈层软件的结构,

并给出部分关键源码,使其能部分符合IEC 61850标

准,使水利水电行业很快涌现出更多的TCP/IP通信协

议栈符合IEC 61850标准的自动化产品,并在实际水

利水电工程中得到应用。

嵌入式系统设计技术和世界热门研究方向。

现已搭建的系统是基于Xilinx的Spartan 3 FPGA ,

Spartan 3是Xilinx公司自1999年以来推出的第5代低

成本FPGA解决方案。Xilinx低成本FPGA被广泛应用

于多种应用中,如汽车、数字电视(PDP、LCD)

投影仪和高清晰度电视(HDTV),以及宽带技术。

Spartan-3采用90 nm技术和12英寸(300 mm)晶圆制

造,为全球成本最低FPGA器件确立了新标准。该系

列产品的门容量范围从5 ~ 500万门,可提供最多784

个用户I/O及丰富的功能。

系统采用Xilinx公司的32位CPU作为中央处理

器,它是支持CoreConnect总线的标准外设集合。

MicroBlaze处理器运行在150 MHz时钟下,可提供125

D-MIPS的性能,非常适合设计针对通信网络、自动

化、电信、数据通信和消费市场的复杂嵌入式系统。

已实现的系统由MicroBlaze、ILMB总线、

DLMB总线、BRAM MEMC、32kBRAM、SDRAM

MEMC(控制器)、10 /100Ethernet、MDM(调试模

块)、GPIO接口、UART16550串口、OPB TIMER(时

钟控制器),以及OPB总线等IPCore组成,设计的系

统架构如图1所示。

2  TCP/IP通信协议栈软件设计

TCP/IP是一种网络通信协议,它规范了网络上所

有通信设备,尤其是一个主机与另一个主机之间的数

据往来格式及传送方式。TCP/IP是Internet的基础协

议,也是一种计算机数据打包和寻址的标准方法。在

Internet中几乎可以无差错地传送数据。

LWIP是瑞士计算机科学院的Adam Dunkels等开

1  FPGA硬件设计

美国Xilinx公司首创的FPGA技术,可以实现可编

程片上系统技术,可编程片上系统设计是一个崭新的

第2期

鲍兴川:TCP/IP通信技术在Xilinx FPGA上的实现

21

OPB总线

SDRAM

控制器

10/100以太

网 控制器1

10/100以太

网 控制器2

MDM

调试模块

BRAM

32kBRAM

控制器

BRAM

控制器

GPIO接口

16550串口

OPB时钟

 控制器

图1 系统构架图

引起3次上下文切换(从网卡驱动程序到链路层进程,

从链路层进程到IP层进程, 从IP层进程到TCP进程)。

对于操作系统来说, 任务切换是要浪费时间的。过频

的上下文切换使得系统运行比较沉重,这是不可取

的。

(2) TCP/IP协议栈在操作系统内核当中,应用程

序通过操作系统的系统调用和协议栈来进行通讯,这

样TCP/IP的协议栈就限定于特定的操作系统内核了。

此法理论上可以实现,但代码不具有通用性,不便于

将来的维护和再移植,同样也是不太可取的。

(3) TCP/IP协议栈都在一个进程当中, 这样TCP/IP

协议栈就和操作系统内核分开了,而应用层程序既可

以是单独的进程也可以驻留在TCP/IP进程中。如果应

用程序是单独的进程,可以通过操作系统的邮箱、消

息队列等和TCP/IP进程进行通讯。此种方式移植层次

清晰,移植代码量适中,是比较好的思路,并且在此

基础上移植调试成功,证明此思路是切实可行的,但

缺点是依赖于操作系统的任务通信机制,不能得到很

高的性能。

(4) 把应用层程序驻留TCP/IP进程中, 则应用层

程序就利用内部回调函数口(Raw API)和TCP/IP协议

栈通讯。 应用层程序既可以是独立的任务, 也可以在

TCP/IP线程中利用内部回调函数口(Raw API)和TCP/

IP协议栈通讯。此方式不依赖实时操作系统,能在无

操作系统的情况下运行。经过对LWIP协议栈源码的

彻底消化,改写其接口代码,经多次调试移植成功,

测试性能得到了很大提升。部分关键实现代码如下:

/ ********初始化LWIP协议栈***********/

sys _init( );

mem _init( );

memp_init( );

pbuf_init( );

netif_init( );

tcp_init( );

/ *********设置LWIP网络接口***********/

default_netif = mem_malloc(sizeof(struct netif));

if (default_netif = = NULL) {

print("netif_add( ): out of memory for default_netif

r n");

return 1;

MicroBlaze

ILMB

DLMB

DOPB

IOPB

Interrupt

ILMB总线DLMB总线

发的一套用于嵌入式系统的开放源代码TCP/IP协议

栈。LWIP既可以移植到操作系统上,也可以在无操

作系统的情况下独立运行。LWIP TCP/IP实现的重点

是在保持TCP协议主要功能的基础上减少对RAM的

占用,一般它只需要几十 kB的RAM和50 kB左右的

ROM就可以运行,使得LWIP协议栈适合在嵌入式系

统中使用。

LWIP的特性如下:

(1) 支持多网络接口下的IP转发;

(2) 支持ICMP协议 ;

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

(4) 包括阻塞控制,RTT估算,以及快速恢复和

转发的TCP(传输控制协议);

(5) 提供专门的内部回调接口(Raw API)用于提高

应用程序性能;

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

(7) 在最新的版本中支持ppp;

(8) 新版本中增加了的IP fragment的支持;

(9) 支持DHCP协议,动态分配IP地址。

在Xilinx的Spartan 3 FPGA上实现的LWIP TCP/IP

采用的是LWIP最新的版本V1.1.1,提出和采用以下几

种移植和运行方式:

(1) TCP/IP协议的每一层是一个单独进程,链路

层是一个进程,IP层是一个进程,TCP层是一个进

程。这样的优势是网络协议的每一层都非常清晰,代

码的调试和理解都非常容易;最大的缺点是数据跨层

传递时会引起上下文切换。 接收一个TCP 信息段要

22

水利水文自动化

2007.2

}

default_netif = netif_add(default_netif,&ipaddr,&ne

tmask,&gw,

&XEmacLiteIf_ConfigTable[0],

xemacliteif_init, ip_input);

netif_set_default(default_netif);

/************创造新的TCP PCB并且启动应用

**************/

echo_init( );

/************应用初始化函数***************/

void echo_init(void){

struct tcp_pcb *pcb;

pcb = tcp_new( );

tcp_bind(pcb, IP_ADDR_ANY, ECHO_PORT);

pcb = tcp_listen(pcb);

tcp_accept(pcb, echo_accept);

}

种FIFO模式下的网络速度如截屏图2、3所示。

3.1 测试说明

硬件方面,平台为Xilinx Spartan 3开发板,CPU

为MicroBlaze,主频100 MB,内存64 MB,配置了

100 Mbps的EMAC IP Core。

软件方面,无操作系统,bootrom基于Xilinx

standalone V1.0, 使用LWIP的RAW API模式,驱动层

分别进行了查询 (Poll)和中断 (Interrupt)两种 FIFO模

式的运行方式。

3.2 测试方式

使用RJ45交叉以太网线进行Xilinx Spartan 3开

发板和PC直连。PC作为TCP/IP的客户端,Xilinx

Spartan 3开发板作为的TCP/IP服务端, 客户端经连接

响应后,高速向服务器端连续发TCP包。服务端接受

到数据后计算接收到的数据总量,不做其他处理。

可以看出在中断FIFO模式优化后的性能已经在

Xilinx的100M EMAC IPCore上达到了63.6 Mbps的性

能, 在改写和优化部分代码后达到了更高的性能,并

且还有潜力可挖。 这个测试结果证明LWIP TCP/IP

通信协议栈在第4种工作方式下具有很高的通信速度

和效率。

/

M

b

p

s

3  系统性能测试

用BWMeter网络测试工具软件测试查询和中断两

4  结语

FPGA和32位CPU技术在水利水电自动化产品中

会得到越来越广泛地应用,操作系统自带的TCP/IP通

信协议栈的应用已经比较普及,不带操作系统的高效

TCP/IP通信协议栈在FPGA上的实现为水利水电自动

化系统工程及其设备逐步满足IEC 61850国际标准提

DL:1.0 Mbps,UL:50.2 Mbps

时间 /s

供了新的思路和解决方案。

图2 查询FIFO模式测得的性能

参考文献

[1] /projects/lwip/.

/

M

b

p

s

[2] Xilinx Inc .Programmable Logic Data Book [Z]. Xilinx Inc,

USA: 2003.

[3] Xilinx Inc. Micro Blaze Development Kit User

s Manual

[Z]. USA: 2002.

[4] 董代洁,郭怀理,曹春雨. 基于FPGA的可编程SoC设计

[M]. 北京:北京航空航天大学出版社,2006,6.

DL:1.3 Mbps,UL:63.6 Mbps

时间 /s

图3 中断FIFO模式测得的性能

(下转第46页)

46

水利水文自动化

2007.2

Research on Assessment Index System for Water Saving Society

Construction in Ningxia Hiu Autonomous Region

LI Hong-mei, CHEN Bao-feng

(China Agricultural University, Beijing 100083, China)

Abstract: In order to effectively solve contradiction between demands for development of society & economy and

water resources constraint, according to requirements of 《water-saving society construction assessment index system》

(trial version), a water-saving “society, economy, ecology” 3-dimension index system is set up with consideration

of Ningxia characteristics. In this article, a brief introduction to water-saving society construction assessment index of

the whole country is given, a detailed analysis is made to each index of three levels for the system, and suggestions for

further improving water-saving and economic efficiency rationality, ecosystem rationality and coordination of social

development of water-saving society construction in Ningxia are put forward as well.

Key words: Ningxia autonomous region; water-saving society; assessment index system

(上接第22页)

Implementation of TCP/IP Communication Technology from Xinlinx FPGA

BAO Xing-chuan

(Nanjing Automation Research Institute/ NARI Group Corporation, Nanjing 210003, China)

Abstract: This article investigates the implementation of TCP/IP communication protocol stack based on field

programmable gate array. Hardware and software system composition and theory are described, and a kind of TCP/IP

communication protocol stack high-efficiency operation mode without support of an operation system is proposed. By

testing platform, it has proved its higher communication features, which provides a new idea for the development of

automatic system equipment for water resources and hydropower engineering.

Key words: TCP/IP; communication technology; FPGA; Spartan3E ; IPCore; MicroBlaze

2007年全国水文科技应用需求研讨会在南京召开

为适应新时期水文工作和稳步推进水文现代化建设的需要,研讨当前水文重大科技需求,了解各单位现有

科技项目情况,促进现有水文科技项目和人力、财力资源整合,提高水文科研整体水平,水利部水文局于2007

年5月11~12日在南京召开了全国水文科技应用需求研讨会。全国主管水文科技工作及水利部水文局有关业务

处的领导与代表共70余人参加了会议。会议由科教处章树安处长主持,林祚顶副局长作了“总结经验,理清思

路,促进水文科技工作的加快发展”的工作报告。

水利部水文水资源工程技术研究中心、水利部水文水资源监控工程技术研究中心、河海大学代表就水文科

技需求作了专题发言。与会代表就本单位水文科技工作取得的成绩、存在的问题和应用需求等方面进行了交流

与探讨。大家认为本次会议开得非常及时和必要,对今后的水文科技发展必将起到积极推动作用,会议达到了

预期效果与目的。

本刊编辑部

本文标签: 水文系统协议科技