最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

W5500(socket)寄存器使用说明书

IT圈 admin 21浏览 0评论

2024年5月21日发(作者:声音景)

Socket 端口寄存器

Sn3_MR (Socket n 模式寄存器) [R/W] [0x0000] [0x00]

该寄存器用于配置所有 SOCKET 的选项或协议类型

7 6 5 4 3 2 1 ·0

MULTI/MFEN BCASTB NO/MC/MMB UCASTBMIP6B P3 P2 P1 P0

Sn_MR 描述

位 符号 说明

7 MULTI/MFEN UDP多播模式(P[3:0]=0010)

0:关闭多播 1:开启多播

在MACRAW模式下开启地址过滤

(P[3:0]=0100)

0:关闭MAC过滤 1:开启

6 BCASTB MACRAW和UDP模式下的网络阻

0:关闭广播阻塞 1:开启

在UDP模式(P[3:0]=0010)可

以屏蔽接收广播包在MACRAW模

式P[3:0]=0100)同样生效

5 NO/MC/MMB 使用无延时ACK

Use No Delayed ACK

0:关闭无延时ACK选项

1:开启无延时ACK选项

在TCP(P[3:0]=0001)生效

多播

0:使用IGM版本2

1:使用IGM版本1

在UDP模式(P[3:0]=0010)

且MULTI=1时生效

MACRAW模式多播阻塞

在MACRAW P[3:0]=0100)生效。

4 UCASTBMIP6B Ping Block 模式

0:关闭Ping block

1:启用Ping block

如果该位设置为1 ping请求就

没有响应

3 P3 协议Protocol

2 P2 P3 P2 P1 P0 含义

1 P1 0 0 0 0 Close

0 P0 0 0 0 1 TCP

0 0 1 0 UDP

0 1 0 0 MACRAW

MACRAW只有在Socket0下才能

使用

3n 是 Socket 编号(0,1,2,3,4,5,6,7).n 设置了 SNUM[2:0]控制位集 n is Socket

number (0, 1, 2, 3, 4, 5, 6, 7). n is set ‘SNUM[2:0]’ in Control Bits sets.

Sn_CR (Socket n 配置寄存器) [R/W] [0x0001] [0x00]

该寄存器用于设置 Socket n 的配置命令如 OPEN、CLOSE、CONNECT、LISTEN、END 和

RECEIVE。经 W5500 识别这一命令后,Sn_CR 寄存器会自动清零为 0×00。尽管 Sn_CR 被

清零为 0×00,但命令仍在处理中。为了验证该命令是否完成,请检查 Sn_IR 或 Sn_SR 寄

存器。

0x01

符号

OPEN

说明

按照 Sn_MR(P3:P0)的协议选择来初始化和打开(open) Socket

n-th。下表显示了Sn_SR 和 Sn_MR的对应值。

Sn_MR(P[3:0])

Sn_MR_CLOSE (‘0000’)

Sn_MR_TCP (‘0001’)

Sn_MR_UDP (‘0010’)

S0_MR_MACRAW (‘0100’)

Sn_SR

SOCK_INIT (0x13)

SOCK_UDP(0x22)

SOCK_MACRAW (0x02)

0x02 LISTEN 该位只在 TCP模式(Sn_MR(P3:Po) = Sn_MR_TCP)下生效。

在这种模式下,Socket n被配置为一个TCP服务器,它是等待

“TCP客户端”的连接请求(SYN数据包)。该 Sn_SR 寄存器由

SocK_INIT改变为SOCK_LISTEN。

当一个 TCP 客户端的连接请求成功后该 Sn_SR 寄存器由

SOCK_LISTEN 改变为 SOCK_ESTABBLIESHE. 与此同时

Sn_IR(0)会变为‘1’。另一方面,当连接失败时,Sn_IR(3)被

设置为'1'. Sn_SR 改变为S0CK_CLOSED。

此模式只适用于 TCP 模式且运行 Socket n 作为 TCP 客户

端。通过与存储在目的地址寄存器 (Sn_DIPR) 和端口号寄存

器 (sn_DPORT) 中的IP 地址和端口号进行连接,一个连接请

求被发送到 TCP 服务器。当一个客户端的连接请求成功后

sn_SR 寄存器改为SOCK_ESTABLIESHED。Sn_IR(0)会变为‘1’。

以下三种情况意味着连接请求失败:

1. ARPto发生超时(Sn_IR(s)=‘1')。因为目的地的 MAC 地址

不能通过ARP过程中获取。

2. 当没有收到SYN/ACK数据包,而引起TCPTO(Sn_IR(3))被设

置为‘1’时。

3. 当RST数据包而不是SYN/ACK数据包被接收时。

以上三种情况下,Sn_SR会该为SOCK_CLOSED。

只有在TCP模式下有效:

不论“TCP服务器”或“TCP客户端”,都使用DISCON断开。

关闭socket n

Sn_SR改为SOCK_CLOSED。

发送(SEND)Socket n 发送(TX)内存中的所有缓冲数据。

只在UDP模式下有效

只在TCP模式下有效

通过使用接收读指针寄存器(Sn_RX_RD)来判定socket n 接收

0x04 CONNECT

0x08 DISCON

0x10

0x20

0x21

Ox22

0x40

CLOSE

SEND

SEND_MAC

SEND_KEEP

RECV

2024年5月21日发(作者:声音景)

Socket 端口寄存器

Sn3_MR (Socket n 模式寄存器) [R/W] [0x0000] [0x00]

该寄存器用于配置所有 SOCKET 的选项或协议类型

7 6 5 4 3 2 1 ·0

MULTI/MFEN BCASTB NO/MC/MMB UCASTBMIP6B P3 P2 P1 P0

Sn_MR 描述

位 符号 说明

7 MULTI/MFEN UDP多播模式(P[3:0]=0010)

0:关闭多播 1:开启多播

在MACRAW模式下开启地址过滤

(P[3:0]=0100)

0:关闭MAC过滤 1:开启

6 BCASTB MACRAW和UDP模式下的网络阻

0:关闭广播阻塞 1:开启

在UDP模式(P[3:0]=0010)可

以屏蔽接收广播包在MACRAW模

式P[3:0]=0100)同样生效

