资源描述:
《基于fpga的以太网mac子层协议设计实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第43卷 第1期复旦学报(自然科学版)Vol.43No.12004年2月JournalofFudanUniversity(NaturalScience)Feb.2004 文章编号:042727104(2004)0120050204X基于FPGA的以太网MAC子层协议设计实现徐洪波,俞承芳(复旦大学电子工程系,上海 200433)摘 要:介绍了基于现场可编程门阵列(FPGA)的以太网MAC子层协议的硬件实现方法.硬件结构上由控制模块、发送模块和接收模块3个部分组成,发送模块和接收模块采用状态机控制数据发送和接收的过程,完成数据的封装、发送和接收功能.关键词:嵌入
2、式系统;以太网MAC;现场可编程门阵列;硬件描述语言中图分类号:TN47;TP334.7文献标识码:A传统以PC为中心的互联网应用现已开始转向以嵌入式设备为中心.IA(internetappliance)概念现在甚为流行,这表明互联网应用进入了嵌入式互联网的时代已经来临.据网络专家预测,将来在互联网上传输的信息中,有70%来自小型嵌入式系统.因此,对嵌入式系统接入Internet网络的研究是有必要的.1目前有两种方法可以实现单片机系统接入Internet.一种方法是利用NIC(网络控制/网卡)实现网络接口,由单片机来提供所需的网络协议.另外一种方法是利用具有网络
3、协议栈结构的芯片和PHY(物理层的接收器)来实现网络接口,主控制器只负责往协议栈结构芯片的某个寄存器里放上适当的数据.美国SeikoInstrument公司生产的S7600A就是具有这种结构的芯片.与此同时,用FPGA实现单片机系统接入Internet的方法也日益受到人们的重视.FPGA是现场可编程门阵列的缩写,是近年来发展迅速的大规模可编程器件,具有密度高,速度快,功2耗小、使用方便等特点,在嵌入式系统设计中得到了广泛的应用.以MCU为核心,采用FPGA设计实现外围电路,不仅可以使设计的电子产品小型化、集成化和实现高可靠性,还大大缩短了设计周期,减少了设计费用
4、,降低了设计风险.本文提出采用FPGA实现网络协议栈,着重介绍以太网MAC子层协议的硬件实现方法.1 以太网MAC子层协议IEEE802协议标准系列中,数据链路层包括逻辑表1MAC帧结构链路控制(LLC)子层和媒体访问控制(MAC)子层.其Tab.1MACframeformat中MAC位于LLC和物理层之间,它使LLC适应于不同字段名(field)字节数(size)的媒体访问技术和物理媒体.MAC单独作为一个子前导码(Preamble)7层定界符(StartFrameDelimiter,SFD)1,就不会因为媒体访问方法的改变而影响较高层次目的地址(Destin
5、ationAddress)6的协议.MAC由数据拆装和媒体访问管理两个模块组源地址(SourceAddress)6成,完成数据帧的封装、解封、发送和接收功能.长度/类型(Length/Type)2数据(Data)0~1500以太网数据帧封装格式如表1所示,其中目的地填充(PAD)0~46址、源地址、长度/类型和数据4个字段由上一层协议校验(FrameCheckSequence,FCS)4模块生成.传送数据帧时,数据封装模块自动在待传X收稿日期:2003203206作者简介:徐洪波(1976—),男,硕士研究生;通讯联系人俞承芳教授.第1期 徐
6、洪波等:基于FPGA的以太网MAC子层协议设计实现51输数据前面添加7个字节的前导码和1个字节的定界符,并在数据传送结束时加发4个字节的循环冗余校验码,如果数据长度小于46字节,则会自动进行数据填充以达到要求的最短长度.接收数据帧时,数据拆装模块将自动丢弃前导码和定界符2个字段.3媒体访问管理模块主要实现CSMA/CD(carriersensemultipleaccesswithcollisiondetection)协议.CS2MA/CD是一种分布式介质访问控制协议,使网中的多个站(节点)可以共享传输介质.发送数据帧时,节点首先进行载波监听,当介质空闲时开始发送
7、帧.如果在传输过程中与其他节点产生冲突,则正在传输的每个节点必须发出32比特大小的阻塞信号来加强冲突,以便通知总线上各个站点已发生冲突,然后随机延时一段时间重新争用介质,再重新传送数据帧.2MAC子层协议的FPGA实现以太网MAC子层协议的硬件结构框图如图1所示,由控制模块、发送模块和接收模块3个部分组成.由于小型嵌入式系统主要应用在集散控制系统中,信息交流多为“一问一答”式的半双工通信模式,同时为了降低硬件资源的开销,本模块仅支持半双工通信模式.图1 硬件结构框图Fig.1Hardwarearchitecture2.1 控制模块该模块包含主机接口、寄存器、发送
8、数据缓冲区及接收数据缓冲