以太网控制器设计方案.ppt
《以太网控制器设计方案.ppt》由会员分享,可在线阅读,更多相关《以太网控制器设计方案.ppt(113页珍藏版)》请在课桌文档上搜索。
1、以太网控制器设计方案,以太网的简单介绍,一般来说以太网协议是指IEEE 802.3 规范制定的局域网协议LAN(LOGICAL AREA NETWORK)中的CSMA/CD协议,当前的以太网传输媒介主要有双绞线和光纤.目前以太网可以实现4种传输速率:10M bit/s:10Base-T 以太网 100M bit/s:快速以太网 1000M bit/s:千兆位以太网 10千兆位以太网,以太网基本知识,以太网,属网络低层协议,通常在OSI模型的物理层和数据链路层操作。它是总线型协议中最常见的,数据速率为10Mbps(兆比特/秒)的同轴电缆系统。该系统相对比较便宜且容易安装,直接利用每个工作站网卡上
2、的BNC-T型连接器,就可以将电缆从一个工作站连接到另一个工作站,完成网络传输控制任务。,以太网是由Xerox(施乐)公司创建的,在1980年由DEC、Intel和Xerox三家公司联合开发为一个标准。最开始以太网只有10Mbps的吞吐量,它所使用的是CSMACD(带有冲突检测的载波侦听多路访问)的访问控制方法,通常把这种最早期的10Mbps以太网称之为标准以太网。以太网主要有两种传输介质,那就是双绞线和同轴电缆。,所有的以太网都遵循IEEE 802.3标准,下面列出是以太网和IEEE 802.3之间的区别以及不同IEEE 802.3物理层协议之间的区别,在这些标准中前面的数字表示传输速度,单
3、位是“Mbps”,最后的一个数字表示单段网线长度(基准单位是100m),Base表示“基带”的意思,Broad代表“带宽”。,以太网的特点,以太网具有的一般特征概述如下:共享媒体:所有网络设备依次使用同一通信媒体。广播域:需要传输的帧被发送到所有节点,但只有寻址到的节点才会接收到帧。,CSMA/CD:以太网中利用载波监听多路访问/冲突检测方法(Carrier Sense Multiple Access/Collision Detection)以防止 twp 或更多节点同时发送。MAC 地址:媒体访问控制层的所有 Ethernet 网络接口卡(NIC)都采用48位网络地址。这种地址全球唯一。,以
4、太网的逻辑关系遵循OSI(开放式系统互联的参考模型),上层协议根据不同的需求可以选择不同的协议,如IP协议,TCP协议,HTTP协议.常用的TCP协议有:,在进行以太网的实际传输过程中,每一层协议都是运行在其下层协议基础上的,如两个计算机系统使用FTP协议传输文件时,从用户来,是2个系统基于FTP协议的直接传输,实质上是文件的传输经过了层层打包和解包的层层协议.以太网控制器芯片的功能是实现TCP/IP协议簇中分层模型中链路层的相关工作.,MAC层有3个基本的功能:决定节点何时发送数据帧 将帧发送到物理层(PHY)转换成包,然后发送到介质上 从PHY接收帧,然后上传给MAC客户,以太网的工作原理
5、:以太网是一种基于带冲突检测的载波侦听多路访问协议(CSMA/CD)的局域(LAN),介质访问控制(MAC)子层负责执行CSMA/CD协议。以太网上所有节点都共享同一个介质以太局域网上没有中心控制设备,节点自己相互协作来保证网络操作有序。以太网MAC在发送之前必须通过载波侦听来确认载波是否空闲。只有当一个节点发送数据时载波才会存。PHY(物理层)检测到载波之后向MAC发送载波指示,载波指示表示介质正在被使用,侦听节点应该推迟当前的发送。,MAC等待最后一个正在发送的帧发送之后要等待很短的一段时间之后才能开始发送,这段时间叫做帧间隔(IPG为96比特时间)。第一帧发送完之后,局域网上的所有节点都
6、必须要等待一个IPG之后才能发送。网络上的所有节点都必须要遵守这个规则,即使某个节点有多个帧要发送而且它还是网络上唯一有帧要发送的节点,它也必须保证每个发送帧之间的间隔至少为一个IPG时间。这就是以太网介质访问规则的CSMA部分;,在发送数据的过程中,工作站边发送边检测总线,看是否发生了冲突。若无冲突则继续发送直到发送完该数据;若发生冲突,则停止发送,之后要发送32比特的JAM信号,这样网络上所有站点都知道发生了冲突.然后,等待一个随机时间,且在总线空闲时从新发送该数据,这就是以太网介质访问规则的CD部分,简单的说:边发送边检测是否有冲突发生,CSMA/CD媒体访问方法从上面的描述可归纳为下述
7、4步:第一步:如果媒体信道空闲,则可进行发送。第二步:如果媒体信道有载波(忙),则继续对信道进行侦听。一旦发现空闲,便立即发送。第三步:如果在发送过程中检测的碰撞,则停止自己的正常发送,转而发送一短暂的干扰信号,强化碰撞信号,使LAN上所有站都能知道出现了碰撞。第四步:发送了干扰信号后,退避一随机时间,重新尝试发送。,以太网数据帧的格式,标准IEEE 802.3规定的帧由下列域组成:先导字段(PA,Preamble),帧定界符SFD,Start of Frame Delimiter),目的地址(DA,Destination Address),源地址(SA,Source Address),帧长度
8、(L,Length),数据单元,即LLC帧(LLC PDU),填充(PAD)和帧校 验序列(FCS,Frame Check Sequence)。格式如图2.2所示。,数据帧的发送过程:,在半双工和全双工模式下,帧的发送操作过程是不一样的。1、半双工模式 在半双工模式下,以太网MAC在传送一个帧时要进行以下步骤:一,侦听信道是否有信号正在传送,若有则表示信道繁忙(即存在载波),否则表示信道空闲(即载波消失);二,当以太网上的站点要发送一个帧时,它必须等到信道空闲;,三,信道空闲时,站点在等待一小段帧间隙时间(IPG)后并始发送帧;四,如果两个站点同时开始发送,它们将侦听到冲突信号,并重新调整帧的
9、发送。从上面我们可以发现,MAC在发送帧时必须做两件事:确定在什么时候可以开始发送 必须能检测到冲突并对其作出响应,简单的可以将数据包发送的过程归纳如下:1.传输前侦听:2.如果电缆忙则等待:3.传输并检测冲突:4.如果冲突发生,重传前等待:5.重传或夭折:,全双工模式下MAC帧的发送工作过程如下:全双工传输时,由于没有对共享介质的竞争问题,所以不需要使用载波监听多路访问/冲突检测算法(CSMA/CD)。全双工模式下帧的发送只需要遵守以下两个规则:站点每次操作一个帧,一帧数据发送完毕后才能发送下一帧。发送时在相临两帧之间插入帧间隙时间。,数据帧的接收过程:,在半双工和全双工模式下,帧的接收操作
10、过程是一样的。在接收端,站点监视信道以获得帧到达的指示。当发现信道变成非空闲状态时,站点开始从信道接收数据比特流,并查找标识MAC帧起始的前导码 preamble)和帧起始定界符(SDF)。站点连续接收数据比特流直到收到底层信道发出的帧结束指示。,如果收到的帧长度比一个时隙的长度小,接收方的MAC将丢弃掉该帧。这是 因为根据定义,有效帧的长度总是比时隙要长(它等于往返信道传播延时)。因此这样的帧段肯定是冲突的产物。接收方根据此原理可检测并丢弃冲突段,而不需要物理信道的冲突检测指示或无效校验和(CRC)指示。如果收到的帧满足最小长度要求,则接着进行CRC校验。如果收到帧的CRC的值不正确,就丢弃
11、掉该帧。假设一个长度有效的帧具有正确的CRC值,接收方将检查目的地址以查看其是否是如下二者之一:,(I)站点的物理地址(单播)。(2)软件指示站点应该识别的组播地址 如果这些地址表明帧确实是以该站为目的地,MAC将把帧传递到其客户方,并返回到开头,重新等待新到达的帧.,数据帧的接收过程简述如下:第一步:游览收到的包并校验包是否成为碎片。第二步:校验目标地址。第三步:校验包的完整性。第四步:处理数据包,以太网流量控制,以太网本质上是无连接的,虽然数据帧的无错传输概率很高,但也不能保证绝对正确,在数据出错,缓冲区溢出或其他异常情况下,以太网就会简单的丢弃帧。定义MAC子层的目的是为了在全双工时对数
12、据流的控制以及以后的功能扩展。全双工的流量控制是通过发送和接收暂停真来实现的,MAC控制帧是正规合法的以太网MAC帧。不包括前导码和起始定界符,MAC控制帧的长度恰好为MAC帧的最小长度64字节。MAC控制帧的格式如图:,流程控制的实现:操作实现了一种简单的“停一启”形式的流量控制。如果某个设备(站点或交换机)想阻止帧到来,它可以发送一个带有参数的PAUSE帧,该参数指明了全双工中的另一方在开始继续发送数据前需要等待的时间。当另一个站点接收到PAUSE帧后,将在指定的时间内停止发送数据。当这个时间超时后,该站点将继续发送帧。PAUSE帧能禁止发送数据帧,但它不影响MAC控制帧的发送(例如,从另
13、一个方向到来的PAUSE帧)。,己发送了PAU SE指令的站,可以再发送一个时间参数为0的PAUSE帧取消剩余的暂停时间,即新收到的PAUSE帧将覆盖掉当前执行的PAUSE操作。类似地,该站点也可以在前一个PAUSE时间还未结束时,发出另一个包含非O时间参数的帧延长暂停时间。,介质无关接口,MII(介质无关接口)是一个提供和外部以太网PHY芯片相连接的接口。从功能上看它可以分为两个大部分:一个是和物理层PCS子层相连接的的接口信号,另一个是MIIM管理部分,主要功能是设置和读写物理层PHY,进行寄存器的配置设定或者从中读取数据。,介质无关接口:MII的引脚被分为4类:发送数据、接收数据、网络状
14、态及设备管理.数据穿越Mn的速率是每个时钟周期一个半位元组。发送数据:1,发送时钟(TXCLK):2,发送数据(TXD(3:0):3,发送使能(TXEN):其时序图如下所示:,接收数据:1,接收时钟(RXCLK)2,接收数据(RXD(3:0)3,接收有效(RXDV)4,接收错误(RXER)其接收过程时序图如下:,MIIM网络状态信号:1,载频信号(CRS)由物理层给出,用于表明发送或接收介质处于活跃状态,当发送或接收介质都空闲时撤消。2,冲突信号(COLLISION)由物理层给出,用于表明介质上有冲突发生,在全双工的工作模式下不存在冲突。,四、MII管理接口信号(一),MII管理接口部分 MI
15、I管理接口信号由管理数据时钟(MDC)和管理数据输入输出(MDIO)组成,具体描述在下面的MII管理接口部分。(二)、MII管理协议 管理数据是以一定的帧格式进行读写的,且与MDC相同步地以串行方式在MDIO线上传输。表2.1给出了向PHY进行写操作和从PHY进行读操作所用的帧格式。位发送顺序是从左到右的。,下面是管理帧的格式:1,PRE 2,ST 3,OP 4,PHYAD5,PEGAD 6,TA 7,DATA,8,IDLE,本次以太网控制器设计的目标是:,执行以太网IEEE 802.3协议MAC要求的功能;自动产生和检查32 bit CRC校验;帧的产生与移除:在发送时自动填充长度小于规定的
16、帧:监测帧过长或者过短:全双工模式:兼容10M/bps和100M/bps两种速率:,当碰到过小的帧间隔或过长的延迟时限(当模式被允许)时 自动丢弃帧:在全双工模式(IEEE 802.3 x)下控制流量并且自动产生控制帧:在半双工模式(CSMA/CD)下进行冲突检测并且在冲突时自动重传:完成对发送/接收的状态解析:,IEEE 802.3介质无关接口发送和接收帧时的异步双口FIFO和中断响应:发送帧模块:处理所有有关帧发送的操作;接收帧模块:处理所有有关帧接收的操作;控制模块:在全双上的工作模式下,处理有所有关数据流控制的操作;状态模块:要写入到缓冲描述符或其他模块要调用的不同的状态:寄存器模块:
17、所有要在MAC层操作中用到的寄存器。,根据上述的分析:可以得到设计的总体框图如下:,以太网控制器的框图,整个MAC控制器分为的7个功能相对独立的模块:接收模块(RX-MAC):按照以太网MAC协议完成数据帧的接收和解封。发送模块(TX-MAC):按照以太网MAC协议完成数据帧的发送和封装。流量控制模块(MAC-CONTROL):完成全双工时的流量控制功能,另外它还是收发缓存与收发模块之间的接口。发送数据帧时,流量控制模块从发送缓存中取出数据传送给发送模块;,发送控制帧时,流量控制模块直接生成控制帧传送给发送模块。接收数据时,接收模块将接收的数据帧传送给流量控制模块,流量控制模块将对接收到的数据
18、 帧进行检测,如果检测出是控制帧,控制模块将进行流量控制的操作,如果检测出是数据帧,流量控制模块就将它直接传送到接收缓存。MAC寄存器模块(MAC-REGISTERS):完成MAC工作方式的配置控制命令的发布和状态信息的存储。MII管理模块(M II MANAGE):完成对物理层的寄存器进行读写操作。,CSMA/CD可知MAC发送数据的工作过程如:主机要发送数据时,通过启动总线接口将主机存储器中的数据向发送缓存中传输。发送缓存接收到的数据达到设定值时,发送模块则进行帧间隔计时。帧间隔定时时间到时,如果此时网络介质空闲,则开始发送帧的前导码。前导码发送完毕后,发送帧起始定界符。帧起始定界符发送完
19、毕后,开始进行帧长计数,和CRC校验。同时将数据按半位元组发送MII接口,从而最终由物理层将数据发送到网络介质上。,发送模块的设计,在发送过程中,如果该帧的帧长小于最小帧长,则进行数据填充,使帧长达到最小帧长。在发送过程中,如果发生冲突,发送模块将停止数据的发送,并发送一串阻塞信号来加强冲突。当阻塞信号发送完毕后,根据二进制指数退避算法进行延时,当延迟时间一到,发送模块重新启动该帧的发送过程。发送完毕后,保存发送状态信息,并通过中断通知主机已发送了一帧数据。在全双工时,不用检测网络介质是否空闲,发送缓存中的数据达到设定值就开始发送,发送期间也不会发生冲突。,整个发送过程的流程如下:,根据MAC
20、原理发送过程的框图如下:,发送模块由下列四个子模块组成:CRC模块:产生32bit CRC校验码写在数据域后。Random模块:当碰到冲突(Collision),后退程序 在执行的时候需要产生随机的延时,用于SCMA/CD算法。Counters模块:在数据帧发送的时候需用用到的几个计数器模块(包括帧间隔计数器,帧长计数器,冲突计数器,延迟计数器)。,txstatem模块:发送模块的状态机转换。该模块负责数据的发送同时设置了不同的信号组,向主机和以太网PHY芯片两边分别告知相关的发送操作状态(完成、重试、忽略、错误等)。,CRC模块 工作的原理:对输入的4位数据,采用冗余的CRC算法,利用上一次
21、计算后的CRC的值计算本次CRC的值。CRC模块:对要发送的数据计算其CRC的值,由数据产生32位的CRC,在数据发送完成以后传输,将该CRC的值附加在发送数据的末尾,目的是为了便于在接收机对要发送数据进行CRC检查。,RANDOM模块:在数据发送过程中会出现2个工作站同时发送数据的状态,在这种情况下就会产生冲突,如果工作站在冲突后立即重传,则它第二次传输也将产生冲突。因此工作站在重传前必须随机地等待一段时间。为了选择何时去进行重传,工作站实现了一个算法,此算法提供了几个使工作站可以进行重传的时间,该算法被称为“退避算法”。工作站随机地选择一个他可以使用的时间,如图所示,这降低了两个或更多个工
22、作站同时重传的机会。,根据上述原理的描述,在传送数据的过程中如果发生了冲突,那么工作站在重发之前,就会采用一种退避的算法,使得从发的次数越多,采用的等待时间就越长。以免再次发生冲突。其基本算法是:退避时间为时间间隔的整数倍为防止不成功发送无限进行,规定了最大尝试次数 碰撞后选择的退避时延为间隔时间的r倍;,r是大于0小于2k范围间的随机整数;K是min(n,10),即为尝试次数与10中最小的一个。由此可简单写成:K=Min(尝试次数,10)r=随机数(0,2k)退避时延r.间隙时间,RANDOM 数据流程如下:,该模块实现的方法和重点:对伪随机时间长度函数random的构造。步骤如下:因为时间
23、不能超过210,所以定义 random9:0.构造序列x9:0,初始值为0。定义反馈Feedback=!(x2 x9),在发送时钟同步下,用 Verilog语言表示为:x9:0=x8:0,Feedback。,令Random 0=x0,对于 1n9,有以下规则:判决计数器RetryCnt是否大于n。若是,则Random n=xn,反之,则Random n=0。这是因为对冲突次数和后退时间正比的关系。在状态StateJam时,Random经过发送时钟同步锁存。若Random为0,根据IEEE 802.3协议定义,只延时而不进行后退操作。当计数器ByteCnt的值等于Random,并且NibCnt统
24、计至一个时隙表明一次后退操作完成。,COUNTER模块:计数器模块的功能是实现以下的计数功能,进行IPG计数(进行帧间隔定时),DEFER计数(延迟计数,进行延迟计数),冲突计数(COL-COUNTER)对发生冲突的次数进行计数。随机数发生器(RANDOM NUMBER)产生随机数。同时还包含一个NIBBLE 计数器,帧长计数(TX-COUNTER)对帧长进行计数。在各个状态进行计数可以用下面的框图来表示:,发送状态机模块:发送模块共包括10个不同的状态,STATE DEFER(推迟发送状态),STATE IPG(帧间隔状态),STATE PREAMBLE(前导码状态),STATE DATA0
25、(数据状态),STATE DATA1,STATE PAD(填充状态),STATE IDLE(空闲状态),STATEFCS(效验码状态),STATE JAM(阻塞状态),STATE BACKOFF(后退状态)。它的真实目的对要发送的数据进行封装,使形成的数据格式满足MAC帧的格式。,状态机模块的状态图:,在对系统reset之后,首先触发的状态是StateDefer。在此之后状态机进入帧间隔状态StateIPG,然后再进入空闲状态StateIdle发送模块通常从该状态开始。当发送者无事,状态机就停留在idle状态等待发送请求。总线接口通过设置信号TxStartFrm触发为1表示请求发送,该信号保持
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 以太网 控制器 设计方案
链接地址:https://www.desk33.com/p-246194.html