5 NO/MC/MMB 使用无延时ACK

Use No Delayed ACK

0:关闭无延时ACK选项

1:开启无延时ACK选项

在TCP(P[3:0]=0001)生效

多播

0:使用IGM版本2

1:使用IGM版本1

在UDP模式(P[3:0]=0010)

且MULTI=1时生效

MACRAW模式多播阻塞

在MACRAW P[3:0]=0100)生效。

4 UCASTBMIP6B Ping Block 模式

0:关闭Ping block

1:启用Ping block

如果该位设置为1 ping请求就

没有响应

3 P3 协议Protocol

2 P2 P3 P2 P1 P0 含义

1 P1 0 0 0 0 Close

0 P0 0 0 0 1 TCP

0 0 1 0 UDP

0 1 0 0 MACRAW

MACRAW只有在Socket0下才能

使用

3n 是 Socket 编号(0,1,2,3,4,5,6,7).n 设置了 SNUM[2:0]控制位集 n is Socket

number (0, 1, 2, 3, 4, 5, 6, 7). n is set ‘SNUM[2:0]’ in Control Bits sets.

Sn_CR (Socket n 配置寄存器) [R/W] [0x0001] [0x00]

该寄存器用于设置 Socket n 的配置命令如 OPEN、CLOSE、CONNECT、LISTEN、END 和

RECEIVE。经 W5500 识别这一命令后,Sn_CR 寄存器会自动清零为 0×00。尽管 Sn_CR 被

清零为 0×00,但命令仍在处理中。为了验证该命令是否完成,请检查 Sn_IR 或 Sn_SR 寄

存器。

0x01

符号

OPEN

说明

按照 Sn_MR(P3:P0)的协议选择来初始化和打开(open) Socket

n-th。下表显示了Sn_SR 和 Sn_MR的对应值。

Sn_MR(P[3:0])

Sn_MR_CLOSE (‘0000’)

Sn_MR_TCP (‘0001’)

Sn_MR_UDP (‘0010’)

S0_MR_MACRAW (‘0100’)

Sn_SR

SOCK_INIT (0x13)

SOCK_UDP(0x22)

SOCK_MACRAW (0x02)

0x02 LISTEN 该位只在 TCP模式(Sn_MR(P3:Po) = Sn_MR_TCP)下生效。

在这种模式下,Socket n被配置为一个TCP服务器,它是等待

“TCP客户端”的连接请求(SYN数据包)。该 Sn_SR 寄存器由

SocK_INIT改变为SOCK_LISTEN。

当一个 TCP 客户端的连接请求成功后该 Sn_SR 寄存器由

SOCK_LISTEN 改变为 SOCK_ESTABBLIESHE. 与此同时

Sn_IR(0)会变为‘1’。另一方面,当连接失败时,Sn_IR(3)被

设置为'1'. Sn_SR 改变为S0CK_CLOSED。

此模式只适用于 TCP 模式且运行 Socket n 作为 TCP 客户

端。通过与存储在目的地址寄存器 (Sn_DIPR) 和端口号寄存

器 (sn_DPORT) 中的IP 地址和端口号进行连接,一个连接请

求被发送到 TCP 服务器。当一个客户端的连接请求成功后

sn_SR 寄存器改为SOCK_ESTABLIESHED。Sn_IR(0)会变为‘1’。

以下三种情况意味着连接请求失败:

1. ARPto发生超时(Sn_IR(s)=‘1')。因为目的地的 MAC 地址

不能通过ARP过程中获取。

2. 当没有收到SYN/ACK数据包,而引起TCPTO(Sn_IR(3))被设

置为‘1’时。

3. 当RST数据包而不是SYN/ACK数据包被接收时。

以上三种情况下,Sn_SR会该为SOCK_CLOSED。

只有在TCP模式下有效:

不论“TCP服务器”或“TCP客户端”,都使用DISCON断开。

关闭socket n

Sn_SR改为SOCK_CLOSED。

发送(SEND)Socket n 发送(TX)内存中的所有缓冲数据。

只在UDP模式下有效

只在TCP模式下有效

通过使用接收读指针寄存器(Sn_RX_RD)来判定socket n 接收

0x04 CONNECT

0x08 DISCON

0x10

0x20

0x21

Ox22

0x40

CLOSE

SEND

SEND_MAC

SEND_KEEP

RECV

发布评论

评论列表 (0)

  1. 暂无评论