网络驱动子系统

  1. 网络驱动子系统
    1. RMII 接口
    2. MDIO 接口
    3. RJ45 接口

网络驱动子系统

SOC 内部 MAC 外设与外部 PHY 芯片的连接如图 所示:

MAC与PHY芯片

MII 接口的缺点就是所需信号线太多,这还没有算 MDIO 和 MDC 这两根管理接口的数据线,因此 MII 接口使用已经越来越少了

RMII 接口

​ RMII 全称是 Reduced Media Independent Interface,翻译过来就是精简的介质独立接口。RMII 接口只需要 7 根数据线,相比 MII 直接减少了 9 根,极大的方便了板子布线,RMII 接口连接 PHY 芯片的示意图如图所示:

![RMII 接口连接 PHY 芯片](/images/RMII 接口连接 PHY 芯片.png)

TX_EN:发送使能信号。

**TXD[1:0]**:发送数据信号线,一共 2 根。

**RXD[1:0]**:接收数据信号线,一共 2 根。

CRS_DV:相当于 MII 接口中的 RX_DV 和 CRS 这两个信号的混合。RX_DV:接收数据有效,作用类似 TX_EN。CRS:载波侦听信号。

REF_CLK:参考时钟,由外部时钟源提供, 频率为 50MHz。这里与 MII 不同,MII 的接收和发送时钟是独立分开的,而且都是由 PHY 芯片提供的。

除了 MII 和 RMII 以外,还有其他接口,比如 GMII、RGMII、SMII、SMII 等,关于其他接口基本都是大同小异的。

MDIO 接口

​ MDIO 全称是 Management Data Input/Output,直译过来就是管理数据输入输出接口,是一个简单的两线串行接口,一根 MDIO 数据线,一根 MDC 时钟线。驱动程序可以通过 MDIO 和MDC 这两根线访问 PHY 芯片的任意一个寄存器。MDIO 接口支持多达 32 个 PHY。同一时刻内只能对一个 PHY 进行操作,那么如何区分这 32 个 PHY 芯片呢?和 IIC 一样,使用器件地址即可。同一 MDIO 接口下的所有 PHY 芯片,其器件地址不能冲突,必须保证唯一,具体器件地址值要查阅相应的 PHY 数据手册。

RJ45 接口

网络设备是通过网线连接起来的,插入网线的叫做 RJ45 座

![RJ45 座](/images/RJ45 座.png)

RJ45 座要与 PHY 芯片连接在一起,但是中间需要一个网络变压器,网络变压器用于隔离以及滤波等,网络变压器也是一个芯片

网络变压器

但是现在很多 RJ45 座子内部已经集成了网络变压器,比如正点原子 ALPHA 开发板所使用的 HR911105A 就是内置网络变压器的 RJ45 座。RJ45 座子上一般有两个灯,一个黄色(橙色),一个绿色,绿色亮的话表示网络连接正常黄色闪烁的话说明当前正在进行网络通信。这两个灯由 PHY 芯片控制,PHY 芯片会有两个引脚来连接 RJ45 座上的这两个灯。内部 MAC+外部 PHY+RJ45 座(内置网络变压器)就组成了一个完整的嵌入式网络接口硬件,如图 所示:

嵌入式网络硬件接口示意图


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 351134995@qq.com

×

喜欢就点赞,疼爱就打赏