mac与phy怎样实现网络自适应
网络中设备端数据链路层由mac芯片和phy芯片组成。phy芯片依据外部网络环境完毕自己主动协商以及配置。驱动中依据phy状态来配置mac。以达到phy与mac的相互配合工作。
如今主流的网卡phy芯片为100M和1000M,都是向下兼容。100M phy支持10/100M环境,1000M phy支持10/100/1000M环境。
首先说10/100/1000M都是指的数据收发速率,单位是bps。所以这里要从mac以及phy的数据收发接口下手。
mac与phy主流数据接口有GMII MII RMII等。接口规范中定义了数据收发信号线个数。
接口定义能够看这篇文章:
http://blog.csdn.net/skyflying2012/article/details/8252843
以GMII/MII为例来研究。GMII是有8根rx/tx线,MII有4根rx/tx线。
首先以外接100Mphy芯片来研究。
phy与外界网络环境完毕自己主动协商来确定其本身的速度。100M phy都支持MII接口。因此mac端就须要以MII接口定义与phy相连。
数据收发最重要的是提供正确的数据时钟。来保证数据正确的採样与发送。
对于100M phy,这个问题好解决,由于MII接口支持10/100M。4根数据线,仅仅须要mac给phy提供2.5/25MHZ数据时钟就可以。
最值得研究的是外接1000M phy时怎样适应10/100/1000M网络环境。
首先说,这是一个倒推的过程,首先来看phy是怎样处理10/100M和1000M环境的。mac的接口模式以及时钟再依据phy的配置进行配置。
随便找了一个1000M phy芯片的datasheet。RTL88E1111,对于GMII/MII接口的描写叙述例如以下:
依据这段描写叙述看出,GMII接口模式支持1000M环境,可是在10/100M环境下phy完毕自己主动协商确定为10/100BASE-TX后就切换为MII模式。GMII引脚都是与MII兼容的(MII下8根数据线有4根不用)。GMII接口定义中有2个clk线,GTX_CLK TX_CLK(GMII/MII下rx clk由phy提供),GTX_CLK在GMII模式下提供125MHZ,TX_CLK在MII模式下提供2.5/25MHZ。
以下给出一个mac与1000M phy硬件电路连接图。
能够看出对于1000M phy,GTX_CLK TX_CLK都须要与mac相连,在10/100/1000M环境下我分别用示波器測量clk的确如上所说。
综上,
对于100M phy。外部网络10/100M切换,仅须要改变mac提供的数据时钟就可以,mac接口模式不变,由于MII兼容10/100M。
对于1000M phy,外部网络10/100/1000M切换,首先须要改变mac的接口模式(使用的数据线个数不同了),由于10/100M下phy会切换为MII模式,依据接口模式在改变其数据时钟。
当然phy在自己主动协商完毕后是其硬件逻辑会完毕模式GMII/MII的转换,而对于mac,则要由驱动依据phy的工作状态来确定mac的接口模式以及须要提供的clk。
这也是我们软件开发者最须要关注的地方,依据phy的状态。怎样配置mac(接口模式 数据时钟)来保证与phy一致。
mac与phy怎样实现网络自适应的更多相关文章
- 转!!MAC和PHY的区别
一块以太网网卡包括OSI(开方系统互联)模型的两个层,物理层和数据链路层.物理层定义了数据传送与接收所需要的电与光信号.线路状态.时钟基准.数据编码和电路等,并向数据链路层设备提供标准接口.数据链路层 ...
- 网卡及MAC和PHY的区别
转载:http://blog.sina.com.cn/s/blog_53d7350f0100mudb.html 一块以太网网卡包括OSI(开方系统互联)模型的两个层.物理层和数据链路层.物理层定义了数 ...
- 网口扫盲三:以太网芯片MAC和PHY的关系
转载:http://www.cnblogs.com/jason-lu/articles/3195473.html 问:如何实现单片以太网微控制器? 答:诀窍是将微控制器.以太网媒体接入控制器(MA ...
- 网口扫盲三:以太网芯片MAC和PHY的关系(转)
问:如何实现单片以太网微控制器? 答:诀窍是将微控制器.以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片,这样能去掉许多外接元器件.这种方案可使MAC和PHY实现很好的匹配, ...
- MAC和PHY的区别 (转自http://www.cnblogs.com/feitian629/archive/2013/01/25/2876857.html)
一块以太网网卡包括OSI(开方系统互联)模型的两个层.物理层和数据链路层.物理层定义了数据传送与接收所需要的电与光信号.线路状态.时钟基准.数据编码和电路等,并向数据链路层设备提供标准接口.数据链路层 ...
- MAC和PHY的区别
一块以太网网卡包括OSI(开方系统互联)模型的两个层.物理层和数据链路层.物理层定义了数据传送与接收所需要的电与光信号.线路状态.时钟基准.数据编码和电路等,并向数据链路层设备提供标准接口.数据链路层 ...
- 有关MAC、PHY和MII
这是一篇转载,原文链接:http://www.cppblog.com/totti1006/archive/2008/04/22/47829.html 以太网(Ethernet)是一种计算机局域网组网技 ...
- MAC和PHY的区别(网线上传递的是模拟信号)
一块以太网网卡包括OSI(开方系统互联)模型的两个层.物理层和数据链路层.物理层定义了数据传送与接收所需要的电与光信号.线路状态.时钟基准.数据编码和电路等,并向数据链路层设备提供标准接口.数据链路层 ...
- Mac与Phy组成原理的简单分析
1. general 下图是网口结构简图.网口由CPU.MAC和PHY三部分组成.DMA控制器通常属于CPU的一部分,用虚线放在这里是为了表示DMA控制器可能会参与到网口数据传输中. 对于上述的三部分 ...
随机推荐
- 剪切Postscript图片中的多余边框
最近用plplot画图,其cairo ps库生成的ps图片总是不能合理地剪切掉多余的边框,于是乎自己写了一个小脚本epscrop,用修改ps图的BoundingBox. #!/bin/bash # c ...
- 实现Xshell断开连接情况下Linux命令继续执行
1.将原命令语句改为:nohup 命令语句 & 2.回车执行,再回车,窗口中会显示一个进程号 3.如果中途想关闭,可执行:kill -9 进程号.如果想查看命令执行情况,可执行:cat noh ...
- 「六」创建一个带 weblogic 服务的基础镜像
Weblogic Weblogic 简单介绍以及其在 Docker 环境下的特殊应用 WebLogic是美国Oracle公司出品的一个application server确切的说是一个基于JAVAEE ...
- select * from (select user())a 为什么是查询user()的意思?
步骤:1.先查询 select user() 这里面的语句,将这里面查询出来的数据作为一个结果集 取名为 a2.然后 再 select * from a 查询a ,将 结果集a 全部查询出来
- 【Python3 爬虫】15_Fiddler抓包分析
我们要抓取一些网页源码看不到的信息,例如:淘宝的评论等 我们可以使用工具Fiddler进行抓取 软件下载地址:https://pan.baidu.com/s/1nPKPwrdfXM62LlTZsoiD ...
- Android_View_得到Activity
Context context = view.getContext(); if (context instanceof Activity){ Activity activity = (Activity ...
- Jenkins部署java项目实例
源码管理 选择 “git”, Repository URL填写你的git地址,并配置对应的key,大家最好事前先在jenkins这台机器上能够直接远程git操作私有仓库 构建触发器.构建环境.Pre ...
- HTML输入验证提示信息
1.oninvali事件通过setCustomValidity方法来自定义提示信息 <form action=""> <label> 数字: <inp ...
- LA 5009 (HDU 3714) Error Curves (三分)
Error Curves Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu SubmitStatusPr ...
- NIO之缓冲区(Buffer)的数据存取
缓冲区(Buffer) 一个用于特定基本数据类行的容器.有java.nio包定义的,所有缓冲区都是抽象类Buffer的子类. Java NIO中的Buffer主要用于与NIO通道进行交互,数据是从通道 ...