微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > iEthernet W5200数据手册(版本1.2.4)之:寄存器说明

iEthernet W5200数据手册(版本1.2.4)之:寄存器说明

时间:09-18 来源:3721RD 点击:

[R/W] [0x4004+0x0n00-0x4005+0x0n00] [0x0000]

当使用TCP或UDP模式时,该寄存器会为每个SOCKET设置一个源端口号,而这个设置需要在

执行OPEN命令之前完成。

例) 如SOCKET 0 的端口=5000(0x1388),配置应如下,

Sn_DHAR (Socket n-th目标MAC地址寄存器) [R/W] [0x4006+0x0n00-0x400B+0x0n00] [0xFFFFFFFFFFFF]

该寄存器会为Socket n-th 设定目标MAC地址。此外,如果Socket0已用于PPPoE模式,那S0_DHAR会为 PPPoE服务器硬件设置一个已知的地址。

当在UDP或IPRAW模式下使用SEND_MAC的命令时,它会为Socket n-th 设定目标MAC地址。而在TCP、UDP和IPRAW模式时,Sn_DHAR会根据定CONNECT或SEND命令中的ARP程序取得的目标MAC地址作出设定。当成功执行CONNECT或SEND命令后,主机可以通过 Sn_DHAR取得目标MAC地址。

当使用W5200中的PPPoE程序,PPPoE服务器MAC地址并不需要进行设置。然而,即使不使用W5200中的PPPoE程序,仍须自行实施MACRAW模式。如想要发送或接收PPPoE的数据包的话,那PPPoE服务器MAC地址(从PPPoE程序中取得)、PPPoE服务器的IP地址、 和PPP session ID就应须被设置。此外,MR(PPPoE)也应设置为'1'。

S0_DHAR会在OPEN命令之前设置 PPPoE服务器MAC地址。 PPPoE服务器MAC地址是由S0_DHAR执行OPEN命令后,在 PDHAR里应用。而已经配置的PPPoE信息,即使是在CLOSE命令后,对于内部运作依然是有效的。

例)如Socket 0的目标MAC地址 = 08.DC.00.01.02.10,配置应如下,

Sn_DIPR (Socket n-th目标IP地址寄存器)[R/W][0x400C+0x0n00 0x400F+0x0n00]

[0x00000000]

该寄存器会为Socket n-th 设定目标IP地址。如果Socket0已用于PPPoE模式,那S0_DIPR会为 PPPoE服务器IP设置一个已知的地址。它只有在TCP、UDP、IPRAW或PPPoE模式下才有效,但是会在MACRAW模式下被忽略。

在TCP模式下,当作为"TCP客户端"的时候,它会在执行CONNECT命令之前,为"TCP服务器"设置IP地址。而当作为"TCP服务器"的时候,它会在成功建立连接之后,在内部为"TCP客户端"设置 IP地址。

在UDP或IPRAW模式下,Sn_DIPR会在执行SEND或SEND_MAC命令之前,设置为目标IP地址,用作传输UDP或IPRAW数据包。

例) 如Socket 0的目标IP地址= 192.168.0.11,配置应如下,

Sn_DPORT (Socket n-th目标端口寄存器)[R/W][0x4010+0x0n00-0x4011+0x0n00] [0x00] 目标端口号是在Socket n-th 的Sn_DPORT设置。如果Socket0已用于PPPoE模式,那S0_DPORT0会为 PPP session ID设置一个已知的号码。它只有在TCP、UDP、或PPPoE模式下才有效,而在其他模式下会被忽略。

在TCP模式下,当作为"TCP客户端"的时候,它会在执行CONNECT命令之前,监听"TCP服务器"的端口号。

在UDP模式下,在执行SEND或SEND_MAC命令之前,在Sn_DPORT中设置目标端口号用作于传输 UDP数据包。

在PPPoE模式下,已知的PPP session ID是在S0_DPORT中设置。 在执行OPEN命令之前,PPP session ID(由S0_DPORT0设置)会被用于PSIDR。

例)如Socket 0的目标端口号= 5000(0x1388),配置应如下,

Sn_MSS (Socket n-th最大分段寄存器)[R/W][0x4012+0x0n00-0x4013+0x0n00] [0x0000] 该寄存器用于TCP的MSS - Maximum Segment Size(最大报文长度) 。当TCP是在被动模式下被启动,该寄存器会显示MSS的设置。而它只是支持TCP或UDP模式。当使用PPPoE(MR(PPPoE)='1')的时候,TCP或UDP模式的MTU将被分配在PPPoE的MTU范围。

在IPRAW或MACRAW模式下,MTU(最大传输单元-maximum transmission unit)并不是在内部处理的,但会使用预设的MTU。因此,当传输的数据大于默认的MTU时,主机应该以手动方式将数据划分成默认MTU的单元大小。

在TCP或UDP模式下,如果传输的数据大于MTU时,W5200会自动将数据划分成MTU的单元大小。在TCP模式下,MTU会被称为MSS。MSS是从主机的最大读写长度和对方的最大报文长度中取较小者作为TCP通信过程中的最大报文长度。

例)如Socket 0的MSS = 1460(0x05B4),配置应如下,

Sn_PROTO (Socket n-th IP协议寄存器) [R/W] [0x4014+0x0n00] [0x00]

这是一个1字节的寄存器。它用于设置在IP层里IP报头(IP header)的协议号码字段。它只会在 IPRAW模式下才有效,而在其他模式下会被忽略。 Sn_PROTO需在执行OPEN命令之前设置。

当Socket n-th在IPRAW模式下开启,它会发送和接收在Sn_PROTO中设置的协议号码数据。Sn_PROTO是可以被分配在由0x00?0xFF的范围,但W5200不支持TCP(0x06) 和UDP(0x11) 的协议号码。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top