ImageVerifierCode 换一换
格式:DOC , 页数:9 ,大小:414.57KB ,
资源ID:7643804      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7643804.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MAC和PHY组成原理.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

MAC和PHY组成原理.doc

1、 Mac 与 Phy 组成原理的简单分析 2011-12-28 15:30:43分类: LINUX本文乃 fireaxe 原创,使用 GPL 发布,可以自由拷贝,转载。但转载请保持文档的完整性,并注明原作者及原链接。内容可任意使用,但对因使用该内容引起的后果不做任何保证。作者:fireaxe_博客:Mac 与 Phy 组成原理的简单分析1 1. general下图是网口结构简图。网口由 CPU、MAC 和 PHY 三部分组成。DMA 控制器通常属于 CPU 的一部分,用虚线放在这里是为了表示 DMA 控制器可能会参与到网口数据传输中。对于上述的三部分,并不一定都是独立的芯片,根据组合形式,可分

2、为下列几种类型:方案一:CPU 集成 MAC 与 PHY;方案二:CPU 集成 MAC,PHY 采用独立芯片;方案三:CPU 不集成 MAC 与 PHY,MAC 与 PHY 采用集成芯片;本例中选用方案二做进一步说明,因为 CPU 总线接口很常见,通常都会做成可以像访问内存一样去访问,没必要拿出来说,而 Mac 与 PHY 之间的 MII 接口则需要多做些说明。下图是采用方案二的网口结构图。虚框表示 CPU,MAC 集成在 CPU 中。PHY 芯片通过 MII 接口与 CPU 上的 Mac 连接。在软件上对网口的操作通常分为下面几步:1) 1) 为数据收发分配内存;2) 2) 初始化 MAC

3、寄存器;3) 3) 初始化 PHY 寄存器(通过 MIIM);4) 启动收发; 2. 2. MIIMII 接口是 MAC 与 PHY 连接的标准接口。因为各厂家采用了同样的接口,用户可以根据所需的性能、价格,采用不同型号,甚至不同公司的 phy 芯片。需要发送的数据通过 MII 接口中的收发两组总线实现。而对 PHY 芯片寄存器的配置信息,则通过 MII 总的一组串口总线实现,即 MIIM(MII Management)。下表列出了 MII 总线中主要的一些引脚PIN Name Direction DescriptionTXD0:3 Mac to Phy Transmit DataTXEN M

4、ac to Phy Transmit EnableTXCLK Mac to Phy Transmit ClockRXD0:3 Phy to Mac Receive DataRXEN Phy to Mac Receive EnableRXCLK Phy to Mac Receive ClockMDC Mac to Phy Management Data ClockMDIO Bidirection Management Data I/OMIIM 只有两个线,时钟信号 MDC 与数据线 MDIO。读写命令均由 Mac 发起,PHY不能通过 MIIM 主动向 Mac 发送信息。由于 MIIM 只能有

5、Mac 发起,我们可以操作的也就只有 MAC 上的寄存器。3. 3. DMA收发数据总是间费时费力的事,尤其对于网络设备来说更是如此。CPU 做这些事情显然不合适。既然是数据搬移,最简单的办法当然是让 DMA 来做。毕竟专业的才是最好的。这样 CPU 要做的事情就简单了。只需要告诉 DMA 起始地址与长度,剩下的事情就会自动完成。通常在 MAC 中会有一组寄存器专门用户记录数据地址,tbase 与 rbase,cpu 按MAC 要的格式把数据放好后,启动 MAC 的数据发送就可以了。启动过程常会用到寄存器 tstate。4. 4. MACCPU 上有两组寄存器用与 MAC。一组用户数据的收发,

6、对应上面的 DMA;一组用户 MIIM,用户对 PHY 进行配置。两组寄存器由于都在 CPU 上,配置方式与其他 CPU 上寄存器一样,直接读写即可。数据的转发通过 DMA 完成。 5. 5. PHY该芯片是一个 10M/100M Ethernet 网口芯片PHY 芯片有一组寄存器用户保存配置,并更新状态。CPU 不能直接访问这组寄存器,只能通过 MAC 上的 MIIM 寄存器组实现间接访问。同时 PHY 芯片负责完成 MII 总线的数据与 Media Interface 上数据的转发。该转发根据寄存器配置自动完成,不需要外接干预。 一块以太网网卡包括 OSI(开方系统互联)模型的两个层。物理

