[以太网/USB/其他总线] 如何正确读取以太网PHY链路状态位?

[复制链接]
2578|11
 楼主| edustudy 发表于 2024-1-26 11:40 | 显示全部楼层 |阅读模式
本帖最后由 edustudy 于 2024-1-26 11:42 编辑

      根据 IEEE 802.3 标准的定义,用于链路状态的 PHY 寄存器 1h 位 [2] 是一个latched-low位。这意味着每当 PHY 检测到链路接通到链路断开状态转换时,链路状态位将保留链路断开的“0”值,并且仅在读取后才清除。latched-low有助于确保记录链路断开(无论再次重新建立链路之前的持续时间有多短),并且可以由上层网络层(例如,MAC 处理器)从 PHY 寄存器读取。
      要正确检查当前链路状态(无论是链路接通还是链路断开),应按如下方式读取链路状态位(PHY 寄存器 1h,位 [2]):如果读取值为“1”,则确认连接。如果读取值为“0”(可能被锁存为低值),则需要再次读取当前链路状态,这可能会返回值“0”(表示链路断开)或“1”(表示链路接通)。

21mengnan 发表于 2024-1-27 20:44 | 显示全部楼层
使用的是RJ45接口的?
班杰明 发表于 2024-1-29 12:06 来自手机 | 显示全部楼层
不同的以太网PHY芯片寄存器和位定义可能不一样
drawingchips 发表于 2024-1-29 17:37 | 显示全部楼层
使用RJ45接口,就可以去掉这个问题
lamanius 发表于 2024-2-5 16:47 | 显示全部楼层
要确定使用的以太网PHY芯片的型号,并查阅其数据手册。在数据手册中找到关于链路状态的寄存器,通常会有一个专门用于表示链路状态的寄存器或者特定的位
y1n9an 发表于 2024-2-5 17:52 | 显示全部楼层
使用微控制器或者处理器的相应接口(比如SPI、I2C等)向PHY芯片发送读取寄存器的命令,并指定要读取的寄存器地址
zhizia4f 发表于 2024-2-5 19:15 | 显示全部楼层
利用程序操作,一旦成功读取了寄存器的值,就可以解析其中与链路状态相关的位。通常,PHY芯片的数据手册会详细说明每个位的含义,包括链路状态位的含义和取值
tax2r6c 发表于 2024-2-5 20:55 | 显示全部楼层
根据读取到的链路状态位的取值,可以判断链路的连接状态。通常,链路状态位的取值可能包括连接正常、连接断开、自协商中等状态
chenjun89 发表于 2024-2-5 22:00 来自手机 | 显示全部楼层
可以直接读取PHY芯片的寄存器位
d1ng2x 发表于 2024-2-5 22:15 | 显示全部楼层
其实,我觉得您要是用官方的例程来调试应该效果更好一些
SophiaOP 发表于 2024-2-21 15:52 | 显示全部楼层
通过寄存器中的数据就可以判断工作状态
OliviaSH 发表于 2024-2-25 22:16 | 显示全部楼层
用的什么接口啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

10

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部