以太网MAC与PHY(二)

目录

一、概述

二、MAC控制器

三、PHY

四、SMI协议


一、概述

        以太网硬件主要包括OSI的最下面两层,物理层和数据链路层

  • 物理层:定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层提供标准接口。物理层的芯片为PHY
  • 数据链路层:提供限制机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。数据链路的芯片为MAC控制器。

        从硬件设计的角度,以太网硬件电路包含MCU、MAC控制器、PHY组成(在MCU、MAC之间可能存在DMA数据传输)。这三部分并不一定是单独芯片,有以下集中形式:

  • MCU内部集成了MAC、PHY,难度较高;
  • MCU内部集成MAC,PHY采用独立芯片(主流方案)
  • MCU不集成MAC、PHY,MAC和PHY采用独立芯片或集成芯片(高端应用)

二、MAC控制器

        MAC,即媒体访问控制子层协议。MAC由硬件控制器及MAC通信协议构成。该协议位于OSI模型中的数据链路层的下半部分,主要负责控制域连接物理层介质。

  • 发送数据:MAC协议可以实现判断是否可以发送数据,如果可以发送将数据加上一些控制信息,最后按规定的格式发送给物理层。
  • 接收信息:MAC协议首先判断输入的信息是否发生传输错误,如没有错位,则去掉控制信息将数据发送到LLC(逻辑链路控制层)。

三、PHY

        物理层PHY:数据传输与接收所需要的电与光信号、线路状态、时钟基准、数据编辑和电路等,并向数据链路层设备提供标准接口;

  • 发送数据:当收到MAC过来的数据,PHY将接收道的并行数据转为串行流数据,再按照物理层编码规则将数据编码,并转为模拟型号发送出去
  • 接收数据:模拟数据转为数字数据,在解码并转为并行数据发送给MAC
  • PHY还有一个重要功能就是网络上是否有数据传输,只有检测到总线空闲后,等待随机时间后发送数据,或是数据发送时同时检测到冲突,各自等待随机时间后重新发送数据。

        PHY作为IEEE802.3中定义的一个标准模块,通过SMI接口对PHY的行为、状态进行管理和控制。其控制动作就是通过读写PHY内部寄存器实现的。

  • PHY芯片的寄存器地址空间是5位,一般由外部硬件连接决定。
  • PHY寄存器的地址空间为5位,可以定义0~31共32个寄存器,IEEE 802.3定义了0~15这16个寄存器的功能,16~31寄存器由芯片制造厂商自由定义。也就是说不管哪个厂商的PHY芯片,其中0~15这16个寄存器是一模一样的。(很多厂商采用了分页机制来开展寄存器地址空间)

寄存器地址

寄存器名称

描述

0

Control

控制寄存器

1

Status

状态寄存器

2,3

PHY Identifier

PHY地址

4

Auto-Negotiation Advertisement

自动协商

5

Auto-Negotiation Link Partner Base Page Ability

6

Auto-Negotiation Expansion

7

Auto-Negotiation Next Page Transmit

8

Auto-Negotiation Link Partner Received Next Page

9

MASTER-SLAVER Control Register

主从模式控制寄存器

10

MASTER-SLAVE Status Regsiter

主从模式状态寄存器

11

PSE Control Register

12

PSE status Register

13

MMD Access Control Register

MMD访问控制器寄存器

14

MMD Access Adderss Data Register

15

Extended Status

扩展状态

16~31

Vendor Specific

芯片厂商自定义

四、SMI协议

        SMI数据协议有Clause22 和 Clause45是两种不同格式数据协议,其中Clause22是在IEEE802.3里面定义的,随着以太网的发展,为了满足10G以太网的需求扩展,在802.3ae规范标准中提出了Clause45。

数据段

长度

Clause 22

Clause 45

ST

2 bits

帧起始, Clause 22中为01

帧起始, Clause 45中为00

OP

2 bits

操作码:10表示读,01表示写

操作码,Clause45有4种操作码,

00:表示设置当前寄存器地址,

01:表示写当前寄存器。

10:表示读当前寄存器,

11:表示读当前寄存器读完后把当前寄存器的值加1,用于顺序读。

PHYADR

5 bits

5位PHY地址

5位PHY地址

REGADR

5 bits

5位寄存器地址

子模块类型

TA

2 bits

如果需要,将总线所有权从STA更改为MMD的周转时间(读操作用到)

如果需要,将总线所有权从STA更改为MMD的周转时间(读操作用到)

DATA(ADDR/DATA)

16 bits

数据

写入期间由STA驱动

读取过程中由MMD驱动

数据

写入期间由STA驱动

读取过程中由MMD驱动

你可能感兴趣的:(以太网通信,网络,mcu,嵌入式硬件)