以太网控制器mac的设计.docx

上传人:b****1 文档编号:2916905 上传时间:2023-05-05 格式:DOCX 页数:44 大小:55.84KB
下载 相关 举报
以太网控制器mac的设计.docx_第1页
第1页 / 共44页
以太网控制器mac的设计.docx_第2页
第2页 / 共44页
以太网控制器mac的设计.docx_第3页
第3页 / 共44页
以太网控制器mac的设计.docx_第4页
第4页 / 共44页
以太网控制器mac的设计.docx_第5页
第5页 / 共44页
以太网控制器mac的设计.docx_第6页
第6页 / 共44页
以太网控制器mac的设计.docx_第7页
第7页 / 共44页
以太网控制器mac的设计.docx_第8页
第8页 / 共44页
以太网控制器mac的设计.docx_第9页
第9页 / 共44页
以太网控制器mac的设计.docx_第10页
第10页 / 共44页
以太网控制器mac的设计.docx_第11页
第11页 / 共44页
以太网控制器mac的设计.docx_第12页
第12页 / 共44页
以太网控制器mac的设计.docx_第13页
第13页 / 共44页
以太网控制器mac的设计.docx_第14页
第14页 / 共44页
以太网控制器mac的设计.docx_第15页
第15页 / 共44页
以太网控制器mac的设计.docx_第16页
第16页 / 共44页
以太网控制器mac的设计.docx_第17页
第17页 / 共44页
以太网控制器mac的设计.docx_第18页
第18页 / 共44页
以太网控制器mac的设计.docx_第19页
第19页 / 共44页
以太网控制器mac的设计.docx_第20页
第20页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

以太网控制器mac的设计.docx

《以太网控制器mac的设计.docx》由会员分享,可在线阅读,更多相关《以太网控制器mac的设计.docx(44页珍藏版)》请在冰点文库上搜索。

以太网控制器mac的设计.docx

以太网控制器mac的设计

以太网控制器mac的设计

.

专业综合课程设计报告

以太网控制器MAC设计

郑文灏姓名:

110260125学号:

刘国阳、刘慧超同组人:

王新胜指导老师:

成绩:

.

.

绪论课题研究的背景和意义....................................................................................................III第1章课程设计的要求............................................................................................................11.1课程设计的目的...............................................................................................................11.2课程设计的要求...............................................................................................................1第2章课程设计的内容............................................................................................................22.1设计思路.........................................................................................................................22.2功能模块分析..................................................................................................................3

2.2.1寄存器模块...............................................................................................................3

2.2.2接收帧模块...............................................................................................................3

2.2.3发送帧模块...............................................................................................................6

2.2.4MAC控制模块.........................................................................................................10

2.2.5MII模块....................................................................................................................112.3HDL代码阐述................................................................................................................122.4ModelSim验证..............................................................................................................21第3章课程设计的总结与展望...............................................................................................23

.

.

绪论课题研究的背景和意义

人类社会的进步要求信息产业迅速发展,计算机网络已成为全球信息产业的基石,高度发达的计算机互联网为人类社会的信息交流和资源共享提供了良好的环境,对人类生活方式的改变和社会生产力的进步产生了革命性的影响。

在计算机网络的发展过程中,以太网是众多网络技术中具有影响力的一种技术,是当今主流的局域网(LAN)技术。

以太网最初是由Xerox公司在70年代提出的,1982年DEC、Intel和Xerox制定了DIX标准,即10Mbps普通以太网标准。

