MAC和PHY的工作原理
以太网芯片MAC和PHY知识详细讲解
网口扫盲三:以太网芯片MAC和PHY的关系问:如何实现单片以太网微控制器?答:诀窍是将微控制器、以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片,这样能去掉许多外接元器件.这种方案可使MAC和PHY实现很好的匹配,同时还可减小引脚数、缩小芯片面积.单片以太网微控制器还降低了功耗,特别是在采用掉电模式的情况下. 问:以太网MAC是什么?答:MAC即Media Access Control,即媒体访问控制子层协议.该协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质.在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC层.该层协议是以太网MAC 由IEEE-802.3以太网标准定义.最新的MAC同时支持10Mbps和100Mbps两种速率.以太网数据链路层其实包含MAC(介质访问控制)子层和LLC(逻辑链路控制)子层.一块以太网卡MAC芯片的作用不但要实现MAC子层和LLC子层的功能,还要提供符合规范的PCI界面以实现和主机的数据交换.MAC从PCI总线收到IP数据包(或者其他网络层协议的数据包)后,将之拆分并重新打包成最大1518Byte,最小64Byte的帧.这个帧里面包括了目标MAC地址、自己的源MAC地址和数据包里面的协议类型(比如IP数据包的类型用80表示).最后还有一个DWORD(4Byte)的CRC码. 可是目标的MAC地址是哪里来的呢?这牵扯到一个ARP协议(介乎于网络层和数据链路层的一个协议).第一次传送某个目的IP地址的数据的时候,先会发出一个ARP包,其MAC的目标地址是广播地址,里面说到:”谁是xxx.xxx.xxx.xxx这个IP地址的主人?”因为是广播包,所有这个局域网的主机都收到了这个ARP请求.收到请求的主机将这个IP地址和自己的相比较,如果不相同就不予理会,如果相同就发出ARP响应包.这个IP地址的主机收到这个ARP 请求包后回复的ARP响应里说到:”我是这个IP地址的主人”.这个包里面就包括了他的MAC地址.以后的给这个IP地址的帧的目标MAC地址就被确定了.(其它的协议如IPX/SPX也有相应的协议完成这些操作.)IP地址和MAC地址之间的关联关系保存在主机系统里面,叫做ARP表,由驱动程序和操作系统完成.在Microsoft的系统里面可以用arp-a的命令查看ARP表.收到数据帧的时候也是一样,做完CRC以后,如果没有CRC效验错误,就把帧头去掉,把数据包拿出来通过标准的借口传递给驱动和上层的协议客栈,最终正确的达到我们的应用程序.还有一些控制帧,例如流控帧也需要MAC直接识别并执行相应的行为.以太网MAC芯片的一端接计算机PCI总线,另外一端就接到PHY芯片上,它们之间是通过MII 接口链接的.问:什么是MII?答:MII即媒体独立接口,它是IEEE-802.3定义的以太网行业标准."媒体独立"表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作.它包括一个数据接口,以及一个MAC和PHY之间的管理接口.•数据接口包括分别用于发送器和接收器的两条独立信道.每条信道都有自己的数据,时钟和控制信号.MII数据接口总共需要16个信号,包括TX_ER,TXD<3:0>,TX_EN,TX_CLK, COL,RXD<3:0>,RX_EX,RX_CLK,CRS,RX_DV等.MII 以4位半字节方式传送数据双向传输,时钟速率25MHz.其工作速率可达100Mb/s;•MII管理接口是个双信号接口,一个是时钟信号,另一个是数据信号.通过管理接口,上层能监视和控制PHY.其管理是使用SMI(Serial Management Interface)总线通过读写PHY的寄存器来完成的.PHY里面的部分寄存器是IEEE定义的,这样PHY把自己的目前的状态反映到寄存器里面,MAC通过SMI总线不断的读取PHY的状态寄存器以得知目前PHY的状态,例如连接速度,双工的能力等.当然也可以通过SMI设置PHY 的寄存器达到控制的目的,例如流控的打开关闭,自协商模式还是强制模式等.不论是物理连接的MII总线和SMI总线还是PHY的状态寄存器和控制寄存器都是有IEEE 的规范的,因此不同公司的MAC和PHY一样可以协调工作.当然为了配合不同公司的PHY的自己特有的一些功能,驱动需要做相应的修改.MII支持10Mbps和100Mbps的操作,一个接口由14根线组成,它的支持还是比较灵活的,但是有一个缺点是因为它一个端口用的信号线太多,如果一个8端口的交换机要用到112根线,16端口就要用到224根线,到32端口的话就要用到448根线,一般按照这个接口做交换机,是不太现实的,所以现代的交换机的制作都会用到其它的一些从MII简化出来的标准,比如RMII,SMII,GMII等.RMII是简化的MII接口,在数据的收发上它比MII接口少了一倍的信号线,所以它一般要求是50MHz的总线时钟.RMII一般用在多端口的交换机,它不是每个端口安排收,发两个时钟,而是所有的数据端口公用一个时钟用于所有端口的收发,这里就节省了不少的端口数目.RMII的一个端口要求7个数据线,比MII少了一倍,所以交换机能够接入多一倍数据的端口.和MII一样,RMII支持10Mbps和100Mbps的总线接口速度.SMII是由思科提出的一种媒体接口,它有比RMII更少的信号线数目,S表示串行的意思.因为它只用一根信号线传送发送数据,一根信号线传输接受数据,所以为了满足100Mbps的总线接口速度的需求,它的时钟频率就达到了125MHz,为什么用125MHz,是因为数据线里面会传送一些控制信息.SMII一个端口仅用4根信号线完成100Mbps的传输,比起RMII差不多又少了一倍的信号线.SMII在工业界的支持力度是很高的.同理,所有端口的数据收发都公用同一个外部的125MHz时钟.GMII是千兆网的MII接口,这个也有相应的RGMII接口,表示简化了的GMII接口.MII总线在IEEE802.3中规定的MII总线是一种用于将不同类型的PHY与相同网络控制器(MAC)相连接的通用总线.网络控制器可以用同样的硬件接口与任何PHY .GMII(Gigabit MII)GMII采用8位接口数据,工作时钟125MHz,因此传输速率可达1000Mbps.同时兼容MII所规定的10/100 Mbps工作方式.GMII接口数据结构符合IEEE以太网标准.该接口定义见IEEE 802.3-2000.发送器:•GTXCLK——吉比特TX..信号的时钟信号(125MHz)•TXCLK——10/100Mbps信号时钟•TXD[7..0]——被发送数据•TXEN——发送器使能信号•TXER——发送器错误(用于破坏一个数据包)注:在千兆速率下,向PHY提供GTXCLK信号,TXD,TXEN,TXER信号与此时钟信号同步.否则,在10/100Mbps速率下,PHY提供TXCLK时钟信号,其它信号与此信号同步.其工作频率为25MHz(100M网络)或2.5MHz(10M网络).接收器:•RXCLK——接收时钟信号(从收到的数据中提取,因此与GTXCLK无关联)•RXD[7..0]——接收数据•RXDV——接收数据有效指示•RXER——接收数据出错指示•COL——冲突检测(仅用于半双工状态)管理配置•MDC——配置接口时钟•MDIO——配置接口I/O管理配置接口控制PHY的特性.该接口有32个寄存器地址,每个地址16位.其中前16个已经在"IEEE 802.3,2000-22.2.4 Management Functions"中规定了用途,其余的则由各器件自己指定.RMII(Reduced Media Independant Interface)简化媒体独立接口是标准的以太网接口之一,比MII有更少的I/O传输.RMII口是用两根线来传输数据的,MII口是用4根线来传输数据的,GMII是用8根线来传输数据的.MII/RMII只是一种接口,对于10Mbps线速,MII的时钟速率是2.5MHz就可以了,RMII 则需要5MHz;对于100Mbps线速,MII需要的时钟速率是25MHz,RMII则是50MHz.MII/RMII用于传输以太网包,在MII/RMII接口是4/2bit的,在以太网的PHY里需要做串并转换,编解码等才能在双绞线和光纤上进行传输,其帧格式遵循IEEE 802.3(10M)/IEEE 802.3u(100M)/IEEE 802.1q(VLAN).以太网帧的格式为:前导符+开始位+目的mac地址+源mac地址+类型/长度+数据+padding(optional)+32bitCRC如果有vlan,则要在类型/长度后面加上2个字节的vlan tag,其中12bit来表示vlan id,另外4bit表示数据的优先级!问:以太网PHY是什么?答:PHY是物理接口收发器,它实现物理层.IEEE-802.3标准定义了以太网PHY.包括MII/GMII(介质独立接口)子层,PCS(物理编码子层),PMA(物理介质附加)子层,PMD(物理介质相关)子层,MDI子层.它符合IEEE-802.3k中用于10BaseT(第14条)和100BaseTX(第24条和第25条)的规范.PHY在发送数据的时候,收到MAC过来的数据(对PHY来说,没有帧的概念,对它来说,都是数据而不管什么地址,数据还是CRC.对于100BaseTX因为使用4B/5B编码,每4bit就增加1bit 的检错码),然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去.收数据时的流程反之.PHY还有个重要的功能就是实现CSMA/CD的部分功能.它可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个随机时间后将送数据出去.如果两个碰巧同时送出了数据,那样必将造成冲突,这时候,冲突检测机构可以检测到冲突,然后各等待一个随机的时间重新发送数据.这个随机时间很有讲究的,并不是一个常数,在不同的时刻计算出来的随机时间都是不同的,而且有多重算法来应付出现概率很低的同两台主机之间的第二次冲突.许多网友在接入Internt宽带时,喜欢使用”抢线”强的网卡,就是因为不同的PHY碰撞后计算随机时间的方法设计上不同,使得有些网卡比较”占便宜”.不过,抢线只对广播域的网络而言的,对于交换网络和ADSL这样点到点连接到局端设备的接入方式没什么意义.而且”抢线”也只是相对而言的,不会有质的变化.现在交换机的普及使得交换网络的普及,使得冲突域网络少了很多,极大地提高了网络的带宽.但是如果用HUB,或者共享带宽接入Internet的时候还是属于冲突域网络,有冲突碰撞的.交换机和HUB最大的区别就是:一个是构建点到点网络的局域网交换设备,一个是构建冲突域网络的局域网互连设备.除此之外PHY还提供了和对端设备连接的重要功能并通过LED灯显示出自己目前的连接的状态和工作状态让我们知道.当我们给网卡接入网线的时候,PHY不断发出的脉冲信号检测到对端有设备,它们通过标准的”语言”交流,互相协商并却定连接速度、双工模式、是否采用流控等.通常情况下,协商的结果是两个设备中能同时支持的最大速度和最好的双工模式.这个技术被称为AutoNegotiation或者NWAY,它们是一个意思–自动协商.具体传输过程为,发送数据时,网卡首先侦听介质上是否有载波(载波由电压指示),如果有,则认为其他站点正在传送信息,继续侦听介质.一旦通信介质在一定时间段内(称为帧间缝隙IFG=9.6微秒)是安静的,即没有被其他站点占用,则开始进行帧数据发送,同时继续侦听通信介质,以检测冲突.在发送数据期间,如果检测到冲突,则立即停止该次发送,并向介质发送一个“阻塞”信号,告知其他站点已经发生冲突,从而丢弃那些可能一直在接收的受到损坏的帧数据,并等待一段随机时间(CSMA/CD确定等待时间的算法是二进制指数退避算法).在等待一段随机时间后,再进行新的发送.如果重传多次后(大于16次)仍发生冲突,就放弃发送.接收时,网卡浏览介质上传输的每个帧,如果其长度小于64字节,则认为是冲突碎片.如果接收到的帧不是冲突碎片且目的地址是本地地址,则对帧进行完整性校验,如果帧长度大于1518字节(称为超长帧,可能由错误的LAN驱动程序或干扰造成)或未能通过CRC校验,则认为该帧发生了畸变.通过校验的帧被认为是有效的,网卡将它接收下来进行本地处理.问:造成以太网MAC和PHY单片整合难度高的原因是什么?答:PHY整合了大量模拟硬件,而MAC是典型的全数字器件.芯片面积及模拟/数字混合架构是为什么先将MAC集成进微控制器而将PHY留在片外的原因.更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合.问: 网卡上除RJ-45接口外,还需要其它元件吗?答:PHY和MAC是网卡的主要组成部分,网卡一般用RJ-45插口,10M网卡的RJ-45插口也只用了1,2,3,6四根针,而100M或1000M网卡的则是八根针都是全的.除此以外,还需要其它元件,因为虽然PHY提供绝大多数模拟支持,但在一个典型实现中,仍需外接6,7只分立元件及一个局域网绝缘模块.绝缘模块一般采用一个1:1的变压器.这些部件的主要功能是为了保护PHY 免遭由于电气失误而引起的损坏.另外,一颗CMOS制程的芯片工作的时候产生的信号电平总是大于0V的(这取决于芯片的制程和设计需求),但是这样的信号送到100米甚至更长的地方会有很大的直流分量的损失.而且如果外部网线直接和芯片相连的话,电磁感应(打雷)和静电,很容易造成芯片的损坏.再就是设备接地方法不同,电网环境不同会导致双方的0V电平不一致,这样信号从A传到B,由于A 设备的0V电平和B点的0V电平不一样,这样会导致很大的电流从电势高的设备流向电势低的设备.为了解决以上问题Transformer(隔离变压器)这个器件就应运而生.它把PHY送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过电磁场的转换耦合到连接网线的另外一端.这样不但使网线和PHY之间没有物理上的连接而换传递了信号,隔断了信号中的直流分量,还可以在不同0V电平的设备中传送数据.隔离变压器本身就是设计为耐2KV~3KV的电压的.也起到了防雷感应(我个人认为这里用防雷击不合适)保护的作用.有些朋友的网络设备在雷雨天气时容易被烧坏,大都是PCB设计不合理造成的,而且大都烧毁了设备的接口,很少有芯片被烧毁的,就是隔离变压器起到了保护作用.隔离变压器本身是个被动元件,只是把PHY的信号耦合了到网线上,并没有起到功率放大的作用.那么一张网卡信号的传输的最长距离是谁决定的呢?一张网卡的传输最大距离和与对端设备连接的兼容性主要是PHY决定的.但是可以将信号送的超过100米的PHY其输出的功率也比较大,更容易产生EMI的问题.这时候就需要合适的Transformer与之配合.作PHY的老大公司Marvell的PHY,常常可以传送180~200米的距离,远远超过IEEE的100米的标准.RJ-45的接头实现了网卡和网线的连接.它里面有8个铜片可以和网线中的4对双绞(8根)线对应连接.其中100M的网络中1,2是传送数据的,3,6是接收数据的.1,2之间是一对差分信号,也就是说它们的波形一样,但是相位相差180度,同一时刻的电压幅度互为正负.这样的信号可以传递的更远,抗干扰能力强.同样的,3,6也一样是差分信号.网线中的8根线,每两根扭在一起成为一对.我们制作网线的时候,一定要注意要让1,2在其中的一对,3,6在一对.否则长距离情况下使用这根网线的时候会导致无法连接或连接很不稳定.现在新的PHY支持AUTO MDI-X功能(也需要Transformer支持).它可以实现RJ-45接口的1,2上的传送信号线和3,6上的接收信号线的功能自动互相交换.有的PHY甚至支持一对线中的正信号和负信号的功能自动交换.这样我们就不必为了到底连接某个设备需要使用直通网线还是交叉网线而费心了.这项技术已经被广泛的应用在交换机和SOHO路由器上.在1000Basd-T网络中,其中最普遍的一种传输方式是使用网线中所有的4对双绞线,其中增加了4,5和7,8来共同传送接收数据.由于1000Based-T网络的规范包含了AUTOMDI-X功能,因此不能严格确定它们的传出或接收的关系,要看双方的具体的协商结果.一片网卡主要功能的实现就基本上是上面这些器件了.其他的,还有一颗EEPROM芯片,通常是一颗93C46.里面记录了网卡芯片的供应商ID,子系统供应商ID,网卡的MAC地址,网卡的一些配置,如SMI总线上PHY的地址,BOOTROM的容量,是否启用BOOTROM引导系统等东西.很多网卡上还有BOOTROM这个东西.它是用于无盘工作站引导操作系统的.既然无盘,一些引导用必需用到的程序和协议栈就放到里面了,例如RPL,PXE等.实际上它就是一个标准的PCI ROM.所以才会有一些硬盘写保护卡可以通过烧写网卡的BootRom来实现.其实PCI设备的ROM是可以放到主板BIOS里面的.启动电脑的时候一样可以检测到这个ROM并且正确识别它是什么设备的.AGP在配置上和PCI很多地方一样,所以很多显卡的BIOS也可以放到主板BIOS里面.这就是为什么板载的网卡我们从来没有看到过BOOTROM的原因.最后就是电源部分了.大多数网卡现在都使用3.3V或更低的电压.有的是双电压的.因此需要电源转换电路.而且网卡为了实现Wake on line功能,必须保证全部的PHY和MAC的极少一部分始终处于有电的状态,这需要把主板上的5V Standby电压转换为PHY工作电压的电路.在主机开机后,PHY的工作电压应该被从5V转出来的电压替代以节省5V Standby的消耗.(许多劣质网卡没有这么做).有Wake on line功能的网卡一般还有一个WOL的接口.那是因为PCI2.1以前没有PCI设备唤醒主机的功能,所以需要着一根线通过主板上的WOL的接口连到南桥里面以实现WOL的功能.新的主板合网卡一般支持PCI2.2/2.3,扩展了PME#信号功能,不需要那个接口而通过PCI 总线就可以实现唤醒功能.我们现在来看两个图MAC和PHY分开的以太网卡MAC和PHY集成在一颗芯片的以太网卡上图中各部件为:①RJ-45接口②Transformer(隔离变压器)③PHY芯片④MAC芯片⑤EEPROM⑥BOOTROM插槽⑦WOL接头⑧晶振⑨电压转换芯片⑩LED指示灯网卡的功能主要有两个:一是将电脑的数据封装为帧,并通过网线(对无线网络来说就是电磁波)将数据发送到网络上去;二是接收网络上其它设备传过来的帧,并将帧重新组合成数据,发送到所在的电脑中.网卡能接收所有在网络上传输的信号,但正常情况下只接受发送到该电脑的帧和广播帧,将其余的帧丢弃.然后,传送到系统CPU做进一步处理.当电脑发送数据时,网卡等待合适的时间将分组插入到数据流中.接收系统通知电脑消息是否完整地到达,如果出现问题,将要求对方重新发送.问:10BaseT和100BaseTX PHY实现方式不同的原因何在?答:两种实现的分组描述本质上是一样的,但两者的信令机制完全不同.其目的是阻止一种硬件实现容易地处理两种速度.10BaseT采用曼彻斯特编码,100BaseTX采用4B/5B编码. 问:什么是曼彻斯特编码?答:曼彻斯特编码又称曼彻斯特相位编码,它通过相位变化来实现每个位(图2).通常,用一个时钟周期中部的上升沿表示“1”,下降沿表示“0”.周期末端的相位变化可忽略不计,但有时又可能需要将这种相位变化计算在内,这取决于前一位的值.问:什么是4B/5B编码?答:4B/5B编码是一种块编码方式.它将一个4位的块编码成一个5位的块.这就使5位块内永远至少包含2个“1”转换,所以在一个5位块内总能进行时钟同步.该方法需要25%的额外开销.问:网卡的MAC和PHY间的关系?答:网卡工作在osi的最后两层,物理层和数据链路层,物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口.物理层的芯片称之为PHY.数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能.以太网卡中数据链路层的芯片称之为MAC 控制器.很多网卡的这两个部分是做到一起的.他们之间的关系是pci总线接mac总线,mac 接phy,phy接网线(当然也不是直接接上的,还有一个变压装置).PHY和MAC之间是如何传送数据和相互沟通的.通过IEEE定义的标准的MII/GigaMII(Media Independed Interfade,介质独立界面)界面连接MAC和PHY.这个界面是IEEE定义的.MII 界面传递了网络的所有数据和数据的控制.ETHERNET的接口实质是MAC通过MII总线控制PHY的过程.问:网线上传输的是模拟信号还是数字信号?答:是模拟信号.因为它传出和接收是采用的模拟的技术.虽然它传送的信息是数字的(并不是传送的信息是数字的信号就可以叫做数字信号).简单的例子:我们知道电话是模拟信号,但是当我们拨号上网的时候,电话线里传送的是数字信息,但信号本身依旧是模拟的.然而ADSL同样是通过电话线传送的,却是数字信号.这取决于它传出和接受采用的技术.问:若操作系统没有加载网卡驱动,网卡虽然在系统设备树上,但网卡接口创建不了,那网卡实际能不能接收到数据?答:这里面有很多细节, 我根据Intel网卡的Spec大概写了写, 想尽量写的通俗一些,所以没有刻意用Spec里的术语,另外本文虽然讲的是MAC/PHY,但光口卡的(SERDES)也是类似的.1.PCI设备做reset以后进入D0uninitialized(非初始化的D0状态, 参考PCI电源管理规范),此时网卡的MAC和DMA都不工作,PHY是工作在一个特殊的低电源状态的;2.操作系统创建设备树时,初始化这个设备,PCI命令寄存器的 Memory Access Enableor the I/O Access Enable bit会被enable, 这就是D0active.此时PHY/MAC就使能了;3.PHY被使能应该就可以接收物理链路上的数据了,否则不能收到FLP/NLP, PHY就不能建立物理连接.但这类包一般是流量间歇发送的;4.驱动程序一般要通过寄存器来控制PHY, 比如自动协商speed/duplex, 查询物理链路的状态Link up/down;5.MAC被使能后, 如果没有驱动设置控制寄存器的一个位(CTRL.SLU )的话, MAC和PHY是不能通讯的, 就是说MAC不知道PHY的link已经ready, 所以收不到任何数据的.这位设置以后, PHY完成自协商, 网卡才会有个Link change的中断,知道物理连接已经Link UP了;6.即使Link已经UP, MAC还需要enable接收器的一个位(RCTL.RXEN ),包才可以被接收进来,如果网卡被reset,这位是0,意味着所有的包都会被直接drop掉,不会存入网卡的 FIFO.老网卡在驱动退出前利用这位关掉接收.Intel的最新千兆网卡发送接收队列的动态配置就是依靠这个位的,重新配置的过程一定要关掉流量;7.无论驱动加载与否, 发生reset后,网卡EEPOM里的mac地址会写入网卡的MAC地址过滤寄存器, 驱动可以去修改这个寄存器,现代网卡通常支持很多MAC地址,也就是说,MAC地址是可以被软件设置的.例如,Intel的千兆网卡就支持16个单播 MAC地址,但只有1个是存在EEPROM里的,其它是软件声称和设置的;8.但如果驱动没有加载,网卡已经在设备树上,操作系统完成了步骤1-2的初始化,此时网卡的PHY应该是工作的,但因为没有人设置控制位(CTRL.SLU)来让MAC和PHY 建立联系,所以MAC是不收包的.这个控制位在reset时会再设置成0;9.PHY可以被软件设置加电和断电, 断电状态除了接收管理命令以外,不会接收数据.另外,PHY还能工作在Smart Power Down模式下,link down就进入省电状态; 10.有些多口网卡,多个网口共享一个PHY, 所以BIOS里设置disbale了某个网口, 也未必会把PHY的电源关掉,反过来,也要小心地关掉PHY的电源;11.要详细了解PHY,最终还是要熟悉IEEE以太网的相关协议.。
MAC和PHY组成原理
MAC和PHY组成原理MAC(媒体访问控制)和PHY(物理层)都是在计算机网络中起关键作用的组件。
MAC负责控制数据的传输和流量,而PHY负责将数据从一个设备传输到另一个设备。
下面将详细介绍MAC和PHY的工作原理以及它们如何协同工作来实现高效和可靠的数据传输。
一、MAC(媒体访问控制)MAC层是OSI(开放系统互联)参考模型中的第二层,它负责处理数据帧的传输、接收和管理。
MAC层的功能包括以下几个方面:1.媒体接入控制:MAC层负责控制多个设备之间的资源共享。
当多个设备同时尝试发送数据时,MAC层通过其中一种算法来决定哪一个设备有权利访问共享媒体。
2.帧计时和同步:MAC层通过在数据帧中添加帧定界符和同步字,来保证数据的正确接收。
这些定界符和同步字帮助接收设备识别出帧的开始和结束。
3.帧封装和解封装:MAC层负责将上层的数据封装成数据帧,并附加必要的控制信息,如源地址、目的地址、帧校验序列等。
发送设备将数据帧发送给接收设备,接收设备根据MAC层的控制信息来解析和提取数据。
4.错误检测和纠正:MAC层使用帧校验序列(FCS)来检测数据帧是否传输正确。
接收设备会根据FCS来检验接收到的帧的完整性和准确性,并丢弃损坏的帧。
5.数据流量控制:MAC层根据网络的负载和流量情况来进行流量控制,以确保高效和可靠的数据传输。
当网络负载过高时,MAC层可以使用一些策略,如拥塞控制、流量限制等来降低网络拥塞,并避免数据丢失或性能下降。
二、PHY(物理层)PHY层是OSI参考模型中的第一层,它负责将数据从一个设备传输到另一个设备,主要涉及电信号、电压和物理介质等传输媒介。
PHY层的主要功能有以下几个方面:1.数据编码和解码:PHY层负责将数据从数字格式转换为模拟信号。
它将数字数据转换为电压、电流或光信号,以便在物理环境中传输。
接收设备则执行逆过程,将模拟信号转换为数字数据。
2.数据传输:PHY层根据具体的物理介质来传输数据。
以太网芯片MAC和PHY知识详解
网口扫盲三:以太网芯片MAC和PHY的关系问:如何实现单片以太网微控制器?答:诀窍是将微控制器、以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片,这样能去掉许多外接元器件.这种方案可使MAC和PHY实现很好的匹配,同时还可减小引脚数、缩小芯片面积.单片以太网微控制器还降低了功耗,特别是在采用掉电模式的情况下. 问:以太网MAC是什么?答:MAC即Media Access Control,即媒体访问控制子层协议.该协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质.在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC层.该层协议是以太网MAC由IEEE-802.3以太网标准定义.最新的MAC同时支持10Mbps和100Mbps两种速率.以太网数据链路层其实包含MAC(介质访问控制)子层和LLC(逻辑链路控制)子层.一块以太网卡MAC芯片的作用不但要实现MAC子层和LLC子层的功能,还要提供符合规范的PCI界面以实现和主机的数据交换.MAC从PCI总线收到IP数据包(或者其他网络层协议的数据包)后,将之拆分并重新打包成最大1518Byte,最小64Byte的帧.这个帧里面包括了目标MAC地址、自己的源MAC地址和数据包里面的协议类型(比如IP数据包的类型用80表示).最后还有一个DWORD(4Byte)的CRC码. 可是目标的MAC地址是哪里来的呢?这牵扯到一个ARP协议(介乎于网络层和数据链路层的一个协议).第一次传送某个目的IP地址的数据的时候,先会发出一个ARP包,其MAC的目标地址是广播地址,里面说到:”谁是xxx.xxx.xxx.xxx这个IP地址的主人?”因为是广播包,所有这个局域网的主机都收到了这个ARP请求.收到请求的主机将这个IP地址和自己的相比较,如果不相同就不予理会,如果相同就发出ARP响应包.这个IP地址的主机收到这个ARP请求包后回复的ARP响应里说到:”我是这个IP地址的主人”.这个包里面就包括了他的MAC地址.以后的给这个IP地址的帧的目标MAC地址就被确定了.(其它的协议如IPX/SPX也有相应的协议完成这些操作.)IP地址和MAC地址之间的关联关系保存在主机系统里面,叫做ARP表,由驱动程序和操作系统完成.在Microsoft的系统里面可以用arp-a的命令查看ARP表.收到数据帧的时候也是一样,做完CRC以后,如果没有CRC效验错误,就把帧头去掉,把数据包拿出来通过标准的借口传递给驱动和上层的协议客栈,最终正确的达到我们的应用程序.还有一些控制帧,例如流控帧也需要MAC直接识别并执行相应的行为.以太网MAC芯片的一端接计算机PCI总线,另外一端就接到PHY芯片上,它们之间是通过MII 接口链接的.问:什么是MII?答:MII即媒体独立接口,它是IEEE-802.3定义的以太网行业标准."媒体独立"表明在不对MAC 硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作.它包括一个数据接口,以及一个MAC和PHY之间的管理接口.∙数据接口包括分别用于发送器和接收器的两条独立信道.每条信道都有自己的数据,时钟和控制信号.MII数据接口总共需要16个信号,包括TX_ER,TXD<3:0>,TX_EN,TX_CLK, COL,RXD<3:0>,RX_EX,RX_CLK,CRS,RX_DV等.MII以4位半字节方式传送数据双向传输,时钟速率25MHz.其工作速率可达100Mb/s;∙MII管理接口是个双信号接口,一个是时钟信号,另一个是数据信号.通过管理接口,上层能监视和控制PHY.其管理是使用SMI(Serial Management Interface)总线通过读写PHY的寄存器来完成的.PHY里面的部分寄存器是IEEE定义的,这样PHY把自己的目前的状态反映到寄存器里面,MAC通过SMI总线不断的读取PHY的状态寄存器以得知目前PHY的状态,例如连接速度,双工的能力等.当然也可以通过SMI设置PHY的寄存器达到控制的目的,例如流控的打开关闭,自协商模式还是强制模式等.不论是物理连接的MII总线和SMI总线还是PHY的状态寄存器和控制寄存器都是有IEEE的规范的,因此不同公司的MAC和PHY一样可以协调工作.当然为了配合不同公司的PHY的自己特有的一些功能,驱动需要做相应的修改.MII支持10Mbps和100Mbps的操作,一个接口由14根线组成,它的支持还是比较灵活的,但是有一个缺点是因为它一个端口用的信号线太多,如果一个8端口的交换机要用到112根线,16端口就要用到224根线,到32端口的话就要用到448根线,一般按照这个接口做交换机,是不太现实的,所以现代的交换机的制作都会用到其它的一些从MII简化出来的标准,比如RMII,SMII,GMII等.RMII是简化的MII接口,在数据的收发上它比MII接口少了一倍的信号线,所以它一般要求是50MHz的总线时钟.RMII一般用在多端口的交换机,它不是每个端口安排收,发两个时钟,而是所有的数据端口公用一个时钟用于所有端口的收发,这里就节省了不少的端口数目.RMII的一个端口要求7个数据线,比MII少了一倍,所以交换机能够接入多一倍数据的端口.和MII一样,RMII支持10Mbps和100Mbps的总线接口速度.SMII是由思科提出的一种媒体接口,它有比RMII更少的信号线数目,S表示串行的意思.因为它只用一根信号线传送发送数据,一根信号线传输接受数据,所以为了满足100Mbps的总线接口速度的需求,它的时钟频率就达到了125MHz,为什么用125MHz,是因为数据线里面会传送一些控制信息.SMII一个端口仅用4根信号线完成100Mbps的传输,比起RMII差不多又少了一倍的信号线.SMII在工业界的支持力度是很高的.同理,所有端口的数据收发都公用同一个外部的125MHz时钟.GMII是千兆网的MII接口,这个也有相应的RGMII接口,表示简化了的GMII接口.MII总线在IEEE802.3中规定的MII总线是一种用于将不同类型的PHY与相同网络控制器(MAC)相连接的通用总线.网络控制器可以用同样的硬件接口与任何PHY .GMII(Gigabit MII)GMII采用8位接口数据,工作时钟125MHz,因此传输速率可达1000Mbps.同时兼容MII所规定的10/100 Mbps工作方式.GMII接口数据结构符合IEEE以太网标准.该接口定义见IEEE 802.3-2000.发送器:∙GTXCLK——吉比特TX..信号的时钟信号(125MHz)∙TXCLK——10/100Mbps信号时钟∙TXD[7..0]——被发送数据∙TXEN——发送器使能信号∙TXER——发送器错误(用于破坏一个数据包)注:在千兆速率下,向PHY提供GTXCLK信号,TXD,TXEN,TXER信号与此时钟信号同步.否则,在10/100Mbps速率下,PHY提供TXCLK时钟信号,其它信号与此信号同步.其工作频率为25MHz(100M网络)或2.5MHz(10M网络).接收器:∙RXCLK——接收时钟信号(从收到的数据中提取,因此与GTXCLK无关联)∙RXD[7..0]——接收数据∙RXDV——接收数据有效指示∙RXER——接收数据出错指示∙COL——冲突检测(仅用于半双工状态)管理配置∙MDC——配置接口时钟∙MDIO——配置接口I/O管理配置接口控制PHY的特性.该接口有32个寄存器地址,每个地址16位.其中前16个已经在"IEEE 802.3,2000-22.2.4 Management Functions"中规定了用途,其余的则由各器件自己指定. RMII(Reduced Media Independant Interface)简化媒体独立接口是标准的以太网接口之一,比MII有更少的I/O传输.RMII口是用两根线来传输数据的,MII口是用4根线来传输数据的,GMII是用8根线来传输数据的.MII/RMII只是一种接口,对于10Mbps线速,MII的时钟速率是2.5MHz就可以了,RMII则需要5MHz;对于100Mbps线速,MII需要的时钟速率是25MHz,RMII则是50MHz.MII/RMII用于传输以太网包,在MII/RMII接口是4/2bit的,在以太网的PHY里需要做串并转换,编解码等才能在双绞线和光纤上进行传输,其帧格式遵循IEEE 802.3(10M)/IEEE 802.3u(100M)/IEEE 802.1q(VLAN).以太网帧的格式为:前导符+开始位+目的mac地址+源mac 地址+类型/长度+数据+padding(optional)+32bitCRC如果有vlan,则要在类型/长度后面加上2个字节的vlan tag,其中12bit来表示vlan id,另外4bit 表示数据的优先级!问:以太网PHY是什么?答:PHY是物理接口收发器,它实现物理层.IEEE-802.3标准定义了以太网PHY.包括MII/GMII(介质独立接口)子层,PCS(物理编码子层),PMA(物理介质附加)子层,PMD(物理介质相关)子层,MDI 子层.它符合IEEE-802.3k中用于10BaseT(第14条)和100BaseTX(第24条和第25条)的规范. PHY在发送数据的时候,收到MAC过来的数据(对PHY来说,没有帧的概念,对它来说,都是数据而不管什么地址,数据还是CRC.对于100BaseTX因为使用4B/5B编码,每4bit就增加1bit的检错码),然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去.收数据时的流程反之.PHY还有个重要的功能就是实现CSMA/CD的部分功能.它可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个随机时间后将送数据出去.如果两个碰巧同时送出了数据,那样必将造成冲突,这时候,冲突检测机构可以检测到冲突,然后各等待一个随机的时间重新发送数据.这个随机时间很有讲究的,并不是一个常数,在不同的时刻计算出来的随机时间都是不同的,而且有多重算法来应付出现概率很低的同两台主机之间的第二次冲突.许多网友在接入Internt宽带时,喜欢使用”抢线”强的网卡,就是因为不同的PHY碰撞后计算随机时间的方法设计上不同,使得有些网卡比较”占便宜”.不过,抢线只对广播域的网络而言的,对于交换网络和ADSL这样点到点连接到局端设备的接入方式没什么意义.而且”抢线”也只是相对而言的,不会有质的变化.现在交换机的普及使得交换网络的普及,使得冲突域网络少了很多,极大地提高了网络的带宽.但是如果用HUB,或者共享带宽接入Internet的时候还是属于冲突域网络,有冲突碰撞的.交换机和HUB最大的区别就是:一个是构建点到点网络的局域网交换设备,一个是构建冲突域网络的局域网互连设备.除此之外PHY还提供了和对端设备连接的重要功能并通过LED灯显示出自己目前的连接的状态和工作状态让我们知道.当我们给网卡接入网线的时候,PHY不断发出的脉冲信号检测到对端有设备,它们通过标准的”语言”交流,互相协商并却定连接速度、双工模式、是否采用流控等.通常情况下,协商的结果是两个设备中能同时支持的最大速度和最好的双工模式.这个技术被称为AutoNegotiation或者NWAY,它们是一个意思–自动协商.具体传输过程为,发送数据时,网卡首先侦听介质上是否有载波(载波由电压指示),如果有,则认为其他站点正在传送信息,继续侦听介质.一旦通信介质在一定时间段内(称为帧间缝隙IFG=9.6微秒)是安静的,即没有被其他站点占用,则开始进行帧数据发送,同时继续侦听通信介质,以检测冲突.在发送数据期间,如果检测到冲突,则立即停止该次发送,并向介质发送一个“阻塞”信号,告知其他站点已经发生冲突,从而丢弃那些可能一直在接收的受到损坏的帧数据,并等待一段随机时间(CSMA/CD确定等待时间的算法是二进制指数退避算法).在等待一段随机时间后,再进行新的发送.如果重传多次后(大于16次)仍发生冲突,就放弃发送.接收时,网卡浏览介质上传输的每个帧,如果其长度小于64字节,则认为是冲突碎片.如果接收到的帧不是冲突碎片且目的地址是本地地址,则对帧进行完整性校验,如果帧长度大于1518字节(称为超长帧,可能由错误的LAN驱动程序或干扰造成)或未能通过CRC校验,则认为该帧发生了畸变.通过校验的帧被认为是有效的,网卡将它接收下来进行本地处理.问:造成以太网MAC和PHY单片整合难度高的原因是什么?答:PHY整合了大量模拟硬件,而MAC是典型的全数字器件.芯片面积及模拟/数字混合架构是为什么先将MAC集成进微控制器而将PHY留在片外的原因.更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合.问: 网卡上除RJ-45接口外,还需要其它元件吗?答:PHY和MAC是网卡的主要组成部分,网卡一般用RJ-45插口,10M网卡的RJ-45插口也只用了1,2,3,6四根针,而100M或1000M网卡的则是八根针都是全的.除此以外,还需要其它元件,因为虽然PHY提供绝大多数模拟支持,但在一个典型实现中,仍需外接6,7只分立元件及一个局域网绝缘模块.绝缘模块一般采用一个1:1的变压器.这些部件的主要功能是为了保护PHY 免遭由于电气失误而引起的损坏.另外,一颗CMOS制程的芯片工作的时候产生的信号电平总是大于0V的(这取决于芯片的制程和设计需求),但是这样的信号送到100米甚至更长的地方会有很大的直流分量的损失.而且如果外部网线直接和芯片相连的话,电磁感应(打雷)和静电,很容易造成芯片的损坏.再就是设备接地方法不同,电网环境不同会导致双方的0V电平不一致,这样信号从A传到B,由于A 设备的0V电平和B点的0V电平不一样,这样会导致很大的电流从电势高的设备流向电势低的设备.为了解决以上问题Transformer(隔离变压器)这个器件就应运而生.它把PHY送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过电磁场的转换耦合到连接网线的另外一端.这样不但使网线和PHY之间没有物理上的连接而换传递了信号,隔断了信号中的直流分量,还可以在不同0V电平的设备中传送数据.隔离变压器本身就是设计为耐2KV~3KV的电压的.也起到了防雷感应(我个人认为这里用防雷击不合适)保护的作用.有些朋友的网络设备在雷雨天气时容易被烧坏,大都是PCB设计不合理造成的,而且大都烧毁了设备的接口,很少有芯片被烧毁的,就是隔离变压器起到了保护作用.隔离变压器本身是个被动元件,只是把PHY的信号耦合了到网线上,并没有起到功率放大的作用.那么一张网卡信号的传输的最长距离是谁决定的呢?一张网卡的传输最大距离和与对端设备连接的兼容性主要是PHY决定的.但是可以将信号送的超过100米的PHY其输出的功率也比较大,更容易产生EMI的问题.这时候就需要合适的Transformer与之配合.作PHY的老大公司Marvell的PHY,常常可以传送180~200米的距离,远远超过IEEE的100米的标准.RJ-45的接头实现了网卡和网线的连接.它里面有8个铜片可以和网线中的4对双绞(8根)线对应连接.其中100M的网络中1,2是传送数据的,3,6是接收数据的.1,2之间是一对差分信号,也就是说它们的波形一样,但是相位相差180度,同一时刻的电压幅度互为正负.这样的信号可以传递的更远,抗干扰能力强.同样的,3,6也一样是差分信号.网线中的8根线,每两根扭在一起成为一对.我们制作网线的时候,一定要注意要让1,2在其中的一对,3,6在一对.否则长距离情况下使用这根网线的时候会导致无法连接或连接很不稳定. 现在新的PHY支持AUTO MDI-X功能(也需要Transformer支持).它可以实现RJ-45接口的1,2上的传送信号线和3,6上的接收信号线的功能自动互相交换.有的PHY甚至支持一对线中的正信号和负信号的功能自动交换.这样我们就不必为了到底连接某个设备需要使用直通网线还是交叉网线而费心了.这项技术已经被广泛的应用在交换机和SOHO路由器上.在1000Basd-T网络中,其中最普遍的一种传输方式是使用网线中所有的4对双绞线,其中增加了4,5和7,8来共同传送接收数据.由于1000Based-T网络的规范包含了AUTOMDI-X功能,因此不能严格确定它们的传出或接收的关系,要看双方的具体的协商结果.一片网卡主要功能的实现就基本上是上面这些器件了.其他的,还有一颗EEPROM芯片,通常是一颗93C46.里面记录了网卡芯片的供应商ID,子系统供应商ID,网卡的MAC地址,网卡的一些配置,如SMI总线上PHY的地址,BOOTROM的容量,是否启用BOOTROM引导系统等东西.很多网卡上还有BOOTROM这个东西.它是用于无盘工作站引导操作系统的.既然无盘,一些引导用必需用到的程序和协议栈就放到里面了,例如RPL,PXE等.实际上它就是一个标准的PCI ROM.所以才会有一些硬盘写保护卡可以通过烧写网卡的BootRom来实现.其实PCI设备的ROM是可以放到主板BIOS里面的.启动电脑的时候一样可以检测到这个ROM并且正确识别它是什么设备的.AGP在配置上和PCI很多地方一样,所以很多显卡的BIOS也可以放到主板BIOS里面.这就是为什么板载的网卡我们从来没有看到过BOOTROM的原因.最后就是电源部分了.大多数网卡现在都使用3.3V或更低的电压.有的是双电压的.因此需要电源转换电路.而且网卡为了实现Wake on line功能,必须保证全部的PHY和MAC的极少一部分始终处于有电的状态,这需要把主板上的5V Standby电压转换为PHY工作电压的电路.在主机开机后,PHY 的工作电压应该被从5V转出来的电压替代以节省5V Standby的消耗.(许多劣质网卡没有这么做).有Wake on line功能的网卡一般还有一个WOL的接口.那是因为PCI2.1以前没有PCI设备唤醒主机的功能,所以需要着一根线通过主板上的WOL的接口连到南桥里面以实现WOL的功能.新的主板合网卡一般支持PCI2.2/2.3,扩展了PME#信号功能,不需要那个接口而通过PCI总线就可以实现唤醒功能.我们现在来看两个图MAC和PHY分开的以太网卡MAC和PHY集成在一颗芯片的以太网卡上图中各部件为:①RJ-45接口②Transformer(隔离变压器)③PHY芯片④MAC芯片⑤EEPROM⑥BOOTROM插槽⑦WOL接头⑧晶振⑨电压转换芯片⑩LED指示灯网卡的功能主要有两个:一是将电脑的数据封装为帧,并通过网线(对无线网络来说就是电磁波)将数据发送到网络上去;二是接收网络上其它设备传过来的帧,并将帧重新组合成数据,发送到所在的电脑中.网卡能接收所有在网络上传输的信号,但正常情况下只接受发送到该电脑的帧和广播帧,将其余的帧丢弃.然后,传送到系统CPU做进一步处理.当电脑发送数据时,网卡等待合适的时间将分组插入到数据流中.接收系统通知电脑消息是否完整地到达,如果出现问题,将要求对方重新发送.问:10BaseT和100BaseTX PHY实现方式不同的原因何在?答:两种实现的分组描述本质上是一样的,但两者的信令机制完全不同.其目的是阻止一种硬件实现容易地处理两种速度.10BaseT采用曼彻斯特编码,100BaseTX采用4B/5B编码.问:什么是曼彻斯特编码?答:曼彻斯特编码又称曼彻斯特相位编码,它通过相位变化来实现每个位(图2).通常,用一个时钟周期中部的上升沿表示“1”,下降沿表示“0”.周期末端的相位变化可忽略不计,但有时又可能需要将这种相位变化计算在内,这取决于前一位的值.问:什么是4B/5B编码?答:4B/5B编码是一种块编码方式.它将一个4位的块编码成一个5位的块.这就使5位块内永远至少包含2个“1”转换,所以在一个5位块内总能进行时钟同步.该方法需要25%的额外开销. 问:网卡的MAC和PHY间的关系?答:网卡工作在osi的最后两层,物理层和数据链路层,物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口.物理层的芯片称之为PHY.数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能.以太网卡中数据链路层的芯片称之为MAC控制器.很多网卡的这两个部分是做到一起的.他们之间的关系是pci总线接mac总线,mac接phy,phy接网线(当然也不是直接接上的,还有一个变压装置).PHY和MAC之间是如何传送数据和相互沟通的.通过IEEE定义的标准的MII/GigaMII(Media Independed Interfade,介质独立界面)界面连接MAC和PHY.这个界面是IEEE定义的.MII界面传递了网络的所有数据和数据的控制.ETHERNET的接口实质是MAC通过MII总线控制PHY的过程.问:网线上传输的是模拟信号还是数字信号?答:是模拟信号.因为它传出和接收是采用的模拟的技术.虽然它传送的信息是数字的(并不是传送的信息是数字的信号就可以叫做数字信号).简单的例子:我们知道电话是模拟信号,但是当我们拨号上网的时候,电话线里传送的是数字信息,但信号本身依旧是模拟的.然而ADSL同样是通过电话线传送的,却是数字信号.这取决于它传出和接受采用的技术.问:若操作系统没有加载网卡驱动,网卡虽然在系统设备树上,但网卡接口创建不了,那网卡实际能不能接收到数据?答:这里面有很多细节, 我根据Intel网卡的Spec大概写了写, 想尽量写的通俗一些,所以没有刻意用Spec里的术语,另外本文虽然讲的是MAC/PHY,但光口卡的(SERDES)也是类似的.1.PCI设备做reset以后进入D0uninitialized(非初始化的D0状态, 参考PCI电源管理规范),此时网卡的MAC和DMA都不工作,PHY是工作在一个特殊的低电源状态的;2.操作系统创建设备树时,初始化这个设备,PCI命令寄存器的Memory Access Enable orthe I/O Access Enable bit会被enable, 这就是D0active.此时PHY/MAC就使能了;3.PHY被使能应该就可以接收物理链路上的数据了,否则不能收到FLP/NLP, PHY就不能建立物理连接.但这类包一般是流量间歇发送的;4.驱动程序一般要通过寄存器来控制PHY, 比如自动协商speed/duplex, 查询物理链路的状态Link up/down;5.MAC被使能后, 如果没有驱动设置控制寄存器的一个位(CTRL.SLU )的话, MAC和PHY是不能通讯的, 就是说MAC不知道PHY的link已经ready, 所以收不到任何数据的.这位设置以后, PHY完成自协商, 网卡才会有个Link change的中断,知道物理连接已经Link UP了;6.即使Link已经UP, MAC还需要enable接收器的一个位(RCTL.RXEN ),包才可以被接收进来,如果网卡被reset,这位是0,意味着所有的包都会被直接drop掉,不会存入网卡的FIFO.老网卡在驱动退出前利用这位关掉接收.Intel的最新千兆网卡发送接收队列的动态配置就是依靠这个位的,重新配置的过程一定要关掉流量;7.无论驱动加载与否, 发生reset后,网卡EEPOM里的mac地址会写入网卡的MAC地址过滤寄存器, 驱动可以去修改这个寄存器,现代网卡通常支持很多MAC地址,也就是说,MAC地址是可以被软件设置的.例如,Intel的千兆网卡就支持16个单播MAC地址,但只有1个是存在EEPROM里的,其它是软件声称和设置的;8.但如果驱动没有加载,网卡已经在设备树上,操作系统完成了步骤1-2的初始化,此时网卡的PHY应该是工作的,但因为没有人设置控制位(CTRL.SLU)来让MAC和PHY建立联系,所以MAC是不收包的.这个控制位在reset时会再设置成0;9.PHY可以被软件设置加电和断电, 断电状态除了接收管理命令以外,不会接收数据.另外,PHY还能工作在Smart Power Down模式下,link down就进入省电状态;10.有些多口网卡,多个网口共享一个PHY, 所以BIOS里设置disbale了某个网口, 也未必会把PHY的电源关掉,反过来,也要小心地关掉PHY的电源;11.要详细了解PHY,最终还是要熟悉IEEE以太网的相关协议.。
phy的工作原理
phy的工作原理
PHY是指物理层,也被称为物理介质依赖或物理层控制器。
它是计算机网络中的一层,负责将数据从一个节点传输到另一个节点。
PHY的工作原理是通过将数据转换为适用于传输介
质的信号形式,将数据从发送方传输到接收方。
PHY的工作原理基于以下几个方面:
1. 数据编码:PHY将来自数据链路层的数据转换为电信号形式,以便在物理介质上传输。
常见的数据编码方法包括曼彻斯特编码、差分曼彻斯特编码等。
2. 调制解调:在传输数据之前,PHY负责将数据信号转换为
适应不同传输介质的信号形式。
例如,在有线传输中,PHY
可以将数字信号转换为模拟信号,然后再传输到接收端。
在无线传输中,PHY负责将数字信号转换为无线电波进行传输。
3. 信道传输:PHY将经过编码和调制的信号传输到物理介质中,通过电缆、光纤或无线信号传播到接收端。
4. 接收解码:接收端的PHY负责接收传输过来的信号,并将
其解码为原始数据。
5. 错误检测和纠正:PHY还可以使用差错检测和纠正技术,
如循环冗余检验(CRC),来检测和纠正传输过程中的错误。
总的来说,PHY的工作原理是将数据从上层传输到物理介质,
并在接收端将其还原为原始数据。
它涉及数据编码、调制解调、信道传输、接收解码以及错误检测和纠正等过程,以确保数据的可靠传输。
以太网原理MAC和PHY
以太网原理MAC和PHY以太网是一种局域网(LAN)技术,用于在计算机之间传输数据。
以太网原理包括物理层(PHY)和媒体访问控制层(MAC)两个部分。
物理层(PHY)是以太网技术的底层,负责将传输的数据转化为电信号,并在网络中传输和接收数据。
PHY负责处理传输介质、传输速率等物理层面的细节。
MAC层是以太网技术的上层,负责管理和控制网络中的通信。
MAC层协议定义了数据的传输方式、帧结构、帧格式等规范,以确保数据的可靠传输和有效利用。
在以太网中,数据被分割成一系列的帧(Frame),每个帧由MAC层添加标识符和校验码,并传输到物理层。
物理层将数据转化成电信号,并通过传输介质(如双绞线、光纤等)传输到目标计算机。
PHY层通过一系列的电器和电子设备来处理数据的传输。
这些设备包括编码器、解码器、物理传输媒介、放大器等。
编码器和解码器负责将数据转化为电信号和相反的操作,物理传输媒介负责在不同的介质中传输数据,放大器用于增强信号的强度。
当数据传输到目标计算机后,物理层将电信号转化为数据,并传递给MAC层处理。
MAC层根据帧的标识符和校验码来验证数据的完整性和正确性,并将其传递给上层应用程序。
MAC层还负责管理和控制网络中的通信。
为了避免数据冲突,以太网采用了一种称为“载波侦听多址接入/碰撞检测”(Carrier Sense Multiple Access/Collision Detection,CSMA/CD)的协议。
该协议允许多个计算机同时发送数据,但如果检测到冲突,则发送方会停止发送,等待一段随机时间后重新发送。
以太网的传输速率通常用Mbps(兆位每秒)来衡量,常见的速率有10Mbps、100Mbps和1000Mbps(即千兆以太网,也被称为千兆网)。
总结起来,以太网的原理包括物理层(PHY)和媒体访问控制层(MAC)两个部分。
PHY层负责将数据转化为电信号,并在物理介质上传输和接收数据。
MAC层负责管理和控制网络中的通信,确保数据的可靠传输和有效利用。
phy工作原理
phy工作原理光传输模型(Optical Transport Model)是一种基于光学原理的通信模型,用于解释光的传输和传输过程中光的特性。
其中,PHY (物理层)用于实现信号在物理介质中的传输,是整个通信系统中最底层的一个节点,负责将上层的数字信号转化为物理信号,并通过物理介质将其传输到接收端。
PHY的工作原理主要包括以下几个方面:1. 编码与解码:PHY负责将上层传输过来的数字信号进行编码,将其转换为物理信号。
常用的编码方式包括曼彻斯特编码、差分曼彻斯特编码等。
编码后的信号通过光模块转换为光信号,并通过光纤传输到接收端。
接收端的PHY则对接收到的光信号进行解码,将其还原为数字信号,供上层处理。
2. 光模块设计:光模块是实现光信号转换的关键部件,由发射模块和接收模块组成。
发射模块主要包括激光器和调制器,负责将数字信号转换为光信号;接收模块包括光电探测器和放大器,负责将接收到的光信号转换为电信号并放大。
PHY需要设计合适的光模块,以实现高速、高效的光信号转换和传输。
3. 光纤传输:PHY通过光模块将光信号传输到接收端。
在传输过程中,光信号会受到光纤衰减、色散、非线性等影响,所以在PHY设计中需要考虑这些光纤特性,采用相应的调制方案和传输技术。
常用的传输技术包括直接调制、外调制、相干调制等。
4. 误码率检测与纠错:在光传输过程中,由于光信号受到各种干扰和衰减,可能会产生误码。
PHY需要在接收端进行误码率检测,通过采用纠错编码等技术,来提高信号传输的可靠性和稳定性。
例如,在高速光传输中,通常会采用前向纠错编码(FEC)来提高系统的抗干扰能力。
5. 温度和电压调节:PHY的工作稳定性会受到温度和电压等因素的影响,所以需要进行温度和电压调节。
一般会采用温度传感器和压力传感器等设备,对温度和电压进行实时监测和调节,确保PHY在合适的工作状态下。
总结来说,PHY的工作原理是将上层的数字信号转化为物理信号,并通过光模块将光信号传输到接收端。
MAC和PHY的工作原理
MAC和PHY的工作原理MAC(Media Access Control)和PHY(Physical Layer)是指网络协议中的两个重要组成部分。
MAC层是网络协议中的第二层,用于控制网络中的数据传输。
它负责在共享媒体环境中决定哪个设备有权利发送数据,并解决可能产生的冲突问题。
MAC层的工作原理主要分为两个方面:介质访问控制和错误检测与纠正。
介质访问控制是MAC层的主要任务之一、在共享媒体环境中,多个设备都可以同时使用同一条传输线路来发送数据。
为了避免冲突,MAC层使用了各种访问控制策略,例如CSMA/CD(Carrier Sense Multiple Access with Collision Detection)和CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)。
这些策略可以监测传输线路上的信号,以确定是否有其他设备正在发送数据。
如果有冲突发生,MAC层还需要进行冲突检测,并通过一定的算法来解决冲突。
错误检测与纠正也是MAC层的重要任务之一、在数据传输过程中,可能会发生一些传输错误,例如噪声、干扰等。
MAC层通过使用校验码(CRC)和重传机制来检测和纠正这些错误。
校验码可以通过对数据帧进行计算得到,然后在接收端进行比较以确定是否有错误发生。
如果有错误发生,MAC层会要求发送端重新发送数据帧,以确保数据的完整性和准确性。
PHY层是网络协议中的第一层,负责将数据在物理媒体上进行传输。
它主要依靠物理媒体(例如电缆、光纤等)和传输设备(例如网卡)来完成数据传输。
PHY层的工作原理主要包括编码、调制和解调、传输速率控制等。
编码是PHY层的主要任务之一、在数据传输过程中,需要将数字信号转换为模拟信号以在物理媒体上进行传输。
PHY层使用特定的编码方案,例如曼彻斯特编码或4B/5B编码,将数字信号转换为模拟信号,并在接收端将其还原为数字信号。
MAC & PHY 学习
MAC & PHY 学习MAC和PHY工作在OSI的最后两层,数据链路层和物理层。
以太网MAC(媒体接入控制器),由IEEE-802.3以太网标准定义。
它实现了一个数据链路层。
最新的MAC支持10Mbps和100Mbps两种速率,实现MII,RGMII,GMII等接口。
在发送数据的时候,MAC协议事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC 协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC 层。
以太网PHY(物理接口收发器),由IEEE-802.3以太网标准定义。
它实现了物理层。
包括MII/GMII(媒体独立接口)子层、PCS(物理编码子层)、PMA(物理媒体附加)子层。
PMD (物理介质相关)子层,MDI子层。
PHY对所有传输的数据只是进行编码转化,没有对有效数据信号进行任何分析或改变。
但是,所有有的数据传输都必须经过PHY 发送和接收才会传输到目标MAC。
此外,PHY还可以完成连接判断,自动协商以及冲突检测。
MAC可以通过修改PHY的寄存器完成对自动协商的监控,当然也可以读取PHY 的寄存器来判断PHY 的状态。
例如100BseTX,它采用4B/5B编码。
PHY在发送数据的时候,收到MAC过来的数据,每4bit就增加1bit的检错码,然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码后,以模拟信号形式把数据送出去。
MAC和PHY的架构及接口关系如下图所示:PHY 工作在10Mbps 时和工作在100Mbps 时,其需要的功能不同。
目前的10/100M PHY 是将其做到了一起,内部都是由PCS/PMA/PMD及媒体无关接口MDI接口组成的。
只不过是当PHY 工作在10Mbps 时,有些功能没有用到。
物理编码子层PCS(PHYSICAL CODING SUBLAYER):在100BASE-X 模式时,提供RMII 接口、4B/5B 编码、串并转换以及冲突检测功能,同时只要TxEN 无效就提供“idle”信号给PMD 层。
以太网接口mac+phy(收发器)
mac 与phy通过mii连接,phy有phy通过网线连接2.RMII接口分析2.1 RMII接口信号定义RMII接口(Reduced MII接口)是简化的MII接口。
它也分为MAC 模式和PHY模式。
RMII接口接收、发送和控制的同步参考时钟REF_CLK是由外部时钟源提供的50MHz信号。
这与原来的MII接口不同,MII接口中发送和接收的时钟是分开的,且都是由物理层芯片提供给MAC层芯片。
这里需要注意的是由于数据接收时钟是由外部晶振提供而不是由载波信号提取的,所以在物理层芯片内的数据接收部分要设计一个FIFO,用来协调两个不同的时钟,在发送接收的数据时提供缓冲。
物理层芯片的发送部分则不需要一个FIFO,它直接将接收到的数据发送出去就可以了。
CRS_DV是MII中的RXDV和CRS(Carrier_Sense)两个信号合并而成,当介质不空闲时CRS_DV以和REF_CLK相异步的方式给出。
当CRS比RX_DV早结束时(即载波消失而队列中还有数据要传输时),就会出现CRS_ DV在半位元组的边界以25MHz(在100MHz模式下)或2.5MHz(在10MHz模式下)的频率在0、1之间来回切换。
因此,MAC能够从CRS_ DV中精确的恢复出RX_DV和CRS,见图14。
RMII接口的MAC模式定义:RMII接口PHY模式定义:2.2 RMII接口时序特性RMII接口的发送部分包括TX_EN(发送使能)和TXD[1:0](发送数据)两类信号线,它们与时钟CLK_REF同步。
当MAC层有数据要发送时,TX_EN变为有效,数据便出现在TXD[1:0]上。
对于100M速率时,物理层芯片在每个时钟周期都要采样TXD[1:0]上的数据,而在10M速率时,物理层芯片要每隔10个时钟周期采样TXD[1:0]上的数据,而MAC层发送的每个数据会在TXD[1:0]上保留10个周期。
发送部分的波形图如下图13 RMII发送部分的时序关系图RMII接口的接收部分包括CRS_DV(载波和数据有效)、RXD[1:0](接收数据)、RX_ER(接收出错)三类信号线,其中RXD[1:0]和RX_ER与时钟CLK_REF同步,而CRS_DV信号与时钟是异步的。
MAC和PHY组成原理
MAC和PHY组成原理MAC (Media Access Control) 和 PHY (Physical Layer) 是组成网络通信系统的两个重要组成部分。
MAC 层位于 OSI 参考模型的第二层,负责控制数据的接入和传输。
PHY 层位于 OSI 参考模型的第一层,负责处理数据的物理层面的传输。
MAC 层主要负责数据链路层的协议操作,包括数据帧的组装、帧的发送和接收、以太网地址的管理等功能。
MAC 层的主要目的是为多个设备之间提供数据传输的可靠性和高效性。
MAC 层使用了不同的访问控制方法,如 CSMA/CD (Carrier Sense Multiple Access with Collision Detection) 或 CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance),来确保数据的正常传输。
PHY层主要负责信号的调制、解调、编解码等物理层面的操作。
PHY层将数据转换成适合在物理介质上传输的信号,并在接收端将收到的信号还原为数据。
PHY层的功能包括信号的调制、功率控制、误码率的监测和纠错等。
除了有线通信,PHY层也负责处理无线通信中的信号传输,如无线局域网(WLAN)或蓝牙等。
MAC和PHY之间通过接口来进行通信和协调工作。
MAC层将数据帧传递给PHY层并控制数据的发送和接收,同时PHY层将物理层面的信息传递给MAC层进行处理。
这种分层设计使得网络系统可以更加灵活和可扩展,不同的MAC层可以和不同的PHY层组合使用,以适应不同类型的网络需求。
在实际应用中,MAC 层通常与PHY 层共同组成一个网络接口,如以太网接口、Wi-Fi 接口等。
以太网接口通常由以太网控制器 (Ethernet Controller) 来实现 MAC 层的功能,而PHY 层则由以太网收发器(Ethernet Transceiver) 来实现。
以太网MAC和PHY
以太网PHY和MAC对应OSI模型的两个层——物理层和数据链路层物理层定义了数据传输和接受所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并想数据链路层设备提供标准接口(RGMII/GMII/MII)。
数据链路层提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能问:以太网PHY是什么?答:PHY是物理接口收发器,它实现物理层。
IEEE 802.3标准定义了以太网PHY。
他符合IEEE 802.3k中用于10BaseT(第14条)和100BaseTX(第24条和第25条)的规范。
问:以太网MAC是什么答:MAC就是媒体接口控制器。
以太网MAC由IEEE 802.3以太网标准定义,他事先了一个数据链路层。
最新的MAC同时支持10/100/1000Mbps速率。
通常情况下,他实现MII/GMII/RGMII。
问:什么是MII?答:MII(Medium Independent Interface)即媒体独立接口。
它是IEEE-802.3定义的以太网行业标准。
它包括一个数据接口,以及一个MAC和PHY之间的管理接口。
数据接口包括分别用于发送器和接收器的两条独立信道。
每条信道都有自己的数据、时钟和控制信号。
MII数据接口总共需要16个信号。
管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。
通过管理接口,上层能监视和控制PHY。
MII标准接口用于连快Fast Ethernet MAC-block与PHY。
“介质无关”表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。
在其他速率下工作的与 MII等效的接口有:AUI(10M 以太网)、GMII (Gigabit 以太网)和XAUI(10-Gigabit 以太网)。
此外还有RMII(Reduced MII)、GMII(Gigabit MII)、RGMII(Reduced GMII)SMII等。
以太网原理MAC和PHY
以太网原理MAC和PHY以太网(Ethernet)是一种计算机网络技术,用于在局域网(LAN)中进行数据传输。
它是一种广泛应用的网络协议,其主要优势是简单、可靠和成本低廉。
以太网协议包含两个关键组成部分:媒体访问控制(MAC)子层和物理层(PHY)。
物理层(PHY)负责将以太网帧从数据链路层传输到实际的物理媒体上。
它的主要任务是将数字数据转换为电气信号,然后通过传输媒介传送。
物理层使用一些特定的编码和调制技术来解决数据在物理媒体上的传输问题。
这些技术包括编码、调制解调和时钟恢复等。
物理层还负责定义信道的特性和接口标准,包括电压电平、数据传输速率、传输介质类型和连接器类型等。
这种标准确保了不同厂商的网络设备能够相互兼容工作。
例如,10BASE-T以太网使用了双绞线作为传输介质,传输速率为10Mbps。
而1000BASE-T以太网使用了Cat 5e或Cat 6双绞线作为传输介质,传输速率为1Gbps。
物理层还处理一些错误检测和纠正机制,以确保数据的可靠传输。
例如,以太网使用了冗余检验码(CRC)来检测帧中的传输错误。
如果接收端检测到错误,它会向发送端发送一个特殊的信号,要求重新发送数据。
这种机制确保了数据在传输过程中的完整性和准确性。
与物理层相对应的是媒体访问控制(MAC)子层。
MAC子层的主要任务是实现数据帧的分组、发送和接收。
它根据接收到的数据帧的目的地址进行过滤,并将所接收到的数据传递给上层的网络协议栈。
同时,MAC子层还负责将数据帧分组,并在物理层上以合适的方式发送出去。
MAC子层使用了一种称为CSMA/CD的访问控制协议,即载波监听多点接入/冲突检测。
CSMA/CD协议要求发送端在发送数据之前先监听信道,以确保没有其他设备正在传输数据。
如果检测到信道中有其他设备正在传输数据,发送端会等待一段时间后重新发送。
这种机制可以解决多个设备同时访问网络时的冲突问题。
MAC子层还负责对数据帧进行封装和解封装。
以太网原理:MAC和PHY
以太网设计FAQ:以太网MAC和PHY问:如何实现单片以太网微控制器?答:诀窍是将微控制器、以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片,这样能去掉许多外接元器件。
这种方案可使MAC和PHY实现很好的匹配,同时还可减小引脚数、缩小芯片面积。
单片以太网微控制器还降低了功耗,特别是在采用掉电模式的情况下。
问:以太网MAC是什么?答:MAC就是媒体接入控制器。
以太网MAC由IEEE-802.3以太网标准定义。
它实现了一个数据链路层。
最新的MA C同时支持10Mbps和100Mbps两种速率。
通常情况下,它实现MII接口。
问:什么是MII?答:MII即媒体独立接口,它是IEEE-802.3定义的以太网行业标准。
它包括一个数据接口,以及一个MAC和PHY之间的管理接口(图1)。
数据接口包括分别用于发送器和接收器的两条独立信道。
每条信道都有自己的数据、时钟和控制信号。
MII数据接口总共需要16个信号。
管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。
通过管理接口,上层能监视和控制PHY。
问:以太网PHY是什么?答:PHY是物理接口收发器,它实现物理层。
IEEE-802.3标准定义了以太网PHY。
它符合IEEE-802.3k中用于10B aseT(第14条)和100BaseTX(第24条和第25条)的规范。
问:造成以太网MAC和PHY单片整合难度高的原因是什么?答:PHY整合了大量模拟硬件,而MAC是典型的全数字器件。
芯片面积及模拟/数字混合架构是为什么先将MAC集成进微控制器而将PHY留在片外的原因。
更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合。
问:除RJ-45接口外,还需要其它元件吗?答:需要其它元件。
虽然PHY提供绝大多数模拟支持,但在一个典型实现中,仍需外接6、7只分立元件及一个局域网绝缘模块。
绝缘模块一般采用一个1:1的变压器。
这些部件的主要功能是为了保护PHY免遭由于电气失误而引起的损坏。
以太网PHY和MAC
以太网PHY和MAC对应OSI模型的两个层——物理层和数据链路层。
物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口(RGMII / GMII / MII)。
数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。
问:以太网PHY是什么?答:PHY是物理接口收发器,它实现物理层。
IEEE-802.3标准定义了以太网PHY。
它符合IEEE-802.3k中用于10BaseT(第14条)和100BaseTX(第24条和第25条)的规范。
问:以太网MAC是什么?答:MAC就是媒体接入控制器。
以太网MAC由IEEE-802.3以太网标准定义。
它实现了一个数据链路层。
最新的MAC同时支持10/100/1000Mbps速率。
通常情况下,它实现MII/GMII/RGMII接口,来同行业标准PHY器件实现接口。
问:什么是MII?答:MII(Medium Independent Interface)即媒体独立接口。
它是IEEE-802.3定义的以太网行业标准。
它包括一个数据接口,以及一个MAC和PHY之间的管理接口。
数据接口包括分别用于发送器和接收器的两条独立信道。
每条信道都有自己的数据、时钟和控制信号。
MII数据接口总共需要16个信号。
管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。
通过管理接口,上层能监视和控制PHY。
MII标准接口用于连快Fast Ethernet MAC-block与PHY。
“介质无关”表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。
在其他速率下工作的与 MII等效的接口有:AUI(10M 以太网)、GMII(Gigabit 以太网)和XAUI(10-Gigabit 以太网)。
此外还有RMII(Reduced MII)、GMII(Gigabit MII)、RGMII(Reduced GMII)SMII 等。
mac,psc,serdes,phy工作原理
mac,psc,serdes,phy工作原理1. MAC (Media Access Control) 的工作原理:MAC 层位于OSI 模型中的数据链路层,负责协调各个节点发送和接收数据的时间,防止数据冲突和错误。
它通过硬件的方式向网络上的所有节点广播数据帧,其中包含了目的地址、源地址、数据内容等信息。
MAC 通常采用CSMA/CD (载波监听多路访问/冲突检测)协议来协调不同节点的发送,保证网络的顺利运行。
2. PSC (Physical Coding Sublayer) 的工作原理:PSC 层是数据链路层中的子层,负责将数据流转换成特定的电信号和光信号。
它采用一种调制解调方式来将数据转换成电信号或光信号,然后通过物理层来进行传输。
一般来说,PSC 会根据不同的传输介质和通信协议而采用不同的调制解调方式,如NRZ(非归零码)、RZ(返回零码)、Manchester 等码型。
3. SerDes (Serializer/Deserializer) 的工作原理:SerDes 是一种数字信号传输技术,可以将高速串行数据流转换成对应的并行数据流,并进行编解码、为传输做好准备。
在发送端,它接收来自MAC/PSC 层的数据,并将其进行流控、编码、串行化和电平调整等处理;在接收端,它将经过传输的串行数据流重新转换成并行数据流,并进行解码和流控等处理。
4. PHY (Physical Layer) 的工作原理:PHY 层负责将数字信号转化为适合于不同物理介质(如铜线、光缆、无线电波等)的模拟信号,并将其发送到物理介质中进行传输。
PHY 层包括多个子层,如媒介访问子层(MAC)、物理编码子层(PCS)、PHY 变压器等。
由于不同的物理介质和传输协议对PHY 层的要求不同,因此相应的PHY 层也需要根据不同的标准进行设计和实现。
MAC和PHY的工作原理
MAC和PHY的工作原理MAC(媒体访问控制)和PHY(物理层)是计算机网络中的两个重要概念,它们共同参与实现数据的传输和通信。
MAC负责数据帧的生成、解析以及网络中各个节点之间的访问和协调,而PHY负责将生成的数据帧经过适当的编码、调制、传输等物理过程转换为电信号,进而在网络中传输。
下面将详细介绍MAC和PHY的工作原理。
首先,我们先了解MAC的工作原理。
MAC协议是一种数据链路层协议,主要负责管理和控制网络节点之间的数据传输。
其工作原理如下:1.定义数据帧格式:MAC协议规定了数据帧的格式,包括帧头、帧尾、地址等字段。
这些字段用于标识数据帧的起始和结束、发送和接收节点的地址等信息。
2.地址分配:MAC协议采用唯一的物理地址(MAC地址)对网络节点进行标识和寻址。
每个网络设备都有一个唯一的MAC地址,用于区分网络中的不同设备。
3.帧生成与解析:发送节点在数据链路层将数据转换成数据帧,并附加上适当的帧头和帧尾信息。
接收节点在数据链路层解析数据帧,并将其转换回原始数据。
4.轮询和仲裁:MAC协议使用轮询或仲裁机制来管理节点之间的访问顺序。
轮询机制顺序地让每个节点按照一定的顺序传输数据。
仲裁机制当多个节点同时发生数据帧时,通过一种算法来决定哪个节点优先传输。
5.碰撞检测与重传:当两个节点同时发送数据帧时,可能会发生碰撞。
MAC协议通过碰撞检测机制来感知碰撞的发生,然后触发重传机制,让发送节点重新发送数据帧。
接下来,我们详细了解PHY的工作原理。
PHY是网络中的物理层,负责将数据帧经过一系列物理过程转换为电信号,以便在网络中传输。
其工作原理如下:1.编码与调制:PHY层将数据帧进行适当的编码,并使用调制技术将数字数据转换为模拟信号。
常用的调制技术包括频移键控(FSK)、相移键控(PSK)和正交振幅调制(QAM)等。
2.帧同步:通过在数据帧中插入同步信号,PHY层确保发送和接收节点之间的时钟同步,以便正确解析数据帧。
网卡工作原理之mac与phy间连接控制
网卡工作在osi的最后两层,物理层和数据链路层,物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。
物理层的芯片称之为PHY。
数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。
以太网卡中数据链路层的芯片称之为MAC控制器。
很多网卡的这两个部分是做到一起的。
他们之间的关系是pci总线接mac总线,mac接phy,phy接网线(当然也不是直接接上的,还有一个变压装置)。
下面继续让我们来关心一下PHY和MAC之间是如何传送数据和相互沟通的。
通过IEEE定义的标准的MII/GigaMII(MediaIndependedInterfade,介质独立界面)界面连接MAC和PHY。
这个界面是IEEE定义的。
MII界面传递了网络的所有数据和数据的控制。
而MAC对PHY的工作状态的确定和对PHY的控制则是使用SMI(Serial ManagementInterface)界面通过读写PHY的寄存器来完成的。
PHY 里面的部分寄存器也是IEEE定义的,这样PHY把自己的目前的状态反映到寄存器里面,MAC通过SMI总线不断的读取PHY的状态寄存器以得知目前PHY 的状态,例如连接速度,双工的能力等。
当然也可以通过SMI设置PHY的寄存器达到控制的目的,例如流控的打开关闭,自协商模式还是强制模式等。
我们看到了,不论是物理连接的MII界面和SMI总线还是PHY的状态寄存器和控制寄存器都是有IEEE的规范的,因此不同公司的MAC和PHY一样可以协调工作。
当然为了配合不同公司的PHY的自己特有的一些功能,驱动需要做相应的修改。
一片网卡主要功能的实现就基本上是上面这些器件了。
其他的,还有一颗EEPROM芯片,通常是一颗93C46。
里面记录了网卡芯片的供应商ID、子系统供应商ID、网卡的MAC地址、网卡的一些配置,如SMI总线上PHY的地址,BOOTROM的容量,是否启用BOOTROM引导系统等东西。
phy rgmii tx delay实现原理
phy rgmii tx delay实现原理
PHY(RGMII)的TX Delay实际上是指将物理层发送数据的时
钟与MAC层发送数据的时钟之间的延迟。
TX Delay的目的是为了平衡芯片之间的时钟差异,使得数据能够正确地传输。
RGMII(Reduced Gigabit Media Independent Interface)是一种
用于物理层与MAC层之间的接口标准。
在RGMII中,PHY
负责将MAC层发送的数据转换为物理层信号,并将接收到的
物理层信号转换为MAC层可识别的数据。
实现TX Delay的关键在于延迟PHY接收到的MAC层的时钟。
一种常见的实现方法是使用一个或多个FIFO(First In First Out)缓冲区,将MAC层的数据存储在其中。
然后,PHY可
以根据需要从FIFO中读取数据并进行发送,以匹配自身的时
钟频率。
具体实现时,PHY可以通过自己的控制寄存器设置TX Delay
的大小,以确定需要将数据存储在FIFO中的时间。
较大的
TX Delay可以提供较大的时钟差异补偿能力,但同时也会增
加系统的延迟。
因此,在设计中需要权衡时延和性能之间的关系。
总的来说,PHY(RGMII)的TX Delay实现原理是通过使用
FIFO缓冲区将MAC层的数据存储在PHY中,并根据自身时
钟频率的要求从缓冲区读取数据并进行发送,以实现时钟差异的补偿。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
15
16
它的工作原理是: 发送数据前 先侦听信道是否空闲 ,若空闲,则立即发送 数据。若信道忙碌,则等待一段时间至信道中的信息传输结束后再发送数 据;若在上一段信息发送结束后,同时有两个或两个以上的节点都提出发 送请求,则判定为冲突。若侦听到冲突,则立即停止发送数据,等待一段随 机时间,再重新尝试。 其原理简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发
自动协商 的优先级
22
2019 SUCCESS
POWERPOINT
2019/6/3
23
2019 SUCCESS
THANK YOU
2019/6/3
10M的MII的时钟是2.5M,100M的MII的时钟是25M
12 100M PHY的主要模块
PCS(PHYSICAL CODING SUBLAYER):提供4B/5B编码、串并转换以及冲 突检测功能,同时只要TxEN无效就提供“idle”信号给PMD层. PMA(PHYSICAL MEDIUM ATTACHMENT):提供对LINK状态的判断和载 波侦听的功能,完成串行信号和NRZI信号之间的转化. PMD(PHYSICAL MEDIUM DEPENDENT):提供对信号的scrambling(扰频 )/ descrambling(解扰) ;对信号进行编码,在100TX下是MLT-3 , 在 10T下是Manchester. MII包含两部分,一个数据接口,以及一个MAC和PHY之间的管理接口 MDIO/MDC. 扰码就是作有规律的随机化处理后的信码,目的是抑制线路码中的长连 “0” 和长连“1” ,便于从线路信号中提取时钟信号。
18
19
时 钟
数 据
时 钟
数 据
0
1
……
时 钟
数 据
时 钟
数 据
时 钟
14
15
整个报文按16ms间隔重复,直到自协商完成
20 自协商基本页信息
21
当连接的双方只有一方支持自动协商的时候,没有自协商能力的一方发送 NLP(normal link pulses in 10Mbps)或者Idle Symbols(100Mbps); 有自动协商能力的PHY 探测线路上的速度信息,配置端口为10M半双工或 者是100M半双工。NLP是每间隔16±8ms 发送一个脉冲,IDLE就是全 “1”信号.
读取PHY的状态寄存器:
端口的连接状态;自动协商是否完成;PHY选择的工作模式以及其它状态。
写PHY的寄存器:
强制端口的工作状态;指导PHY完成自动协商;修改端口灯的显示模式;控制 Crossover、FEFI等功能是否实施。上电的时候,MAC修改PHY的寄存器,控制端口 是否进行自动协商,以及自动协商的能力,包括双工、速度、流控等
13 PHY芯片工作示意图
MII发送接口 4B/5B 变换 并/串转换
MII接收接口 5B/4B变换 串/并转换
PCS
NRZI信号转化
Link状态和载波侦听
NRZI信号转化
PMA
scrambling(扰频) MLT-3 编码
双绞线
descrambling(解扰) MLT-3 解码
PMD
双绞线
14 MDIO/MDC的功能
MAC和PHY的工作原理
高端服务器研发部 系统硬件研发处
2 MAC和PHY的工作原理
3
4
SYSTEM CPUI
PHY芯片
接口
OSI 数据链路层
物理层
5 MAC芯片的主要功能
实现MAC子层和LLC 子层的功能; 提供符合规范的接口(PCI/PCIE等)以实现和主机的数据交换。 通过MII与PHY相连。 MII:Media Independent Interface,媒体独立接口
6 MAC芯片的工作原理 MAC芯片模块示意图
7
8
收发FIFO,一般是16×8bit 的FIFO,来提供数据的缓冲提供收发的性能。 MII接口控制模块,把FIFO来的数据通过MII接口发送出去,并形成其它 MII接口的控制信号。
9
10 PHY芯片的主要作用
11 PHY的工作原理
PHY芯片包括MII/GMII(介质独立接口)子层、PCS(物理编码子层)、PMA(物 理介质附加)子层、PMD(物理介质相关)子层、MDI子层。
17
自动协商的主要功能就是使物理链路两端的设备自动通过交互信息 自动选择一 种运行模式来运行。自动协商的内容主要包括双工模式 运行速率 流量控制等内 容 一旦协商通过 链路两端的设备就锁定在这样一种运行模式下直到重新引导设 备或重新插拔电缆。 当连接的双方都有自动协商能力的时候,PHY通过发送 FLP( Fast Link Pulse 快速链路脉冲)来决定端口的工作模式,每一个FLP脉冲群包括33个脉冲,每个 脉冲间隔62.5us,脉冲群的间隔为16±8ms。奇数脉冲代表时钟长有,偶数脉冲 表示数据,有脉冲信号为“1”,没有脉冲信号为“0”。每个FLP包含16bits数 据即所谓的“page”。所有的支持Auto-negotiation的器件必须能够读懂 “base page。