打印
[以太网/USB/其他总线]

如何正确读取以太网PHY链路状态位?

[复制链接]
664|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接口,就可以去掉这个问题

使用特权

评论回复
5
lamanius| | 2024-2-5 16:47 | 只看该作者
要确定使用的以太网PHY芯片的型号,并查阅其数据手册。在数据手册中找到关于链路状态的寄存器,通常会有一个专门用于表示链路状态的寄存器或者特定的位

使用特权

评论回复
6
y1n9an| | 2024-2-5 17:52 | 只看该作者
使用微控制器或者处理器的相应接口(比如SPI、I2C等)向PHY芯片发送读取寄存器的命令,并指定要读取的寄存器地址

使用特权

评论回复
7
zhizia4f| | 2024-2-5 19:15 | 只看该作者
利用程序操作,一旦成功读取了寄存器的值,就可以解析其中与链路状态相关的位。通常,PHY芯片的数据手册会详细说明每个位的含义,包括链路状态位的含义和取值

使用特权

评论回复
8
tax2r6c| | 2024-2-5 20:55 | 只看该作者
根据读取到的链路状态位的取值,可以判断链路的连接状态。通常,链路状态位的取值可能包括连接正常、连接断开、自协商中等状态

使用特权

评论回复
9
chenjun89| | 2024-2-5 22:00 | 只看该作者
可以直接读取PHY芯片的寄存器位

使用特权

评论回复
10
d1ng2x| | 2024-2-5 22:15 | 只看该作者
其实,我觉得您要是用官方的例程来调试应该效果更好一些

使用特权

评论回复
11
SophiaOP| | 2024-2-21 15:52 | 只看该作者
通过寄存器中的数据就可以判断工作状态

使用特权

评论回复
12
OliviaSH| | 2024-2-25 22:16 | 只看该作者
用的什么接口啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

6

帖子

1

粉丝