电子技术与软件工程官方 国内统一刊号:CN 10-1108/TP
国际标准刊号:ISSN 2095-5650
* 投稿网站
电子技术与软件工程
《 电子技术与软件工程 》
级别:国家级     分类:科技    周期:半月刊
主管单位:中国科学技术协会
主办单位:中国电子学会
国内刊号:CN 10-1108/TP
国际刊号:ISSN 2095-5650
收稿编辑:QQ /电话2880067970 / 0531-85701017
投稿邮箱:dzjszazhi@163.com
期刊名称 (*)投稿期刊名称
文章标题 (*)投稿论文的题目
作者姓名 (*)只需填写通讯作者
作者电话 (*)方便编辑及时沟通
作者邮箱 (*)方便编辑做详细用稿答复
上传稿件 (*)限word文件
投稿附言   
期刊信息
期刊名称:电子技术与软件工程
主      编:宋俊龙
出版周期:半月刊
出版地区:北京市
定      价:25.00元
收      录:知网、万方、维普、龙源
社      址:北京市海淀区北洼路9号世纪新景园四号楼一单元12B
邮政编码:100036
范文-银河飞腾DSP平台以太网接口的设计与实现-电子技术与软件工程

 银河飞腾DSP平台以太网接口的设计与实现

陈俊,吴家铸,扈啸
(国防科技大学计算机学院 长沙 410073)
摘 要:为了实现基于银河飞腾DSP的嵌入式系统的TCP协议以太网通信功能,采用以太网协议控制芯片W5300设计一种嵌入式以太网接口。本文首先介绍了三种方案,用在数据采集领域中,通过以太网实现远程控制或数据传输的;然后介绍了系统的硬件结构与设计;进而介绍W5300的内部寄存器、初始化配置、工作流程、接收数据、发送数据;最后对系统功能进行验证,并进行总结。
关键字:以太网;嵌入式;W5300; FPGA;银河飞腾DSP
0 引言
现在越来越多的嵌入式系统通过以太网来扩展网络功能,以实现远程控制和数据传输。嵌入式以太网解决方案主要有3种:第一种是在控制器内编写以太网协议完成以太网的通信[1-2],该方法开发周期长,难度大,且以太网协议程序较为繁琐,运行起来不稳定; 第二种方案是ARM等高性能处理器上运行操作系统,通过操作系统完成TCP/IP等复杂的通信协议,从而实现以太网通信[3],该方法开发难度较大,成本较高;第三种方案是使用以太网协议芯片,通过控制器对芯片进行简单配置就能实现以太网通信,该方法使用方便、稳定可靠,广泛应用于高性能、低成本的以太网嵌入式领域。
1 系统设计
在继YHFT-DSP/700之后[4],国防科学技术大学继续自主研制了一系列高性能DSP。其FT-XXXX是其中一款,该芯片基于八流出超长指令字体系(VLIW)结构,主频300MHz,以0.13μm工艺设计,峰值性能为每秒18亿次浮点运算和24亿条指令。W5300是一款0.18µm CMOS工艺的单芯片器件,内部集成10/100M以太网控制器,MAC和TCP/IP协议栈。通过W5300可以简单和快捷地实现以太网连接,且稳定可靠、性价比高 [5]。本文基于FT-XXXX、ALTERA公司的FPGA和以太网协议芯片W5300设计了一种嵌入式以太网接口,通过FPGA把W5300中的寄存器映射到FT-XXXX上,通过对寄存器所映射的地址直接读写,控制W5300实现TCP协议下的以太网通信。系统结构如图1所示。
11.jpg 
图1 系统结构
2 系统硬件接口设计
W5300通过设置MR(IND)= 0,采用直接地址模式;通过悬空BIT16EN引脚,采用16位数据总线。另外,TEST_MODE[3:0]引脚和OP_MODE[2:0]引脚均接地时,W5300物理层使用内部的PHY,并使用全功能自动握手。W5300的硬件接口连接方式如图2所示。
 22.jpg