7、层和数据链路层。物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。1网卡的基本结构以太网卡中数据链路层的芯片一般简称之为 MAC 控制器,物理层的芯片我们简称之为 PHY。许多网卡的芯片把 MAC 和 PHY 的功能做到了一颗芯片中,比如 Intel 82559 网卡的和 3COM 3C905 网卡。但是 MAC 和 PHY 的机制还是单独存在的,只是外观的表现形式是一颗单芯片。当然也有很多网卡的 MAC和 PHY 是分开做的,比如

8、 D-LINK 的 DFE-530TX 等。图一:MAC 和 PHY 分开的以太网卡(点击放大)图二:MAC 和 PHY 集成在一颗芯片的以太网卡(点击放大)RJ-45 接口 Transformer(隔离变压器) PHY 芯片MAC 芯片 EEPROM BOOTROM 插槽WOL 接头 晶振 电压转换芯片LED 指示灯2什么是 MAC?首先我们来说说以太网卡的 MAC 芯片的功能。以太网数据链路层其实包含 MAC(介质访问控制)子层和 LLC(逻辑链路控制)子层。一块以太网卡 MAC 芯片的作用不但要实现 MAC 子层和 LLC 子层的功能,还要提供符合规范的 PCI 界面以实现和主机的数据交

9、换。MAC 从 PCI 总线收到 IP 数据包(或者其他网络层协议的数据包)后,将之拆分并重新打包成最大1518Byte,最小 64Byte 的帧。这个帧里面包括了目标 MAC 地址、自己的源 MAC 地址和数据包里面的协议类型(比如 IP 数据包的类型用 80 表示)。最后还有一个 DWORD(4Byte)的 CRC 码。可是目标的 MAC 地址是哪里来的呢?这牵扯到一个 ARP 协议(介乎于网络层和数据链路层的一个协议)。第一次传送某个目的 IP 地址的数据的时候,先会发出一个 ARP 包,其 MAC 的目标地址是广播地址,里面说到:”谁是 xxx.xxx.xxx.xxx 这个 IP 地址

10、的主人?”因为是广播包,所有这个局域网的主机都收到了这个 ARP 请求。收到请求的主机将这个 IP 地址和自己的相比较,如果不相同就不予理会,如果相同就发出 ARP 响应包。这个 IP 地址的主机收到这个 ARP 请求包后回复的 ARP 响应里说到:”我是这个 IP地址的主人”。这个包里面就包括了他的 MAC 地址。以后的给这个 IP 地址的帧的目标 MAC 地址就被确定了。(其它的协议如 IPX/SPX 也有相应的协议完成这些操作。)IP 地址和 MAC 地址之间的关联关系保存在主机系统里面,叫做 ARP 表,由驱动程序和操作系统完成。在 Microsoft 的系统里面可以用 arp -a

11、的命令查看 ARP 表。收到数据帧的时候也是一样,做完 CRC 以后,如果没有 CRC 效验错误,就把帧头去掉,把数据包拿出来通过标准的借口传递给驱动和上层的协议客栈,最终正确的达到我们的应用程序。还有一些控制帧,例如流控帧也需要 MAC 直接识别并执行相应的行为。以太网 MAC 芯片的一端接计算机 PCI 总线,另外一端就接到 PHY 芯片上。以太网的物理层又包括MII/GMII(介质独立接口)子层、 PCS(物理编码子层)、PMA(物理介质附加)子层、PMD(物理介质相关)子层、MDI 子层。而 PHY 芯片是实现物理层的重要功能器件之一,实现了前面物理层的所有的子层的功能。3网络传输的流

12、程PHY 在发送数据的时候,收到 MAC 过来的数据(对 PHY 来说,没有帧的概念,对它来说,都是数据而不管什么地址,数据还是 CRC),每 4bit 就增加 1bit 的检错码,然后把并行数据转化为串行流数据,再按照物理层的编码规则(10Based-T 的 NRZ 编码或 100based-T 的曼彻斯特编码)把数据编码,再变为模拟信号把数据送出去。(注:关于网线上数据是数字的还是模拟的比较不容易理解清楚。最后我再说)收数据时的流程反之。PHY 还有个重要的功能就是实现 CSMA/CD 的部分功能。它可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个

