关于FPGA实现网卡通信的方案比较报告
更新时间:2024-06-05 19:15:01 阅读量: 综合文库 文档下载
- fpga实现网口推荐度:
- 相关推荐
关于FPGA实现网卡通信的方案比较报告 目录
关于FPGA实现网卡通信的方案比较报告 .................................................................................. Ⅰ
一、以太网卡的组成和原理 ........................................................................................... 1 二、目前以太网卡实现方案的介绍及优缺点分析 ....................................................... 2
方案一:用单片机实现以太网卡通信 ................................................................... 2 方案二:在 μC/OS-II操作系统下以DM9000A和LPC2214为核心的嵌入式以太网接口实现 ........................................................................................................... 7 方案三:在μC/OS-II 操作系统下基于S3C44B0X的嵌入式以太网借口的实现 ................................................................................................................................. 14 方案四:在μClinux系统下以S3C44B0X为核心的嵌入式以太网接口设计 ..... 16 方案五:基于NIOSⅡ的嵌入式以太网接口的设计 ............................................ 19 方案六:基于FPGA的以太网卡的实现 .............................................................. 24 三、初步方向 ................................................................................................................. 29
Ⅰ
关于FPGA实现网卡通信的方案比较报告 Ⅰ
关于FPGA实现网卡通信的方案比较报告
关于FPGA实现网卡通信的方案比较报告
一、以太网卡的组成和原理
1.以太网卡的组成
网卡工作在物理层和数据链路层间 ,主要完成网络与主机之间的数据传输,其主要组成有数据链路层芯片MAC控制器和物理层芯片PHY两部分。其中,MAC是网卡最主要部分,完成数据封装和媒质接入管理2大功能,其与PHY的数据传输和控制沟通是通过标准接口GMII/MII来实现的。通常,网卡用一块EEPROM来记录网卡芯片供应商和子系统供应商的身份标识、网卡的MAC地址及其一些配置等。此外,很多网卡还集有用于无盘操作的BOOTROM插槽和TANSFORMER隔离变压器。
2.以太网卡的工作原理
网卡是计算机与网络缆线间的物理接口,它不仅具有将计算机中的数字信号转换成电(或光)信号的作用,还有串并转换的作用。网卡在发送数据时,首先对通信介质上的载波进行监听。如果发现载波,则认为其他站点正在传送信息,会继续监听。如果通信介质在一段时间之内(即帧间隙时间IFG=9.6s)没有被其他站点占用,则此时网卡开始发送数据。网卡在发送数据的同时会继续对通信介质进行监听,以防止与其他站点发生冲突。网卡在发送数据的过程中,如果检测到冲突信号会立即停止本次的数据发送,同时向介质发送一个“阻塞”
~ 1 ~
关于FPGA实现网卡通信的方案比较报告 信号,以便告诉其他站点已经发生冲突,从而丢弃那些可能还在接收的、但已受损的帧数据,并在等待一段随机时间后,对刚才发送出错的帧数据进行重传。当重传的次数超过l6次仍有冲突发生时,网卡就会自动放弃发送该帧数据。接收数据时,网卡先对介质上传输的每个帧进行长度检测,当帧长小于64 Byte时,网卡会把该帧当作冲突碎片丢弃。如果不是冲突碎片,并且目的地址是本地地址,则网卡对该帧进行完整性校验。最后只有通过校验的帧才被认为是有效的,网卡将它接收下来进行本地处理 。
二、目前以太网卡实现方案的介绍及优缺点分析
方案一:用单片机实现以太网卡通信
早期用单片机作为主处理器控制以太网卡芯片来实现和以太网的数据交换。由于单片机内存资源小,处理速度慢,还需要对单片机外扩RAM。由于以太网的数据包最大可以有1500多字节,单片机是无法存储这么大的包的,只有放到外部的RAM里,用于提高单片机的数据传输速度和处理复杂的TCP/IP协议。单片机主要是AT89C5,网卡芯片一般是RTL8019AS。 1.系统硬件结构设计
系统的硬件电路结构如图1所示。主要包括 MCU、串口通信,EEPROM和网卡芯片等单元。
~ 2 ~
关于FPGA实现网卡通信的方案比较报告 RJ45EEPROM隔离变压器网卡芯片RTL8019ASMCUAT89C51MAX23232KBROM图1:系统硬件框图32KBRAM 2.系统软件实现
系统软件的设计包括以太网卡控制器的驱动程序设计和上层协议软件设计。驱动程序设计有网卡芯片初始化和收发数据包程序。上层软件主要是实现TCP/IP协议,由于单片机自身资源有限,它的存储容量、处理速度和总线宽度等都不能像PC机那样采用标准的TCP/IP协议,但可以根据系统的特点和功能,将精简的TCP/IP协议嵌入到单片机中。
2.1网卡初始化和收发数据包程序设计
首先对RTL8019AS进行复位。当系统复位完成后,要对网卡的工作参数进行设置,即对网卡初始化,网卡的工作参数可通过对RTLS019AS内部寄存器设置。RTL8019AS内部寄存器有4页,与NE2000兼容的有3页,第4页不用。页选择由CR寄存器的PSI,PSO位确定。在O页寄存器中可以设置接收、发送状态配置以及发送缓存区的起始页与接收缓存区起、止页地址等寄存器;在I页寄存器中可以设置以太网接口的MAC地址和多播地址。
~ 3 ~
关于FPGA实现网卡通信的方案比较报告 RTL8019AS内部有两块RAM区。一块l6 kB,地址为0x4000~0x7ff;RAM按页存储,每256字节为一页。将RAM的前l2页(即0x4000—0x4bff)存储区作为发送缓冲区;后52页(即0x4e00~0x7ff)存储区作为接收缓冲区,用来存放接收的以太网帧。另一块 RAM只有32字节,地址为0xO000—0x001f,用于存储以太网物理地址。 接收和发送数据包都必须通过DMA读写网卡内部的16 kB RAM,该RAM是一个双端口RAM。所谓双端口,就是有两套总线连接到该RAM上:一套总线是单片机读写网卡上的RAM,即远程DMA;另一套总线是网卡控制器读写网上的RAM,即本地DMA。
接收数据是通过本地DMA从网卡接口接收,RTL8019AS对接收到的数据包通过MAC比较、CRC校验,由FIFO存到接受缓冲区,收满一帧后以中断或者寄存器标志方式通知主处理器,主处理器通过远程DMA将缓冲区的数据读到自己的内存中进行处理。
数据包的发送过程包括3个步骤:主处理器将数据包按照RTL8019AS发送数据帧格式进行封装;封装完后通过远程DMA通道将数据包送到RTL8019AS的发送缓冲区;然后通过本地DMA将数据送到FIFO,通过设置寄存器CR启动发送。RTL8019AS完成上一帧的发送,再开始下一帧的发送。 2.2上层软件设计
在本系统设计中,TCP/IP协议软件首先在网络接口层实现对以太网帧的打包和解析工作。在以太网帧中,将数据包分为ARP包、IP包。ARP分包为ARP请求和APR应答,以实现IP地址与MAC地址的
~ 4 ~
关于FPGA实现网卡通信的方案比较报告 动态绑定。IP包可解析为TCP包、UDP包和ICMP包,TCP包用于可靠的有连接的数据传输,系统与外部数据信息的交换都通过TCP协议进行传输;UDP包用于无连接的数据报传输。图2为一个以太网帧的解析过程。
~ 5 ~
关于FPGA实现网卡通信的方案比较报告 开始N检测接收到新以太网帧?Y读入新帧解析以太网帧NYARP分组格式正确?是ARP包吗?YARP协议处理N是IP包吗?NYNIP地址是否正确YYICMP包协议处理是ICMP包吗?NYTCP包协议处理是TP包吗?N协议解析完成图2:以太网解析过程
~ 6 ~
关于FPGA实现网卡通信的方案比较报告 对网卡编程就是对网络接口控制芯片RTL8019AS中各种寄存器进行编程控制,从而完成数据分组的正确发送和接收。所有单片机程序采用C51语言编制,具有可读性强、移植性好、开发周期短的特点。代码的使用效率也比较高。
3.优、缺点分析
优点:程序采用C编写,容易学习,且具有较好的移植性,可读性强。
缺点:处理速度慢,内存小,须要外扩RAM。
方案二:在 μC/OS-II操作系统下以DM9000A和LPC2214为核心的嵌入式以太网接口实现 1. μC/OS-II的介绍
μC/OS-II是一种基于优先级的抢占式多任务实时操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息 队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化。
μC/OS-II是一个完整的、可移植、可固化、可裁剪的占先式实时多任务内核。μC/OS-II绝大部分的代码是用ANSI的C语言编写的,包含小部分汇编代码,使之可供不同架构的微处理器使用。至今,从8位到64位,μC/OS-II已在超过40种不同架构上的微处理器上运行。μC/OS-II具有很高稳定可靠性。除此以外,μC/OS-II 的鲜
~ 7 ~
关于FPGA实现网卡通信的方案比较报告 明特点就是源码公开,便于移植和维护。 2. 以太网控制器DM9000A介绍
DM9000A是DAVICOM公司推出的一种高度集成、功能强大、少引脚、性价比高的单片快速以太网控制芯片,非常适用于嵌入式系统设计。 图3为DM9000A内部结构框图。
LEDPHY发送器M11AUTO-MDIXRX+/-10Base-Tx/Rx寄存器模块接收器EEPROM100Base-Tx收发器TX+/-100Base-TxPCS内存管理处理器接口内部SRAM自适应调节器M11管理控制寄存器图3:MD9000A内部结构图 DM9000A具有一个通用的微处理器接口,内部集成了16 KB。 SRAM(其中13 KB用作接收缓冲区,3 KB作为发送缓冲区),对内部存储器访问支持8位和16位数据接口以适用于不同的微处理器;内部集成了一个10/100 M自适应PHY,可以连接到3类、4类、5类的1OM无屏蔽双绞线和5类的100 M无屏蔽双绞线。DM9000A体积小,只有48个引脚,有利于缩小PCB面积;它完全支持IEEE802.3u规格,还支持IEEE802.3x全双工流控制。DM9000A功耗非常低,单电源3.3 V工作,内置3.3 V变2.5 V电源电路,I/O端口支持3.3V到 5 V的容差。
3.网络接口硬件电路设计
网络接口硬件电路使用的芯片主要有处理LPC2214、复位芯片
~ 8 ~
关于FPGA实现网卡通信的方案比较报告 CAT1025、以太网控制芯片DM9000A以及网卡驱动变压器HS9016等。LPC2214为NXP公司推出的基于ARM7TDMI内核的16/32位RISC处理器,功能强大,内置PLL锁相环可以设置CPU的工作频率达60 MHz,为高速处理网络协议提供了保证;内部带256 KB FLASH和16 KB RAM,同时外扩了256 K字的SRAM,为嵌入式TCP/IP协议栈提供了必要的内存空间。复位监控芯片CAT1025内部集成了2 K位EEPROM,可以将网卡的物理地址、制造厂商等基本信息保存到CAT1025中,网络控制器DM9000A保持默认配置,这样可以省去网卡的配置存储器,减少硬件平台的面积。网络接口硬件框图如图4所示。
CAT1025D0~D15SD0~SD15RJ-45复位电路A2CS3CMDCSDM9000ALPC2214WRRDIOWIORINTPWRSTTXO+TXO-HS9016RXI+RXI-256K字SRAMEINT0nRST图4:网络接口硬件的框图 4.网络接口的软件设计
以太网接口电路的工作原理是:在系统上电时,处理器通过总线对DM9000A完成初始化后,DM9000A进入数据收发等待状态;当处理器要向以太网发送数据帧时,先通过上层协议函数对数据进行封装,然后通过总线逐字节发送到DM9000A的发送缓冲区中,将数据长度等
~ 9 ~
关于FPGA实现网卡通信的方案比较报告 信息填充到DM9000A相应的寄存器中,使能发送命令后,DM9000A自动将数据进行MAC组帧并发送出去;当接收到以太网数据帧时,处理器首先检测帧的合法性,保存正确的数据帧,然后将正确的数据帧发送到上层协议进行处理。
网络接口的软件设计主要有底层网卡驱动程序和上层通信协议2大部分,网卡的驱动程序包括网卡芯片的初始化、以太网数据帧发送和接收。
4.1网卡芯片的初始化
为了启动网络控制器DM9000A,并使之处于接收和发送就绪状态,必须对其进行初始化。其初始化主要是对一些关键寄存器进行设置。
4.2发送数据包
DM9000A内部有16 KB的SRAM用来作为收发数据的缓冲区,其中地址从0x0000到0x0BFFF共3 KB空间用来作为发送数据缓冲区,可以同时保存2个完整的以太网帧,在设计中将发送缓冲区看作2个独立发送缓存区。
为了提高效率,采用中断方式发送数据包。首先CPU利用上层协议函数将要发送的数据按照规定的格式进行封装并写到DM9000A发送缓冲区中;然后由上层协议函数启动发送数据包的第1帧数据,利用发送结束中断程序来对发送结果作相应处理。产生发送完成中断后,中断程序先读取网络状态寄存器NSR来判断是哪个发送缓存区中的数据发送完成,然后读取相应的发送状态寄存器来判断数据是否发送成功,若失败则重发该缓存区数据,若成功则判断是否还有数据帧
~ 10 ~
关于FPGA实现网卡通信的方案比较报告 要发送,若有,则启动发送另一个缓冲区中的数据,同时通知上层协议函数将下一帧数据写入空的发送缓存器中。中断服务程序流程图如图5所示。
中断开始读NSR寄存器Index Ⅰ发完Y读寄存器TCRIIndex Ⅱ发完Y读寄存器TCRⅡ发送出错N数据发完YN启动发送Index ⅠYY发送出错N重发数据Ⅰ重发数据Ⅱ数据发完YN启动发送Index Ⅱ写数据到Index Ⅰ写数据到Index Ⅱ中断返回图5:发送完成中断处理程序流程图
4.3数据接收程序
~ 11 ~
关于FPGA实现网卡通信的方案比较报告 在16 KB的内部SRAM中地址为0x0C00~Ox3FFF 的13 KB空间用来作为数据接收缓存区,它是一个环形结构。当使能数据接收功能后,DM9000A就会自动接收数据,一旦它接收完一帧数据后就会产生一个接收中断,接收的数据包的格式为:前4个字节为一个数据包的包头,它包含了一个数据包的基本信息。第1个字节为接收标志:若是01H表明收到数据,若是00H则说明没有收到数据,若是其他值则需要重新启动PHY;第2个字节为状态标志,由此可以判断接收到的数据包类型以及数据正确与否;接下来的2个字节为数据包的长度,低字节在前,高字节在后;最后是接收到的数据。 4.4上层通信协议
嵌入式系统的以太网互连采用的通信协议都是TCP/IP协议。TCP/IP协议一般分为4层,即网络接口层、网络层、传输层和应用层。TCP/IP协议是一个网络协议族,协议按上面所述不同的网络层次进行开发,每一层分别负责不同通信功能,相应的有不同的协议。由于嵌入式硬件资源和实时性要求的限制,其TCP/IP协议要求占用存储资源尽可能小,处理速度足够快,因此要针对应用的特点对TCP/IP进行必要的裁减与优化。
LwIP是瑞士计算机科学院的Adam Dunkels等开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈,其大部分源码是用ANSIC语言编写的便于移植。LwIP既可以移植到操作系统上,又可以在无操作系统的情况下独立运行。LwIP协议栈实现的重点是在保证主要功能的基础上占用尽量少的RAM,很适合在嵌入式系统中使用。
~ 12 ~
关于FPGA实现网卡通信的方案比较报告 在μC/OS-II操作系统下移植LWIP)主要注意以下几点: (1)修改头文件中一些与CPU和C编译器相关的定义,如数据长度、CPU存储字的高地位顺序等,这些都要与μC /OS-II定义的数据长度等参数一致。此外,一般情况下C语言的结构体struct是4字节对齐的,但是在处理数据包的时候,LwIP使用的是通过结构体中不同数据的长度来读取相应的数据的,因此一定要在定义struct的时候使用mpacked关键字,让编译器放弃struct的字节对齐; (2)LwIP协议在设计时为了适应不同的操作系统,没有在代码中使用和某一个操作系统相关的系统调用和数据结构,而是在Lw1P和操作系统之间增加了一个操作系统的封装层,该封装层主要完成系统的初始化、任务的同步、时间管理和内存管理的功能。因此需要利用μC/OS-II操作系统的函数完成LwIP中信号量、消息队列、定时器和线程创建等功能的封装。
(3)原始API函数接口是基于回调(callback)的应用程序接口,调用这种接口虽然增加变成难度,但有利于提高应用程序的性能,节约系统资源。 5.优缺点分析
优点:以ARM处理器LPC2214为核心,采用 DM9000A作为网络接口芯片的嵌入式以太网接口结构简单、体积小、功耗低、价格适中 。μC/OS-II具有很高稳定可靠性而且源码公开。
缺点:软件部分实现需要通过复杂的中断控制,μC/OS II本身没有实现TCP/IP的库,在μC/OS II系统下移植LwIP协议比较麻烦。
~ 13 ~
关于FPGA实现网卡通信的方案比较报告 端。nOE 和nWE控制网卡的读写,nRESET 控制网卡的复位,FB2022起变压滤波的作用。
4.优缺点分析
优点: μClinux操作系统具有开放的源代码、优秀的网络性能、可裁减等诸多优点,非常适合用于具有网络功能的嵌入式系统。使用Linux kernel,所以将Linux上open source软体porting到μClinux较容易。有现成的IP包和UDP包可以调用。
缺点:μClinux所占的资源较多,须要使用到SDRAM。 方案五:基于NIOSⅡ的嵌入式以太网接口的设计
本方案通过简化的TCP/IP协议LwIP,利用NIOSⅡ,将其移植到μC/OS-II操作系统中,以此实现嵌入式设备与网络的互联。采用以91C111太网控制芯片、Altera公司推出的Stratixl系列FPGA芯片完成设计。
1.以太网控制芯片91C111简介
LAN91C111是SMSC公司生产的,第三代专门用于嵌入式产品的10/100M快速以太网控制器。其性能优良,功耗低,尺寸小,集成度高,具有成熟的驱动程序结构。LAN91C111网卡控制其内部集成了8KB的RAM用来存放数据包。内部的MMU、判决器和DMA对数据包的传输发送进行有效的管理。CSMA/CD(载波监听多路访问/冲突避免)模块集成了IEEE802.3 MAC层协议,负责监听网络情况和地址过滤。若目的地址LAN91C1ll的地址广播地址或多播地址则接收此数据包,
~ 19 ~
关于FPGA实现网卡通信的方案比较报告 否则抛弃。内部物理接口(PHY)包含一个编解码器(ENDEC),负责曼彻斯特(Man—chester)编解码,并提供标准6脚连接单元接口(AUI),外接同轴传输接收器。当发送数据时,编解码器负责把主控制器传过来的反向不归零码(NRZ)数据转换为Manchester数据,并以适当的电 平作为驱动;当接收数据时,负责连接完整性测试。外接的串行电可擦除只读ROM(EEPROM)中可存储网卡的MAC地址。当OS启动加载网卡时,以太网控制器就从EEPROM的固定地址中读取MAC地址并存储在相应的寄存器中。
2.以太网接口硬件设计方案
利用Altera公司推出的Stratixl系列FPGA器件为总控制芯片,并利用SOPC Builder,在器件上集成了NIOSⅡ处理器、定时器、Avalon接口、JTAG接口、LAN9IC111接口、外部LED接口、外部LCD接口、SRAM接口和FLASH接口等模块,并能通过SOPC Builder的IDE配置其属性。NIOSⅡ处理TCP/IP协议,LAN91C111处理以太包的传输,LED显示网卡的状态,LCD显示网卡的IP地址。SRAM作为NIOSⅡ软核CPU的内存。FLASH一部分存储网卡的物理地址以及自己设计的固定IP地址,网关和子网掩码;一部分存储程序和数据。Avalon接口连接片上存储器元件和Avalon主从端口。要实现NIOS系统与FPGA片外存储器通信,就必须在Avalon总线和连接外部存储器的总线之间添加一个桥(Avalon Tri—State Bridge),JTAG接口用来下载和调试程序。系统结构框图如图7所示。
~ 20 ~
关于FPGA实现网卡通信的方案比较报告 发光二极管LED显示器LED接口LED接口定时器NIOSⅡLAN91C111接口LAN91C111外部接口FLASH接口JTAGFLASHJTAG接口FPGA图7:系统结构框图
驱动程序、网卡的物理地址、固定IP地址、网关和子网掩码等数
据,通过JTAG口下载到FLASH中去。当网卡加电时,系统将自动把FLASH中的程序和数据加载到FPGA中去,并初始化与之相连的外部器件,然后运行驱动程序进行工作。
3.以太网接口软件设计方案
本方案嵌入式系统运行NIOSⅡ 自带的μC/OS-II操作系统,并配合有LwIP的移植,使之能更好的利用线程来处理网络数据的传输。 3.1 μC/OS-II中实现LwIP
3.1.1 开源TCP/IP协议栈LwIP简介
μC/OS-II虽然有很多优点,但它本身没有实现TCP/IP的库,幸好有LwIP,弥补了它在网络通讯中的不足。LwIP的含义是,Light Weight(轻型)IP协议。LwIP可以移植到操作系统上,也可以在无操
~ 21 ~
关于FPGA实现网卡通信的方案比较报告 作系统的情况下独立运行。LwIP TCP/IP实现的重点是在保持TCP/IP协议主要功能的基础上减少对RAM的占用,这使LwlP协议栈适合在低端嵌入式系统中使用。 3.1.2同其他实现方案的比较
现在要自行开发嵌入式TCP/IP协议软件有两种典型的实现的方法。
一种是在linux的基础上修改。linux是一个源代码开放的软件平台,它实现了包括TCP/IP协议软件的诸多功能。但linux一开始毕竟不是为嵌入式应用编写的。linux目前最小的容量是500kB内核和1.5MB RAM。因而把它移植到某些对硬件成本有较苛刻要求的嵌入式应用场合不太合适。
另外一种是Ubicom公司专门为其SENIX单片机开发的Internet协议栈。但其存在以下缺点:对硬件环境有较大的依赖性,用汇编编写,并且软件结构缺乏灵活性,不适合移植到其他系统中;为了在有限的程序存储器上实现网络协议,作了大量简化,因而在性能和通用性上较差。而本设计方案兼顾了小容量和通用性的要求,可以在多种硬件平台上实现。
3.2 NIOSⅡ系统程序编写 3.2.1 NIOSⅡ软件结构
NIOSⅡ提供分层的软件开发模式。NIOSⅡ 程序共分7层,从下到上依次为:NIOSⅡ系统硬件(NIOSⅡ Processor System Hardware),驱动程序层(Software Device Drivers),硬件抽象层应用程序接口
~ 22 ~
关于FPGA实现网卡通信的方案比较报告 (HALAPI),实时操作系统(μC/OS-II),LwIP软件库(LwIP Software Component),系统初始化(Application—Specific System Initialization),应用程序层(Application)。
分层进行软件开发使NIOSⅡ应用程序和系统硬件分离开。在进行软件开发的时候,不用了解和担心硬件的匹配问题,同时也使软件的通用性大大加强。 3.2.2 系统程序流程 系统程序流程图如图8所示:
Socket Server TaskApplication TaskLwIP RX Ether TaskLwIP TCP/IP TaskNETUTI LSDHCP Timeout TaskOS Sem POSTAttained IP Address Sem图8:系统程序流程图
主函数首先调用初始化函数对器件进行初始化。接着安装设置IP
地址等的线程(NETUTI LSDHCP Timeout Task),当执行完毕退出该线程。其次安装处理网络连接和收发的线程(Socket Server Task)。然后执行系统初始化任务(Initial Task),建立操作系统需要的数据结
~ 23 ~
关于FPGA实现网卡通信的方案比较报告 构,如信号量,队列以及任务标志,并启动应用程序任务,并在执行完后撤消自己。程序运行时,首先根据设定好的时间限制,在网络上自动获得IP地址,如果操作超过时限,则根据已经设定好的IP地址进行分配,并设置网关和子网掩码。设置成功系统的IP地址和端口将显示到LCD上。然后创建网络端口(Socket),执行Socket Server Task线程监听网络,并运行应用程序等待数据收发。 4优缺点分析.
优点:占用系统资源少,开发成本低,开发周期短,易于移植和应用。同时,此方案仅占用10个逻辑单元,为二次开发节约了大量的硬件资源,利用的是NIOSⅡ 自带的μC/OS-II操作系统,开源的操作系统和TCP/IP协议栈,节约了成本。此方案还采用SOPC Builder的分层设计思想,减轻了系统程序对硬件的要求,提高了设计的可移植性。
缺点:μC/OS II本身没有实现TCP/IP的库,在μC/OS II系统下移植LwIP协议比较麻烦。
方案六:基于FPGA的以太网卡的实现
本方案采用Xilinx公司ISE9.1i开发平台和ML403 FPGA开发板设计三态以太网卡的设计方案,并对发送模块做了重点分析与设计。采用FPGA可编程技术来设计网卡,充分发挥可编程逻辑器件的设计优势,不仅简化设计步骤,缩短设计周期,而且降低了设计成本。 1.三态以太网卡的整体设计
~ 24 ~
关于FPGA实现网卡通信的方案比较报告 以太网卡一般由媒体访问控制器(MAC)、物理层芯片(PHY)、介质独立接口(GMII/MII)、主机与客户接口等部分构成,其整体结构框图如图9所示。
时钟管理发送模块GMII/MIITxRx客户接口流控制模块接口接收模块模块隔离变压器PHYMDIO接口主上层协议机接口三态选择地址过滤配置寄存器图9:以太网卡功能模块框图 整个系统可划分为发送模块、接收模块、PHY模块、介质独立接口模块、地址过滤模块、配置模块、流控制模块、隔离变压器模块、时钟管理模块以及客户接El、主机接口和MDIO接口等几部分。 2.三态以太网卡主要模块的介绍. 2.1 发送模块
发送模块主要负责数据帧的发送,它将上层协议提供的数据进行封装后再经过GMII/MII接口发送给PHY,其内部结构如图10所示。
~ 25 ~
关于FPGA实现网卡通信的方案比较报告 来自PHY发送状态机CRC生成模块来自PFG随机数发生模块来自HOST发送计时模块图10:以太网MAC发送模块结构框图
其中,CRC生成模块用于计算发送数据的CRC校验值,并将计算好的CRC值添加到数据帧的帧校验序列字段(FCS)。如果发送过程中发生冲突,发送模块就先发送一个拥塞码,随后停止本次发送。在下次重新发送数据前,发送模块须首先执行一个后退操作。后退的时间是一个与发生冲突次数有关的随机数,该随机数是由随机数发生模块采用二进制指数退避算法产生的。为了减小冲突发生的概率,用于生成该随机数的范围要随着冲突次数的增多而不断增大。发送计数模块由延迟计数器,帧长计数器,重试次数计数器和IPG计数器等4个计数器组成。发送状态机是发送模块的主要部分,控制着发送数据的整个过程。
接收模块由接收状态机、CRC校验、地址识别、接收计数器4个子模块组成。接收模块主要负责数据的接收,前序码和CRC的移除等,其设计原理与发送模块类似,接收过程实际上可以看作是发送过程的一个逆过程。
~ 26 ~
关于FPGA实现网卡通信的方案比较报告 2.2 接口模块
网卡接口模块主要有GMII/MII接口、主机接口和客户接口三大模块。GMII/MII模块是MAC与PHY间的连接口。该连接VI由时钟信号MDC和双向数据信号MDIO组成,用于配置和读取PHY模块状态信息。GMII/MII模块由时钟产生子模块、移位寄存器子模块和输出控制子模块组成,其模块框图如图11所示.
etrdatPhy[5:0]buselk移位寄存器子模块linkfail输出控制子模块ndo_enmdoelk时钟产生子模块mdi图11:GMII/MII模块框图
时钟产生子模块用来产生此接口模块所需的时钟信号MDC(速率为10Mbps时为2.5MHz,100Mbps时为25MHz,1000Mbps时为125MHz)。 移位寄存器子模块用来对PHY的控制数据进行写人操作和对PHY的状态信息进行读出操作。输出控制子模块用来决定MDIO的输入饰出状态。主机接口是以太网上层协议与MAC控制器之间信息交换的接口。上层协议通过主机接El来配置MAC并读取其状态信息。同时,上层协议与MAC之间数据的交换也通过该接口实现。上层协议对MAC
~ 27 ~
关于FPGA实现网卡通信的方案比较报告 的配置信息和MAC的状态信息都存放在主机接口的一组寄存器里。 主机接口模块的发送和接收2个队列用来管理上层协议发送和接收数据的操作。发送队列主要用来记录等待发送帧的相关信息、发送该帧时对MAC的设置以及该帧发送完毕后产生的状态信息等。接收队列主要对接收到的数据帧进行排队并记录每个接收到的帧的信息。发送队列和接收队列的长度可以通过控制寄存器来进行设置。而客户接口主要用来匹配客户端转换结构或网络处理器接口,主要由发送和接收2个缓存队列组成。在本设计中,客户接口的发送和接收数据通道配置成8 bit的宽度,它利用一个125 MHz的时钟产生1000 Mbps的数据率。在完全独立的全双工模式下每个通道都同步于发送/接收时钟。
2.3 PHY模块
外部物理层(PHY)模块是由物理编码子层(PCS)和物理媒体接人子层(PMA)2个子模块组成。PCS子模块主要完成传输数据的曼彻斯特编解码。发送数据时负责把主控制器传过来的数据转换为曼彻斯特数据;接收时负责把外部传来的数据进行曼彻斯特解码。PCS同时还兼有载波监听、冲突显示和接口管理的功能。PMA子层将来自PMA服务接口的信息耦合到平衡电缆物理介质上,它由1个PMA复位功能块和4个同步/异步操作功能块组成。PMA的4个操作功能块分别是PMA发送块、PMA接收块、链接状态监视器和时钟恢复块。PMA的所有操作功能在PMA复位功能完成的同时立刻启动。复位功能可由PMA和PCS子层共享。
~ 28 ~
关于FPGA实现网卡通信的方案比较报告 3.优缺点分析
优点: FPGA具有密度高,速度快,功耗小、使用方便等特点,,以MCU为核心,采用FPGA设计实现外围电路,不仅可以使设计的电子产品小型化、集成化和实现高可靠性,还大大缩短了设计周期,减少了设计费用,降低了设计风险.
缺点:本方案整个设计采用VHDL硬件描述语言来实现,代码编写工作量大且难度较大。
三、初步方向
基于以上各方案的经验和比较,初步计划采纳方案五的设计,并
在其基础上进行改进,也就是利用NIOS Ⅱ自带的μC/OS-II操作系统,采用FPGA作为总控制芯片,并配合有LwIP的移植来实现。
~ 29 ~
正在阅读:
关于FPGA实现网卡通信的方案比较报告06-05
18731-西方文学理论-课件-L10.2荣格——论文摘要05-03
2011-2012年九校联考英语试题08-16
物理化学下学期试卷06-09
可怕的物种入侵》教学设计及反思07-20
应收账款与商帐追收管理制度05-11
江南大学西方经济学期末考试试卷答案参考真题笔记复习资料 - 图文10-20
拓展训练项目大全—疯狂市场 - 图文02-01
打造高素质干部人才队伍的探索与思考06-01
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 网卡
- 实现
- 通信
- 比较
- 方案
- 报告
- 关于
- FPGA
- 数控机床与原理外文翻译文献
- 2013年临沧事业单位招聘考试练习精选二
- qt5计算器代码
- 机械运动、声现象测试题
- 房地产公司成本部年度工作总结
- 2009专业实务-招标师考试历年真题
- 河工大专升本计算机CAD绘图
- 某证券公司拟上市公司公司尽职调查清单 - 图文
- 九年级语文智取生辰纲练习题及答案
- 水运工程试验检测的常见问题及改进措施
- 施工现场安全技术交底教育材料
- 24917100 - 《网络基本原理》实践环节考核指
- 机械制造企业安全生产检查表
- 新-上海市危险化学品安全管理办法(沪府令44号)
- 暑假去哪里黄果树瀑布旅游攻略 - 图文
- 脱硫脱硝系统调试大全
- 2019年投资分析第二次作业 doc
- 管理学练习题及答案(周三多版)
- 格力电器2015年财务报告分析
- 2017-2018年下学期六年级数学期中试卷及答案