基于FPGA的千兆以太网控制器的设计摘要:网络正在成为当今社会通信的骨干力量,现代化的设备迫切需要解决如何简捷高速的接入问题,本文描述了基于FPGA的嵌入式技术。千兆以太网(G ig ait h n t)技术目前被广泛应用于局域网中,千兆以太网二层(C层)交换芯片是千兆以太网中的关键芯片。文章介绍了一种由P实现的以太网控制器的设计方法该控制器能支持1000 Mbps的传输速率以及半双工和全双工模式,并且给出了仿真验证结果。结果表明,该设计方案是可行的。
关键词:千兆以太网;PGA;以太网控制器
A Des gn of ont oller or Ggabit Etere Based o GA
D gZh
(a zho n iver ity f S c ne n hnoo Dep tment o Elec ronic Sc ece and echno
oy,uhan 00 C hia)
Ab tr c :N wok bcmes he fundation of md n cmmon counications, i ’s urget to olvethe accs t the sys ew t the the net siply a ffi ient y. The apr deals with the tehnology ofem de syste se o the FPGA Gigait Ehernet tech l y s w y usd in oal Area wor (L) rec t y, L er 2 (C)switch cip is he ky chp ased nhic igabit hrne ech l y can be sed. In th s paer,a m hod that im emnts Gigbit herne con rol er on FA s ntrdu ,wh ch cn suppot
100Mbps transm ssi at w th h lf-ulex andfulldplex mod, and the simulatin nd ve c
on reslts are vn.
Ky ords Gga t Et n t; FPA; te otro llr
目录
引言错误未定义书签。
2千兆以太网技术简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3千兆以太网的工作原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
千兆以太网控制器的FPGA实现. . . . . . . . . . . . . . . . . .错误未定义书签。
5千兆以太网的具体设计方案错误未定义书签。
.1 MA发送模块错误未定义书签。
5 A接收模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
5. C的其它模块. . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
6仿真结果错误未定义书签。
7结束语. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
8 参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
1引言
目前,I电视、视频流、网络游戏以及多媒体互动等业务逐步成为关注的焦点。然而高清晰度的交互视频是带宽的巨大消耗者 进一步提升接入带宽已经迫在眉睫。 FPGA产品设计完善,可以直接编程。还具备可定制的灵活性,避免了较高的NRE(不可回收)成本。这都使得基于SOPC的嵌入式开发逐渐成为新技术发展的最前沿。嵌入式系统不同于通用型PC,具有以下特点:①低功耗、体积小、集成度高;②严格约束,嵌入式系统的硬件和软件都必须高效率地设计;③实时性,有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。
目前,以太网 2 3协议和TPIP协议是现今嵌入式系统接入Inter nt的首选协议。而以太网(E t her n t)的核心思想是多用户使用共享的公共传输信道它通过带冲突检测的载波侦听多路访问协议(CSC)来控制对介质的访问。
本文给出了完全用FPGA的控制逻辑来实现嵌入式系统 te r ne接入中的底层以太网控制器的设计方法。并最终设计出符合IEE 82.标准的控制器从而实现了100 bp两种传输速率以及半双工和全双工两种工作模式,并可通过IEE02.标准定义的介质独立接口(MII)与以太网物理层芯片相连接。
2 千兆以太网技术简介
以太网技术是当今应用广泛的网络技术千兆以太网技术继承了以往以太网技术的许多优点,同时又具有诸多新特性例如传输介质包括光纤和铜缆,使用8B 10B的编解码方案,采用载波扩展和分组突发技术等。正是因为具有良好的继承性和许多优秀的新特性,千兆以太网已经成为目前局域网的主流解决方案[ 。
千兆以太网利用原以太网标准所规定的全部技术规范其中包括CMA/CD协议、以太网帧、全双工、流量控制以及IEE802.3标准中所定义的管理对象。千兆以太网的关键技术是千兆以太网的C 层和以太网接口的实现。随着多媒体应用的普及千兆以太网必然得到广泛应用[2。
3千兆以太网的工作原理
本文介绍的千兆以太网交换芯片按照IEEE802. 标准实现了8个独立千兆端口之间的AC帧交换,同时向下兼容10 Mb/s和100M/ 的A帧交换。其最基本的工作原理可概括为“学习转发”。它包括“学习” 和“转发”两个部分。
芯片中包含一个MAC地址表,地址表的每个存储单元为一条如表所示的2比特的A地址索引信息。AC地址表一共可以存储096条MAC地址索引信息。
表1 MAC地址索引信息结构表
端口接收到MAC帧后,提取MC帧的源地址,并在表中查找与之对应的条目,如果没有找到,就把源地址和接收到该帧的端口编号捆绑成一条新的MAC地址索引信息,存储到MAC地址索引表中这个过程为“学习” 。通过学习,就可以知道主机的地址和端口的映射关系。有时还需要记录VLAN和端口的对应信息,建立L索引表。
从端口接收到一个要求转发的MA帧后,提取MC帧中的目的地址,并在MC地址表中查找与之对应的条目从中得到目的地址对应的端口号,将MC帧转发到相应的端口,这个过程为“转发” 。
芯片设计的关键技术在于AC帧的帧头信息提取和MAC地址表的管理。对于帧头信息的提取包括判断是以太网帧还是
802.3帧,提取源地址和目的地址、 VLA信息和一些I帧头信息计算当前帧的优先级,根据不同的帧头信息进行相应的协议处理等。
为了实现 00/ 的MA帧交换,M AC地址表必须满足三个要求:必须能在几个时钟周期内查找到A地址相应的端口号 以满足千兆以太网需求的高吞吐量;必须及时 “学习”到新MAC帧的地址索引信息老化掉长时间没有访问到的MAC地址索引信息。为了达到这些要求,本芯片中采用了HAS H[3]算法。4千兆以太网控制器的FA实现
整个控制器的结构框图如图所示,整个控制器由接口帧缓
存、MAC帧处理模块、交换处理模块、 内存管理模块、寄存器以及R 接口组成。
芯片内部有一个容量为108字节的双端口S RAM用于缓存接收到的MAC 帧,内存管理模块负责该S RA M存储空间的分配、 释放和读写控制。
包处理来自交
换处理模块
图千兆以太网控制器结构框图
芯片内部核心部分工作时钟频率为125M ,端口有可能会接在 0 Mb/s或0 Mb/ 的网段上,此时接口的工作时钟为25Hz 因此需要一个接口缓存模块来缓存数据。 该模块一般是IO。
RS 23 接口是芯片与用户的接口通过该接口,用户可以读取寄存器的值来了解芯片的工作状态,可以配置寄存器来调整芯片的工作模式。
交换处理模块是整个芯片的核心模块,帧头信息提取和M地址表的管理都在这个模块中实现,其结构框图如图所示。
帧头信息分析模块接收到AC帧处理模块送来的帧头信息
后,提取出目的地址、源地址、VLAN以及P头中的优先级等信息,并将其转发到学习转发控制模块。并根据帧头、帧尾以及帧有效信号产生帧状态指示信号发送到端口记录模块。
图2交换处理模块结构框图
千兆以太网的具体设计方案
以太网控制器的F P GA设计工作包括以太网AC子层的P GA设计、MAC子层与上层协议的接口设计以及C与物理层PHY)的II接口设计。 图3为M AC接口结构框图。
图3 MAC接口结构框图
5.1 MAC发送模块
M发送模块可将上层协议提供的数据封装之后通过MII接口发送给PHY。发送模块可接收主机接口模块的数据帧开始和数据帧结束标志,并通过主机接口从外部存储器中读取要发送的数据,然后对数据进行封装,然后通过Y提供的载波侦听和冲突检测信号,在信道空闲时通过II接口将数据以4位的宽度发送给PY最后由H将数据发送到网络上[] 。
发送模块由CRC生成模块(crc_ge n、随机数生成模块(r do_gn)、发送计数模块(tx_ct和发送状态机(t_s tte模块等四个子模块组成。
5.1 1 CRC生成模块(cr_gen
该模块用于计算发送数据的RC值并将C值添加到数据帧的帧校验序列字段CS内。为了提高效率并考虑到AC与HY的数据通道为位,设计时可采用位并行C RC计算方法[4 ,算法中可使用一个次态函数并通过循环迭代来模拟移位操作。这样,发送模块就可以在边发送数据到PY的同时,一边计算CRC,这样当数据发送完时,CRC值也计算完成了。
5.1 2随机数生成模块(rado_ge n
如在发送过程中检测到冲突,发送模块就先发送拥塞码(am随后停止发送。在下次重新发送之前,发送模块会先执行一
个后退(bcko ff)操作 即发送模块等待一个半随机(生成的随机数有范围限制的时间之后再开始发送。该随机数就是由随机数生成模块产生的,它采用经典的截断二元指数后退算法,后退的时间是一个与发生冲突次数有关的随机数,随着冲突的次数增多,用于生成该随机数的范围也将逐渐增大 以减少冲突的概率。
5. .3 发送计数模块tx_c
发送计数模块由半字节计数器ibct)、字节计数器和重试次数计数器(rtrycn )三个计数器组成。其中重试次数计数器
re rycn )可对发送某个帧时产生冲突次数进行计数。当计数器的值达到最大重试次数时它将放弃重试,并丢弃发送缓冲器内的数据。同时,重试计数器的值还被随机数生成模块用于计算下次重试之前需要后退(bakof)的时隙的个数。
半字节计数器和字节计数器分别用于对发送过程中的半字节
bibbl)和字节进行计数。
字节计算器还可用于滞后冲突(lat o llis on)和超长帧的判断。当滞后冲突发生时,正在发送的数据将被丢弃。超长帧的判断则是从对帧内容包括FS)进行字节计数,如果字节计数器的值大于最大有效帧的长度(1 18个字节 ,发送模块就根据系统设置(是否支持超长帧)丢弃或发送。
.1.4发送状态机模块(tx_s tte m
发送状态机模块是整个发送模块的核心主要用于控制整个发送过程。发送状态机由 -d e_St e、 PrambleSate、
819云互联 在本月发布了一个购买香港,日本独立服务器的活动,相对之前的首月活动性价比更高,最多只能享受1个月的活动 续费价格恢复原价 是有些颇高 这次819云互联与机房是合作伙伴 本次拿到机房 活动7天内购买独立服务器后期的长期续费价格 加大力度 确实来说这次的就可以买年付或者更长时间了…本次是5个机房可供选择,独立服务器最低默认是50M带宽,不限制流量,。官网:https://ww...
目前,我们都在用哪个FTP软件?喜欢用的是WinSCP,是一款免费的FTP/SFTP软件。今天在帮助一个网友远程解决问题的时候看到他用的是FlashFXP FTP工具,这个工具以前我也用过,不过正版是需要付费的,但是网上有很多的绿色版本和破解版本。考虑到安全的问题,个人不建议选择破解版。但是这款软件还是比较好用的。今天主要是遇到他的虚拟主机无法通过FTP连接主机,这里我就帮忙看看到底是什么问题。一...
易探云产品限时秒杀&QQ音乐典藏活动正在进行中!购买易探云香港/美国云服务器送QQ音乐绿钻豪华版1年,价值180元,性价比超级高。目前,有四大核心福利产品推荐:福利一、香港云服务器1核1G2M,仅218元/年起(香港CN2线路,全球50ms以内);福利二、美国20G高防云服务器1核1G5M,仅336元/年起(美国BGP线路,自带20G防御);福利三、2G虚拟主机低至58.8元/年(更有免费...