13、随机时间后将送数据出去。如果两块网卡碰巧同时送出了数据,那样必将造成冲突,这时候,冲突检测机构可以检测到冲突,然后各等待一个随机的时间重新发送数据。这个随机时间很有讲究的,并不是一个常数,在不同的时刻计算出来的随机时间都是不同的,而且有多重算法来应付出现概率很低的同两台主机之间的第二次冲突。许多网友在接入 Internt 宽带时,喜欢使用”抢线” 强的网卡,就是因为不同的 PHY 碰撞后计算随机时间的方法设计上不同,使得有些网卡比较”占便宜” 。不过,抢线只对广播域的网络而言的,对于交换网络和ADSL 这样点到点连接到局端设备的接入方式没什么意义。而且”抢线”也只是相对而言的,不会有质的变化。

14、4关于网络间的冲突现在交换机的普及使得交换网络的普及,使得冲突域网络少了很多,极大地提高了网络的带宽。但是如果用 HUB,或者共享带宽接入 Internet 的时候还是属于冲突域网络,有冲突碰撞的。交换机和 HUB 最大的区别就是:一个是构建点到点网络的局域网交换设备,一个是构建冲突域网络的局域网互连设备。我们的 PHY 还提供了和对端设备连接的重要功能并通过 LED 灯显示出自己目前的连接的状态和工作状态让我们知道。当我们给网卡接入网线的时候,PHY 不断发出的脉冲信号检测到对端有设备,它们通过标准的”语言” 交流,互相协商并却定连接速度、双工模式、是否采用流控等。通常情况下,协商的结果是两

15、个设备中能同时支持的最大速度和最好的双工模式。这个技术被称为Auto Negotiation 或者 NWAY,它们是一个意思 自动协商。5.PHY 的输出部分现在来了解 PHY 的输出后面部分。一颗 CMOS 制程的芯片工作的时候产生的信号电平总是大于 0V 的(这取决于芯片的制程和设计需求),但是这样的信号送到 100 米甚至更长的地方会有很大的直流分量的损失。而且如果外部网现直接和芯片相连的话,电磁感应(打雷)和静电,很容易造成芯片的损坏。再就是设备接地方法不同,电网环境不同会导致双方的 0V 电平不一致,这样信号从 A 传到 B,由于A 设备的 0V 电平和 B 点的 0V 电平不一样,

16、这样会导致很大的电流从电势高的设备流向电势低的设备。我们如何解决这个问题呢?这时就出现了 Transformer(隔离变压器)这个器件。它把 PHY 送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过电磁场的转换耦合到连接网线的另外一端。这样不但使网线和 PHY 之间没有物理上的连接而换传递了信号,隔断了信号中的直流分量,还可以在不同 0V 电平的设备中传送数据。隔离变压器本身就是设计为耐 2KV3KV 的电压的。也起到了防雷感应(我个人认为这里用防雷击不合适)保护的作用。有些朋友的网络设备在雷雨天气时容易被烧坏,大都是 PCB 设计不合理造成的,而且大都烧毁了设备的接口,很少有芯片

17、被烧毁的,就是隔离变压器起到了保护作用。6.关于传输介质隔离变压器本身是个被动元件,只是把 PHY 的信号耦合了到网线上,并没有起到功率放大的作用。那么一张网卡信号的传输的最长距离是谁决定的呢?一张网卡的传输最大距离和与对端设备连接的兼容性主要是 PHY 决定的。但是可以将信号送的超过100 米的 PHY 其输出的功率也比较大,更容易产生 EMI 的问题。这时候就需要合适的 Transformer 与之配合。作 PHY 的老大公司 Marvell 的 PHY,常常可以传送 180200 米的距离,远远超过 IEEE 的 100 米的标准。RJ-45 的接头实现了网卡和网线的连接。它里面有 8

18、个铜片可以和网线中的 4 对双绞(8 根)线对应连接。其中 100M 的网络中 1、2 是传送数据的, 3、6 是接收数据的。 1、2 之间是一对差分信号,也就是说它们的波形一样,但是相位相差 180 度,同一时刻的电压幅度互为正负。这样的信号可以传递的更远,抗干扰能力强。同样的,3、6 也一样是差分信号。网线中的 8 根线,每两根扭在一起成为一对。我们制作网线的时候,一定要注意要让 1、2 在其中的一对,3 、 6 在一对。否则长距离情况下使用这根网线的时候会导致无法连接或连接很不稳定。现在新的 PHY 支持 AUTO MDI-X 功能(也需要 Transformer 支持 )。它可以实现

