写这篇文章的目的主要是了解ET1100和PHY的相关知识以及在连接配置时的相关东西。因为也是首次接触这个知识,而笔记大多记录的又都是自己的理解,所以难免有不足和错误,欢迎大家指出来,共同讨论。

1.首先介绍一些基础知识:MAC、RII、PHY

一块以太网网卡包括OSI(开方系统互联)模型的两个层。物理层和数据链路层。物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。

以太网卡中数据链路层的芯片一般简称之为MAC控制器,物理层的芯片我们简称之为PHY。许多网卡的芯片把MAC和PHY的功能做到了一颗芯片中,比如Intel 82559网卡的和3COM 3C905网卡。但是MAC和PHY的机制还是单独存在的,只是外观的表现形式是一颗单芯片。当然也有很多网卡的MAC和PHY是分开做的,比如D-LINK的DFE-530TX等。

(1)MAC

以太网数据链路层其实包含MAC(介质访问控制)子层和LLC(逻辑链路控制)子层。一块以太网卡MAC芯片的作用不但要实现MAC子层和LLC子层的功能,还要提供符合规范的PCI界面以实现和主机的数据交换。

MAC是Media Access Control的缩写,即媒体访问控制子层协议。该协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。MAC从PCI总线收到IP数据包(或者其他网络层协议的数据包)后,将之拆分并重新打包成最大1518Byte,最小64Byte的帧。这个帧里面包括了目标MAC地址、自己的源MAC地址和数据包里面的协议类型(比如IP数据包的类型用80表示)。最后还有一个DWORD(4Byte)的CRC码。以太网MAC芯片的一端接计算机PCI总线,另外一端就接到PHY芯片上。以太网的物理层又包括MII/GMII(介质独立接口)子层、PCS(物理编码子层)、PMA(物理介质附加)子层、PMD(物理介质相关)子层、MDI子层。而PHY芯片是实现物理层的重要功能器件之一,实现了前面物理层的所有的子层的功能。

(2)MII

MII即媒体独立接口, “媒体独立”表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要12个信号,包括:

transmit data                                                - TXD[3:0] 被发送数据

transmit strobe                                             - TX_EN发送使能

transmit clock                                               - TX_CLK///10/100M信号时钟

transmit error                                               - TX_ER/TXD4发送器错误

receive data                                                    - RXD[3:0]///接收数据

receive strobe                                                  - RX_DV///接收数据有效指示

receive clock                                                    - RX_CLK///接收信号时钟

receive error                                                    - RX_ER/RXD4///接收数据出错指示

collision indication                                         - COL冲突检测

carrier sense                                                    - CRS载波检测

management data clock                              - MDC管理配置接口

management data input/output              - MDIO 管理配置接口数据IO

MII管理接口是个双信号接口,一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。MII界面传递了网络的所有数据和数据的控制,而MAC对PHY的工作状态的确定和对PHY的控制则是使用SMI(Serial Management Interface)界面通过读写PHY的寄存器来完成的。PHY里面的部分寄存器是IEEE定义的,这样PHY把自己的目前的状态反映到寄存器里面,MAC通过SMI总线不断的读取PHY的状态寄存器以得知目前PHY的状态,例如连接速度,双工能力等。当然也可以通过SMI设置PHY的寄存器达到控制的目的,例如流控的打开关闭,自协商模式还是强制模式等。不论是物理连接的MII总线和SMI总线还是PHY的状态寄存器和控制寄存器都是有IEEE的规范的,因此不同公司的MAC和PHY一样可以协调工作。

RMII(Reduced Media Independant Interface)简化媒体独立接口,是标准的以太网接口之一,比MII有更少的I/O传输

MII/RMII只是一种接口,对于10M线速,MII的时钟是2.5M,RMII则是5M;对于100M线速,MII的时钟是25M,RMII则是50M。

MII/RMII 用于传输以太网包,在MII/RMII接口是4/2bit的,在以太网的PHY里需要做串并转换、编解码等才能在双绞线和光纤上进行传输,其帧格式遵循IEEE 802.3(10M)/IEEE 802.3u(100M)/IEEE 802.1q(VLAN)

以太网帧的格式为:

