基于FPGA的以太网MAC子层协议设计实现-设计应用_第1页
基于FPGA的以太网MAC子层协议设计实现-设计应用_第2页
基于FPGA的以太网MAC子层协议设计实现-设计应用_第3页
基于FPGA的以太网MAC子层协议设计实现-设计应用_第4页
基于FPGA的以太网MAC子层协议设计实现-设计应用_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑基于FPGA的以太网MAC子层协议设计实现-设计应用摘要:本文介绍了基于现场可编程门阵列(FPGA)的以太网MAC子层协议的硬件实现方法.硬件结构上由控制模块、发送模块和接收模块3个部分组成,发送模块和接收模块采用状态机控制数据发送和接收的过程,完成数据的封装、发送和接收功能.关键词:嵌入式系统;以太网MAC;现场可编程门阵列;硬件描述语言传统以PC为中心的互联网应用现已开始转向以嵌入式设备为中心.IA(internetappliance)概念现在甚为流行,这表明互联网应用进入了嵌入式互联网的时代已经来临.据网络预测,将来在互联网上传输的信息中,有70%来自小型嵌入式系统.因此,对嵌入式系统接入Internet网络的研究是有必要的.目前有两种方法可以实现单片机系统接入Internet.一种方法是利用NIC(网络控制/网卡)实现网络接口,由单片机来提供所需的网络协议.另外一种方法是利用具有网络协议栈结构的芯片和PHY(物理层的接收器)来实现网络接口,主控制器只负责往协议栈结构芯片的某个寄存器里放上适当的数据.美国SeikoInstrument公司生产的S7600A就是具有这种结构的芯片.与此同时,用FPGA实现单片机系统接入Internet的方法也日益受到人们的重视.FPGA是现场可编程门阵列的缩写,是近年来发展迅速的大规模可编程器件,具有密度高,速度快,功耗小、使用方便等特点,在嵌入式系统设计中得到了广泛的应用.以MCU为,采用FPGA设计实现外围电路,不仅可以使设计的电子产品小型化、集成化和实现高可靠性,还大大缩短了设计周期,减少了设计费用,降低了设计风险.本文提出采用FPGA实现网络协议栈,着重介绍以太网MAC子层协议的硬件实现方法.1以太网MAC子层协议IEEE802协议标准系列中,数据链路层包括逻辑链路控制(LLC)子层和媒体访问控制(MAC)子层.其中MAC位于LLC和物理层之间,它使LLC适应于不同的媒体访问技术和物理媒体.MAC单独作为一个子层,就不会因为媒体访问方法的改变而影响较高层次的协议.MAC由数据拆装和媒体访问管理两个模块组成,完成数据帧的封装、解封、发送和接收功能.以太网数据帧封装格式如表1所示,其中目的地址、源地址、长度/类型和数据4个字段由上一层协议模块生成.传送数据帧时,数据封装模块自动在待传输数据前面添加7个字节的前导码和1个字节的定界符,并在数据传送结束时加发4个字节的循环冗余校验码,如果数据长度小于46字节,则会自动进行数据填充以达到要求的短长度.接收数据帧时,数据拆装模块将自动丢弃前导码和定界符2个字段.媒体访问管理模块主要实现CSMA/CD(carriersensemultipleaccesswithcollisiondetection)协议.CSMA/CD是一种分布式介质访问控制协议,使网中的多个站(节点)可以共享传输介质.发送数据帧时,节点首先进行载波监听,当介质空闲时开始发送帧.如果在传输过程中与其他节点产生冲突,则正在传输的每个节点必须发出32比特大小的阻塞信号来加强冲突,以便通知总线上各个站点已发生冲突,然后随机延时一段时间重新争用介质,再重新传送数据帧.2MAC子层协议的FPGA实现以太网MAC子层协议的硬件结构框图如图1所示,由控制模块、发送模块和接收模块3个部分组成.由于小型嵌入式系统主要应用在集散控制系统中,信息交流多为“一问一答”式的半双工通信模式,同时为了降低硬件资源的开销,本模块仅支持半双工通信模式.图1硬件结构框图2.1控制模块该模块包含主机接口、寄存器、发送数据缓冲区及接收数据缓冲区4个部分.主机接口部分用以实现与MCU之间的数据交换,采用8位外部数据总线.寄存器主要用于功能参数的设置及状态信息的存贮.发送数据缓冲区是主机与发送模块之间的数据传输通道,接收数据缓冲区则是主机与接收模块之间的数据传输通道.控制模块的工作时钟有两种选择方式,一种是直接由外部提供,另一种是外部时钟通过FPGA片内的延迟锁相环进行倍频后供内部使用,用户可以根据系统设计实际需要自由选择.数据缓冲区(发送数据缓冲区和接收数据缓冲区)用作发送与接收数据的缓冲,以使主机的传输速度与本模块相匹配.发送数据时,主机先将待发送的数据帧写入发送数据缓冲区,然后由发送模块将数据读出.传统意义上的数据缓冲区由一块内部或外部RAM来实现,但这样需要设计实现一个复杂的控制状态机来管理主机、发送模块和接收模块3个部分对RAM的读写.SpartanⅡ系列的FPGA内部提供了丰富的块RAM资源,可以配置双端口RAM.因此本文将发送缓冲区分成两个独立的部分,这样每个数据缓冲区便可以由双端口的RAM来实现,大大简化了设计,节省了硬件资源.2.2发送模块该模块主要实现CSMA/CD协议,完成数据帧的传送,即以字节为单位从发送缓冲区读取数据,并将其转换成4比特的半位元传送给以太网的物理层PHY芯片,结构框图如图2所示.重发计数器用以存贮当前帧成功传输时的发送次数.帧间隙计数器用以保证相邻两个帧之间保持一定的传输时间间隔.冲突窗计数器用以判断当前所发生的冲突是否为后冲突(latecollision).延时计数器用以存贮启动传输后等待总线空闲的时间,当超过一定时间后将放弃当前帧的传输.这4个功能子模块都由1个计数器和1个比较器来实现.退避计数器模块用以实现二进制指数退避算法,包括一个伪随机数生成器.CRC生成电路用以实现数据帧的校验码序列,采用4位数据线并行方式实现.图2发送模块结构框图发送控制状态机是整个发送模块的,用以管理各个功能子模块,并使它们按照一定的时序协同工作,其状态图如图3所示.当总线被其他站点占用进行数据传输时,发送模块处于Defer状态,如果此时数据准备好需要传输则启动延时计数器,经过规定的延时时间后总线仍被占用则放弃当前帧的传输.当总线空闲后则进入IPG状态,经过帧间间隙时间自动进入空闲状态IDLE并等待数据传输,此时如果数据准备好并且数据的长度大于46字节则按照前导码、数据、校验序列的顺序进行数据帧的传输,否则按照前导码、数据、数据填充、校验序列的顺序进行数据帧的传输;在传输过程中,如果遇到冲突则进入Jam状态,发送32比特的阻塞信号加强冲突以保证网络的各个站点都可以检测到此次的冲突,如果此次冲突是后冲突则直接进入Defer状态,并丢弃当前帧,否则进入Back状态,随机延时一段时间后重新争用总线来传输当前帧.图3发送控制状态机2.3接收模块该模块主要完成数据帧的接收,即从物理层PHY芯片接收4比特半位元数据,将其转化成以字节为单位的数据并存贮在接收数据缓冲区,结构框图如图4所示.图4接收模块结构框图图4中的地址判断子模块用以检查帧的目的地址字段是否与本站地址相匹配,如果不匹配,则说明不是发送给本站的而将它丢弃掉.帧间隙计数器用以检测接收到的数据帧与前一帧之间是否满足帧间间隔的要求,如果不满足则将它丢弃.接收字节计数器用以存贮接收帧的字节长度,判断接收帧长度是否满足要求(在帧长度与帧长度之间).CRC生成电路与发送模块一样采用4位数据线并行方式实现.接收控制状态机是整个接收模块的,负责管理各个功能子模块,检测总线及实现接收数据帧的时序,其状态图如图5所示.通常接收模块处于IDLE状态并监听总线的状态,当检测到以太网帧的前导码时自动进入SFD状态,此时如果接收到以太网数据帧的帧定界符,并且与前一个数据帧之间的时间间隔大于帧间间隙,则接收模块进入数据接收状态开始接收数据.处于Data0状态时接收字节的低4位,而处于Datal状态时接收字节的高4位,并在Data0状态将接收到的完整字节数据存贮到接收数据缓冲区.如果接收的数据字节数超过允许的帧长度,则接收模块进入Drop状态,此时丢弃后面的数据.当全部数据传输完毕即总线处于空闲时,接收模块重新处于IDLE状态,等待接收下一个数据帧.图5接收控制状态图3综合与仿真本文采用Xilinx公司的SpartanⅡ系列XC2S100PQ208芯片,整个设计全部采用VerilogHDL硬件描述语言来实现,并在Foundation3.1的设计平台上完成整个模块的设计、综合、仿真、映射及布局布线.图6为发送时序仿真的波形,从图中可以看出,当传输过程中发生冲突时继续发送32比特的阻塞码,然后随机延时一段时间重新争用介质以传输数据,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论