iEthernet W5200数据手册(版本1.2.4)之:功能说明
5 功能说明
通过设置一些寄存器和内存操作,W5200会提供互联网连接。本章描述了它如何可以操作。
5.1 初始化
基本设置
对于 W5200操作,选择和利用适当的寄存器(如下所示)。
1. 模式寄存器(MR)
2. 中断掩码寄存器(IMR)
3. 重试时间值寄存器(RTR)
4. 重试计算寄存器(RCR)
如欲了解更多以上寄存器的信息,请参阅"寄存器说明"。
网络设置信息
基本的网络信息设置以: 它必须设置基本的网络信息。
① SHAR(硬件源地址寄存器)
SHAR中的硬件源地址已经被规定,它使用的是以太网MAC层的唯一的MAC地址作为其硬件地址。IEEE负责管理MAC地址的分配。而生产网络设备的制造商会替其产品分配MAC地址。
如欲了解更多MAC地址分配详情,请参阅以下网址:
Uhttp://www.ieee.org/U, Uhttp://standards.ieee.org/regauth/oui/index.shtmlU
② GAR(网关地址寄存器)
③ SUBR(子网掩码寄存器)
④ SIPR(IP源地址寄存器)
设置Socket 的内存信息
这一步骤设置Socket发送或接收的内存信息。每个Socket的基址地址和掩码地址在这个步骤中被确定并保存。
图 9 Socket n-th内部发送或接收的内存配置数据通信
5.2 数据传输
完成初始化过程后,W5200可以‘开启’TCP、UDP、 IPRAW、MACRAW模式的Socket,对外传输和接收数据。 W5200可同时支持8个Sockets独立使用。在本节中,将会介绍每个模式的通讯方式。
5.2.1 TCP
TCP是一个面向连接(connection-oriented) 的协议。TCP使用其自己的IP地址、端口号、目标IP地址、目标端口号来建立连接Socket。然后通过此Socket发送和接收数据。
利用"TCP服务器"和"TCP客户端"两个方法来连接到Socket,然后通过传输连接请求(SYN数据包)来分开。
"TCP服务器"监听(Listen)由"TCP客户端"发出的连接请求,然后通过接受已发出的连接请求(被动打开) 建立连接Socket。
在"TCP客户端"先发送一个连接请求到"TCP服务器"来进行连接(主动打开)。
图 10 TCP服务器和TCP客户端
5.2.1.1 TCP 服务器
图 11 TCP服务器操作流程
套接字初始化
TCP 数据通信必需要套接字初始化。初始化会开启套接字。套接字的开启过程是选择W5200其中一个套接字,并在该套接字设置协议模式(Sn_MR)和源端口号 (Sn_PORT0 – 在"TCP服务器"中监听端口号),然后执行OPEN命令。执行命令之后,如果Sn_SR的状态被更改 为 SOCK_INIT,表示SOCKET初始化过程已完成。
套接字初始化过程在"TCP服务器"和"TCP客户端" 的应用是相同的。Socket n-th在TCP模
式下的初始化过程如下所示。
监听 (LISTEN)
用LISTEN命令以"TCP服务器"方式运行。
建立 (ESTABLISHMENT)
当Sn_SR的状态是SOCK_LISTEN时,如收到一个SYN数据包,Sn_SR的状态将被改为
SOCK_SYNRECV并会发送SYN/ACK数据包。之后,Socket n-th会建立一个连接。与Socket
n-th连接后,开始数据通信。有两种方法来确认Socket n-th的连接。
建立(ESTABLISHMENT) : 检查已接收的数据
确认TCP数据的接收。
方 法一:每当收到一个数据包, 把Sn_IR(RECV)设置为‘1’。如主机接收到下一个数据包时没有把Sn_IR(RECV)设置为‘1’,它便不能识 别下一个数据包的Sn_IR(RECV)。这是由于前一个的Sn_IR(RECV跟接下来的Sn_IR(RECV)重迭。,如果主机不能完全处理每个 Sn_IR(RECV)的数据包,这个方法便但是不建议。
建立(ESTABLISHMENT): 接收过程
在 这个过程中,它处理已接收在内部接收内存的TCP数据。在TCP模式下,如已接收的数据的大小大于Socket n-th的接收内存空间大小,W5200 便无法接收数据。如果提前将这种情况告知对方,W5200便会暂停连接,并等待,直到接收内存空间大小大于已接收的数据的大小。
建立(ESTABLISHMENT): 检查发送数据/发送过程
发 送数据的大小不能大于Socket n-th已分配内部的发送内存。如果传输数据的大小大于已配置的MSS,它会被划分为MSS的大小后再传输。要发送下 一个数据,用户必须确定前一个的SEND命令已完成。如果前一个的SEND命令未完成,继而执行令一个新的SEND命令时,可能会出现错误。而较大的数据 将会需要更多的时间来完成SEND命令。因此,用户应正确地划分数据传输。
如 想检查SEND命令是否完成,应检查发送数据的长度是否等于实际发送的数据长度。实际
W5200 互联网连接 广播 SHAR TCP 单播 相关文章:
- 特瑞仕推出UHF频带低噪声放大器XC2402(06-13)
- 凌力尔特推出80Msps 模数转换器LTC2259-16(03-03)
- 市场需求促使加州太阳能装机量增长(06-01)
- 基于Blackfin处理器的继电保护完整解决方案解析(02-01)
- 风电要并网,智能电网是关键(08-05)
- 定点处理器VS浮点处理器:如何优化您的选择? (03-24)