1. general

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

MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。

PHY(Physical Layer) 物理层。以太网芯片。

以太网芯片:是一款微小的控制器,把以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片。

很多网卡将MAC和PHY集成在一起,他们之间的关系是pci总线接mac总线,mac接phy,phy接网线。

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

  1. CPU集成MAC与PHY;
  2. CPU集成MAC,PHY采用独立芯片;
  3. CPU不集成MAC与PHY,MAC与PHY采用集成芯片;

本例中选用方案二做进一步说明,因为CPU总线接口很常见,通常都会做成可以像访问内存一样去访问,没必要拿出来说,而Mac与PHY之间的MII接口则需要多做些说明。

下图是采用方案二的网口结构图。虚框表示CPU,MAC集成在CPU中。PHY芯片通过MII接口与CPU上的Mac连接。

在软件上对网口的操作通常分为下面几步:

  1. 为数据收发分配内存;
  2. 初始化MAC寄存器;
  3. 初始化PHY寄存器(通过MIIM);
  4. 启动收发;

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. DMA

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

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

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

4. MAC

CPU上有两组寄存器用于MAC。一组用户数据的收发,对应上面的DMA;一组用户MIIM,用户对PHY进行配置。两组寄存器由于都在CPU上,配置方式与其他CPU上寄存器一样,直接读写即可。数据的转发通过DMA完成。

5. PHY

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

PHY芯片有一组寄存器用户保存配置,并更新状态。CPU不能直接访问这组寄存器,只能通过MAC上的MIIM寄存器组实现间接访问。同时PHY芯片负责完成MII总线的数据与Media Interface上数据的转发。该转发根据寄存器配置自动完成,不需要外接干预。

本文转自:https://www.cnblogs.com/jason-lu/p/3196096.html

转载于:https://www.cnblogs.com/debruyne/p/9086999.html

网口扫盲二:Mac与Phy组成原理的简单分析相关推荐

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

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

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

    Mac与Phy组成原理的简单分析 2011-12-28 15:30:43 //http://blog.chinaunix.net/uid-20528014-id-3050217.html 本文乃fir ...

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

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

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

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

  5. 网卡扫盲三:以太网芯片MAC和PHY的关系

    问:如何实现单片以太网微控制器? 答:诀窍是将微控制器.以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片,这样能去掉许多外接元器件.这种方案可使MAC和PHY实现很好的匹配,同时 ...

  6. 以太网芯片MAC和PHY

    网口扫盲三:以太网芯片MAC和PHY的关系 问:如何实现单片以太网微控制器? 答:诀窍是将微控制器.以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片,这样能去掉许多外接元器件.这 ...

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

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

  8. 网络编程入门教程01——网卡(MAC与PHY)

    由于自己是首次接触网络编程,所以本专栏与其说是一个教程,不如说是学习分享.我的写作目的是尽力简洁有效生动地介绍网络编程的内容,使看到本文章的入门读者不至于望而却步. 1. OSI七层网络模型 在介绍本 ...

  9. 网络结构及mac和phy介绍

    这两天想看看网卡驱动,就先收集了一些网络结构的相关资料,这些基本上都是凑的,是伪原创 网络七层协议 OSI是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议规范.OSI模型有7层结构,每层 ...

最新文章

  1. 服务器集群负载均衡(F5,LVS,DNS,CDN)区别以及选型
  2. mysql实例管理工具巨杉_实例管理工具_操作_MySQL实例_关系型数据库实例_文档中心_SequoiaDB巨杉数据库...
  3. 指针和Const限定符
  4. Oracle自动备份脚本(Linux)
  5. DBI(i80)/DPI(RGB)/DSI【转】
  6. Oracle数据库的视图
  7. DataKeyNames
  8. 信息学奥赛C++语言:上课的人数
  9. Transformer 杀疯了,图像去雨、人脸幻构、风格迁移、语义分割等通通上分
  10. This function has none of DETERMINISTIC, NO SQL解决办法
  11. SQL SERVER “扩展属性的应用
  12. 在公司具备这三个条件,就准备好跳槽吧
  13. python还是java好找工作_你觉得学 Python 还是 Java 更好找工作?
  14. python123电脑登录不了_python(14)- 简单练习:登录账户失败三次,账户自动锁定...
  15. 最简单的Python爬虫案例,看得懂说明你已入门,附赠教程
  16. filmimpact安装教程,PR插件『FilmImpact.net』下载与安装教程
  17. 2022-2028年中国高通量药物筛选与创新药物行业市场调查研究及发展前景展望报告
  18. ArcGIS API for iOS在俄勒冈大学校园中的创新应用
  19. 大咖联袂发布!《慧技术·惠金融——2022金融科技趋势研究报告》开放下载
  20. 第29期全国人工智能师资培训启动,百度500万AI人才培养计划续航

热门文章

  1. c51单片机跑马灯汇编语言,单片机跑马灯汇编程序 单片机汇编程序编写技巧
  2. gzencode php demo,8个必备的PHP功能实例代码
  3. php文件上传空间,PHP上传文件-PHP多文件上传
  4. Java开发面试题,Java常用类使用总结
  5. 【408预推免复习】计算机组成原理之指令系统
  6. 【408预推免复习】操作系统之文件管理
  7. 【机器学习入门到精通系列】推荐系统之协同过滤算法
  8. python【蓝桥杯vip练习题库】ADV-301 字符串压缩
  9. python【力扣LeetCode算法题库】面试题13- 机器人的运动范围(BFS)
  10. c语言编程软件出现问号,【C语言】if语句和问号表达式