1983年,IEEE组织公布了IEEES02(3标准,10Mbps以太网得到了国际的认可,标志着以太网标准的正式成立,同时也标志着符合国际标准的以太网技术的面世。

1995年IEEE通过了IEEE802(3u标准,标志着100Mbps快速以太网时代的到来。

随着网络用户的日益增加,10Mbps带宽在一些环境下不能满足人们对信息传输速率要求。

因此快速以太网推出得到了广泛的推广。

快速以太网是在10Mbps普通以太网上基础上发展起来的,它在保持帧格式,介质访问控制的前提下,工作速率比普通以太网快10倍。

IEEE802(3u快速以太网标准是IEEE802(3标准的补充,并且兼容10Mbps以太网。

10Mbps和100Mbps以太网组网方便,价格低廉,性能高效在局域网中受到了广泛应用。

1998年通过了IEEE802(3z标准,以太网的运行速度达到1Gbps,目前已出现了10Gbps的以太网。

与传统的CAN、RS(485等相比较,以太网速度更快、通用性更好,而且能直接与因特网相连,具有更大范围的远程访问。

相对于新兴的USB,IEEEl394等总线,以太网在传输距离和控制软件的通用性上有明显的优势。

近几年随着深亚微米集成电路工艺技术的飞速发展,SoC(SystemonaChip)已经成为IC界关注的焦点,单一芯片上能够容纳更多的逻辑单元成为芯片设计发展的必然趋势。

将所有的功能块集成在一个单独的芯片上可以大幅度降低系统成本,减少系统的面积和功耗,提高系统的可靠性。

SoC已经渗透到通信、多媒体、计算机控制以及其它一些数字领域,以太网技术在嵌入式系统中的开发应用,已成为当前嵌入式领域研究的技术热点之一。

嵌入式以太网在工业控制、商业领域、交通行业、家庭自动化等有着良好的应用前景,同时嵌入式设备以其价格低廉、体积小以及实时性使得嵌入式系统的网络化开发有着通用处理器无法比拟的优点。

嵌入式系统的网络化,使得SoC有了更广泛的应用范围。

在嵌入式系统的网络化开发过程中,首先要解决嵌入式设备与以太网络的连接问题,即网络芯片的设计。

常见的具有网络功能的芯片有两类,一类是专用的以太网芯片,集成了MAC控制器和PHY,例如REALTEK8019AS、8039AS,这类芯片一般用于网卡、路由器等设备,另一类是用控制、工业领域的具有网络功能的SoC芯片,例如,PHILIPSLPC2400,这类芯片通常集成了MAC控制器,但由于Pmr的模拟电路特性及设计工艺的兼容性问题,这类芯片一般都使用外置的PHY芯片来实现对以太网的支持。

在嵌入式领域,通信技术的发展要求对网络的支持越来越广泛,所以研究和设计一个用于嵌入式SoC芯片的以太网MAC控制器,具有相当的实际意义。

当今,以太网已经极大地影响我们的生活,嵌入式系统上的开发应用,已经成为当前嵌入式研究领域的技术热点之一,一方面,与传统的RS-485.CAN等相比较,以太网更加高速、通用,而且还可以直接与Internet相连接,提供更大范围的远程访问;另一方面,相对于新兴的USB2.0、IEEE1394等总线,以太网技术在传输距离、不想成本以及控制软件的通用性上都有明显优势。

.

.

第1章课程设计的要求

1.1课程设计的目的

了解掌握以太网控制器的工作原理

掌握较大工程的基本开发技能

培养综合运用Modelsim,ISE工具进行硬件开发的能力,培养数字系统设计的基本能力

1.2课程设计的要求

执行以太网IEEE802.3协议MAC要求的功能,自动产生和检查32bitCRC

在发送时自动填充长度小于规定的帧

监测帧过长或过短

兼容10Mbps和100Mbps两种速率

当碰到过小的帧间隔或过长的延迟时间时自动丢弃帧,在全双工模式下控制流量并且自动产生控制帧,在半双工模式下进行冲突检测并且在冲突时自动重传,完成对发送/接收的状态解析

容纳128个缓冲描述符的内部RAM和存储帧的内部RAM,发送和接收帧时的异步双口FIFO

发送帧模块:

处理所有有关帧发送的操作

接收帧模块:

处理所有有关帧接收的操作

控制模块:

在全双工的工作模式下,处理所有有关数据流控制的操作

状态模块:

要写入到缓冲描述符或其他模块要调用的不同的状态,寄存器模块:

所有要在MAC层操作中用到的寄存器.

.

第2章课程设计的内容

2.1设计思路

本文主要阐述基于FPGA对IEEE802.3快速以太网MAC层功能的实现。

采用自顶向下、分块设计的思路,逐个实现MAC主要功能模块,诸如发送模块、接收模块、MAC控制模块以及物理层和主机接口模块等,按照IP核的标准进行设计。

同时考虑到对主机和PHY总线连接,MAC内部都采用8位数据线,32位地址线,而在和PHY接口连接时采用4位数据通道。

MAC层主体框架如图2-1所示,主要模块有:

MII模块、MAC控制模块、接收帧模块、发送帧模块、状态模块、寄存器模块、存储模块、主机总线接口模块,以及用于时钟同步、复位和寄存器输出的模块。

寄存器地址与数据

控制与状态信号主机总线接口模块寄存器模块读寄存接收帧模块访问器数据数据与BD

接收帧数据与控制信号接收状态控制信号主机发送帧数据TxData[7..0]Ram与控制信号发送状态FIFO模主机接收帧数据RxData[7..0]块

状态模块控制与控制信号与寄存器配置状态信号

控制与状态信号

控制信号MAC控制模块MII模块发送帧模块

发送帧数据和控制信号发送帧到PHYMTxD[3..0]从PHY接收帧MTxD[3..0]

图2-1MAC控制器结构框图

这里,有必要说一下IEEE802.3帧格式,如图2-2所示。

7bytesPreamble

SFD1byte

6bytesDA

SA6bytes

2bytesLenth/Type

DATA46-1500bytes

4bytesCRC

图2-2IEEE802.3帧格式

1)Pre(Preamble):

前导码,7字节0x55信号,接收站点通过该字段知道接收到数据帧信息,并使网络两端的物理层达到稳定同步状态。

.

.

2)SFD(Start(of-FrameDelimiter):

定界符,表示一个有效帧的开始,1字节的0xD5。

当接收站收到定界符时表示一帧数据的开始。

3)DA(DestinationAddress):

目的地址,69节。

DA字段用于识别需要接收帧的站点。

目的地址可以分为单播地址,多播地址和广播地址。

单播地址是一个站点的特定的地址,当发送地址为单播地址只有这个地址的站点才能接收。

多播地址是一个组地址,当发送目的地址为多播地址时,这一组站点才能接收。

广播地址,当发送目的地址为广播地址时,这个广播域的地址都可以接收。

广播地址为特殊的组播地址,地址全为1。

4)SA(SourceAddress):

源地址,69节。

SA字段用于识别发送帧的站点。

5)Length,Type:

长度,类型,29节。

如果是采用可选格式组成帧结构时,该字段既表示包含在帧数据字段中的MAC数据大小,也表示帧类型。

6)Data(Pad):

数据和填充域,是一组n(46?

n?

1500)字节的任意值序列。

由于CSMA,CD算法的限制,以太网帧必须不小于64字节,如果小于该字节长度,则要进行数据填充以达到最小帧长度。

帧长度最长为1518字节。

7)FCS(FrameCheckSequence):

