为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

以太网基础知识讲义

2017-10-07 50页 doc 580KB 134阅读

用户头像

is_633808

暂无简介

举报
以太网基础知识讲义以太网基础知识讲义 以 太 网 基 础 知 识 讲 义 1 前言 本教材是以太网知识的入门教程,前三章主要介绍了以太网了一些基本知识和工作原理方面的知识。第四章与实际设计比较接近,介绍了目前在设计以太网产品经常会接触到的一些接口。第五章对芯片内部的功能做了简单的介绍。本教材适用于新近入职的研发处的员工及其它部门希望进一步了解以太网产品设计的员工。 本教材前四部分主要参考自《新版交换式以太网和快速以太网》,《千兆位以太网教程》(以上书目可在LAN组目录下查到),《以太网》(公司参考书目),《IEEE802.3协议-20...
以太网基础知识讲义
以太网基础知识讲义 以 太 网 基 础 知 识 讲 义 1 前言 本教材是以太网知识的入门教程,前三章主要介绍了以太网了一些基本知识和工作原理方面的知识。第四章与实际设计比较接近,介绍了目前在设计以太网产品经常会接触到的一些接口。第五章对芯片内部的功能做了简单的介绍。本教材适用于新近入职的研发处的员工及其它部门希望进一步了解以太网产品设计的员工。 本教材前四部分主要参考自《新版交换式以太网和快速以太网》,《千兆位以太网教程》(以上书目可在LAN组目录下查到),《以太网》(公司参考书目),《IEEE802.3-2000版》。第五部分内容主要译自AH104芯片资料,AL101芯片资料。有错误之处,敬请大家指正。 2 以太网基础知识讲义 ......................... 1 第一章 以太网技术的简单介绍 .................... 5 1.1 以太网的起源 ................................................................................................................. 5 1.2 ISO七层模型 ................................................................................................................. 5 1.3 以太网常见的拓扑结构 ............................................................................................... 7 1.4 以太网常见的传输介质 ............................................................................................... 9 第二章 以太网常见产品的介绍 .................. 10 网路接口卡 ................................................................................................................... 10 2.1 2.2 集线器 ............................................................................................................................ 12 2.3 交换机 ............................................................................................................................ 13 第三章 以太网的传输机制 ....................... 15 3.1 以太网的核心CSMA/CD ....................................................................................... 15 3.2 以太网的帧结构 .......................................................................................................... 17 3.3 以太网的交换技术 ...................................................................................................... 19 3.4 流控机制 ........................................................................................................................ 22 3.5 自动协商技术 ............................................................................................................... 23 第四章 常用设计中的接口的介绍 ................ 26 4.1 MII接口 ......................................................................................................................... 26 4.2 RMII接口 ...................................................................................................................... 29 4.3 SMII和SSSMII接口 ................................................................................................. 32 4.4 GMII接口和TBI接口 .............................................................................................. 34 第六章 芯片的内部的功能模块 ................... 40 6.1 PHY的功能 .................................................................................................................. 40 6.2 MAC的功能 ................................................................................................................. 44 6.3 SMI管理接口 ............................................................................................................... 45 图表: 图表 1 以太网和IEEE 802.3与OSI参照模型 ................................................... 7 图表 2 IEEE802.3与OSI参照模型的对比 .......................................................... 7 图表 3 总线型拓扑结构 .............................................................................................. 8 图表 4 星型拓扑结构 .................................................................................................. 8 图表 5 8139内部结构框图 ...................................................................................... 11 图表 6 8139网卡设计概图 ...................................................................................... 11 3 图表 7 5-4-3法则 ...................................................................................................... 13 图表 8 交换机和集线器的区别 .............................................................................. 14 图表 9 数据包发送流程图 ....................................................................................... 16 图表 10 以太网帧结构图 ................................................................................................ 17 图表 11 MAC地址格式 ................................................................................................. 18 图表 12 VLAN的帧格式 .............................................................................................. 19 图表 13 帧的交换过程................................................................................................ 20 图表 14 PAUSE帧格式 ................................................................................................. 22 图表 15 FLP快速脉冲群的格式............................................................................... 23 图表 16 FLP和NLP的比较 ........................................................................................ 23 图表 17 FLP的信息编码 ............................................................................................ 24 图表 18 MII接口定义 ................................................................................................. 26 图表 19 正常接收时序图 ........................................................................................... 29 图表 20 正常发送时序图 ........................................................................................... 29 图表 21 RMII接口定义 .............................................................................................. 30 图表 22 RMII正常发送数据时序图 ........................................................................ 31 图表 23 RMII正常接收数据时序图 ........................................................................ 32 .......................................................................................... 32 图表 24 SMII接口示意图 图表 25 RXD上帧的编码 ............................................................................................ 33 图表 26 TXD上帧的编码 ............................................................................................ 33 ..................................................................................... 33 图表 27 SMII的接收时序图 图表 28 SMII的发送时序图 ..................................................................................... 33 图表 29 SSSMII接口示意图 ..................................................................................... 34 图表 30 SSSMII接收时序图 ..................................................................................... 34 图表 31 SSSMII发送时序图 ..................................................................................... 34 图表 32 GMII接口定义 .............................................................................................. 35 图表 33 允许的TX_EN、TXD、TX_ER编码 ........................................................... 36 图表 34 GMII与MII接口的简单比较 ................................................................... 36 图表 35 基本帧的发送................................................................................................ 37 图表 36 基本帧的接收................................................................................................ 37 图表 37 TBI接口示意图 ............................................................................................ 38 图表 38 AC104内部功能框图 ................................................................................... 40 图表 39 4B/5B编码 ..................................................................................................... 41 图表 40 NRZ码和NRZI码的比较 ............................................................................ 42 图表 41 多种码型比较图 ........................................................................................... 42 图表 42 AL101原理框图 ............................................................................................ 44 图表 43 SMI管理接口的帧格式............................................................................... 46 4 第一章 以太网技术的简单介绍 1.1 以太网的起源 60年代末,夏威夷大学的Norman Abramson及其同事研制了一个名为 ALOHA系统的无线电网络,该网络的设计思想为使用共享的公共传输信道进行数据传输,这一技术就是以太网的核心思想。1972年,Bob Metcalfe发现了 Abramson的关于ALOHA系统的早期研究成果,在优化改进之后,Metcalfe设计了世界上第一个个人计算机局域网络--ALTO ALOHA网络,并把它命名为以太网。1977年底, Metcalfe和他的三 位合作者获得了"具有冲突检测的多点数据通信系统"的专利,该多点传输系统被称为 CSMA, CD(载波监听多路存取和冲突检测)。从此,以太网就正式诞生了。 在70年代末,数十种局域网技术已经涌现出来,而以太网只是其中的一员,使以太网最终坐上局域网宝座的不是它的技术优势和速度,而是 Metcalfe版的以太网成为了产业。70年代末,DEC、英特尔和 Xerox开始三方合作,在1980年公布了"以太网,一种局域网:数据链路层和物理层,1(0版",这就是现在著名的以太网蓝皮 书,也称为 DIX(取三家公司名字的第一个字母而组成的)版以太网1(0规范。1982年公布了以太网2.0版规范作为 终结。 同时,IEEE也决定组 成802.3分委员会,以产生基于 DIX工作成果的国际公认标准。1983年,IEEE10 BASE5面世。1984年美国联邦政府采纳802.3标准。1989年ISO采纳 802.3以太网标准,至此, IEEE标准8O2.3正式得到国际上的认可。 1.2 ISO七层模型 ISO国际标准化组织建立了一个通信系统的标准化框架,称为开放系统互连参考模型(OSI),通过严格遵守OSI模型,不同的网络技术之间可以轻易地实现互操作。参考模型由七层服务和协议构成,从下至上分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。各层完成的功能如下: 物理层:是OSI的最低层,是网络物理设备之间的接口,目的是在通信设备DTE和DCE之间提供透明的比特流传输。提供的服务为:a、物理连接。b、物理服务数据单元。c、顺序化:接收物理实体收到的比特顺序,与发送物理实体所发送的比特顺序相同。d、数据电路标识。 数据链路层:主要用途是为在相邻网络实体之间建立、维持和释放数据链路连接,以及传输数据链路服务数据单元。主要功能为:a、数据 5 链路连接的建立与释放。b、构成数据链路数据单元。c、数据链路连接的分裂。d、定界与同步。e、顺序和流量控制。f、差错的检测和恢复。 网络层:以数据链路层提供的无差错传输为基础,为实现源DCE和目标DCE之间的通信而建立、维持和终止网络连接,并通过网络连接交换网络服务数据单元。它主要解决数据传输单元分组在通信子网中的路由选择、拥塞控制问题以及多个网络互联的问题。主要功能为:a、建立和拆除网络连接。b、路径选择和中继。c、网络连接多路复用。d、分段和组块。e、服务选择。f、传输和流量控制。网络层的服务:数据报服务和虚电路服务。路由选择算法的要求:正确性,简单性,健壮性,稳定性,公平性和最优化。 传输层:是资源子网与通信子网的界面与桥梁,它完成资源子网中两结点间的逻辑通信,实现通信子网中端到端的透明传输。主要功能为:a、映象传输地址到网络地址。b、多路复用与分割。c、传输连接的建立与释放。d、分段与重新组装。e、组块与分块。 会话层:它利用传输层提供的端到端数据传输服务,具体实施服务请求者与服务提供者之间的通信,属于进程间通信范畴。主要功能为:a、会话连接到传输连接的映射。b、数据传送。c、会话连接的恢复和释放。d、会话管理。e、令牌管理。f、活动管理。 表示层:目的是处理有关被传送数据的表示问题。对通信双方的计算机来说,一般有其自已的数据内部表示方式,表示层的任务是把发送方具有的内部格式结构编码为适合传输的位流,然后在目的端将其解码为所需的表示。主要功能为:数据语法转换、语法表示、表示连接管理、数据加密和数据压缩。 应用层:它是OSI/RM的最高层,是直接面向用户的一层,是计算机网络与最终用户间的界面。目的是作为用户使用OSI功能的唯一窗口。 相对于OSI七层模型,以太网只包括了最低层的两层,即物理层和数据链路层。以太网2.0版的规范和IEEE 802.3都在虽然在很多方面都非常相似,但是两种规范之间仍然存在着一定的区别。以太网所提供的服务主要对应于OSI参考模型的第一和第二层,即物理层和逻辑链路层;而IEEE 802.3则主要是对物理层和逻辑链路层的通道访问部分进行了规定。此外,IEEE 802.3没有定义任何逻辑链路控制协议,但是指定了多种不同的物理层,而以太网只提供了一种物理层协议。两者帧格式的差别会在后文中列出。 以太网和IEEE 802.3与OSI参照模型的对应关系如下: 6 图表 1 以太网和IEEE 802.3与OSI参照模型 在IEEE802.3协议中详细讨论了以太网和OSI七层模型的关系,见下图 图表 2 IEEE802.3与OSI参照模型的对比 1.3 以太网常见的拓扑结构 局域网的组成元素可分为两大类,即网络节点(端节点和转发节点)和通信链路,网络中节点的互连模式叫网络的拓扑结构。在局域网中常用的拓扑结构有:总线型结构、星形结构、环形结构;以太网中主要使用总线型和星形拓扑结构,环形拓扑结构为令牌环网和FDDI使用。 总线型结构:总线拓扑结构采用单根传输线作为传输介质,所有的节点都通过相应的硬件接口直接连接到传输介质或称总线上。任何一个 7 站点发送的信号都可以沿着介质传播,而且能被其他所有站点接收。总线拓扑的优点是:电缆长度短,易于布线和维护;结构简单,传输介质又是无源元件,从硬件的角度看,十分可靠。总线拓扑的缺点是:因为总线拓扑的网不是集中控制的,所以故障检测需要在网上的各个站点上进行;在扩展总线的干线长度时,需重新配置中继器、剪裁电缆、调整终端器等;总线上的站点需要介质访问控制功能,这就增加了站点的硬件和软件费用。早期的以太网常采用总线结构,一般为10Mb的速率。 图表 3 总线型拓扑结构 星形拓扑结构是由通过点到点链路接到中央节点的各站点组成的。星型网络中有一个唯一的转发结点(中央结点),每一计算机都通过单独的通信线路连接到中央节点。星型拓扑的优点是:利用中央节点可方便地提供服务和重新配置网络;单个连接点的故障只影响一个设备,不会影响全网,容易检测和隔离故障,便于维护;任何一个连接只涉及到中央节点和一个站点,因此控制介质访问的方法很简单,从而访问协议也十分简单,使用5类和超5类线和相应的设备,网络带宽可扩展到100Mb和1000Mb的速率。星型拓扑的缺点是:如果中央节点产生故障,则全网不能工作,所以对中央结点的可靠性和冗余度要求很高。目前的以太网基本采用星形拓扑结构。 图表 4 星型拓扑结构 8 1.4 以太网常见的传输介质 在以太网中常涉及到多种协议,如10Base-5,10Base-2,10Base-T,100Base-TX,100Base-FX,1000Base-T,1000Base-LX/SX。每种协议对应了不同的传输介质。 10Base-5:它使用的介质通常被称为“粗以太网(thick ethernet)”电缆, 10Base-5是原始的以太网802.3标准,使用直径为10mm的粗同轴电缆。该电缆必须用50欧姆,1w的电阻作为匹配电阻接在终端、允许每段有100个站。10Base-5使用总线拓扑结构,所有的节点都经过一根同轴电缆进行连接。10Base-5表示的意思是:工作速率为10Mb/s,最大支持段长为500m。该线缆已很少使用。 10Base-2:它采用的介质被称为“细以太网(thin ethernet)”电缆,与“粗以太网”相对,并且很容易弯曲,使用灵活,可靠性高。“细以太网”电缆价格低廉,安装方便,但是使用范围只有185m,并且每个电缆段内只能使用30台机器。 10Base-T:1990年,IEEE通过10Base—T,它是一个崭新的以太网物理层标准。10Base—T与同轴电缆以太网(细缆和粗缆)在许多方面有着很大的差别,前者使用两对无屏蔽双绞电话线,一对线发送数据,另一对线接收数据。使用型号为RJ—45的8针模块插头用作连接器。要求使用3类或以上的双绞线。 100Base-TX:也使用双绞线,但是要求5类和以上的双绞线 100Base-FX:100Base-FX使用光缆进行传输,它主要应用于扩大距离的连接,或有电气干扰的环境,或要求较高保密安全链接的环境。它分为多模和单模两种,多模使用50/125um和62.5/125um的光纤,最大传输距离2km;单模使用9/125或10/125的光纤,传输距离与光功率相关 1000Base-T使用5类或以上的双绞线,四对线同时使用,传输距离100m; 1000BASE-SX只支持多模光纤,采用50/125um和62.5/125um的多模光纤,工作波长范围为770-860NM,传输距离为220-550M ;1000BASE-LX 可以使用单模或多模光纤。多模光纤采用直径为62.5UM的多模光纤,工作波长范围为1270-1355M,传输距离为550M ;单模光纤1使用9/125或10/125M的单模光纤,工作波长范围为1270-1355M,传输距离与光功率相关。 9 第二章 以太网常见产品的介绍 以太网的设备分为终端节点和转发节点,网卡属于前者,集线器、交换机、路由器、介质转发器则属于后者。下面以公司的产品为例介绍常见的以太网产品。 2.1 网路接口卡 网卡也叫网络适配器,是网络接口卡NIC(Network Interface Card)的简称,起着向网络发送数据、控制数据、接受并转换数据的功能。它安装在网络计算机或服务器的扩展槽中,充当计算机和网络之间的物理接口。 目前市面上有许多种网络接口卡,它们可以按照速度、接口类型、传输介质类性分门别类,每一类适合一种特定的安装或应用类型 按与主机的接口类型分,可主要分为ISA网卡、PCI网卡、PCMCIA网卡。ISA网卡为较早出现的网卡,通常为10M网卡。随着PC机上ISA总线被淘汰的趋势,ISA网卡的也越来越少,但某些工控方面的产品还在继续使用ISA网卡。与其他类型网卡相比,ISA网卡有以下弱点: ISA总线只有16位宽,工作时钟频率只有8MHz,不允许突发式数据传输,大多数1SA总线为I/0映射型,从而降低数据传输速度。ISA总线的理论带宽是5.33 MB/s,远不够100M的网卡使用 PCI网卡是现在的主流网卡。PCI总线分为32位和64位,在32位总线、33MHz的工作频率下,PCI的理论总线带宽已经可以达到132MB/s,完全可以满足10M、100M、甚至是1000M的应用。而且目前PCI总线的网卡价格也十分低廉,家庭PC的用户完全可以接受,这几条因素直接促成了PCI网卡成为主流网卡。PCMCIA(CARDBUS)网卡主要应用于便携式计算机,CARDBUS总线是一种新的高速的PCMCIA总线,它与PCI总线十分相像,也是32位、33MHz的总线结构,可以达到很高的数据吞吐量。还有USB网卡,它与PC的接口为USB接口,这种网卡在市面上较少见到。 按速度分可分为10M网卡,100M网卡,1000M网卡。10M网卡为早期产品,目前市场占有量越来越少,10M/100M网卡为目前的主流产品。1000M网卡为新一代产品,虽然其速度很高,但由于成本也较高,而且100M网卡对家庭应用来说已经可以应付绝大多数的应用,因此市场销量也相对较少。 按传输介质分可分为BNC接口,RJ45接口,光纤接口。BNC接口网卡只出现在10M网卡上,利用T型头连接在细缆上,目前使用量较小,部分10M网卡上既有BNC口,又有RJ45口,是一种过渡产品。RJ45接口是被普遍采用的接口,应用于10M网卡,100M网卡,1000M网卡 10 上。光纤接口的网卡由于价格的原因,极少出现在家用PC上,只是在特定的场合下使用。 下面以8139芯片为例介绍网卡支持的功能和内部结构。8139系列芯片是REALTEK公司的网卡芯片,它支持10M/100M自适应功能,兼容PCI2.2标准,兼容PC99规范,支持ACPI电源管理功能,支持BOOTROM实现远程启动,支持网络唤醒功能,支持全双工流控功能(IEEE802.3x协议)。下图显示了8139芯片内部的结构框图 图表 5 8139内部结构框图 下图是RTL8139网卡的设计概图: 图表 6 8139网卡设计概图 11 无盘启动是网卡常用的功能之一。目前无盘技术分为PXE(Preboot Execution Environment,远程引导技术)和RPL(Remote Initial Program Load,远程启动服务)两种技术。PXE是RPL的升级产品。它们的不同RPL 之处为:RPL是静态路由,PXE是动态路由。RPL是根据网卡上的IDRPLPXERPL 号加上其它的组成的一个帧向服务器发出请求,而服务器那里早已经有了这个ID数据,匹配成功则进行远程启动;PXE则是根据服务器端PXE 收到的工作站MAC地址(就是网卡号),使用DHCP服务给这个MAC地址指定一个IP地址,每次重启动可能同一台工作站有与上次启动有不同的IP,即动态分配地址。详细的无盘工作站的设计需参考相关的无盘制作参考手册。 2.2 集线器 集线器通过将多个网段连接成大的网段而扩大网络的距离和拓扑。集线器工作在OSI模型的物理层,它不查看数据本身,只是为传输白的而将信号整形放大。集线器分为10M和100M两种集线器,它们之间的一个最大区别是最大的网络直径,两者分别为2500m与205m。一些资料也将集线器成为中继器 集线器为中心节点,连接了多台计算机或其他集线器,它的工作方式如下:其他节点(网卡或其他集线器)向线路发送已编码的信号;集线器接收到一个端口上的数据(由于信号从源点到集线器已经过一段距离的传输,因此在电气上已经有衰减; 集线器将送来的信号整形放大(使被衰减的信号重建为完美的信号;最后(整形好的信号转发到所有的端口。 集线器将一个网段发生的所有网络信息流(和碰撞冲突)传递到由其它集线器互连成的其它所有网络上。因此由集线器互连成的所有网段都处于同一个冲突域中。在同一个冲突域中,数据传输延时决定了网络的直径。从严格意义上来说,以太网要求了数据往返的传输延时不得大于512b。对于10M的以太网来说,可将之简化为5-4-3规则,即一个冲突域中最多允许5个网段,4个集线器,其中三个网段可以增加节点。另两个网段除了作集线器间链路外,不能接任何节点,这样的一个冲突域最大可以挂1024个终端,最大网络直径为2500m。5-4-3设计规则只适用于10M以太网。它虽然只是一个粗略的设计指南,但在大多数情况下非常管用。 12 图表 7 5-4-3法则 对于100Base-TX的网络,其数据往返的传输延时仍然限制在512b之内,这就注定了它的网络直径比10M网络小10倍左右。100M集线器分为两种:?类集线器和?类集线器,它们的区别在于延时不同,?类集线器的指标更好一些,在0.46us以内。双绞线的长度在100M模式规定了不能超过100m,这样对于?类集线器,一般做如下规定,冲突域中最多允许两个集线器,连接集线器到终端的双绞线最长100m,两个集线器之间的链路为5m,整个冲突域的直径为205m。 10M/100M自适应集线器支持同时接10M和100M的终端,它的原理是内部利用了一个两口的交换机将10M和100M两个冲突域连接了起来,它的最大网络直径可以按数据往返的传输延时不超过512b这个规则来计算。介质转发器也是一种中继器,工作在物理层。它实现不同传输介质的以太网的互连,现在比较常见的转发器是双绞线转光纤的转发器,它的网络直径也可以相应计算出来。 2.3 交换机 一般将网络交换机定义成这样的一种网络设备,它能接收传来的信息包,将其暂时存储,进行一定的分析,然后发往另一个端口。交换机与多端口网桥非常相似,它在不同端口传输数据时是基于各个信息包的目的地址,可用来分割LAN、或扩展LAN的网络。交换机对快速以太网的扩展十分重要,因为它能增加网络直径。另外它采用全双工工作模式,并将网络分成了多个冲突域,极大的提高的网络的性能。 下图列出了交换机和集线器之间的主要区别: 13 8 交换机和集线器的区别 图表 目前我公司交换机的种类主要有10M交换机,10M/100M自适应交换机,10M/100M/1000M自适应交换机,网管型交换机。10M/100M自适应交换机由于其性能优越、价格合理,在终端消费市场上占了最大的份额,并逐步取代了集线器的市场。虽然业界提出“100M交换到桌面“的已经很久,但由于1000M交换机价格较高,仅出现在企业网的高层和骨干网中。 14 第三章 以太网的传输机制 3.1 以太网的核心CSMA/CD 在局域网中,各个工作站点都处于均等地位,通过公共信道互相通信。信道在一个时间间隔内只能被一个站点占用来传送信息,这就产生了一个信道的合理分配问题。各工作站点由谁占用信道,如何避免冲突,同时又使网络有最好的工作效率以及可靠性等等,是需解决的重要课题。在以太网中采用了CSMA/CD的访问控制方式。 CSMA/CD的全称为载波监听多路访问和冲突检测(carrier sense multiple access protocol/collision detect)。它的设计思想如下: 首先监听信道,查看信道上是否有信号。各个工作站都有一个“侦听器”,用来测试总线上有无其他工作站正在发送信息(也称为载波识别),如果信道巳被占用,则此工作站等待一段时间然后再争取发送权;如果监听信道是空闲的,没有其他工作站发送的信息,就立即抢占总线进行信息发送。查看信号的有无称为载波侦听,而多点访问指多个工作站共同使用一条线路。 等待时间的确定。通常有两种方法: (1)当工作姑检测到信道被占用后,继续监听下去,一直等到发现信道空闲后,立即发送。这种方法称为持续的载波监听多点访问。 (2)当工作站检测到信道被占用后(就延迟一个随机时间,然后再检测v不断重复上述过程,直到发现信道空闲后,开始发送信息。这称为非持续的载波监听多点访问。 然后就是冲突检测(碰撞检测)的问题了。当信道处于空闲时(某一个瞬间,如果总线上两个或两个以上的工作站同时都想发送信息,那么该瞬间它们都可能检测到信道是空闲的,同时都认为可以发送信息,从而一齐发送,这就产生了冲突(碰撞);另一种情况是某站点监听到信道是空闲的,但这种空闲可能是较远站点已经发送了数据包,但由于在传输介质上信号传送的延时,数据包还未传送到此站点的原故,如果此站点又发送信息,则也将产生冲突(因此如何消除冲突是一个重要问题。 首先可以确认,冲突只有在发送信包以后的一段短时间内才可能发生(因为超过这段时间后,总线上各站点都可侦听到是否有载波信号在占用信道,这一小段时间称为碰撞窗口或碰撞时间间隔,如果线路上最远两个站点间信包传送延迟时间为D,碰撞窗口时间为2D。 解决可能出现的冲突的方法是,各站点上设立一个碰担检测器,当一个工作站开始占用网络信道进行发送时,再继续对总线检测一段时间,也就是说一边发送一边接收,并且持接收到的信息和自己发送的信息相比较(如果比较结果相同、则说明发送工作正常进行,继续发送;如果比较结果不同,必定是发生了冲突引起了数据混淆(于是立即停止发送数据(不必等待整个数据包发送完), 15 等待一个随机的时间后,再重复以上过程。 各节点检测到碰撞停止发送后,要延迟一个时间去抢占总线,为了尽量减少碰撞,各站点延迟时间用“随机数”控制,延迟时间最小的那个节点先抢占总线,再次发生碰撞时则重复照此办法处理,总有一次会发送成功。这种延迟竞争按称为碰撞控制算法或延迟退避算法。延迟算法有很多,常用的二进制指数退避算法(BEB),截断的二进制指数后退算法(EBE)等。下图显示了在CSMA/CD中数据包发送的流程: 图表 9 数据包发送流程图 CSMA,CD方式的主要特点是:原理比较简单,技术上较易实现,网络中各工作 16 站处于同等地位。不要集中控制,但这种方式不能提供优先级控制,即不能提供急需信息的优先处理功能,各节点争用总线,不能满足远程控制所需要的确定延时和绝对可取性的要求。此方式效率高,但当负载增大时,发送信息的等待时间较长。同时以太网最小长度包在网络中的时延也限制了网络直径:在10M 0M以太网中,网络直径降为205m,的以太网中,最大的网络直径为2500m,在10 在1000M中,从理论上网络直径将降到二十几米,会完全失去意义。好在IEEE委员会制定了载波扩展、分组突发、全双工和支持超长帧这几种办法,解决了该问题。 吉比特以太网在半双工方式运行时,遵循以太网的CSMA/CD协议。为了在一个时间槽内检测到帧冲突,并且保持200m的网络直径,那么最小帧长必须达到512字节。这样对于帧长小于512字节的帧,需要用载波扩展信号进行扩展,使帧占用的时间扩展到512字节,但载波扩展信号不携带信息。载波扩展技术在不增加最小帧长度的同时,解决了保持和快速以太网相同网络直径200m的问题,但是因为大量的控制帧的帧长都较短,每次发送都要增加载波扩展信号,必然导致带宽利用率的降低。为了提高千兆以太网短帧发送效率,IEEE802.3z任务组采纳了分组突发技术:其要点是允许站点每次发送多帧,只有第一帧需要加载波扩展信号。若第一帧发送成功,说明发送通道已打通,后续一系列帧可以连续发送,不需要再加载波扩展信号,只需要保持帧间间隙12字节,帧组发技术在一定程度上提高了带宽利用率。 3.2 以太网的帧结构 以太网中的数据传输是以帧为单位的,每帧的长度在64个字节到1518字节以内,下图是典型的以太网帧: 图表 10 以太网帧结构图 前导码:处于MAC帧开始处的字段为前导码字段,由7个字节组成。其功能是使接收器建立比特同步。编码形式为多个“1”或“0”交替构成的二进制序列,最后一比特为“0”。 帧首定界符:帧首定界符(SFD)是MAC帧的第2个字段,其编码形式为“10101011”序列,长度刚好为一个 字节。该字段的功能是指示一帧的开始。之后便是有效帧。 终点地址(destination address):是指该帧发往的目的地的MAC地址。每个节点都有一个唯一的MAC地址,前三个字节称为block ID, 17 标志设备的制造厂家,由IEEE赋值,需各网络设备生产厂商向IEEE申请。其它三个字节称为设备ID,由厂家赋值。MAC地址是唯一的。 源地址(source address) :源地址是指发送站的MAC地址。 长度指示符字段:为第5个字段,其长度为2个字节。以太网规范2.0和IEEE802.3在该字段定义不完全一致。在以太网规范2.0中,该字段定义为长度指示符,用来指示紧随其后的数据字节的长度,长度单位为字节数。在IEEE802.3协议中,该字段定义了使用的协议。(在2000版的IEEE802.3中,也定义了该字段指示数据字节的长度)。当该字段作为长度指示符时,它的值的范围不能超过最大有效帧长的值。当该字段作为协议指示时,它的值不小于1536(0D00)。由此可见,两个字段并没有重合,这样网络设备供应商就可以做到一个设备同时兼容两种协议。 LLC数据:LLC数据字段是帧要载携的用户数据,该数据由LLC子层提供或接收。该字段的长度范围为46-1500个字节,当有效数据小于46字节时,需要用填充(PAD)字段(紧接LLC之后)来对LLC数据进行填加,以保证帧有足够长度,适应前面 所述的碰撞检测的需要。 帧检验序列:帧检验序列(FCS)处于帧的最后,其长度为32比特,用于检验帧在传输过程中有无差错。 MAC地址的定义:下图为MAC地址的格式 图表 11 MAC地址格式 I/G位为0时表示了该MAC地址为单播地址,该地址是唯一的,每一个网络设备终端拥有一个唯一的MAC地址。I/G位为1时,表示该地址是多播地址,它对应了局域网中的一台或多台终端。当MAC地址为全一时,为广播地址,局域网中的所有终端都会接收该帧。多播地址只会在目的地址中出现。U/L位仅在目的地址中有意义。它指示了该地址是由 18 IEEE分配的(统一管理的,值为0)地址,还是由单位通过软件分配的(本地管理的,值为1)地址。 100Base-TX以太网的帧格式稍有不同:它采用4B5B编码,在前导码之前增加了流起始界定符(SSD)用于对齐接收帧以便顺序译码。SSD字段由符号J和K的序列组成,该序列定义了唯一的代码序列11000 10001。在FCS的后面又增加了流结束定界符(ESD),用于指示数据传输的正常以及传输的流的构成符合规范。流结束定界符使用T和R的代码的组合01101 00111。 支持IEEE802.1P/Q协议的MAC帧于前面的MAC帧比,又稍有不同,它在帧中增加了4个字节的位置,使以太网的最大帧长变为1522个字节,下图为带VLAN标记的帧格式 图表 12 VLAN的帧格式 VLAN帧在源地址之后增加了4个字节,前两个字节为协议类型,对于802.1Q协议,它的值为8100H。后两个字节为控制信息。其中,前三位表示用户优先级指示,取值范围0-7,7为最高优先级;第四位为格式指示符,通常用来指示数据段中有没有路由选择信息字段;5至16位为VLAN标示符。 3.3 以太网的交换技术 传统的以太网采用CSMA/CD技术,所有设备共享一个公共传输信道,这就不可回避的产生了冲突、碰撞和重发等情况。在网络负载负载较轻的情况下,问题并不明显;在网络负载加重的情况下,会产生大量的碰撞和重发,导致网络性能下降。九十年代初,随着计算机性能的提高及通信量的聚增,传统以太网已经愈来愈超出了自身的负荷,这时交换式以太网技术应运而生,大大提高了局域网的性能。与共享数据信道的局域网拓扑结构相比,网络交换机能显著的增加带宽。交换技术的加入,就可以建立地理位置相对分散的网络,使局域网交换机的每个端口可平行、安全、同时的互相传输信息,而且使局域网可以高度扩充。 局域网交换技术是OSI参考模型中的第二层——数据链路层(Data-Link Layer)上的技术,所谓“交换”实际上就是指转发数据帧(frame)。在数据通信中,所有的交换设备(即交换机)执行两个基本 19 的操作:交换数据帧,将从输入介质上收到的数据帧转发至相应的输出 介质;维护交换操作,构造和维护交换地址表。 交换数据帧;交换机根据数据帧的MAC(Media Access Control) 地址(即物理地址)进行数据帧的转发操作。交换机转发数据帧时,遵 循以下规则,如果数据帧的目的MAC地址是广播地址或者组播地址,则 向交换机所有端口转发(除数据帧来的端口);如果数据帧的目的地址 是单播地址,但是这个地址并不在交换机的地址表中,那么也会向所有 的端口转发(除数据帧来的端口);如果数据帧的目的地址在交换机的 地址表中,那么就根据地址表转发到相应的端口;如果数据帧的目的地 址与数据帧的源地址在一个网段上,它就会丢弃这个数据帧,交换也就 不会发生。下面,以图11为例来看看具体的数据帧交换过程。 图表 13 帧的交换过程 当主机D发送广播帧时,交换机从E3端口接收到目的地址为ffff.ffff.ffff的数据帧,则向E0、E1、E2和E4端口转发该数据帧。当主机D与E主机通信时,交换机从E3端口接收到目的地址为0260.8c01.5555的数据帧,查找地址表后发现0260.8c01.5555并不在表中,因此交换机仍然向E0、E1、E2和E4端口转发该数据帧。当主机D与主机F通信时,交换机从E3端口接收到目的地址为0260.8c01.6666的数据帧,查找地址表后发现0260.8c01.6666也位于E3端口,即与源地址处于同一个网段,所以交换机不会转发该数据帧,而是直接丢弃。当 20 主机D与主机A通信时,交换机从E3端口接收到目的地址为0260.8c01.1111的数据帧,查找地址表后发现0260.8c01.1111位于E0端口,所以交换机将数据帧转发至E0端口,这样主机A即可收到该数据帧。如果在主机D与主机A通信的同时,主机B也正在向主机C发送数据,交换机同样会把主机B发送的数据帧转发到连接主机C的E2端口。这时E1和E2之间,以及E3和E0之间,通过交换机内部的硬件交换电路,建立了两条链路,这两条链路上的数据通信互不影响,因此网络亦不会产生冲突。所以,主机D和主机A之间的通信独享一条链路,主机C和主机B之间也独享一条链路。而这样的链路仅在通信双方有需求时才会建立,一旦数据传输完毕,相应的链路也随之拆除。这就是交换机主要的特点。 构造维护交换地址表;交换机的交换地址表中,一条表项主要由一个主机MAC地址和该地址所位于的交换机端口号组成。整张地址表的生成采用动态自学习的方法,即当交换机收到一个数据帧以后,将数据帧的源地址和输入端口记录在交换地址表中。当然,在存放交换地址表项之前,交换机首先应该查找地址表中是否已经存在该源地址的匹配表项,仅当匹配表项不存在时才能存储该表项。每一条地址表项都有一个时间标记,用来指示该表项存储的时间周期。地址表项每次被使用或者被查找时,表项的时间标记就会被更新。如果在一定的时间范围内地址表项仍然没有被引用,它就会从地址表中被移走。因此,交换地址表中所维护的一直是最有效和最精确的地址—端口信息。 交换机在交换数据帧时可以有不同的模式来满足网络和用户的需要:存储转发方式是计算机网络领域应用最为广泛的方式,它把输入端口的数据包先存储起来,然后进行CRC检查,在对错误包处理后才取出数据包的目的地址,通过查找表转换成输出端口送出包。正因如此,存储转发方式在数据处理时延时偏大,这是它的不足,但是它可以对进入交换机的数据包进行错误检测,尤其重要的是它可以支持不同速度的输入输出端口间的转换,保持高速端口与低速端口间的协同工作;直通方式的以太网络交换机可以理解为在各端口间是纵横交叉的线路矩阵电话交换机。它在输入端口检测到一个数据包时,检查该包的包头,获取包的目的地址,启动内部的动态查找表转换成相应的输出端口,在输入与输出交叉处接通,把数据包直通到相应的端口,实现交换功能。由于不需要存储,延迟(LATENCY) 21 非常小、交换非常快,这是它的优点;它的缺点是:因为数据包的内容并没有被以太网交换机保存下来,所以无法检查所传送的数据包是否有误,不能提供错误检测能力,由于没有缓存,不能将具有不同速率的输入/输出端口直接接通,而且,当以太网络交换机的端口增加时,交换矩阵变的越来越复杂,实现起来相当困难。 3.4 流控机制 当网络发生拥塞时,网络设备有两种办法来处理,一个是简单的丢 弃数据包,直到拥塞解除,一种是进行流量控制,是对端设备减慢或停 止继续发数据包,直到拥塞解除。通过分析,人们发现利用流控机制可 以带来更大的好处。因为简单的丢弃数据包会导致上层协议重发数据包, 这又会加重网络的负载,而且上一层协议的反应时间也较慢,同时也加 重了上一层协议的负担。 对于半双工模式,网络设备一般使用背压(backpressure)方式进 行流量控制。一般有两种方式实现背压流控:强迫冲突方式是当设备监 测到有一个数据包近来时,就同时发一个空数据包,造成一次冲突。当 对端设备检测到冲突发生后,停止发包,从而实现了流控机制。第二种 方法是交换机通过发送jabber实施背压流控。Jabber是一个长的包,当 网络发生拥塞时,接收端会开始发送jabber直到拥塞解除。这种方法比 冲突更有效。网络中对端的设备检查到jabber后会一直推迟重发直到 jabber停止发送。目前,大部分交换机都采用这种方式实现背压流控。 IEEE委员会为全双工流控制定了一个新的标准,IEEE802.3x协议。 在IEEE802.3x协议中,网络设备利用预定义的pause帧进行流控。Pause 帧网络中不会被转发,它的格式如下: 图表 14 PAUSE帧格式 在pause帧中,DA固定为01-80-C2-00-00-01;SA为源/发送节点 的MAC地址;类型固定为88-08;操作控制码是两个字节,固定为00-01; 数据为一个定时器的值,它包含了两个字节。 当网络拥塞时,接收端节点会产生pause帧,并发送给对端节点。 对端节点在接到后,对其进行译码,MAC层识别到这是pause帧后,就不 再将该帧向上层传递,而是直接取出包含在其中的定时器的值,并把它 传给内部的pause定时器。当该值不为0时,该节点的发送就会被抑制。 当定时器减到0时,该节点又被允许发送(当节点被抑制的时候,还是 可以发送pause的。)。 22 3.5 自动协商技术 以太网发展到100M速率以后,出现了一个如何与原10M以太网设备兼容的问题,自协商技术就是为了解决这个问题而制定的。自协商功能允许一个网络设备能够将自己所支持的工作模式信息传达给网络上的对端,并接受对方可能传递过来的相应信息。它使用修订过的10BASE-T的整合性测试脉冲序列(link integrity test pulse sequence)来传递信息,自协商功能完全由物理层芯片设计实现,因此并不使用专用数据包或带来任何高层协议开销。 自协商功能的基本机制就是将协商信息封装进一连串修改后的“10BASE-T连接测试收发波形”的连接整合性测试脉冲。这串脉冲被称为快速连接脉冲(FLP)。每个网络设备必须能够在上电、管理命令发出、或是用户干预时发出此串脉冲。快速连接脉冲包含一系列连接整合性测试脉冲组成的时钟/数字序列。将这些数据从中提取出来就可以得到对端设备支持的工作模式,以及一些用于协商握手机制的其他信息。 T3时钟脉冲 T1T2 时间……首位脉冲 数据位1101……编码D0D1D2D3…… T3:125usT1:100nsT2:62.5us 图表 15 FLP快速脉冲群的格式 上图是典型的FLP脉冲序列。脉冲序列中的第一个脉冲为时钟脉冲,并在其后每隔125us出现一个时钟脉冲,数据脉冲出现的位置在相邻两个时钟脉冲的中点上。且以正脉冲表示逻辑1,无脉冲表示逻辑0。一个FLP脉冲序列包含17个时钟脉冲,16个数据脉冲(如果数据比特位都是1的话),16个数据比特位的编码见后面。NLP脉冲波形要比FLP简单,它只是在没有数据帧发送时每隔 T5 T4 FLP Burst NLPs T4:2msT5:16ms 23 图表 16 FLP和NLP的比较 16ms发送一次正脉冲。FLP和NLP的波形对比如下图所示。 快速连接脉冲(FLP)的信息编码可以分为两类,一类是基本连接码字(基本页),支持基本的信息的交换。另外类是下一页码字,以支持附加信息页的交换。基本页的信息编码可由下图表示。 D0D10D1D2D3D4D5D6D7D8D9D11D12D13D14D15 S0S1S2S3S4A0A1A2A3A4A5A6A7RFAckNP Selector FieldTechnolodgy Ability Field 图表 17 FLP的信息编码 选择域(Selector Field): S[0:4]用于标识自协商消息的类型。已定义的类型如下表所示,所有未列出的组合的意义均保留,保留的编码组合目前不应在传输中出现。 SSS2 SSSelector description 4 3 1 0 0 0 0 0 0 Reserved for future Auto-Negotiation development 0 0 0 0 1 IEEE Std 802.3 0 0 0 1 0 IEEE Std 802.9 ISLAN-16T 1 1 1 1 1 Reseerved for future Auto-Negotiation development 技术能力域(Technology Ability Field):A[0:7]用于描述本端网络接口所支持的各种工作模式。不同的选择域类型对应不同的技术能力域定义。下面表格给出IEEE 802.3标准下定义的各种技术能力及其编码。 Bit Technology Minimum cabling requirement A0 10BASE-T Two-pair Category 3 A1 10BASE-T FULL Two-pair Category 3 DUPLEX A2 100BASE-TX Two-pair Category 5 A3 100BASE-TX FULL Two-pair Category 5 DUPLEX A4 100BASE-T4 Four-pair Category 3 A5 PAUSE A[6:Reserved for furure 7] technology 当协商双方都支持一种以上的工作方式时,需要有一个优先级方案来确定一个最终工作方式。下表按优先级从高到底的顺序列出了IEEE 24 802.3所支持的五种模式。 1.100BASE-TX full duplex 2.100BASE-T4 3.100BASE-TX 4.10BASE-T full duplex 5.10BASE-T 远端故障(Remote Fault): 远程错误位(RF)提供了传递简单错误信息的机制。当发信方的自协商广告寄存器中的RF位被置位时,基本连接码字的RF位相应变为逻辑1;当接收方收到的基本连接码字的RF位为逻辑1时,其MII状态寄存器的RF位也将被置位(如果收方具有MII管理功能的话)。 应答(Acknowledge): 应答位(Ack)在自协商信令中用于表明线路上的一方已经收到了另一方发出的基本连接码字。 下一页(Next Page ): 下一页(NF)在自协商信令中表示要进行下一页的信息的传送。如果一个设备不支持下一页功能,它应将此位置0,如果设备支持下一页功能,但不想进行下一页操作,它也应该将此位置0,只有设备支持此功能并要进行下一页操作时才将此位置1。 25 第四章 常用设计中的接口的介绍 4.1 MII接口 MII接口定义了在MAC层和物理层之间传送数据和控制状态等信息的接口,它是 10M和100M兼容的接口,经过扩展后还可以用于1000M 的MAC层与物理层的接口(GMII接口)。 以前的10M的MAC层芯片和物理层芯片之间传送数据是由AUI(接入单元接口)实现,AUI通过一根数据输入线(DI)和一根数据输出线(DO)来进行的,其时钟是10M,在100M中,如果也用一根数据线来传送,在相同情况下,时钟需要100M,时钟频率的提高会给芯片设计带来一系列问题,成本相应的会大幅度提高,为解决这个问题,定义了MII接口,它的输入和输出均采用4根数据线来传送数据,这样在传送100M数据时,时钟就会由100M降低为25M,相应的,在传送10M数据时,时钟会降低到2.5M,并实现了10M和100M的兼容。 MII接口可以用来进行芯片级(集成电路),板级,或物理设备级的互联。当用作芯片问互联时,典型情况下它是以印刷电路板上的线路形式实现的。当用作板间互联时,典型情况下它是以带有合适连接器的母板----子板连接的形式实现的。当作为设备间互联时,则要求它以电缆加上连接器接口的形式实现,本文的举例的电路是芯片级互连。 MII接口有16个信号线,主要包括四个部分。一是从MAC层到物理层的发送数据接口,二是从MAC层到物理层的接收数据接口,三是物理层与MAC层之间状态指示接口,四是MAC层和物理层之间数据管理的MDIO/MDC接口。 MAC层侧物理层侧TX_ER TX_EN发送发送TX_CLK接口接口TXD[3..0] RX_ER RX_DV接收接收RXD[3..0]接口接口RX_CLK CRS指示指示COL接口接口 MDCMDIOMDIOMDIO接口接口 图表 18 MII接口定义 26 发送时钟(TX-CLK) 发送时钟是由PHY芯片提供并传递给MAC层的一个连接时钟信号。TX-CLK信号向协调子层提供了一个参考时钟,协调子层将与该时钟信号同步驱动TXD,TX-EN和TX-ER信号,以进行数据发送和状态控制。TX-CLK工作于25MHz(对于100Mb/s网络操作)。 发送数据(TXD[3:0]) 这一组四个引脚用来传递MAC层芯片的半位元组(4位)发送数据,该数据在发送前将被位于介质上的PHY层芯片进行适当的编码。当TX-EN不活动时RS给出的半位元组数据将被忽略。 发送使能(TX-EN) 该信号由MAC层IXF440给出,用来表明TXD引脚上给出了有效数据,且应用PHY层LXT974A将其向网络介质上进行发送。 发送错误(TX-ER) 该信号由MAC层芯片给出,用来向PHY层芯片表明所收到的信号流中有编码错误。在TX-EN处于活动状态的时候,如果TX-ER信号在一个或多个TX-CLK周期内处于活动状态,PHY将负责通过生成一个既不是正常数据也不是定界符信息的任意编码,来在介质上生成一个无效的发送帧。发送帧中错误的相对位置不需要保留。其目的是为了保证接收方的PHY总可以检测到帧中有错误。 接收时钟(RX-CLK) 接收时钟是由PHY层芯片提供并向MAC层芯片传送的一个连接时钟信号。RX-CLK信号向PHY层芯片提供了一个参考时钟,PHY芯片用它来同步驱动RXD,RX_DV和RX_ER信号,以向协调子层回送从介质上译码得到的接收数据和/或状态信息。RX_CLK工作于25MHz(对于100MB/s)或2.5MHz(对于10MB/s)。该时钟是由PHY芯片从到来的数据流中恢复出来的。 接收数据(RXD[3:0]) 这一组四个引脚用于向MAC层芯片传送PHY芯片从介质上译码得到的接收半位元组数据。当RX_EN不活动时给RS的半位元组数据将被忽略。 接收数据有效(RX_DV) 27 该信号由PHY给出,用于向MAC表明RXD引脚上给出了从介质上译码得到的有效数据。RX_DV必须在第一个SFD半位元组之前给出,且必须在接收帧CRC的最后一个半位元组之后立即撤销(在RX_CLK的下一个上升沿之前)。 接收错误(RX_ER) 该信号由PHY给出,用于向MAC表明在PHY从介质上接收到的数据中检测到了一个编码错误。它可能是一个非法编码或者是其它PHY可以检测到的错误,这些错误不可能被MAC层芯片检测到。在RX_DV处于活动状态的时候,如果RX_ER信号在一个或多个RX_CLK周期内保持活动,则PHY向RS表明在当前接收帧的某处检测到了一个错误。当给出RX_ER信号且RX_DV处于不活动状态时,RXD[3:0]引脚的值表明是出现了错误载波事件还是一个正常的包间间隔情况。错误载波事件是一种由特定介质的PHY检测到的错误,通常情况下是指在介质上检测到了一个错误的帧头。接收帧中错误的相对位置将不被保留。其目的是为了保证接收方的RS/MAC总可以检测到帧中包含的错误。MAC上的MII实现应当在对帧进行重发时用RX_ER指示来驱动TX_ER,否则就需要其他方法来保证远端的接收器总能检测到在帧中包含的错误。一般情况下这出现在多端口中继器或交换机实现中,在其中实现了重发过程,来确保在通过MII向PHY传递之前生一个无效的传输帧。 载波侦听(CRS) CRS由PHY给出,用于表明发送或接收介质处于活动状态,并且在发送和接收介质都空闲时撤销。应注意的是活动和空闲的定义是基于PHY是否检测到有效数据包。对于某些特定的介质和相对应的PHY而言,即使是在没有数据包时介质上仍有信号(换句话说,帧间空隙有相应的特定信号)。CRS要求在整个冲突期间给出。CRS和TX_CLK或RX_CLK没有同步关系。 上述是以太网工作于半双工模式的信号关系,在MII口工作于全双方式时不会有冲突也不必载波侦听,但为介绍知识的完整性在此加以简单说明。 冲突(COL) 冲突由PHY给出,用于表明在介质上检测到了冲突状态,并且在冲突情况持续保持不变。COL和TX_CLK或RX_CLK没有同步关系。如前所述当MAC与PHY工作于全双工方式该信号状态变得无意义。 28 管理数据时钟(MDC) 该时钟由MAC层芯片输出,并用于通过MDIO引脚从PHY中同步输入和输出数据。 管理数据输入输出(MDIO) 这是一个可以向PHY设备输入输出串行数据的双向信号,需要在MII之上给出了一个管理实体,一般在MAC芯片中实现,由管理实体给出的控制和配置数据和MDC同步地在MDIO线上给出,并且被PHY同步采样。由PHY给出状态信息,作为对管理实体读取管理寄存器请求的响应,和MDC同步地在MDIO线上给出,并且被管理实体同步采样。 下面给出了简单的MII接口的时序图: 图表 20 正常发送时序图 图表 19 正常接收时序图 4.2 RMII接口 由于MII接口的出现,100BAsE—T的MAC可以理想化地构造,以使得它的几个或所有端口可以连接任何基于MII口的PHY,但是每一MII 29 端口16个引脚带来的花费是很大的,在现代高密度芯片制造技术中这显得尤其突出。这种开销将导致带有所有MII端口的MAC芯片产生焊点限制。同时MAC芯片还有很多的用于与外部设备引脚相连的其他引脚,以致焊点的间隔将严重影响芯片的尺寸,并且为了填充焊点环所包围的芯片可用空间还将带来。这是极不希望出现的情况。很明显需要对引脚数进行简化,但要保证MAC芯片仍然可以与任何其他PHY芯片相连接并工作。这样就产生厂简化的MII或RMII。该规范末被包含在802(3标准中. RMII提供和现存的IEEE 802(3u MII标准相同的特性,同时还提供与PHY芯片连接的无关接口,但是它为每一销口节省了总共九根数据线和控制线。 RMII支持10Mb,s和100Mb,s的数据速率,全双工操作,并采用了TTL兼容的信号以便与常见的CMOS产品相兼容。和原始的MII不同,RMII只是设计成用于芯片到芯片的连接.此外与MII不同的是,RMII是以同步方式工作。这使得交换机和中继器中的发送通路与接收通路可以工作于同一时钟信号之上,从而省去了时钟引脚。为了更大程度上减少引脚数目,RMII规定简化后的数据及控制通路工作于50MH2的频率之上,是MII数据速率的两倍。这使得发送和接收数据通路在每个通路上从4位宽度减少到两位宽度,从而省去4根引脚。通过重新安排载波侦听、冲突、接收数据有效、RX_ER和TX_ER等MII信号,又节省了3个引脚,这样就形成了RMII接口。 图表 21 RMII接口定义 30 同步时钟(REF_CLK) 收发以及控制接口的同步参考时钟。REF_CLK是一个由交换机或中继器或某个外部时钟源提供的50MHz信号。 载波侦听,接收数据有效(CRS_DV) 当介质不空闲时CRS_DV以和REF_CLK相异步的方式由PHY给出,载波的丢失将导致CRS_DV被撤稍,当该信号给出时RXD[1:0]被认为是有效的。 接收数据(RXD[1:0]) 以和REF_CLK同步的方式恢复出来的两位数据,由PHY给出。 发送使能(TX_EN) 该信号由MAC输出,当该信号给出时,TXD[1:0]上的数据为有效数据。 发送数据(TXD[1:0]) 该信号由MAC输出,并以和REF_CLK同步的方式发送。 接收错误(RX_ER) 与IEEE 802.3u 第24子句相类似的信号。当出现错误情况时它被PHY给出。 管理信号线(MDC/MDIO) 同MII接口。RMII的接口时序图如下: 图表 22 RMII正常发送数据时序图 31 图表 23 RMII正常接收数据时序图 4.3 SMII和SSSMII接口 在制定了RMII接口后,它的单口针数比MII少了九个,但随着网络产品的端口密集度的进一步提高,RMII接口的针数也还是影响了端口的集成度,这时SMII(Serial Media Independent Interface,串行的介质无关接口)和SSSMII(Source Synchronous SMII,源同步的SMII)接口应运而生。在SMII中,MAC通过串行的信号线将数据和控制信号发往PHY,同时也通过串行的信号线接收由PHY发送来的数据和控制信号。这些信号都工作在125MHz的频率上,并且与REFCLK(125MHz)同步。帧同步信号(SYNC)指示了每一帧的开始,它的频率是REFCLK的1/10。一般来说,会有多个PHY共用一个SYNC。SMII接口也可以工作在10M的模式下。在100M模式下,一帧包含了一个子节的数据;在10M的模式下,每一个字节的数据被重复发送了10次。 下图是SMII接口的示意图:. 图表 24 SMII接口示意图 下面为RXD和TXD上帧的编码图: 32 图表 25 RXD上帧的编码 图表 26 TXD上帧的编码 下面为SMII接口发送和接收的时序图: 图表 27 SMII的接收时序图 图表 28 SMII的发送时序图 SSSMII主要应用于线的延时大于1ns的系统中,它与SMII接口相比增加了3个信号:TX_CLK,RX_CLK、RX_SYNC,同时将原来的SYNC改为TX_SYNC。下图为SSSMII接口的示意图: 33 图表 29 SSSMII接口示意图 下面是SSSMII接口发送和接收的时序图: 图表 30 SSSMII接收时序图 图表 31 SSSMII发送时序图 4.4 GMII接口和TBI接口 GMII接口提供了千兆位MAC和物理层之间的逻辑接口。GMII和协调子层使得GMAC可以连接到不同类型的物理介质上。GMII接口与MII接口类似但作了一些添加和修改。GMII中的数据通路宽度被指定为8位而不是4位宽度。每个时钟周期内一个字节的数据通过GMII,因此为了获得1000Mb,s的数据速度,发送和接收时钟必须工作在l 25MHz。由于GMII接口也可以工作在10Mb,s和 34 100Mb,s,所以相应的时钟分别为2(5MHz或25MHz。但是并不需要支持所有三种数据速度,PHY必须通过站点管理实体来声明自己所支持的速度。以10Mb,s和100Mb,s速度工作的GMII等同于MII。GMII接口不是一个外露的接口。GMII可以用作芯片级的互联,这在典型情况下以印刷电路板线路方式,或两个或更多印刷电路板之间的母板到子板连接方式来实现。 GMII接口在七层模型中的位置可参考图2。下图给出了GMII接口中使用的信号: 图表 32 GMII接口定义 发送时钟(GTX_CLK):以1000Mb,s速度工作时的发送时钟时来自于MAC的一个连续时钟信号。为了发送数据和报告状态,GTX_CLK作为参考时钟用于驱功TXD、TX_EN以及TX_ER信号与时钟同步。GTX-CLK工作于125MHz。 发送时钟(TX_CLK):TX_CLK在GMII接口工作于10Mb或100Mb速率时使用(请见MII部分)。当工作于1000Mb,s速度时不使用TX—CLK。 发送数据(TXD<7:0>):上层协议给出的数据在经过适当的发送编码和调整之后以八个数据信号(TXD<7:0>)一组的形式由MAC向PHY传送。当TX—EN和TX—ER为不活动状态时给出的数据将被忽略。 发送有效(TX_EN):这个由MAC给出的信号用于表明MAC正在给出有效的数据(8位)并且这些数据应当由PHY向网络介质上进行发送。 发送错误(TX_ER):由MAC给出的这个信号用于向PHY表明收到了输入信导流中的一个编码错误。当TX_EN处于活动状态的任何时候,若TX—ER信号在一个或更多的GTX_CLK周期内被激活,PHY就将负责发送一个或更多的非正常数据码组或定界符信息。下图给出了有效的TX_ER、TX_EN和TXD的编码: 35 33 允许的TX_EN、TXD、TX_ER编码 图表 接收时钟(RX_CLK):关于RX_CLK信号的描述和MII部分给出的相应部分相似,以1000Mb/s工作时RX_CLK工作于125MHz。 接收数据(RXD<7:0>):由PHY接收到的数据在经过适当的译码之后以八位数据信号(RXD<7:0>)一组的方式传递给MAC。 接收数据有效(RX_DV):由PHY给出的这个信号用于向MAC表明,来自于介质且经过译码的有效数据出现在RXD信号上。 接收错误(RX_ER):该信号的工作方式与在MII中相类似(请见MII部分)。 CRS(载波侦听)和COL(冲突检测)信号与MII中的相应部分功能完全相同(请见MII部分)。载波侦听用于检测网络上发送的起始。冲突检测用于表明在半双工网络中存在同时发送。 MDC、MDIO为管理端口,与MII部分定义相同。 下图给出了GMII与MII接口的简单比较: 图表 34 GMII与MII接口的简单比较 下图为千兆以太网中无冲突且无载波扩展或错误情况下的一个帧的时序图: 36 图表 35 基本帧的发送 下图为一个基本帧接收的时序图: 图表 36 基本帧的接收 TBI接口位于PCS(物理编码子层)和PMA(物理介质访问子层)之间。在把10位符号传递给PMD之前PMA子层的发送部分将它们转换成串行位流。而PMA子层的接收部分在把接收到的串行位流传递给PCS之前把它们转换成10位符号。另外PMA子层还从接收位流中分离出用于对接收到的数据进行正确的符号对齐(定界)的符号定时时钟。下图给出了TBI接口的示意图: 37 图表 37 TBI接口示意图 tx_code_group<9:0>:这是PCS在经过8B,10B编码之后向PMA给出的10位并行数据。PMA层为了进行数据发送而对它们进行串行化。 PMA_TX_CLK:PMA_TX_CLK是125MHz的发送时钟。该时钟用于锁定PMA中用于发送的10位符号。一个时钟倍频单元用于生成在介质上发送串行化的10位符号所需的1250MHz时钟。如果_LCK REF信号处于活动状态,接收器也将使用PMA_TX_CLK。 EWRAP:当处于高电平时,该信号允许将串行化发送数据回送到并行化单元,这有助于链路诊断。大多数商用SERDES集成电路,此时将串行发送数据输出 38 信号(TX十和TX—)置为非活动状态。 PMA_Rx_CLK<0>:这是PMA用于锁定认输入串行位流中重建而得的奇数编号符号的62(5MHz接收恢复时钟。该时钟情号可能会因为符号对齐而延迟,但决不会被缩短。 PMA_RX_CLK<1>:这是PMA用于锁定从输入串行位流中重建而得的偶数编号符号的62(5MHz接收恢复时钟。PMA_RX_CLK<1>和PMA_RX_CLK<0>的相位相差180。。该时钟信号可能会因为符号对齐而延迟,但决不会被缩短。 COM—DET:它用于表明在当前PMA_TX_CLK<1>周期内接收到的代码组或符号中含有效的间歇符。为了描述一个数据包,TBI要求能够检测到间歇符序列并能与之对齐。 _LCK_BEF:它使时钟恢复单元在500us内锁定于PMA_TX _CLK(即本地时钟而不是由输入串行数据流中恢复所得的时钟)。这种操作模式人多数情况下被制造商用产测试。 EN_CDET:当它处于高电平时,代码组对齐功能起作用;也就是将产生COM_DET信号。这是该信号的通常设置。如果EN_CDET处于低电平,那么输入的数据将被认为是未经格式化的,不构成网络帧的位流。 PMA发送接口从并行线tx_code_group<9:0>上接收10位宽度的代码组或符号 ,10B编码后来自于PCS)。这些符号根据PMA_TX_CLK被送到PMA。一(经过8B 个内部时钟倍频单元根据PMA_TX_CLK信号产生一个1250MHz的时钟,该时钟用于将串行化后的数据依次向介质发送。PMA服务接口在PMA_TX_CLK的上升沿锁定符号数据。串行化的数据按从最小权重位(TXD(0))到最大权重位(TXD(9))的顺序进行发送。 PMA以1250Mb,s的速度从PMD接收串行数据。接收到的串行数据进行串并转换,并且以rx_code_group<9:0>格式由PMA向PCS传送。时钟恢复单元恢复出两个工作于62(5MHz,相位差为180度的符号时钟:PMA_RX_CLK<0>和PMA_RX_CLK<1>,10位宽度的代码在每个接收时钟的上升沿被送到PCS层。偶数编号的符号在PMA_RX_CLK<1>期间在rx_code_group<9:0>上给出,而奇数编号的符号则在PMA_RX_CLK<0>期间在rx_code_group<9:0>上给出。另外TBI中还有两个信号:EWRAP和_LCK_REF。EWRAP也叫回送信号,是PMA层的一个输入信号,它使得串行化的发送数据回送到接收器。_LCK_REF是一个可选的锁定参考信号,它是一个输入信号,且用于将时钟恢复单元锁定于PMA_TX_CLK,而不是输入的串行流。 39 第六章 芯片的内部的功能模块 6.1 PHY的功能 下面以AC104为例,介绍一下PHY完成的功能及内部的功能模块。AC104为BROADCOM公司的产品,它是一片高集成度的、支持10Base-T/100Base-TX的4端口以太网PHY。它内部包含了RMII接口电路、编解码电路、加扰/去扰电路、支持全部的自动协商功能(包含并行检测功能及下页寄存器功能)。发送部分包含了两个频率综合器(一个用于10Base-T,另一个用于100Base-TX),包含了波形整形驱动电路(支持10M/100M)。接收部分包含了自适应均衡器、DC恢复电路(用于100Base-TX模式下准确的恢复时钟和数据)。它可以最远支持150m的双绞线。下图为AC104的内部功能框图: 图表 38 AC104内部功能框图 AC104实现了图2中PCS、PMA、PMD三部分的功能,下面按发送、接收的数据流的流向介绍各部分的功能。 对于发送部分: 1) 数据的编码/加扰功能:在MII模式下,数据以4bits、25M的速 率由MII输入;在RMII模式下,数据以2bits、50M的速率由RMII 输入,然后经过一个12bits深度的FIFO后,再转换为4bits的宽度。 40 在数据传送时,MAC始终置TX_EN为有效。在TX_EN有效的同时,4B/5B编码器在数据流之前插入/J/K/码作为流起始界定符,之后按下图将4bits的数据流转换成5bits的数据流。最后,编码器在数据流后面附加上一个/T/R/码做为流结束界定符。在两个包之间的间隙中,MAC会释放TX_EN信号,这时,4B/5B编码器会发送空闲码(IDLE)。当TX_EN有效时TX_ER也有效,编码器就会发送错误码(编码为/H/)。TX_ER仅在MII模式中有效,在RMII模式中无效。在100Base-TX模式下,为减少双绞线的的辐射,5bits的数据流在扰码单元被加扰。扰码单元使用一个周期为2047bits的流对数据流进行加扰。扰码有助于消除在某些频率上的尖峰,它是通过在频谱上平均(随机)的分配信号能量来减少尖峰辐射的。 图表 39 4B/5B编码 41 2) 并串转换及NRZ到NRZI的转换:5bits的数据在25M时钟的同步下进入移位寄存器,然后使用125M的时钟同步从移位寄存器输出,这样就得到了串行的数据流。25M和125M的时钟都是由片内的频率综合器产生。之后,芯片内部的电路将串行数据流由NRZ码转换为NRZI码。NRZI码的编码规则为遇0电平保持不变,遇1电平翻转。下图为NRZ码和NRZI码的比较图: 图表 40 NRZ码和NRZI码的比较 3) 多模式的发送驱动电路:在100Base-TX模式下,驱动电路输出MLT-3编码的信号;在100Base-FX模式下,驱动电路输出NRZI编码的信号;在10Base-T模式下,驱动电路输出manchester编码的信号。在100Base-TX模式下,NRZI码被转换为MLT-3码,这样,信号的频率就被降低了一半。同时EMI辐射也比NRZI码降低了3到6个DB,这样对通过EMI方面的认证有相当的益处。对于使用光信号传输的100Base-FX模式,则不涉及到电磁辐射。在10Base-T模式下,发送驱动电路使用了高频预加重技术保证了长双绞线的驱动能力。FLP和NLP信号都使用10Base-T的发送驱动电路。下图为NRZI码,mancherster码和MLT-3码的码型比较图: 图表 41 多种码型比较图 42 对于接收部分的电路:在100Base-TX模式下,接收电路执行着与发送电路相反的功能,包括了自适应均衡、DC恢复、MLT-3到NRZI的转换、数据和时钟的恢复、NRZI到NRZ的转换、串并转换、去扰及5B到4B的解码。芯片还包括了一个低通滤波器以抑制双绞线上的高频干扰,一个能量检测电路用于检测线上是否有信号输入。当没有信号输入时,芯片会相应关闭所有没有使用到的电路以减小芯片功耗。在10Base-T模式下,信号首先经过低通滤波以抑制噪音,然后通过manchester解码、串并转换得到4bits的数据流。 1) 自适应均衡器:AC104设计为最远可驱动150米的五类双绞 线。标准的五类线在100M频率150米的衰减约为32DB,在TP-PMD 规范中规定的线的衰减则为24到26DB。自适应均衡器就是用来解 决这个矛盾的。信号经过双绞线传输后,会产生增益和相位的失真, 严重的会导致ISI(inter-symbol interference),造成时钟和数据恢复困 难。自适应均衡器的传输特性的设计则尽量和双绞线的传输特性相 反。自适应均衡器的频率响应会随着线长的改变而改变,以得到最 佳的频率响应来补偿双绞线带来的增益和相位失真。 2) 链路检测功能:在均衡器之后有一个信号检测电路。当它检 测到信号线上有对地电平大于400mv且持续时间大于2-3us的脉冲 后,便将SD(signal detect)置为有效。当信号线上的电平低于300mv 且保持1-2us之后,SD被置为无效。在100Base-TX模式下,当链 路检测电路检测到没有信号或无效信号时,线路进入链路失败状态, 这时,只有空闲码可以发送。当检测到有效的信号后,链路进入链 路正常状态,这时才可以进入正常的接收发送状态。 3) 基线偏移补偿:在100Base-TX模式下,线路采用MLT-3的 编码方式,它是含有直流分量的编码。在经过变压器、共模滤波后, 直流分量就会被隔离,输入的差分信号的直流偏移就有偏移。这种 信号电平的改变会产生脉冲宽度的失真并可能产生误码,因此需要 一个DC补偿电路来抵消线路传输对DC分量造成的衰减。对于 10Base-T(manchester编码)和100Base-FX(PECL电平)模式来 说,它们的直流分量是恒定的,不会有基线偏移的问题也不需要补 偿电路,在这两种模式下,基线偏移补偿电路在内部是被旁路的。 4) 时钟/数据恢复电路:经均衡后的MLT-3信号经过采样电路后 恢复为NRZI格式的信号。芯片利用内部的锁相环路从NRZI码中恢 复出时钟信号,然后再用这个时钟信号对数据进行重定时和设定数 据边界。发送使用时钟从输入的25MHz时钟(MII接口中定义的时 钟)或50MHz时钟(RMII接口中定义的时钟)提取出来,接收使 用的时钟由输入的数据流中提取出来。由数据流中提取出来的 125MHz时钟也用来产生25MHz的RX_CLK(仅在MII模式中用到)。 恢复的数据流再由NRZI码转换为NRZ码,再转换为5bits的并行 数据。 5) 解码/去扰电路:去扰电路通过搜寻接收到的空闲码序列以查 询确认发送端的线性反馈移位寄存器(linear feedback shift register) 43 的状态。当连续接收30个以上的空闲码的数据后,去扰电路就可以 捕获到加扰用的线性反馈移位寄存器(LFSR)的状态并将它锁定到去 扰用的LFSR。然后去扰电路用它对输入的数据流进行去扰。一旦锁 定后,去扰电路会一直监视数据流以确保没有失锁。在IPG低至 840ns的时候,去扰电路也可以成功的锁定LFSR。在锁定完成后, IGP可进一步降至80ns。对于100Base-FX和10Base-T模式下,不 需要去扰电路。 芯片内还包含了自动协商功能电路,并行检测功能电路,远端故障检测电路,载波检测电路,回环控制电路,线长检测电路等功能性电路,这里不再一一作详细叙述。 6.2 MAC的功能 MAC在七层模型中位于第二层,负责以太网中帧的转发与过滤,下面以AL101芯片为例介绍MAC芯片的功能。 AL101芯片为BROADCOM公司产品,包含8个10M/100M的MAC,8个RMII接口。支持10M/100M、全/半双工工作模式。它内部包含了1K的MAC地址表。支持IEEE802.3x全双工流控,使用存储转发模式进行帧交换,需外部扩展帧缓存用的memory。下图为芯片原理框图: 图表 42 AL101原理框图 数据接收部分:当RMII总线上的CRS信号有效时,MAC进入接收状态。数据从RMII口以2bits的宽度、50MHz的速率由RMII口输入。 44 MAC的接收电路开始检测SFD(起始流界定符,编码为10101011)。SFD之前的数据都会被忽略。在检测到SFD后,之后的数据都为有效数据,MAC把它放在帧缓存中。在接收过程中,MAC监视着帧的长度。对AL101来说,合法的帧长度在64字节和1536字节之间。任何非法长度的帧都会被丢弃。同时MAC也根据内部MAC地址表、VLAN配置、端口状态等信息判断过滤或转发帧。对以下情况,接收到的帧将会被过滤:对于接收到的错误帧,如FCS错误、超短帧、超长帧等会被MAC丢弃;所有目的端口为自己的帧将会被丢弃;目的端口已经被禁止的帧会被丢弃;如果没有打开流控,在帧缓存满的情况下到达的帧会被丢弃。违背了安全规则的帧会被丢弃。 帧转发部分:一个数据帧被接收后,它的源地址和目的地址都会被提取出来。源地址用来更新MAC地址表,目的地址就用来判定帧转发的目的端口。地址搜索引擎搜索整个MAC地址表,检查是否有和目的地址匹配的项。如果搜索成功,MAC会再判断是否在同一个VLAN中,是否与安全规则有冲突等等,所有条件满足,MAC就会向匹配项中包含的端口转发该帧。在没有查到匹配项的情况下,MAC一般会向所有端口转发该帧。对于目的地址的首位为0的帧,一般称为单播帧。MAC会按以上原则处理,对于目的地址首位为1的帧,又分为两类,组播帧和广播帧。AL101并不能区分这两种帧,它都会把该帧转发给所有端口。有的MAC芯片在MAC地址表中还包含了组播地址表,组播地址通常对应一个或多个端口号,MAC只会把该帧转发到这些端口。 MAC地址表学习和老化:AL101包含了1K的地址表,它包含了帧的转发信息。当数据帧进来后,MAC首先分析帧的合法性。对于合法的帧,源MAC地址会被加入到MAC地址表中,如果表中已存在该地址项,旧的地址项将被删去,新的地址被填进来。MAC地址表中的地址分为两类,静态地址和动态地址。对于动态地址,如果在一定时间内一直未被更新,就会被删去,这就是MAC地址的老化,这段时间称为地址老化时间。 6.3 SMI管理接口 SMI接口为串行管理接口,包含在MII接口定义中。通过该接口,MAC/用户可以读到PHY中的寄存器的状态并对寄存器做相关配置。SMI接口共两根信号线,MDC为时钟线,由MAC或用户驱动,MDIO为双向数据线,用于读/写PHY的内部寄存器。在一个设计中,所有的PHY的SMI接口都是连在一起的,这就要求每一个端口都有自己独一无二的地址,即PHY地址。 下图为SMI接口的帧格式: 45 图表 43 SMI管理接口的帧格式 首先MAC发送32个连续的“1”作为前导符,然后发送“01”作为帧起始符。后面紧跟的两位为操作符,“10”表示读操作,“01”表示写操作。接着是5位的PHY地址和5位的寄存器地址。对于读操作,MAC把MDIO置为高阻等待PHY的回应。PHY在准备好数据后,输出0,紧跟着输出16位寄存器的内容。对于写操作,MAC输出“10”,再紧跟着输出16位寄存器的值。操作完成后MDIO被置为高阻表示空闲。 46
/
本文档为【以太网基础知识讲义】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索