- 17
- 0
- 约 4页
- 2017-07-05 发布于天津
- 举报
基于FPGA的UDP发送工具实现.pdf
基于FPGA的UDP发送工具实现
朱国魂
桂林电子工业学院541004
摘要本文介绍了基于FPGA的UDP发送工具的设计,详细讨论了用RTL8019进行帧传输设计的方法
并给出了相应测试数据。
关麓词 FPGAUDPNIC
1. 引言:
随着TCP/IP技术的发展,已经出现采用单片机实现简易IP协议的技术,由于单片机运
算速度低下,无法处理和发送高速IP数据流。针对这一问题,本文采用FPGA进行高速UDP
协议发送工具,可以方便进行网络测试。
2.硬件结构:
主要电路如图1所示:
图1部分电路原理图
其中时钟电路除了提供给FPGA进行时序控制外,还用于同步网卡与FPGA进行数据处
理,由于RTL8019AS网卡可以达到10M,因此,时钟电路选取20MHz。
GND,电源线VCC,SYSCLK是系统时钟信号,使系统与外部设备保持同步接收。
Ao一一A19为网卡的地址线,共20根,我们用到网卡的地址为十六进制的0300H一一一
031FH,转换为二进制如表1。
表1
地址线 A19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1AO
300HO 0 O 0 O O 0 0 O O 1 1 0 0 0 O 0 O O 0
O 0 O 0 0 O O 0 0 O 1 1 O O O X X X X X
3lFHO O 0 0 0 0 O 0 0 O l 】 0 0 0 l l l 1 j
了节约FPGA的资源,因此地址高位A8一一9全部接高电平,A5一一A7接低电平,只有A0一
一A4受FPGA控制。
3. 设计原理
3.1ISA8019寄存器操作
Interface
网络接口控制器(NIC—NetworkControlier)是基于网卡编程的主要控制对象。
对网卡的控制就是对寄存器的控制,NIC内部寄存器都是8位的寄存器,这些寄存器映射成4
页,每一个页的选择由命令寄存器(CR)中的PS0和PSI位来完成。页0和页2主要提供常用
的NIC操作命令,页1主要用在初始化过程中的。以下介绍与发送有关的部分寄存器。
(1)初始化命令寄存器CR。当选择不同的页,不同的读写操作,必须先对它进行状态设
置,例如置为21H,表示NIC离线,不能进行DMA操作。
(2)RBCR:用来指明本次远程DMA操作时传输数据的字节数。
(3)TPSR:该寄存器用来指定待发送帧的起始地址。该地址只用一个8位的寄存器表
示,其值仅反映缓存地址空间的高8位。低8位DAM地址初始化为0。
(4)ISR:中断状态寄存器,用到的状态位是RDC位,若为“1”表明数据帧正确接收。
3.2帧传输
在网络中,帧传输的过程是,FPGA将该发送的数据包按帧格式要求封装成帧,然后通过
网卡将帧发送到网络的传输线上,接收方根据接受到的帧的目的地址来确定是否将该帧提交
给上层应用程序。因此帧发送的过程应包括以下几个步骤:
(1)分包;
(2)装帧;
(3)将帧送入NIC发送缓冲区;
(4)初始化发送控制寄存器;
(5)启动NIC将该帧发送到网络传输线上。
一127
要将帧传送到NIC的发送缓冲中,需要使用远程DMA的操作。启动远程DMA写操作
是通过命令寄存器CR来实现的。CR的值按如下设置:CR=12H;对NIC发出此命令后,远
束远程DMA写操作。操作完成后,中断状态寄存器ISR的RDC将置1,表示接受完成。其操
作流程如图2所示。
图2远程DMA写操作流程
其中关键设置有:TPSR为发送页的起始页地址。初始化为指向第一个发送缓冲区的页,
8位,而TBCRl用来存放待发送帧长度的高8位。
结束条件为:中断寄存器ISR的PTX位清0,表示帧已成功发送完毕。
4.测试与结论
FA),数据长度为13。用抓包软件NetSpv,可以得到如下数据
00 00
原创力文档

文档评论(0)