前导符+开始位+目的mac地址+源mac地址+类型/长度+数据+padding(optional)+32bitCRC

(3)PHY

PHY是物理接口收发器,它实现物理层。包括MII/GMII(介质独立接口)子层、PCS(物理编码子层)、PMA(物理介质附加)子层、PMD(物理介质相关)子层、MDI子层。

100BaseTX采用4B/5B编码。PHY在发送数据时,收到MAC过来的数据(对PHY来说,没有帧的概念,对它来说,都是数据而不管什么地址,数据还是CRC),每4bit就增加1bit的检错码,然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去。收数据时的流程反之。PHY还有个重要的功能就是实现CSMA/CD的部分功能。它可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个随机时间后将送数据出去。如果两个碰巧同时送出了数据,那样必将造成冲突,这时候,冲突检测机构可以检测到冲突,然后各等待一个随机的时间重新发送数据。这个随机时间很有讲究的,并不是一个常数,在不同的时刻计算出来的随机时间都是不同的,而且有多重算法来应付出现概率很低的同两台主机之间的第二次冲突。通信速率通过双方协商,协商的结果是两个设备中能同时支持的最大速度和最好的双工模式。这个技术被称为Auto Negotiation或NWAY。

基于以上知识,回头来看以太网接口的知识。

以太网(Ethernet)是一种计算机局域网组网技术,基于IEEE制定的IEEE 802.3标准,它规定了包括物理层的连线、电信号和介质访问层协议的内容。以太网是当前应用最普遍的局域网技术。

Ethernet的接口实质是MAC通过MII总线控制PHY的过程。他们之间的关系是pci总线接mac总线,mac接phy,phy接网线。

通过图可能会更清晰:

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

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

1.CPU集成MAC与PHY;

2.CPU集成MAC,PHY采用独立芯片;

3.CPU不集成MAC与PHY,MAC与PHY采用集成芯片;

2.Ethercat从站控制器(ESC)-ET1100

(1)Ethercat从站构成

Ethercat从站设备同时实现通信和控制两部分功能。结构如下

可以看出,从站与外界的接口可以是EBUS或者MII,MII是标准的以太网物理层接口,使用外部物理层芯片(PHY);EBUS是德国倍福公司使用LVDS标准定义的数据传输标准,可以直接接ESC芯片,不需要接额外的物理层芯片。

ESC从具有四个数据收发端口,每个端口都可以收发以太网数据帧。数据帧在ESC内部的传输顺序是固定的。通常,数据从0端口进入ESC,然后按照端口3-1-2-0依次传输。如果ESC检测到某个端口没有外部链接,则自动闭合此端口,数据将自动回环并转发到下一个端口。一个Ethercat从站设备至少使用两个数据端口。

(2)Ethercat从站控制芯片

Ethercat从站控制芯片是ESC实现Ethercat数据链路层协议的专用集成芯片。他处理Ethercat数据帧,并为从站控制装置提供数据结口。

ESC由倍福公司提供,包括ASIC芯片和IP-Core,目前有两种规格的芯片,ET1100(4端口)和ET1200(3端口)

ET1100关于PHY的存储空间的定义如下、:

ET1100结构图

ET1100有关引脚定义

PHYAD_OFF用来设置偏移地址

这两个引脚用来控制PHY

ET1100对PHY的要求:

ET1100没有使用标准MII接口的全部引脚信息。下表和图分别描述了ET1100所使用的的MII接口信号和MII与PHY在使用时的连接示意图

MI_DATA应该连接外部上拉电阻,推荐阻值为4.7欧。MI_CLK为轨到轨驱动,空闲时为高。

每个端口的PHY地址等于其逻辑端口号加1(PHYAD_OFF=0,PHY地址为1-4)或逻辑端口号加17(PHYAD_OFF=1,PHY地址为17-20)

一般情况下,偏移地址应该设为0,但当端口0被用作广播地址时,偏移地址应该设为1.

ET1100的引脚配置

以下是ET1100读取PHY的步骤

