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

Mac与Phy组成原理的简单分析相关推荐

  1. 网口扫盲二:Mac与Phy组成原理的简单分析

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

  2. 网口扫盲二:Mac与Phy组成原理的简单分析(转)

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

  3. 网卡介绍——MAC与PHY的关系分析

    (一) 网卡初步认识 网络适配器又称网卡或网络接口卡(NIC),英文名Network Interface Card.它是使计算机联网的设备.平常所说的网卡就是将PC机和LAN连接的网络适配器.网卡(N ...

  4. 网卡构造:MAC与PHY的关系,GMAC介绍

    GMAC:千兆网媒体访问控制 GMAC接口(1)--GMAC简介_daikaimiao的博客-CSDN博客_gmac GMAC接口(2)--协议_daikaimiao的博客-CSDN博客_gmac协议 ...

  5. 【genius_platform软件平台开发】第九十八讲:嵌入式网络接口(MAC、PHY)

    1. 嵌入式网络简介 1.1 嵌入式下的网络硬件接口 提起网络,我们一般想到的硬件就是"网卡",现在网卡已经是通过一个芯片来完成了,嵌入式网络硬件分为两部分:MAC和PHY,大家都 ...

  6. 转载:网口扫盲三:以太网芯片MAC和PHY的关系

    原文地址:http://www.cnblogs.com/jason-lu/articles/3195473.html 问:如何实现单片以太网微控制器? 答:诀窍是将微控制器.以太网媒体接入控制器(MA ...

  7. howdoi 简单分析

    对howdoi的一个简单分析. 曾经看到过下面的这样一段js代码: try{doSth(); } catch (e){ask_url = "https://stackoverflow.com ...

  8. iphone实用配置工具_Debookee for Mac(网络数据抓包及分析工具)

    Debookee for Mac(网络数据抓包及分析工具)​www.macw.com Debookee Mac破解版是MacOS上的一款非常不错的抓包软件,Debookee Mac破解版能够进行网络流 ...

  9. x264源代码简单分析:x264命令行工具(x264.exe)

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

最新文章

  1. 图片浏览(CATransition)转场动画
  2. 爬虫实战:Requests+BeautifulSoup 爬取京东内衣信息并导入表格(python)
  3. ArcGIS实验教程——实验十二:栅格数据投影变换
  4. 【Pytorch神经网络实战案例】14 构建条件变分自编码神经网络模型生成可控Fashon-MNST模拟数据
  5. 20190520算法题存档
  6. php 添加透明水印,php加水印的代码(支持半透明透明打水印,支持png透明背景)
  7. [转] 面试70问经典回答
  8. 项目管理九大知识体系(转)
  9. 录制课程视频用什么软件?微课录屏软件等你来选!
  10. 移动计算机笔试题,广东移动笔试题目
  11. ps盖印图层在哪里_ps盖印图层快捷键怎么用? ps盖印图层教程
  12. 微信好友保存在服务器,微信好友数据备份好,封号也不怕!
  13. ie禁用java怎么办,您如何解决IE中禁用javascript的问题?
  14. 网易即时通讯云平台99.99%可靠性的运维经验谈
  15. 【游戏客户端】聊天排行榜朋友圈系统实现机制
  16. 炽天覆七环Ajax,【经典】无限剑制——Unlimited blade works
  17. qlv格式无需工具快速转MP4
  18. 安装程序时出现乱码解决方法~~AppLocale作祟
  19. AD20的元件库及加载(一)
  20. 浅谈程序员的数学修养(转载)

热门文章

  1. MQTT-SN协议乱翻之实现要点
  2. Ok6410挂载NFS
  3. android开发相关资料整理【2011-11-10】
  4. 在Android命令行启动程序的方法
  5. vue3 v-model变化
  6. java语言介绍 —(1)
  7. Vue — 第一天(极速入门)
  8. 各种平台的表达芯片跟mRNA-seq数据比较
  9. 【leetcode 简单】 第一百一十题 分发饼干
  10. JMeter 性能测试进阶实战