图2 W5300的硬件接口连接
通过FPGA内的逻辑,当(~DSP_CS &(DSP_Addr[21:13]==9’h0))选通时,把W5300中的寄存器映射到FT-XXXX上,通过对寄存器所映射的地址直接读写,可以实现对W5300的控制。
3 系统软件设计
3.1 W5300初始化配置
第一步设置主机接口。设置W5300的MR=0x3880,W5300与主机的接口模式为直接总线模式;MR(RST)为1,对W5000软件复位;在W5300复位期间,BIT16EN为高电平,所以MR(DBW)为1,采用16位数据总线宽度。设置IMR(S0_INT)为1。
第二步设置网络信息。通过设置SHAR、GAR、SUBR、SIPR、RTR和RCR分别配置本机MAC地址、网关IP地址、子网掩码、本机IP地址、重发时间和重发次数。
第三步分配SOCKETn的内部TX/RX存储器空间。通过设置MTYPER=0x00FF,使第1到第8个存储单元为TX,其他8个存储单元为RX。设TMSR=0x4000, RMSR=0x4000,使TX/RX存储器都为64KB。
3.2 W5300工作流程
初始化完成之后,W5300以TCP模式打开SOCTETn进行数据的发送和接收。TCP有两种连接方式:一种是服务器模式,等待连接请求以建立连接;另一种是客户端模式,发送连接请求到服务器以建立连接。
当W5300配置为TCP客户端模式时,完成的功能包括:端口打开、发出连接请求、数据接收和发送、接收或发送断开连接请求等。具体步骤如下:
第一步初始化SOCKET。为实现SOCTKET0作为通信端口的TCP通信,1)设置S0_CR为CLOSE,使S0关闭,S0_SSR变为SOCK_CLOSED;2)设置S0_MR=0x0101,使SOCTKET0采用TCP协议,设S0_MR(ALIGN)为1,使用队列对齐;3)通过S0_PORTR配置本机端口号;4)设置S0_CR为OPEN,打开端口。经过延时,若S0_SSR变为SOCK_INIT,则SOCKET初始化完成,否则重复执行1)~4)步。
第二步建立连接。在TCP客户端模式下,通过S0_DIPR、S0_DPORTR分别设置TCP服务器IP地址和服务器端口号,然后设置S0_CR为CONNECT执行连接。执行CONNECT后,若S0_SSR变为SOCK_ESTABLISHED,则连接成功,否则失败。
第三步接收数据。以中断的方式实现接收数据,1)通过FPGA逻辑,实现W5300接收信号与INT4连接,并在INT4的中断服务程序中,调用W5300数据接收函数;2)编写数据接收函数;首先通过判断Sn_MR(ALIGN)来计算接收数据的长度,当Sn_MR(ALIGN)=0时,数据包中包含PACKET-INFO和数据;Sn_ME(ALIGN)=1时,数据只有数据包而没有PACKET-INFO。然后从RX存储器中移出接收的数据。最后通过设置S0_CR执行RECV。
第四步发送数据。编写W5300发送函数,1)检查客户端状态。若S0_SSR为SOCK_ESTABLISHED,TCP成功建立连接;2)检查TX存储器的剩余空间是否够用。检验Sn_TX_FSR寄存器,如果发送的字节数小于或等于Sn_TX_FSR,那么就可以向W5300写入数据,最后通过设置执行SEND命令发送数据。
4 系统功能验证
4.1 W5300与计算机进行通信
在实验过程中,使用双绞线同计算机进行通信,通过TCP协议进行测试。在TCP通信协议下,测试W5300作为客户端与计算机进行通信。通过网络调试助手按照十六进制循环发送00 01 02 03 04 05 06 07 08 09总共10个数据发送到W5300,触发中断INT4,在中断服务程序中实现数据的接收和原始数据向计算机的发送。测试结果如图4所示:
 33.jpg
图4 W5300作为客户端与计算机通信
根据图4测试结果,可以看出本系统在W5300作为客户端能与计算机进行正常稳定的通信。
4.2 W5300之间的通信
由本系统设计两块测试板卡A和B,板卡A的W5300作为客户端,板卡B的W5300作为服务器,测试A与B之间使用W5300的通信。
分别在发送、接收函数前后加上timer,算出接收、发送时间,根据长度/时间计算出速度。分别发送、接收不同长度的数据包的测试结果,如表1所示:
表1 W5300优化前测试结果
数据包长(Byte)/次 0x10 0x100 0x400 0x1000 0x2000 0x4000 0x8000 0x10000
接收(MB/s) 2.18 3.39 3.49 3.51 3.51 3.52 3.52 3.52
发送(MB/s) 0.80 1.82 1.97 1.99 1.99 1.99 2.00 2.00
收发(MB/s) 0.56 1.18 1.26 1.27 1.27 1.27 1.28 1.28
优化后
优化方法:1)收发数据放在内存中,减少访存开销;2)使能一级Cache和二级Cache;3)用最高级编译选项,执行速度优先;4)通过编译开关,在关键代码段使用软流水,减少冗余循环。 经过优化后,测试结果,如表2所示:
表2 W5300优化后测试结果
数据包长(Byte)/次 0x10 0x100 0x400 0x1000 0x2000 0x4000 0x8000 0x10000
接收(MB/s) 2.96 5.05 5.23 5.28 5.29 5.29 5.29 5.30
发送(MB/s) 1.12 4.13 4.75 4.87 4.88 4.88 4.89 4.89
收发(MB/s) 0.81 2.27 2.49 2.53 2.54 2.54 2.54 2.54
经过对接收、发送、收发优化前后的对比,优化后速度得到显著提升。
 55.jpg
图5 W5300通信速度测试结果(单位MB/s) 
图5数据来源于文献6,文献6采用TMS320F2812作为主控制器,控制W5300实现以太网通信,采用ALTER公司的FPGA对TMS320F2812的外部空间进行扩展[6]。
本系统与文献系统相比,本系统之所以速度有所提升:1)DSP运算速度更快,板卡性能更好;2)代码优化更彻底。
5 结论
本文详细介绍了基于 FT-XXXX和以太网协议芯片W5300的嵌入式以太网接口设计方案。该设计方案开发周期短、成本低、易于实施。经实验验证,系统能够简单、灵活地实现基于TCP协议,稳定性、实时性、速率方面都有良好的表现。经过优化,发送、接收、收发速率得到显著提升。
 
参考文献
 [1] 黄新,颜学龙,雷加.边界扫描测试系统的以太网接口设计[J].国外电子测量技术,2010,29(7): 62-64.
[2] 黄林生,林岩.基于TMS320C6713的嵌入式网络接口设计[J].电子测量技术,2008,31(3):70-74.
[3] 雒珊,尹岗.基于RAM的以太网通信控制器的设计[J].电子测量技术,2009,32(10):133-135.
[4] 陈书明,李振涛,万江华,胡定磊,郭阳,汪东, 扈啸,孙书为,“银河飞腾”高性能数字信号处理器研究进展.计算机研究与发展,2006,43(6):993-1000.
[5] W5300用户数据手册.www.bocon.com.cn
[6]乔立岩,梁 宇,赵浩然,朱建平. 基于 W5300的以太网接口设计[J]. 电子测量技术