基础常识:
网口芯片选型:W5100,W5500,CH9121,DM9000,DM9000A,ENC28J60,LAN91C111,RTL8019,LAN7820。
很多STM32内部不带以太网,带以太网功能的内部只有以太网MAC,没有PHY。因此需要外扩以太网芯片。对于不带以太网的STM32,外扩常用的芯片有SPI接口的ENC28J60和并口的DM9000芯片。对于带以太网的STM32还需要外扩一片PHY芯片。
网卡工作在OSI的最后两层,物理层(PHY)和数据链路层(MAC)。
物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY。
数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。以太网卡中数据链路层的芯片称之为MAC控制器。
DP83848:物理层(PHY),跟MII接口。
DM9000:物理层(PHY)和数据链路层(MAC),跟8/16/32总线接口。
举个例子:
W5100里面用硬件逻辑电路实现了TCP/IP的协议栈结构,不需要向ENC28J60这样的网络控制器那样还需要一个资源较大的MCU跑软件协议栈。你直接把W5100当外部RAM使用,MCU初始化一下I/O,寄存器等就能使用了。这个要看你使用MCU的系列了,MCU+DP83848,MCU+DM9000或者MCU+LA8720等等,有很多方案可选的,主要还是看你的需求。MCU的分类有很多的,有的是带MAC的,有的不带的。不带的可以通过外挂MAC与PHY进行通讯,串行的有W5500,28J60这样,并行的,有DM000这样的;如果是MCU带MAC,网络外设的,可以只是接一个PHY就可以了。总结:目前单片机联网方式主要有以下三种:①单片机自带MAC,需外加PHY(比如DM9162等),单片机需处理TCP/IP协议栈。②单片机未带MAC功能,需外加网络接口芯片,需单片机处理TCP/IP协议栈。③普通单片机,外加TCP/IP协议栈芯片。单片机消耗资源极少,无需详细了解TCP/IP协议栈,开发方便。如W5500,CH9121,CH395。