Linux 网络

本文介绍了Linux网络中的嵌入式网络硬件接口,包括内部集成和外部网络MAC的区别,重点讨论了MAC与PHY芯片的连接方式如MII、RMII接口,以及MDIO接口的作用。同时,讲解了I.MX6ULL的ENET接口特性和LAN8720A PHY芯片的功能。最后,概述了Linux内核的网络驱动框架、NAPI处理机制和PHY子系统的运作。
摘要由CSDN通过智能技术生成

Linux 网络

  • 嵌入式下的网络硬件接口

    • 嵌入式网络硬件分为两部分:MAC 和 PHY,通过看数据手册来判断一款 SOC 是否支持网络,如果一款芯片数据手册说自己支持网络,一般都是说的这款 SOC 内置 MAC,MAC 类似 I2C 控制器、SPI 控制器一样的外设。
    • 但是光有 MAC还不能直接驱动网络,还需要另外一个芯片:PHY,因此对于内置 MAC 的 SOC,其外部必须搭配一个 PHY 芯片。
  • 1、SOC 内部没有网络 MAC 外设

    • 既然没有内部 MAC,那么可以找个外置的 MAC 芯片啊,不过一般这种外置的网络芯片都是 MAC+PHY 一体的。DM9000 对 SOC 提供了一个 SRAM 接口,SOC 会以 SRAM 的方式操作 DM9000。

    • 有些外置的网络芯片更强大,内部甚至集成了硬件 TCP/IP 协议栈,对外提供一个 SPI 接口,比如 W5500。

    • 这种方案的优点就是让不支持网络的 SOC 能够另辟蹊径,实现网络功能,但是缺点就是网络效率不高,因为一般芯片内置的 MAC 会有网络加速引擎,比如网络专用 DMA,网络处理效率会很高。

    • 而且此类芯片网速都不快,基本就是 10/100M。另外,相比 PHY 芯片而言,此类芯片的成本也比较高,可选择比较少。

  • 2、SOC 内部集成网络 MAC 外设

    • 一般常见的通用 SOC 都会集成网络 MAC 外设,内部集成网络 MAC 的优点如下:
      • ①、内部 MAC 外设会有专用的加速模块,比如专用的 DMA,加速网速数据的处理。
      • ②、网速快,可以支持 10/100/1000M 网速。
      • ③、外接 PHY 可选择性多,成本低。
    • 内部的 MAC 外设会通过 MII 或者 RMII 接口来连接外部的 PHY 芯片,MII/RMII 接口用来传输网络数据。
    • 另外主控需要配置或读取 PHY 芯片,也就是读写 PHY 的内部寄存器,所以还需要一个控制接口,叫做 MIDO,MDIO 很类似 IIC,也是两根线,一根数据线叫做 MDIO,一根时钟线叫做 MDC。
  • 1、MII 接口

    • MII 全称是 Media Independent Interface,直译过来就是介质独立接口,它是 IEEE-802.3 定义的以太网标准接口,MII 接口用于以太网 MAC 连接 PHY 芯片
    • MII 接口的缺点就是所需信号线太多,这还没有算 MDIO 和 MDC 这两根管理接口的数据线,因此 MII 接口使用已经越来越少了。
  • 2、RMII 接口

    • RMII 全称是 Reduced Media Independent Interface,翻译过来就是精简的介质独立接口,也就是 MII 接口的精简版本。RMII 接口只需要 7 根数据线,相比 MII 直接减少了 9 根,极大的方便了板子布线
    • 除了 MII 和 RMII 以外,还有其他接口&#x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值