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