帧校验,49节。

该序列包括32位的循环冗余校验值,由发送MAC方生成,在接收时用同样的算法进行校验,用来判断这帧数据是不是在发送过程中产生错

误。

被校验的范围包括目的地址域,源地址域,长度,类型域,数据域和填充域。

2.2功能模块分析

2.2.1寄存器模块

eth_registers是MAC层的寄存器模块。

所有的寄存器都是32位宽度,但是具体用到的则由寄存器实际所需宽度所决定,其余位填0.每个寄存器都有两个参数:

宽度和Reset值。

Reset值定义寄存器清零后设置的默认值。

寄存器模块共有23个寄存器。

通过访问寄存器并对寄存器内容进行读写操作便可完成一些状态监测和功能选择。

2.2.2接收帧模块

接收帧模块eth_rxethmac.v的任务就是接收帧数据。

外部的以太网PHY芯片将串行数据传送至MII模块,最后成为一个个nibble(MRxD[3:

0])发送到接收模块里去,同时还有“数据有效”的掩码位MRxDV.然后发送模块就把这些nibble聚集成字节byte的形式,再和一些表示数据开始和结束的信号一起发送到主机总线接口。

接收模块还需要实现的功能包括有移除接收到的帧的前导码、帧起始定界符,产生用于地址识别并发送到HASH表内,对所有接收到的包进行CRC校验。

图2-3是该模块的整体结构框图。

图中“计数匹配信号”表示当计数器达到一些特定值时,将相应特征信号触发输出为1。

.

.

计数匹配信号

状态输出

来自发送模块Transmitting接收状态机模接收计数器模计数匹配信号块块

MRxDEq5MRxDEqD

