Linux嵌入式以太网硬件接口详解

  • 首页
  • 雷竞技app客户端官网介绍
  • 产品展示
  • 新闻动态
  • 你的位置:雷竞技app客户端官网 > 新闻动态 > Linux嵌入式以太网硬件接口详解

    Linux嵌入式以太网硬件接口详解

    发布日期:2026-02-14 23:39    点击次数:108

    嵌入式以太网硬件架构由SoC内部MAC、外部PHY芯片和RJ45接口组成,通过MII/RMII接口实现数据传输,MDIO接口负责PHY配置与状态监控。

    一、整体架构

    一个完整的嵌入式以太网通信链路由以下三部分组成:

    - SoC 内部 MAC

    - 外部 PHY 芯片

    - RJ45 接口(含/不含磁性模块)

    关键角色分工如下:

    - MAC:负责处理帧的封装与拆解、CRC校验、地址过滤等逻辑层功能。

    - PHY:完成数字信号到模拟差分信号的转换,实现物理层的通信。

    - RJ45 + 变压器:提供电气隔离、阻抗匹配以及物理连接。

    二、MII 接口(Media Independent Interface)

    MII接口是一种介质独立接口,用于连接以太网MAC和PHY芯片。其基本信息包括:

    - 全称:介质独立接口

    - 标准:IEEE 802.3定义

    - 速率支持:10 Mbps / 100 Mbps

    - 数据位宽:4位并行

    - 信号线数量:16根

    主要信号定义有:TX_CLK(发送时钟)、RX_CLK(接收时钟)、TX_EN(发送使能)、TX_ER(发送错误)、TXD[3:0](发送数据)、RX_DV(接收数据有效)、RX_ER(接收错误)、RXD[3:0](接收数据)、CRS(载波侦听)、COL(冲突检测)。

    然而,MII接口的缺点在于引脚数量多,占用资源大,因此在一些小型化、低成本的设备中逐渐被RMII接口所取代。

    三、RMII 接口(Reduced MII)

    RMII接口是MII接口的精简版本,旨在简化设计并降低引脚数和布线复杂度。其基本信息如下:

    - 全称:精简的介质独立接口

    - 目的:简化MII接口,降低引脚数和布线复杂度

    - 信号线数量:7根

    - 数据位宽:2位并行

    - 时钟频率:固定为50 MHz

    主要信号定义包括:REF_CLK(参考时钟)、TX_EN(发送使能)、TXD[1:0](发送数据)、RXD[1:0](接收数据)、CRS_DV(载波侦听/接收数据有效)。

    RMII接口的优势在于引脚数量少,能够节省PCB面积和SoC I/O资源,非常适合资源受限的平台。但其限制在于不支持冲突检测,仅支持全双工模式。

    四、MDIO 接口(Management Data I/O)

    MDIO接口是一种管理数据输入/输出接口,用于配置、监控和调试PHY芯片。其基本信息如下:

    - 作用:配置、监控、调试PHY芯片

    - 类型:两线串行总线(类似于I²C)

    主要信号线包括:MDC(管理数据时钟)和MDIO(双向数据线)。

    MDIO接口的特性包括支持最多32个PHY设备,每个PHY设备必须有唯一的器件地址。它主要用于上电初始化、查询链路状态、读取错误计数等操作。

    五、RJ45 接口与网络变压器

    RJ45接口是一种标准的8P8C插座,用于插入以太网水晶头。网络变压器则位于PHY芯片和RJ45接口之间,起到电气隔离、共模噪声抑制和阻抗匹配的作用。

    网络变压器有两种实现方式:外置变压器和内置变压器。外置变压器需要额外的磁性模块芯片,而内置变压器则将磁性模块集成在RJ45座内(如HR911105A型号)。

    此外,RJ45接口上通常有两个指示灯:绿色灯表示链路建立成功,黄色或橙色灯表示正在收发数据。

    六、I.MX6ULL ENET 接口特性

    I.MX6ULL处理器具有两个独立的ENET控制器(即两个MAC),支持10/100 Mbps的速率,并符合IEEE 802.3-2002标准。其主要特性包括协议加速(硬件加速TCP/IP、UDP、ICMP等协议头部处理)、RMON支持(远程网络监控,提供流量统计和错误计数)、灵活的PHY接口支持(标准MII、MII-Lite、RMII)以及其他功能如可编程MAC地址、单播/多播地址过滤、魔术帧唤醒、专用DMA和支持IEEE 1588等。

    对于开发者来说,Linux内核已经提供了i.MX6ULL ENET驱动的支持,因此无需重写MAC驱动。重点在于正确配置设备树中的相关参数即可。

    七、总结对比

    MII和RMII接口各有特点。MII接口采用4位并行数据传输机制,在100Mbps速率下时钟频率为25MHz;而在10Mbps速率下则为2.5MHz。相比之下,RMII接口使用2位宽数据收发通道,并通过提升时钟频率至50MHz来维持等效带宽。由于RMII接口减少了约一半的物理连接需求且成本更低,因此更适合于引脚资源受限的MCU设计和小型网络设备中应用广泛。然而需要注意的是,RMII接口不支持冲突检测功能,只能工作在全双工模式下。

    八、典型连接示意

    [I.MX6ULL SoC]

    ├── ENET_MAC

    │ ├── RMII: TX_EN, TXD[1:0], RXD[1:0], CRS_DV, REF_CLK (50MHz)

    │ └── MDIO: MDC, MDIO

    [PHY 芯片](例如LAN8720或KSZ8081)

    ├── 差分信号:TXP/TXN, RXP/RXN

    [网络变压器](可能集成于RJ45内)

    [RJ45 插座 HR911105A] ←─(带有Link/Act LED指示灯)

    [网线 → 路由器]

    开发建议:

    - 新项目应优先考虑使用RMII接口配合内置变压器的RJ45插座方案;

    - 确保在设备树文件中明确指定`phy-mode = "rmii"`;

    - 使用示波器检查REF_CLK是否为稳定的50MHz时钟信号;

    - 利用`ethtool eth0`命令查看当前链路状态及协商结果等信息。



    TOP