ALPHA开发板上PHY网络芯片LAN8720:常用的几个寄存器功能

一. 简介

正点原子的开发板 ALPHA开发板,有线网络硬件方案所使用的也是最常用的一种方案,IMX6ULL芯片内部是自带 MAC网络芯片的,所以,也就是采用 "SOC内部集成网络MAC外设+ PHY网络芯片方案"。

前面一篇文章简单了解了(ALPHA开发板上的) PHY网络芯片 的特性,PHY地址,工作模式等,文章如下:

ALPHA开发板上PHY网络芯片LAN8720-CSDN博客

本文简单了解一下LAN8720网络芯片的几个常用的寄存器。

二. ALPHA开发板上PHY网络芯片LAN8720:常用的几个寄存器

1. BCR控制寄存器

LAN8720A 的前 16 个寄存器满足 IEEE 的要求,在这里我们只介绍几个常用的寄存器,首先是 BCR(Basic Control Rgsister)寄存器,地址为 0,BCR 寄存器各位如下表所示。

|---------|---------------------------------------------------|----------|
| ##### 位 | ##### 描述 | ##### 类型 |
| 15 | 软件复位 1:软件复位,此位自动清零 | R/W |
| 14 | 回测 0:正常运行 1:使能回测模式 | R/W |
| 13 | 速度选择 0:10Mbps 1:100Mbps 注意:当使用自动协商功能时此位失能 | R/W |
| 12 | 自动协商功能 0:关闭自动协商功能 1:打开自动协商功能 | R/W |
| 11 | 掉电(power down) 0:正常运行 1:进入掉电模式 注意:进入掉电模式前自动协商必须失能 | R/W |
| 10 | 隔离 0:正常运行 1:PHY 的 RMII 接口电气隔离 | R/W |
| 9 | 重启自动协商功能 0:正常运行 1:重启自动协商功能 注意:此位会被自动清零 | R/W SC |
| 8 | 双工模式 0:半双工 1:全双工 注意:开启自动协商功能后此位失效 | R/W |
| 7:0 | 保留 | RO |

我们说的配置 PHY 芯片,重点就是配置 BCR 寄存器,由于 LAN8720A 是个 10/100M 的 PHY ,因此,上面的表 中没有体现出 1000M 相关的配置。但是 10/100M 相关的配置是和 IEEE 的规定完全相符的,大家可以选择一个其他的 10/100M 的 PHY 芯片对比看一下,比如 NXP 官 方 EVK 开发板使用的 KSZ8081 。

2. BSR状态寄存器

接下来看一下 BSR(Basic Status Register) 寄存器,地址为 1 。此寄存器为 PHY 的状态寄存器,通过此寄存器可以获取到 PHY 芯片的工作状态, BSR 寄存器各位如表 69.2.2.4 所示:

|-------------|---------------------------------------------------------|----------|
| ##### | ##### 描述 | ##### 类型 |
| 15 | 100BAST-T4 0 :不支持 T4 1 :支持 T4 | RO |
| 14 | 100BAST-TX 全双工 0 :不支持 TX 全双工 1 :支持 TX 全双工 | RO |
| 13 | 100BAST-TX 半双工 0 :不支持 TX 半双工 1 :支持 TX 半双工个 | RO |
| 12 | 10BAST-T 全双工 0 :不支持 10Mbps 全双工 1 :支持 10Mbps 全双工 | RO |
| 11 | 10BAST-T 半双工 0 :不支持 10Mbps 半双工 1 :支持 10Mbps 半双工 | RO |
| 10:6 | 保留 | RO |
| 5 | 自协商功能完成 0 :自动协商未完成 1 :自动协商完成 | RO |
| 4 | 远端错误 0 :无远端错误 1 :检测到远端错误 | RO/HL |
| 3 | 自协商功能 0 :不能执行自协商功能 1 :可以执行自协商功能 | RO |
| 2 | 连接状态 0 :连接断开 1 :连接建立 | RO/LL |
| 1 | Jabber 检测 0 :未检测到 jabber 1 :检测到 jabber | RO/LH |
| 0 | 扩展功能 0 :不支持扩展寄存器 1 :支持扩展寄存器 | RO |

上表中可以看出,和 IEEE 标准规定相比, LAN8720A 的 BSR 寄存器少了几个位, 这个没关系的,不管什么 PHY 芯片,只要它实现了的位和 IEEE 规定相符就行。通过读取 BSR 寄存器的值,我们可以得到当前的连接速度、双工状态和连接状态等。

3. PHY地址寄存器

接下来看一下 LAN8720A 的 PHY ID 寄存器 1 和 ID 寄存器 2 ,地址为 2 和 3 ,后面就成为寄存器 2 和寄存器 3 。这两个寄存器都是 PHY 的 ID 寄存器。
IEEE 规定寄存器 2 和寄存器 3 为 PHY 的 ID 寄存器,这两个寄存器组成一个 32 位的唯一 ID 值。
IEEE 规定了一叫做 OUI 的 ID 组成方式,全称是 Organizationally Unique Identifier , OUI 一共 32 位,分为三部分: 22 位的 ID+6 位厂商型号 ID+4 位厂商版本 ID 。组成如图 69.2.2.5 所示:

LAN8720A 的 ID 寄存器 2 如下表 所示:

ID 寄存器 3 如下表 所示:

4. LAN8720A 的特殊控制/状态寄存器

最后来看一下 LAN8720A 的特殊控制 / 状态寄存器,此寄存器地址为 31 ,寄存器内容是 LAN8720A 厂商自定义的,此寄存器的各个位如表 69.2.2.7 所示 :

|-------------|--------------------------------------------------------------------------------------|--------------|
| ##### | ##### 描述 | ##### 类型 |
| 15:13 | 保留 | RO |
| 12 | 自协商完成 0 :自协商未完成或者自协商关闭 1 :自协商完成 | RO |
| 11:5 | 保留 | R/W |
| 4:2 | 速度指示 001 : 10BASE-T 半双工 101 : 10BAST-T 全双工 010 : 100BAST-TX 半双工 110 : 100BAST-TX 全双工 | RO |
| 1:0 | 保留 | RO |

特殊控制 / 状态寄存器中我们关心的是 bit2~bit4 这三位,因为通过这 3 位来确定连接的状态和速度,关于 LAN8720A 这个 PHY 就讲解到这里。

相关推荐
马立杰3 小时前
H3CNE-33-BGP
运维·网络·h3cne
Mason Lin3 小时前
2025年1月22日(网络编程 udp)
网络·python·udp
字节全栈_rJF4 小时前
概述、 BGP AS 、BGP 邻居、 BGP 更新源 、BGP TTL 、BGP路由表、 BGP 同步
网络·智能路由器·php
EchoToMe4 小时前
电信传输基本理论/5G网络层次架构——超三万字详解:适用期末考试/考研/工作
网络·5g·架构
深度Linux4 小时前
Linux网络编程中的零拷贝:提升性能的秘密武器
linux·linux内核·零拷贝技术
doubt。4 小时前
8.攻防世界Web_php_wrong_nginx_config
网络·安全·web安全·网络安全
没有名字的小羊5 小时前
Cyber Security 101-Build Your Cyber Security Career-Security Principles(安全原则)
运维·网络·安全
m0_465215795 小时前
TCP & UDP Service Model
服务器·网络·tcp/ip
esmember5 小时前
电路研究9.2.6——合宙Air780EP中HTTP——HTTP GET 相关命令使用方法研究
网络·网络协议·http·at指令
xianwu5436 小时前
反向代理模块jmh
开发语言·网络·数据库·c++·mysql