19、RJ-45 接口的 1、2 上的传送信号线和 3、6 上的接收信号线的功能自动互相交换。有的 PHY 甚至支持一对线中的正信号和负信号的功能自动交换。这样我们就不必为了到底连接某个设备需要使用直通网线还是交叉网线而费心了。这项技术已经被广泛的应用在交换机和 SOHO 路由器上。在 1000Basd-T 网络中,其中最普遍的一种传输方式是使用网线中所有的 4 对双绞线,其中增加了4、5 和 7、8 来共同传送接收数据。由于 1000Based-T 网络的规范包含了 AUTO MDI-X 功能,因此不能严格确定它们的传出或接收的关系,要看双方的具体的协商结果。7PHY 和 MAC 之间如何进行沟通

20、下面继续让我们来关心一下 PHY 和 MAC 之间是如何传送数据和相互沟通的。通过 IEEE 定义的标准的 MII/GigaMII(Media Independed Interfade,介质独立界面)界面连接 MAC 和 PHY。这个界面是IEEE 定义的。 MII 界面传递了网络的所有数据和数据的控制。而 MAC 对 PHY 的工作状态的确定和对 PHY 的控制则是使用 SMI(Serial Management Interface)界面通过读写 PHY 的寄存器来完成的。PHY 里面的部分寄存器也是 IEEE 定义的,这样 PHY 把自己的目前的状态反映到寄存器里面,MAC 通过 SMI

21、总线不断的读取 PHY 的状态寄存器以得知目前 PHY 的状态,例如连接速度,双工的能力等。当然也可以通过 SMI 设置 PHY 的寄存器达到控制的目的,例如流控的打开关闭,自协商模式还是强制模式等。我们看到了,不论是物理连接的 MII 界面和 SMI 总线还是 PHY 的状态寄存器和控制寄存器都是有IEEE 的规范的,因此不同公司的 MAC 和 PHY 一样可以协调工作。当然为了配合不同公司的 PHY 的自己特有的一些功能,驱动需要做相应的修改。一片网卡主要功能的实现就基本上是上面这些器件了。其他的,还有一颗 EEPROM 芯片,通常是一颗 93C46。里面记录了网卡芯片的供应商 ID、子系

22、统供应商 ID、网卡的 MAC 地址、网卡的一些配置,如 SMI 总线上 PHY 的地址,BOOTROM 的容量,是否启用 BOOTROM 引导系统等东西。很多网卡上还有 BOOTROM 这个东西。它是用于无盘工作站引导操作系统的。既然无盘,一些引导用必需用到的程序和协议栈就放到里面了,例如 RPL、PXE 等。实际上它就是一个标准的 PCI ROM。所以才会有一些硬盘写保护卡可以通过烧写网卡的 BootRom 来实现。其实 PCI 设备的 ROM 是可以放到主板BIOS 里面的。启动电脑的时候一样可以检测到这个 ROM 并且正确识别它是什么设备的。AGP 在配置上和 PCI 很多地方一样,所

23、以很多显卡的 BIOS 也可以放到主板 BIOS 里面。这就是为什么板载的网卡我们从来没有看到过 BOOTROM 的原因。8网卡的供电最后就是电源部分了。大多数网卡现在都使用 3.3V 或更低的电压。有的是双电压的。因此需要电源转换电路。而且网卡为了实现 Wake on line 功能,必须保证全部的 PHY 和 MAC 的极少一部分始终处于有电的状态,这需要把主板上的 5V Standby 电压转换为 PHY 工作电压的电路。在主机开机后,PHY 的工作电压应该被从 5V 转出来的电压替代以节省 5V Standby 的消耗。(许多劣质网卡没有这么做)。有 Wake on line 功能的网

24、卡一般还有一个 WOL 的接口。那是因为 PCI2.1 以前没有 PCI 设备唤醒主机的功能,所以需要着一根线通过主板上的 WOL 的接口连到南桥里面以实现 WOL 的功能。新的主板合网卡一般支持 PCI2.2/2.3,扩展了 PME#信号功能,不需要那个接口而通过 PCI 总线就可以实现唤醒功能。结语一块以太网卡就是这些部分组成。它们紧密地配合并且相互协调,供给我们一个稳定而告诉的网络接入。网络的普及不但极大地增加了工作效率,而且使我们可以自由的驰骋在 Internet 的海洋中!注解:网线上的到底是模拟信号还是数字信号呢?答案是模拟信号。因为它传出和接收是采用的模拟的技术。虽然它传送的信息是数字的,并不是传送的信息是数字的,信号就可以叫做数字信号。简单的例子:我们知道电话是模拟信号,但是当我们拨号上网的时候,电话线里传送的是数字信息,但信号本身依旧是模拟的。然而 ADSL 同样是通过电话线传送的,却是数字信号。这取决于它传出和接受采用的技术。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报