MaxFLr_IFG来自MAC控制模块HugEnControlFrmAddressOK

来自寄存器配置接收数据帧RxData[7:

0]接收帧主模块

MRxDV

MRxD[3:

0]

接收状态信号(开始、CRCEn结束、有效、丢弃等)单播或组播CRC[31:

0]数据、接收状态CRC_Error

CRC校验模块

地址识别模块

r_Bro、r_Pro、HASH、MAC

图2-3接收模块整体框图

接收模块有下列子模块组成:

eth_crc——CRC(循环冗余校验码)模块

.

.

eth_rxaddrcheck——地址识别模块

eth_rxcounters——与数据包接收有关的计数器模块

eth_rxstatem——接收模块状态机

除了上述的子模块,接收模块还用到下列逻辑信号:

产生CRCHash值和HashGood信号位,用于地址识别模块

锁存从PHY芯片接收到的数据RxData_d

目的地址广播Broadcast或者组播Multicast信号

产生信号RxValid、RxStartFrm、RxEndFrm,表征数据传输的有效性,HugEn,是否允许接收大包。

定义与寄存器PACKETLEN、r_IFG,是否允许最小帧间

隔,用于计数器模块的判决条件

r_Pro、r_Bro、r_Iam和寄存器MAC、HASH0、HASH1,用于地址识别。

HASH0和

HASH1是哈希算法的算法表

接收数据帧的核心是各个状态之间的转换,如图2-4所示为接收模块状态转换图。

MRxDV&MRxDEq5,MRxDVMRxDV&MRxDEq5,TransmittingDropIdlePreamble,TransmittingTransmitting|MRxDV,MRxDV

MRxDV

MRxDV

ByteCntMaxFrame

IFGCounterEq24Data0SFDData1MRxDV&MRxDEqD

MRxDV&,ByteCntMaxFrame

MRxDV

图2-4接收模块状态转换图

通过状态机得出接收逻辑输出信号如下:

判断广播帧:

在Data0状态,当计数器ByteCnt为1,锁存的数据位0xff即目的地址第一字节

全为1,为广播帧,Broadcast置为1。

判断组播帧:

在Data0状态,当计数器ByteCnt为1,锁存的数据字节最低位为1,为组播

帧,Multicast置为1.

设定开始接收位:

Data0状态,当计数器ByteCnt为1或允许CRC延迟,计数器

DlyCrcCnt==3,经两次时钟同步设置信号RxStartFrm为1。

设定结束接收位:

当计数器ByteCnt大于2,若MRxDV从1变0,数据状态或者接收的数据

超过了最大帧限制状态时,出现这两种情况表明接收帧结束,经始终同步设置标志位RxEndFrm

为1。

.

.

判断接收数据有效:

Data0状态,当计数器ByteCnt不等于零表明接收数据都是有效的,标致信号RxValid经两次时钟同步置为1。

四位/八位转换:

在数据状态,如果接收数据有效,将从MII接口接收到的四位nibbleMRxD[3:

0]依次填入RxData[7:

0]数据的高四位和第四位。

目的地址识别模块:

eth_rxaddrcheck子模块,地址识别模块的功能是决定在接收一个数据帧的时候是否接受。

MAC层的设计思路是开始接受所有的帧而后判断接收帧的目的地址,将在该子模块里面被检查。

帧接收需要以下一些条件:

寄存器MODER里的Pro位被置位,所有的帧都被接收。

如果该位被清零,那就必须检

查每个接收帧的目的地址。

如果寄存器MODER里的Bro位被置位,那么所有包括广播地址的帧将被拒绝接收,二

球,此时Pro位必须清零。

MAC——MAC私人地址

在接收组播帧时,出于安全上的考虑,除了要检查MAC地址以外,还要采用哈希算法进行加密和解密,主要是针对组播的情况。

如前所述,无论待接收的帧的目的地址是否匹配,包接收都会先开始进行。

一旦接收到目的地址之后,就要检查是否和之前所述的任一条件匹配。

如果不匹配的话那么接收的整个包都将被抛弃,信号RxAbort被置位为1。

该包也就不会写入到内存中,并且在接收缓冲FIFO里被擦除。

CRC模块:

该模块eth_crc通过对32位CRC的值进行检验,判决接收进来的数据包的正确性和有效性。

