一. 简介
本文来了解一下嵌入式有些网络中,涉及的网络硬件方案。
注意:本文说明的是有些网络。
提起网络,我们一般想到的硬件就是“网卡”,“网卡”这个概念最早从电脑领域传出来,顾名思义就是能上网的卡。在电脑领域的“原始社会”,网卡是独立的硬件,如果电脑要上网就
得买个网卡插上去,类似现在的显卡一样。
但是大家现在观察自己的笔记本或者台式机主板会
发现并没有类似显卡一样的网卡设备,原因是随着技术的不断发展,现在只需要一个芯片就可
以实现有线网卡功能,因此网卡芯片都直接放到了主板上。
目前有两种网络硬件方案:
1. SOC 内部没有网络 MAC 外设的情况下,那就要外部接上一块网络集合 MAC+PHY 功能的芯片。
2. SOC 内部集成网络 MAC 外设,外部只需要接上一块 PHY网络芯片。
注意:目前使用第二种网络硬件方案的比较常见,也就是 SOC处理器+ 一块PHY网络芯片。
接下来分别说明这两种网络硬件方案。
1. SOC 内部没有网络 MAC 外设
我们一般说某个
SOC
不支持网络,说的就是它没有网络
MAC
。那么这个芯片就不能上网
了吗?显然不是的,既然没有内部
MAC
,那么可以找个外置的
MAC
芯片啊,不过一般这种外
置的网络芯片都是
MAC+PHY
一体的。比如,三星
linux
开发板里面用的最多的
DM9000
,因为
三星的芯片基本没有内部
MAC(
比如
S3C2440
、
S5PV210
,
4412
等
)
,所以,三星的开发板都是通
过外置的
DM9000
来完成有线网络功能的,
DM9000
对
SOC
提供了一个
SRAM
接口,
SOC
会
以
SRAM
的方式操作
DM9000
。
有些外置的网络芯片更强大,内部甚至集成了硬件
TCP/IP
协议栈,对外提供一个
SPI
接口,比如
W5500
。这个一般用于单片机领域,单片机通过
SPI
接口与
W5500
进行通信,由于
W5500
内置了硬件
TCP/IP
协议栈,因此单片机就不需要移植负责的软件协议栈,直接通过
SPI
来操作
W5500
,简化了单片机联网方案。
优缺点:
这种方案的优点就是让不支持网络的
SOC
能够另辟蹊径,实现网络功能,但是缺点就是网
络效率不高,因为一般芯片内置的
MAC
会有网络加速引擎,比如,网络专用
DMA
,网络处理效
率会很高。而且此类芯片网速都不快,基本就是
10/100M
。另外,相比
PHY
芯片而言,此类芯
片的成本也比较高,可选择比较少。
SOC
与 一块外部
MAC+PHY
芯片的连接如下图
所示:
2. SOC 内部集成网络 MAC 外设
我们一般说某个
SOC
支持网络,说的就是他内部集成网络
MAC
外设,此时我们还需要外
接一个网络
PHY
芯片。
此时就有朋友会有疑问,
PHY
芯片不能也集成进
SOC
吗?笔者目前还
没见过将
PHY
也集成到芯片里面的
SOC
。
一般常见的通用
SOC
都会集成网络
MAC
外设,比如
STM32F4/F7/H7
系列、
NXP
的
I.MX
系列。
内部集成网络 MAC 的优点如下:
① 内部
MAC
外设会有专用的加速模块,比如,专用的
DMA
,加速网速数据的处理。
② 网速快,可以支持
10/100/1000M
网速。
③ 外接
PHY
可选择性多,成本低。
SOC(处理器芯片)内部的 MAC 外设会通过 MII 或者 RMII 接口来连接外部的 PHY 芯片,MII/RMII 接口用来传输网络数据。
另外主控需要配置或读取 PHY 芯片,也就是读写 PHY 的内部寄存器,所以还需要一个控制接口,叫做 MIDO,MDIO 很类似 IIC,也是两根线,一根数据线叫做 MDIO,一 根时钟线叫做MDC。
内部带网络MAC的SOC
芯片与一个外部
PHY
芯片的连接如下图
所示:
三. 总结
大家在做项目的时候,如果要用到网络功能,强烈建议大家选择内部带有网络
MAC
外设的主控
SOC
!
I.MX6ULL
就有两个
10M/100M
的网络
MAC
外设,正点原子
ALPHA
开发板板
载了两颗
PHY
芯片,型号为
LAN8720
。