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