该模块同样产生CRC校验值,并用于发送模块。

CRC发送和检查的具体描述如下:

在发送者发送数据之后,发送4字节该数据包的CRC,表明该数据包查过了4个字节。

接收者接收该数据包(包括CRC数据)并以此得出新的CRC值。

如果新的CRC值不为0,表明接收到的数据和发送的数据有了差异,置信号CrcError为1。

2.2.3发送帧模块

发送模块eth_txethmac负责发送数据帧。

发送模块从主机的总线接口得到需要被发送的字节形式的数据。

该模块也要接受表征开始数据帧发送的输入信号TxStartFrm以及结束数据帧发送的信号TxEndFrm。

图2-5是发送模块的整体框图,图中“计数匹配信号”表示当计数器达到一些特定值是,将相应特征信号触发输出为1。

.

.

状态输出状态输出发送状态机模发送计数器模块块NibCnt和计数匹配信号输出端输入端

发送完成控制信号CarrierSense冲突等NibCnt和计Collision数匹配信号

RetryCnt[3:

0]来自PHY

MaxFL、MinFL、pad至发送WillTransmitCRCEn、FullD、HugEn模块来自寄存IGPT、IGPR等MTxEn、MTxErr器配置至PHY发送帧主模块

来自主发送状态信号(开始、MTxD[3:

0]机接口结束、有效、丢弃)

来自MAC控RxData[7:

0]发送信号状态(开始、至主机制模块结束、有效、丢弃)接口

StateJamRandomEq0CRC[31:

0]ByteCnt[15:

0]CRCEnNibCnt[15:

0]RandomEqByteCnt,StateFCS

Random模块(用于执行后CRC校验模块退等待)

图2-5发送模块整体框图该模块由下列四个子模块组成:

eth_crc——CRC模块,产生32-bitCRC校验码写在数据域之后,eth_random——当碰到冲突(Collision),后退程序在执行的时候需要产生随机的延时,用

于CSMA/CD算法

eth_txcounters——在数据帧发送的时候需要用到的些许计数器,eth_txstatem——发送模块状态机

.

.

该模块同时设置了不同的信号组,想主机和以太网PHY芯片两边分别告知相关的发送操作状

态,完成、重试、忽略、错误等。

连接到以太网PHY芯片的信号、功能设计如下:

MTxD[3:

0],发送数据,将通过PHY发送至以太网,其输出类型有:

在状态Data0,输出发送数据低四位TxData[3:

0],在状态Data1,输出发送数据高四

位TxData[7:

4]

在状态FCS,依次输出校验码{Crc[28],Crc[29],Crc[30],Crc[31],}

在状态Jam,输出0x9

在状态Preamble,如果NibCnt等于15,输出0xd,其他则输出0x5

空闲时,MTxD[3:

0]输出为0

MtxEn,发送使能信号。

告知PHY数据MTxD有效并且发送程序马上就要开始。

在状态

Preamble、Data0、Data1、PAD、FCS、Jam下MtxEn信号均置为1输出。

发送错误标志MtxErr,在信号TooBig或者信号UnderRun被触发为1。

连接到上层主机总线模块的信号有:

TxDone,发送数据包完成信号

TxRetry,发送数据包重试信号

TxAbort,发送数据包忽略信号

除以上信号,发送模块还输出其他信号作为模块控制,包括对CSMA/CD算法的调度和使用。

具体输出逻辑信号定义如下:

WillTransmit,输出至eth_rxethmac模块,通知接收者发送者要开始发送数据了。

在状

态Preamble、Data0、Data1、PAD、FCS、Jam以及开始前导码的标识

StartPreamble,在时钟同步下置为1

ResetCollision,冲突reset信号。

将异步的冲突检测进行同步,该信号用于对同步触发

在状态Preamble、Data0、Data1、PAD、FCS几个状态下,该信号在时钟同器reset。

步下置为1

ColWindow,冲突窗口。

在该窗口内每个冲突都被认为是合法的冲突,数据帧将被重新

发送。

在没有检测到冲突并且ByteCnt小于有效窗口打下的情况下,若状态处于

Data1,或者FCS、PAD,则该信号清零。

Reset时该信号位1

RetryCnt[3:

0]

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2