STM32以太网通讯设计方案

STM32+网口设计方案(有效信息整理):

  1. 网口芯片选型:W5100  w5500 CH9121 DM9000 DM9000AENC28J60LAN91C111RTL8019LAN7820
  2. 韩国WIZnet公司生产的W5300芯片
  3. 很多stm32内部不带以太网,带以太网功能的内部只有以太网mac,没有phy。因此需要外扩以太网芯片。对于不带以太网的stm32,外扩常用的芯片有spi接口的enc28j60和并口的dm9000芯片。对于带以太网的stm32还需要外扩一片phy芯片。
  4. 网卡工作在osi的最后两层,物理层(PHY)和数据链路层(MAC)。
    物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY。
    数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。以太网卡中数据链路层的芯片称之为MAC控制器。
  5. DP83848:物理层(PHY),跟MII接口。
    DM9000:物理层(PHY)和数据链路层(MAC)。跟8/16/32总线接口
    enc28j60:MAC+PHY(10M Base T)。spi接口
    w5100:硬件TCP/IP协议栈+MAC+PHY(10/100M Base T)。并行总线接口
    RLD8019:和w5100类似,比较老。
    举个例子:
    W5100里面用硬件逻辑电路实现了TCP/IP的协议栈结构,不需要向ENC28J60这样的网络控制器那样还需要一个资源较大的MCU跑软件协议栈。你直接把W5100当外部RAM使用,MCU初始化一下I/O,寄存器等就能使用了。
  6. 这个要看你使用STM32的那个系列了,STM32F107+DP83848,STM32F103+DM9000 STM32F407+LA8720等等,有很多方案可选的,主要还是看你的需求
  7. STM32的分类有很多的,有的是带MAC的,有的不带的。

不带的可以通过外挂MAC与PHY进行通讯,串行的有W5500,28J60这样,并行的,有DM9000这样的;如果是STM32带MAC,网络外设的,可以只是接一个PHY就可以了,83848就可以的。

    8.SPI方式的W5100  2.SPIENC28J60  3.RMIIDP83848  4.RMIIDM9161  5.FSMCDM9000  直接用RMII+以太网PHY的话,需要自己移植软件协议栈。SPI+W5X00的话,硬件协议栈,通信速率因素主要在SPI。两者比较,前者开发难度相对后者大,开发速度相对后者慢,但是通信速率比后者快。

总结:目前单片机联网方式主要有以下三种:

①单片机自带MAC,需外加PHY(比如DM9162等),单片机需处理TCP/IP协议栈。(也有单片机自带了MAC和PHY,就无需外加芯片了)

②单片机未带MAC功能,需外加网络接口芯片(包含MAC和PHY,比如DM9000、ENC28J60等),需单片机处理TCP/IP协议栈

③普通单片机,外加TCP/IP协议栈芯片(包含MAC+PHY+TCP/IP协议栈)。单片机消耗资源极少,无需详细了解TCP/IP协议栈,开发方便。如W5500,CH9121,CH395

你可能感兴趣的:(硬件设计,STM32,电路设计)