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余人参加了会议。会议由科教处章树安处长主持,林祚顶副局长作了“总结经验,理清思
路,促进水文科技工作的加快发展”的工作报告。
水利部水文水资源工程技术研究中心、水利部水文水资源监控工程技术研究中心、河海大学代表就水文科
技需求作了专题发言。与会代表就本单位水文科技工作取得的成绩、存在的问题和应用需求等方面进行了交流
与探讨。大家认为本次会议开得非常及时和必要,对今后的水文科技发展必将起到积极推动作用,会议达到了
预期效果与目的。
本刊编辑部
版权声明:本文标题:TCP_IP通信技术在XilinxFPGA上的实现 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1715810573a471411.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论