继续给大家介绍W5500 数据手册。
2.4 固定数据长度模式(FDM)
在外设主机不能控制 SCSn 时,可以使用固定数据长度模式。
此时,SCSn 必须连接到低电平(保持接地)。与此同时,SPI 接口不能与其他 SPI 设备 共享。(如图 5 所示)
在可变数据长度模式(VDM)中,数据段长度右 SCSn 控制。 但是在固定长度模式(FDM)中,数据长度由 SPI 工作模式位的控制段的值控制((OM [1:0])=‘01’/‘10’/‘11’)。
由于除了 SCSn 信号和工作模式位(OM[1:0])设置之外,FDM 模式下 SPI 数据帧与 VD M 模式下的相同,所以此时具体的描述就省略了。
除非特殊情况,一般不提倡使用 FDM 模式。此外,如‘2.4.1 章节’及‘2.4.2 章节’ 所述,我们只能使用 1/2/4 字节 SPI 数据帧。使用其他长度数据帧会导致 W5500 功能问 题。
2.4.1 写访问——FDM 模式
1 字节写访问
图 14 在 FDM 模式下,1 字节写访问 SPI 数据帧
2 字节写访问
图 15 在 FDM 模式下,2 字节写访问 SPI 数据帧
4 字节写访问
图 16 在 FDM 模式下,4 字节写访问 SPI 数据帧
2.4.2 读访问——FDM 模式
1 字节读访问
图 17 在 FDM 模式下,1 字节读访问 SPI 数据帧
2 字节读访问
图 18 在 FDM 模式下,2 字节读访问 SPI 数据帧
4 字节读访问
图 19 在 FDM 模式下,4 字节读访问 SPI 数据帧
3 寄存器和内存构成
W5500 有 1 个通用寄存器,8 个 Socket 寄存器区,以及对应每个 Socket 的收/发缓存区。
每个区域均通过 SPI 数据帧的区域选择位(BSB[4:0])来选取。图 20 显示了区域选择位
(BSB[4:0])选择的区域以及收/发缓存区的可用偏移地址范围。每一个 Socket 的发送 缓存区都在一个 16KB 的物理发送内存中,初始化分配为 2KB。每一个 Socket 的接收缓 存区都在一个 16KB 的物理接收内存中,初始化分配为 2KB。
无论给每个 Socket 分配多大的收/ 发缓存,都必须在 16 位的偏移地址范围内(从
0×0000 到 0xFFFF)。
关于 16KB 收/发内存的构成及访问方式的更多信息,请参考‘3.3 章节’。
图 20 寄存器及内存构成
3.1 通用寄存器区
通用寄存器区配置了 W5500 的基本信息,例如:IP 及 MAC 地址。该区域可以通过 SPI
数据帧的区域选择位(BSB[4:0])的值选定。表 3 描述了该区域寄存器的偏移地址。对 于每个寄存器的详细信息,请参考‘4.1 章节’。
3.2 Socket 寄存器区
W5500 支持 8个 Socket 作为通讯信道。每一个Socket 通过Socket n 寄存器区控制(0≤n≤7)。Socket n 寄存器可以通过 SPI 数据帧中的区域选择寄存器(BSB[4:0])来选定对应的寄存器 n。<表 5>定义 了 Socket n 寄存器区对应的 16 位偏移地址。
关于每个寄存器,详情参考‘4.2 章节’
表格 5 Socket n 寄存器区中的偏移地址(0≤n≤7)
3.3 内存 Memory
W5500 有一个 16KB 的发送内存用于 Socket n 的发送缓存区,以及一个 16KB 的接收内
存用于 Socket n 的接收缓存区。
16KB 的发送内存初始化被分配为每个 Socket 2KB 发送缓存区(2KB X 8 = 16KB)。初 始化分配的 2KB Socket 发送缓存 , 可以通过使用 Socket 发送缓存大小寄存器
(Sn_TXBUF_SIZE)重新分配。
一旦所有的 Socket 发送缓存大小寄存器(Sn_TXBUF_SIZE)配置完成,16KB 的发送内 存就会按照配置分配给每个 Socket 的发送缓存,并按照从 Socket 0 到 7 顺序分配。16KB 物 理内存的地址是可以自增的。但是 , 为了避免数据传输错误 , 需要避免发送缓存大小寄存器
(Sn_TXBUF_SIZE)的和超过 16。
16KB 的读取内存的分派方式与 16KB 的发送内存一样。16KB 的接收内存初始化被分配 为每个 Socket 2KB 接收缓存区(2KB X 8 = 16KB)。初始化分配的 2KB Socket 接收缓存,可 以通过使用 Socket 接收缓存大小寄存器(Sn_XBUF_SIZE)重新分配。
一旦所有的 Socket 发缓存大小寄存器(Sn_TXBUF_SIZE)配置完成,16KB 的发送内存 就会按照配置分配给每个 Socket 的发送缓存,并按照从 Socket 0 到 7 顺序分配。16KB 物理 内存的地址是可以自增的。但是 , 为了避免数据传输错误 , 需要避免发送缓存大小寄存器 ( Sn_TXBUF_SIZE)的和超过 16。
继续阅读:http://blog.iwiznet.cn/?p=5694
W5500相关内容:
感谢关注!
更多信息与我们交流:
WIZnet邮箱: wiznetbj@wiznet.co.kr
WIZnet主页:http://www.wiznet.co.kr
WIZnet企业微博:http://e.weibo.com/wiznet2012
文章评论(0条评论)
登录后参与讨论