Mac与Phy组成原理的简单分析

Mac与Phy组成原理的简单分析 2011-12-28 15:30:43

//http://blog.chinaunix.net/uid-20528014-id-3050217.html

本文乃fireaxe原创,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,并注明原作者及原链接。内容可任意使用,但对因使用该内容引起的后果不做任何保证。
作者:fireaxe_hq@hotmail.com
博客:fireaxe.blog.chinaunix.net

Mac与Phy组成原理的简单分析

1  1.general

下图是网口结构简图。网口由CPU、MAC和PHY三部分组成。DMA控制器通常属于CPU的一部分,用虚线放在这里是为了表示DMA控制器可能会参与到网口数据传输中。

对于上述的三部分,并不一定都是独立的芯片,根据组合形式,可分为下列几种类型:

方案一: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) 初始化PHY寄存器(通过MIIM);

           4) 启动收发;

2.2. MII

MII接口是MAC与PHY连接的标准接口。因为各厂家采用了同样的接口,用户可以根据所需的性能、价格,采用不同型号,甚至不同公司的phy芯片。

需要发送的数据通过MII接口中的收发两组总线实现。而对PHY芯片寄存器的配置信息,则通过MII总的一组串口总线实现,即MIIM(MII Management)。

下表列出了MII总线中主要的一些引脚

PIN Name

Direction

Description

TXD[0:3]

Mac to Phy

Transmit Data

TXEN

Mac to Phy

Transmit Enable

TXCLK

Mac to Phy

Transmit Clock

RXD[0:3]

Phy to Mac

Receive Data

RXEN

Phy to Mac

Receive Enable

RXCLK

Phy to Mac

Receive Clock

MDC

Mac to Phy

Management Data Clock

MDIO

Bidirection

Management Data I/O

 MIIM只有两个线,时钟信号MDC与数据线MDIO。读写命令均由Mac发起,PHY不能通过MIIM主动向Mac发送信息。由于MIIM只能有Mac发起,我们可以操作的也就只有MAC上的寄存器。

 

3.  3.DMA

收发数据总是间费时费力的事,尤其对于网络设备来说更是如此。CPU做这些事情显然不合适。既然是数据搬移,最简单的办法当然是让DMA来做。毕竟专业的才是最好的。

这样CPU要做的事情就简单了。只需要告诉DMA起始地址与长度,剩下的事情就会自动完成。

通常在MAC中会有一组寄存器专门用户记录数据地址,tbase与rbase,cpu按MAC要的格式把数据放好后,启动MAC的数据发送就可以了。启动过程常会用到寄存器tstate。

 4.4. MAC

CPU上有两组寄存器用与MAC。一组用户数据的收发,对应上面的DMA;一组用户MIIM,用户对PHY进行配置。

两组寄存器由于都在CPU上,配置方式与其他CPU上寄存器一样,直接读写即可。

数据的转发通过DMA完成。

5.5. PHY

该芯片是一个10M/100M Ethernet网口芯片

PHY芯片有一组寄存器用户保存配置,并更新状态。CPU不能直接访问这组寄存器,只能通过MAC上的MIIM寄存器组实现间接访问。

同时PHY芯片负责完成MII总线的数据与Media Interface上数据的转发。该转发根据寄存器配置自动完成,不需要外接干预。

本文乃fireaxe原创,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,并注明原作者及原链接。内容可任意使用,但对因使用该内容引起的后果不做任何保证。
作者:fireaxe_hq@hotmail.com
博客:fireaxe.blog.chinaunix.net

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[BZOJ3994][SDOI2015]约数个数和

3994: [SDOI2015]约数个数和 Time Limit: 20 Sec Memory Limit: 128 MB Submit: 1104 Solved: 762 [Submit][Status][Discuss]Description 设d(x)为x的约数个数,给定N、M,求 Input 输入文件包含多组测试数据。 第一行,一个整数T&#xff0…

大力智能台灯T6 结构拆解

近几年教育硬件产品层出不穷,教育硬件赛道布局时间较长的有网易、讯飞、步步高系等公司,2020年10月,字节跳动旗下大力教育经过两年多的调研和研发,高调推出首款智能硬件产品“大力智能作业台灯” T5。 上市一年取得不错的销售成绩…

第5章 IDA Pro

5.1 加载一个可执行文件 默认情况下IDA Pro的反汇编代码中不包含PE头或资源节,可以手动指定加载。 5.2 IDA Pro接口 5.2.1 反汇编窗口模式 二进制模式/图形模式: 图形模式:红色表示一个条件跳转没有被采用,绿色表示这个条件跳转被…

使用 typescript ,提升 vue 项目的开发体验(1)

此文已由作者张汉锐授权网易云社区发布。欢迎访问网易云社区,了解更多网易技术产品运营经验。前言:对于我们而言,typescript 更像一个工具官方指南从 vue2.5 之后,vue 对 ts 有更好的支持。根据官方文档,vue 结合 type…

Linux进程间通信——使用共享内存

