- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
基于FPGA的以太网MII接口扩展设计与实现
电脑知识2009-01-1011:09:49阅读80评论0字号:大中小
引言
传统以PC为中心的互联网应用现已开始转向以嵌入式设备为中心。据网络专家预测,将来在互联网上传输的信息中,有70%来自小型嵌入式系统,因此,对嵌入式系统接入因特网的研究是有必要的。目前有两种方法可以实现单片机系统接入因特网:一种方法是利用NIC(网络控制/网卡)实现网络接口,由单片机来提供所需的网络协议;另外一种方法是利用具有网络协议栈结构的芯片和PHY(物理层的接收器)来实现网络接口,主控制器只负责往协议栈结构芯片的某个寄存器里放上适当的数据。与此同时,用FPGA实现单片机系统接入因特网的方法也日益受到人们的重视。本文提出采用FPGA实现网络协议栈,介绍100M以太网MII接口协议的硬件实现方法,其中的奇偶模块分频器和异步FIFO等通用器件在日常中也很有应用价值。
? 图1硬件结构框图
? 图2??????模块发送时序波形图
以太网MII接口协议
IEEE802协议标准系列中,数据链路层包括LLC(逻辑链路控制)子层和MAC(媒体访问控制)子层。其中MAC单独作为一个子层,完成数据帧的封装、解封、发送和接收功能。物理层PHY的结构随着传输速率的不同而有一定差异,在100M和1000M以太网中,依次为PCS子层、PMA子层和PMD子层。MII接口是连接数据链路层和物理层的接口,因为本设计中以太网速率采用100Mb/s,所以MII接口实际连接的是MAC子层和PCS子层。根据协议,要求MII接口具有的功能有:数据和帧分隔符的读写时钟同步,提供独立的读写数据通道,为MAC层和PCS层提供相应的管理信号,以及支持全双工模式。
扩展MII接口功能及其
FPGA实现
由于100M以太网的物理层采用4b/5b编码,为了扩展MII接口的功能,要求其能够实现直接物理层5位数据和MAC层8位数据的发送接收传输转换。即把从MAC子层用于发送的数据和从PHY用于接收的数据存入数据缓冲FIFO,同时要求MII接口将从PHY传来的信号COL、CRS转为信号Carrier和Collision,并提供给MAC子层用于载波监听和冲突检测,以及发送和接收时的时钟、使能、错误位信号的传送。扩展功能后的MII接口硬件结构框图如图1所示,由4b/5b编解码器、控制信号与4位/8位转换、分频器及双口FIFO4个模块组成,而且能够同时支持半双工和全双工模式。
在设计过程中,为了考虑测试和支持多种速率传输的需要,要求设计带有分频参数的可实现奇偶分频的分频器和支持能够同时进行读写操作和异步读写时钟的FIFO。这是MII接口设计中的难点,本身也具有很高的实用价值。
奇偶分频器的实现
分频器是数字系统设计中的基本电路,同一个设计中有时要求多种形式的分频。通常由计数器或计数器的级联构成各种形式的偶数分频及非等占空比的奇数分频,实现较为简单;对等占空比的奇数分频实现则较为困难。本文对2n+1等占空比奇数分频的基本思路是:先通过模2n+1的计数器实现占空比为n+1/n的奇数分频(比如三分频,正负波形的占空比为2:1),然后有两种方法可以实现等占空比的奇数分频,一种是当计数器至n+1时,让此波形与输入时钟波形相“与”,不过可能会存在毛刺输出;另一种是当计数器至n+1时,在输入时钟的下降沿触发产生低电平脉冲,然后再和原波形相“或”,这种方法没有毛刺产生。因此本文采用第二种方法。
4b/5b编解码器的设计
为了减少系统的开销,本文把4b/5b的编码和解码同时集中到一个模块上实现。数据0~F可以直接编、解码。PCS层有6个特殊的5b码:11111为帧间填充码;11000、10001和01101、00111是两对成对出现的码组,分别为数据流开始和结束时的分隔符;00100则是数据错误位,用以表示错误。数据接收时,可以直接对这几个5b码组解码,00100则产生信号rx_er。发送时,需要对从MII接口传来的信号位进行判断:若tx_en上升沿,则在头两个前导码时编码输出SSD;若tx_en下降沿(帧间隔),则在FCS后输出ESD,然后一直用11111为数据流间隔填充码;若有tx_er触发,则编码00100输出。
异步双口FIFO的设计
为了满足PCS层数据的物理层时钟以及MAC层总线时钟不同步的需求,需要FIFO有异步的读、写时钟。当冲突检测COL为高时,要求发送帧执行退回操作回至FIFO中等待下一个Transmitting信号。
FIFO的设计思路如下:设置异步Reset,高电平触发;设置8位寄存器fifodata保存FIFO的数据;设置fifo_rp和fifo_wp为读、写指针;cr_rp和cr_wr为进位标志
您可能关注的文档
最近下载
- 最新版军队文职人员招聘(司机岗)考试题库(完整版).pdf.docx VIP
- 17J008 挡土墙(重力式、衡重式、悬臂式)(最新).pdf VIP
- ABB传动与变频器 云连接助手型控制盘用户手册 安装及操作手册.pdf
- 医疗器械生产企业操作规程.doc VIP
- 滑模、爬模、翻模施工技术对比.ppt
- 最新2023版知识产权贯标GBT29490表单 知识产权风险和机遇识别评价清单[知识产权合规管理体系文件].docx
- 路基工程施工组织设计.docx VIP
- 初一新生入学分班考试语文、数学、英语真题卷及详细答案(6套)名校.doc VIP
- 七年级数学培优精华.pdf VIP
- 慢性阻塞性肺疾病完整版.ppt VIP
文档评论(0)