网络接口芯片 W5500 数据手册笔记

时间:2024-04-09 21:09:16

目录

W5500 具体的初始化过程

SPI 数据帧

寄存器和内存构成

W5500 两种工作模式-可变数据长度模式和固定数据长度模式


W5500 具体的初始化过程

1、首先基本设置,W5500的操作需要设置以下寄存器的参数:

  • 模式寄存器(MR)
  • 中断屏蔽寄存器(IMR)
  • 重发时间寄存器(RTR)
  • 重发计数寄存器(RCR)

2、设置网络信息,下面的寄存器是关于网络的基本配置,需要根据网络环境来进行设置。

  • 网关地址寄存器(GAR)
  • 本机物理地址寄存器(SHAR)- MAC 层的硬件地址
  • 子网掩码寄存器(SUBR)
  • 本机 IP 地址寄存器(SIPR)

3、设置端口 TX/RX 存储信息,每个端口的基地址和屏蔽地址在这里确定并保存。

W5500 有 1 个通用寄存器,8 个 Socket 寄存器区,以及对应每个 Socket 的收/发缓存区。


SPI 数据帧

W5500 的 SPI 数据帧包括了 16 位地址段的偏移地址, 8 位控制段和 N 字节数据段。

网络接口芯片 W5500 数据手册笔记

控制段

控制段指定了地址段设定的偏移区域归属,读/写访问模式及 SPI 工作模式。

网络接口芯片 W5500 数据手册笔记

 

符号

说明

BSB [4:0]

区域选择位-Block Select Bits

W5500 有 1 个通用寄存器, 8 个 Socket 寄存器,以及对应每个 Socket 的读/写缓存。

RWB

读/写访问模式位 - Read/Write Access Mode Bit

该位设置读/写访问模式:

‘0’:读 ;‘1’:写

OM [1:0]

SPI 工作模式位 - SPI Operation Mode Bits

该位设置 SPI 工作模式。SPI 模式支持 2 种模式:可变数据长度模式和固定长度模式

 

数据段

在 SPI 工作模式位 OM[1:0]设定了控制端之后,数据段被设定为 2 种长度类型: 1 种为可变的 N 字节长度(可变数据长度模式),另以一种为确定的 1/2/4字节长度(固定数据长度模式)。

此时, 1 字节数据从最大标志位到最小标志位,通过 MOSI 或者 MISO 信号传输。


寄存器和内存构成

W5500 有 1 个通用寄存器, 8 个 Socket 寄存器区,以及对应每个 Socket 的收发缓存区。每个区域均通过 SPI 数据帧的区域选择位(BSB[4:0])来选取。

下图 显示了区域选择位(BSB[4:0])选择的区域以及收/发缓存区的可用偏移地址范围。每一个 Socket 的发送缓存区都在一个 16KB 的物理发送内存中,初始化分配为 2KB。每一个 Socket 的接收缓存区都在一个 16KB 的物理接收内存中,初始化分配为 2KB。

无论给每个 Socket 分配多大的收/发缓存,都必须在 16 位的偏移地址范围内(从 0x0000 到 0xFFFF)。

网络接口芯片 W5500 数据手册笔记

通用寄存器区

通用寄存器区配置了 W5500 的基本信息,例如: IP 及 MAC 地址。该该区域可以通过 SPI 数据帧的区域选择位(BSB[4:0])选定。下表描述了通用寄存器的偏移地址。

网络接口芯片 W5500 数据手册笔记

 

Socket 寄存器区

W5500 支持 8 个 Socket 。每个 Socket 通过 Socket n 寄存器区控制。 Socket n 寄存器可以通过 SPI 数据帧中的区域选择寄存器(BSB[4:0])来选定对应的寄存器 n。 下表定义了 Socket n 寄存器区对应的 16 位偏移地址。

网络接口芯片 W5500 数据手册笔记

内存 Memory

W5500 有一个 16KB 的发送内存用于 Socket n 的发送缓存区,以及一个 16KB的接收内存用于 Socket n 的接收缓存区。

  • 有一个 16KB 的发送内存用于 Socket n 的发送缓存区。16KB 的发送内存初始化被分配为每个 Socket 2KB ,可以通过使用发送缓存大小寄存器(Sn_TXBUF_SIZE)重新分配。一旦所有的 Socket 发送缓存大小寄存器(Sn_TXBUF_SIZE)配置完成,16KB 的发送内存就会按照从 Socket 0 到 7 顺序分配给每个 Socket。 但 是 , 为 了 避 免 数 据 传 输 错 误 , 要 避 免 发 送 缓 存 大 小 寄 存 器(Sn_TXBUF_SIZE)的和超过 16。
  • 有一个 16KB 的接收内存用于 Socket n 的接收缓存区。16KB 的接收内存初始化被分配为每个 Socket 2KB 。可以通过使用接收缓存大小寄存器(Sn_XBUF_SIZE)重新分配。一旦所有的 Socket 发缓存大小寄存器(Sn_TXBUF_SIZE)配置完成,16KB 的发送内存就会按照从 Socket 0到 7 顺序分配给每个 Socket 的发送缓存但是,为了避免数据传输错误,需要避免发送缓存大小寄存器(Sn_TXBUF_SIZE)的和超过 16。
  • 无论给每个 Socket 分配多大的收/发缓存,都必须在 16 位的偏移地址范围内(从 0x0000 到 0xFFFF)。

W5500 两种工作模式-可变数据长度模式和固定数据长度模式

在可变数据长度模式中,W5500 可以与其他 SPI 设备共用 SPI 接口。但是一旦将 SPI接口指定给 W5500 之后,也就是 CS 片选信号选中 W5500,则不能再与其他 SPI 设备共用。

在固定数据长度模式,SPI 将指定给 W5500,不能与其他 SPI 设备共享。因为CS 片选信号将直接接地为低电平。

可变数据长度模式

在 VDM 模式下, SPI 数据帧的长度被外设主机控制的 SCSn 所定义。这就意味着数据段长度根据 SCSn 的控制,可以是一个随机值(从 1 字节到 N 字节任何长度均可)。在 VDM 模式下, M[1:0]位必须为‘00’。

写访问—VDM 模式

网络接口芯片 W5500 数据手册笔记

在 VDM 模式下, SPI 数据帧的控制段:读写控制位(RWB)为‘1’,工作模式位为’ 00’。

外设主机在传输 SPI 数据帧之前,须拉低 SCSn 信号引脚。然后主机通过 MOSI 将 SPI 数据帧的所有位传输给 W5500,并在 SCLK 的下降沿同步。

在完成 SPI 数据帧的传输后,主机拉高 SCSn 信号(低电平到高电平)。当 SCSn 保持低电平且数据段持续传输,即可实现连续数据写入。

 

读访问—VDM 模式

网络接口芯片 W5500 数据手册笔记

在 VDM 模式下,读/写访问位(RWB)为‘0’, 工作模式位(OM[1:0])为‘00’。

在 SPI 数据帧传输之前,外设主机拉低 SCSn(高电平到低电平)。然后主机通过 MOSI 将地址及控制段的所有位传输给 W5500。 所有为将在SCLK 的下降沿同步。之后在同步采样时钟(SCLK)的上升沿,主机通过 MISO 接收到所有数据位。

在接收完所有数据后,主机拉高 SCSn(低电平到高电平)。当 SCSn 保持低电平且数据段持续传输,即可实现连续数据读取。