ET1100和PHY的总结相关推荐

  1. Linux 网卡驱动 PHY Mac MDIO kernel 驱动讲解 (未完待续)

    前言 会从网卡的硬件结构讲解,然后再到 kernel 驱动调用的讲解 我用Xilinx Zu2cg开发板的实际举例,一般嵌入式设备肯定会预留网口,用作调试开发,组网通讯使用,那么开发板的意义在哪 意义 ...

  2. 802.11(wi-fi)的PHY层(编码与调制方法)

    版本概要: 802.11-2007是目前的基础版本,之前的过时版本不考虑. 2009是较新的版本,就是目前最普及的802.11n.(100Mb/s) 2012就是传说中的802.11ac,工作在5G, ...

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

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

  4. phy芯片测试寄存器_PCIe 5.0首秀!7nm IP方案已成熟!PCIe 5.0的芯片设计有多难?...

    PCIe 4.0产品正在纷纷面世,但是下一代PCIe 5.0已经迫不及待地走来,标准规范刚刚完成不到半年的它,已经得到了一批产品和技术的采纳,比如Intel 10nm Agilex FPGA,比如CX ...

  5. Network 之二 Ethernet(以太网)中的 MAC、MII、PHY 详解

    结构   从硬件的角度看,以太网接口电路主要由 MAC(Media Access Control,MAC)控制器和物理层接口 PHY(Physical Layer,PHY)两大部分构成.如下图所示: ...

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

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

  7. 太网设计FAQ:以太网MAC和PHY

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

  8. python动态生成html报表_Python应用phy模块生成html表格

    phy是一个用来生成html页面的Python模块,使用面向对象的方式,html的标签都会对应一个Python的对象,输出的html文档排版良好,易于阅读. phy模块下载即安装使用方法,详见:htt ...

  9. PHY管理接口(MDIO)

    对吉比特以太网而言,串行通信总线称为管理数据输入输出(MDIO).该总线由IEEE通过以太网标准IEEE802.3的若干条款加以定义.MDIO是一种简单的双线串行接口,将管理器件(如:MAC控制器,微 ...

  10. uboot: RTL8201 100M PHY驱动代码

    u-boot-2020.04不支持RTL8201 PHY. 1. Patch https://lists.denx.de/pipermail/u-boot/2020-January/397725.ht ...

最新文章

  1. 2018.09.14 codechef Milestone(随机化算法)
  2. Spring框架基于AspectJ的AOP开发规范和步骤
  3. Android异步处理:Handler+Looper+MessageQueue深入详解
  4. 程序员给小姐姐修电脑的最佳地方和姿势
  5. .NET/C#使用NPOI操作Excel
  6. 华为宣布智能计算战略,全栈全场景,当企业智能化转型加速器
  7. win10 只要打开文件对话框就卡死解决方法
  8. NumpyML : Linear Regression
  9. 打印linux当前系统时间格式,date命令_Linux date命令使用详解:显示或设置系统时间和日期...
  10. html5验证码制作,Html5生成验证码的示例代码
  11. graphpad做折线图_GraphPad 折线图要这样玩
  12. 数学连乘和累加运算符号_数学所有的公式和符号
  13. 2. Python基础
  14. x是小于9的非负数的matlab,x是小于10的非负数”,用MATLAB表达式可写为
  15. 微信小程序canvas画价格走势图(六)
  16. Processing残影拖尾效果实现套路分享
  17. 某客服热线呼叫中心话务分析
  18. 在Linux上建立ssh隧道
  19. 欲望、外界、标签、天才、时间、经历、人生目标、后悔、和现实。转自特种兵—AK47
  20. 超级联盟战队,等待你的加入

热门文章

  1. python爬数据是什么意思-爬数据是什么意思?
  2. 熊出没机器人光头强_熊出没:光头强除了3个真名,还有6个外号,第4个最让人心酸...
  3. Bootstrap实战 - 注册和登录
  4. 如何快速填充表格公式
  5. Field属性(域)
  6. 人脸识别门禁系统设计(一)
  7. 计算机笔记本摄像头无法使用,笔记本摄像头不能用怎么回事 笔记本摄像头不能用解决方法...
  8. word文档动态插入水印,45度角,位于文档中央,可插入中文(附jar包和licence文件))
  9. 2016年9月学习总结与反思
  10. “均线金叉和均线死叉”的经典战法