一. 简介
本文来了解一下嵌入式有些网络中,涉及的网络硬件方案。
注意:本文说明的是有些网络。
 
 提起网络,我们一般想到的硬件就是“网卡”,“网卡”这个概念最早从电脑领域传出来,顾名思义就是能上网的卡。在电脑领域的“原始社会”,网卡是独立的硬件,如果电脑要上网就 
 得买个网卡插上去,类似现在的显卡一样。 
 
 
 
 但是大家现在观察自己的笔记本或者台式机主板会 
 发现并没有类似显卡一样的网卡设备,原因是随着技术的不断发展,现在只需要一个芯片就可 
 以实现有线网卡功能,因此网卡芯片都直接放到了主板上。 
 
 
目前有两种网络硬件方案:
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 
 。 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                


















