基于FPGA的UDP发送工具实现.pdfVIP

  • 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)

1亿VIP精品文档

相关文档