//本文转载http://blog.csdn.net/ljianhui/article/details/10253345下面将讲解进程间通信的另一种方式,使用共享内存。一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递…

不踩雷不将就 京东智能产品30天无忧退

剁手节已经来临,铺天盖地的促销信息让人应接不暇,恰好又是换季,确实需要买买买一波了。各种满减活动让人眼花缭乱,这波堪称全年最大力度的促销活动,令人是又喜又怕。倘若之前踩过雷的朋友,必然现在会谨慎许…

Linux进程间通信——使用信号量

//转自http://blog.csdn.net/ljianhui/article/details/10243617 这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:L…

麦克风阵列音频检查方法和标准

为确保产品能够符合算法要求,务必提前做好相关设计,尽量确保各项指标满足如下标准。 音频评测工作,主要集中在研发设计阶段;针对产品形态的不同,测试可分为裸板测试和整机测 试,下表为不同阶段需要测试的…

SVG格式图片转成HTML中SVG的Path路径

AI图标制作完成之后,保存的svg文件包含许多AI的信息,如果要在HTML中使用,我们需要在svg文件中提取/修改信息,重新保存。 1、在AI中已经完成图标,要保存SVG文件,点击“文件(File)”-“另存为(Save As)”&…

Linux内核Socket参数调优

可调优的内核变量存在两种主要接口:sysctl命令和/proc文件系统,proc中与进程无关的所有信息都被移植到sysfs中。IPV4协议栈的sysctl参数主要是sysctl.net.core、sysctl.net.ipv4,对应的/proc文件系统是/proc/sys/net/ipv4和/proc/sys/net/cor…

vue.js单页面应用实例

一:npm的安装由于新版的node.js已经集成了npm的环境,所以只需去官网下载node.js并安装,安装完成后使用cmd检测是否成功。测试node的版本号:node -v测试npm的版本号:npm -v以上提示代表安装成功二:vue.js环境…

AA级与AAA级台灯 重要指标对比

读写作业台灯,按照国家标准(GB/T 9473-2017 读写作业台灯性能要求 )台灯只有两个等级 即为A级和AA级: 但是大家在各个购物网站挑选台灯尤其是挑选孩子学习用的读写台灯时,会发现很多厂家宣称台 灯为AAA级&#xff0c…

零基础学python,看完这篇文章,你的python基础就差不多了!干货【1】

2019独角兽企业重金招聘Python工程师标准>>> Python基础语法和面向对象(下一篇分享面向对象) Python基础语法 1. 认识Python 1.1 Python 简介 Python 的创始人为吉多范罗苏姆(Guido van Rossum)。 Python 的设计目标&a…

消费类电子认证测试资料清单

消费类电子上市前必须取得相关认证,其中最常见的有3C、SRRC和CTA等强制性认证,还有类似TUV和Rohs等自愿性认证,现将常见认证测试资料清单小结如下: CCC测试认证: 测试项:EMC、安规和随机等。 SRRC核准&am…

SVG 相关整理

1. 中文参考手册: http://www.runoob.com/svg/svg-reference.html SVG HTML5 资源教程 http://www.html5tricks.com/tag/svg/ 2.SVG 入门到精通 http://www.w3cplus.com/blog/tags/411.html 3.SVG开发包整理 http://www.oschina.net/project/tag/420/svg http://www…

液晶拼接控制器

液晶拼接墙系统是由液晶拼接显示单元、液晶拼接支架、液晶拼接控制器器和信号源组合而成的。液晶拼接控制器则是液晶拼接系统的重要组成部分。 液晶拼接控制器一般分为两种:内置嵌入式液晶拼接器、外置液晶拼接控制器。 内置嵌入式液晶拼接器 内置嵌入式液晶拼接器只…

03-类与对象——课后动手动脑

1.早期我们经常这样定义变量 int value100; 前面的示例中这样定义变量 MyClass obj new MyClass(); 这两种方式定义的变量是一样的吗? 这两种方式定义的变量是一样的,因为它们都是类的实例化,只是第一种是一个简便的写法&#xf…

有道智能学习灯 初体验

有道词典笔在业内树立了一个标杆,自认为有道出品必须精品! 但是今天刚初步体验了一下有道智能学习灯,硬件方面说实话有点意外,猜测这应该不是有道词典 笔团队打造的硬件产品吧。 现在将个人体验感受表格化陈述如下:…

centos忘记root用户的密码

方法: 1.在开机启动的时候快速按键盘上的“E”键 或者“ESC”键(如果做不到精准快速可以在启动前一直按着或者不停的按),会进入如下界面。如果你的有多个操作系统就会出现多个内核,就会出现多个选项 2. 选择你忘记密码…

MySql(18)——Linux MySQL主从配置

MySQL 主从配置 Author:xushuyi 参照技术:http://www.cnblogs.com/kevingrace/p/6256603.html 1. 主从数据库 1、主库:192.168.56.100 2、从库:192.168.56.102 3、创建主从数据库一定要保证主从数据库字符集编码的一致性,否则主从…