linux网络驱动简介-网络接口(linux驱动开发篇)

1、网络硬件接口

  • 在电脑领域的“原始社会”,网卡是独立的硬件,如果电脑要上网就
    得买个网卡插上去,类似现在的显卡一样

  • 但是大家现在观察自己的笔记本或者台式机主板会
    发现并没有类似显卡一样的网卡设备,原因是随着技术的不断发展,现在只需要一个芯片就可以实现有线网卡功能,因此网卡芯片都直接放到了主板上。

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

  • 嵌入式中的网络硬件方案:
    1、SOC内部没有网络 MAC外设 。
    在这里插入图片描述
    那么可以找个外置的 MAC芯片啊,不过一般这种外置的网络芯片都是 MAC+PHY 一体的。

    2、SOC内部集成网络 MAC外设。
    在这里插入图片描述
    好处:成本低、速度快、可选择性多等

2、MII / RMII接口

  • 目的是与PYH传输网络数据
  • 内部 MAC 通过 MII/RMII 接口来与外部的 PHY 芯片连接成网络数据传输
  • MII接口:
    MII 接口用于以太网 MAC 连接 PHY 芯片,MII接口一共有16根信号线
    在这里插入图片描述
    TX_CLK:发送时钟,如果网速为 100M的话时钟频率为 25MHz,10M网速的话时钟频率为 2.5MHz,此时钟由 PHY 产生并发送给MAC。
    TX_EN:发送使能信号。
    TX_ER:发送错误信号,高电平有效,表示 TX_ER有效期内传输的数据无效。10Mpbs网
    速下TX_ER不起作用。
    TXD[3:0]:发送数据信号线,一共 4根。
    RXD[3:0]:接收数据信号线,一共 4根。
    RX_CLK:接收时钟信号,如果网速为 100M的话时钟频率为25MHz,10M网速的话时钟频率为2.5MHz,RX_CLK也是由PHY 产生的。
    RX_ER:接收错误信号,高电平有效,表示RX_ER有效期内传输的数据无效。10Mpbs网速下RX_ER不起作用。
    RX_DV:接收数据有效,作用类似TX_EN。
    CRS:载波侦听信号。
    COL:冲突检测信号。
    MII 接口的缺点就是所需信号线太多,这还没有算 MDIO 和 MDC 这两根管理接口的数据线,因此MII接口使用已经越来越少了。
  • RMII接口:
    MII 接口的精简版本,RMII 接口只需要 7 根数据线。
    在这里插入图片描述
    TX_EN:发送使能信号。
    TXD[1:0]:发送数据信号线,一共 2根。
    RXD[1:0]:接收数据信号线,一共 2根。
    CRS_DV:相当于 MII接口中的RX_DV和 CRS这两个信号的混合。
    REF_CLK:参考时钟,由外部时钟源提供, 频率为50MHz。这里与 MII不同,MII的接收和发送时钟是独立分开的,而且都是由PHY 芯片提供的。
  • 除了 MII 和 RMII 以外,还有其他接口,比如 GMII、RGMII、SMII、SMII 等,关于其他接口基本都是大同小异的,这里就不做讲解了。

3、MDIO接口

  • 目的配置PHY的各个寄存器
  • 管理数据输入输出接口,是一个简单的两线串行接口,一根 MDIO 数据线,一根MDC 时钟线。驱动程序可以通过 MDIO和MDC 这两根线访问 PHY 芯片的任意一个寄存器。MDIO 接口支持多达 32 个 PHY。同一时刻内只能对一个PHY进行操作。(这么多器件我们怎么才能去识别其中的一个呢?我们呢采用器件的地址来区分),
  • MAC 和外部 PHY 芯片进行连接的时候主要是 MII/RMII 和 MDIO 接口,另外可能还需要复位、中断等其他引脚

4、RJ45接口

  • RJ45我们呢都很熟悉,这里多不bb了,RJ45 座子上一般有两个灯,一个黄色(橙色),一个绿色,绿色亮的话表示网络连接正常,黄色闪烁的话说明当前正在进行网络通信。
    在这里插入图片描述

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

  • 现在很多RJ45座子内部已经集成了网络变压器,内置网络变压器的 RJ45 座和不内置的引脚一样,但是一般不内置的RJ45 座会短一点。

我们常常采用方案2
加粗样式

  • 内置的MAC + 外设PHY + 硬件接口RJ45
  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栋哥爱做饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值