PHY芯片寄存器分页原理和访问方式

PHY芯片寄存器分页原理和访问方式

PHY是由IEEE802.3定义的,一般通过SMI对PHY进行管理和控制,也就是读写PHY芯片的内部寄存器。PHY寄存器的地址空间为5位,可以定义0 ~ 31共32个寄存器,其中IEEE802.3定义了0 ~ 15这16个寄存器的功能,剩下的16~31寄存器由芯片制造商自己定义,用于实现一些自己独有的功能。但是随着PHY芯片功能的增加,很多PHY芯片都采用分页技术来扩展地址空间,定义更多的寄存器,下面我们就讲一下分页技术。
其实采用分页技术来扩展地址空间是有限制的,限制包括:

  1. 传统的是32个寄存器,其中0 ~ 15这16个寄存器的功能是IEEE802.3定死的,因此在扩展的时候,0 ~ 15这16个寄存器的功能和访问方式一定要和不扩展兼容。否则你就是不符合IEEE802.3规范。
  2. PHY寄存器的地址空间为5位,因此最多只能直接访问2^5 = 32个寄存器,0 ~ 15这16个寄存器的功能是IEEE802.3定死,因此一般只能在剩下的16~31寄存器上下功夫,来实现扩展。

下面这个是PHY芯片ip101G的寄存器表,它采用了分页技术,我们以它来解释分页的原理和访问方法,基本上所有的phy芯片扩展都是采用这种类似方案。
在这里插入图片描述
在这里插入图片描述

PHY寄存器的地址空间为5位,可以定义0 ~ 31共32个寄存器,其中IEEE802.3定义了0 ~ 15这16个寄存器的功能,因此当外设访问这16个寄存器的时候,不管PHY用没用分页技术,在访问上都不应该有区别,因此Register在范围0 ~ 15都是没有页的概念的,Page用- -表示了,当外部访问0~15寄存器的时候,页不会生效。

当外部访问16 ~ 31寄存器的时候,由于这部分是PHY厂家定义的,对于采用分页技术的来说,这时候它就会去找页,那页在哪里呢?从上面我们可以知道ip101G芯片寄存器20里面存的就是页地址,比如当我们要访问16页30号寄存器的时候,要先将16设置到寄存器20里面,这时候在访问30号寄存器的时候,PHY芯片发现30大于15,因此访问的不是0~15寄存器,这时候就会去读寄存器20里面页地址,然后就会找到对应的寄存器了。

对于每一种采用分页技术的PHY芯片采用的原理是有差异的,但是基本上大同小异,这样既保证了0~15这16个寄存器访问没有区别,又保证了分页扩充。

猜你喜欢

转载自blog.csdn.net/Zhichao_Zhang/article/details/128420562
今日推荐