微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 行业新闻动态 > iEthernet W5200数据手册(版本1.2.4)之:功能说明

iEthernet W5200数据手册(版本1.2.4)之:功能说明

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

的格式

所接收到的UDP数据包括8个字节的PACKET-

INFO(包 信息)案的DATA包(数据包)。其中,包信息包含发送者的信息(IP地址和端口号)和数据包的字节长度。UDP能从其他许多地方接收到UDP数据。用户 能通过报信息中的发送者信息鉴别出是从哪儿接收到的数据。UDP也同样能通过"255.255.255.255"这个IP地址接收到广播套接字。应此主机 应该通过发送者信息分析以忽略掉那些不希望接收的数据。 如果所用的Socket处理的数据字节大小超过了内部的Rx自由缓存空间的大小,用户不能接收数 据也不能接收数据段。

检查发送数据/发送过程

用户想发送的数据的大小不能超过内部TX缓冲器能容纳的范围。如果比MTU大的话,会自动以MTU为单位进行划分然后发送。当用户想用广播方式时,Sn_DIPR0应被设置成"255.255.255.255"

检查发送完毕/超时

在继续发送数据之前,用户必须检查先前的SEND命令是不是已经完成了。发送的数据越多,发送需要的时间就越长。因此用户必须合理地将其要发送的数据进行划分。当用户发送UDP数据时是可能触发ARPTO的。如果ARPTO被触发,则传输UDP数据失败。

检查完成/套接字关闭

如果用户不再需要通信,关闭所使用的Socket端口。

5.2.2.2 多播

广 播通信可以跟许多其他设备(不用指明)进行通信。但是多播是针对多播组中的指定的注册目标进行通信的。假设A、B、C是注册在一个指定的多播组中的三个用 户。如果用户发送数据到这个组中的A用户,B、C也能收到此数据。使用这种方式时,目的地址列表要使用IGMP协议在多播组中注册。多播组包含"组MAC 地址"、"组IP地址"、"组端口号"。用户不能改变"组MAC地址"和"组IP地址",然而"组端口号可以被改变"。

"组 MAC地址"可以在指定的范围选择(从"01:00:5e:00:00:00"到"01:00:5e:7f:ff:ff"),"组IP地址"可以在D段 IP地址中选择(从"224.0.0.0"到"239.255.255.255"),请参考下面的网站:http://www.iana.org/assignments/multicast-addresses.

在 选择时,必须保证"组MAC地址"(6个字节)的前23位与"组IP地址"(4字节)是一样的。举例来说,如果用户选择"组IP地址"为 "244.1.1.11","组MAC地址"被选为"01:00:5e:01:01:0b"。请参考 "RFC1112(http://www.ietf.org/rfc.html).

在 W5200中,处理多播中进行组注册的IGMP是在内部(自动)经行的。当用户以多播方式打开他所用的Socket n-th时,会内部发送"连接 (join)"信息,如果用户将其关掉,则会内部发送"离开(leave)"信息。当套接字打开后,当用户通信时,"Report(报告)"信息周期性地 在内部被发送。

W5200只支持IGMP版本1和版本2。如果用户想用一个升级了的版本,主机会直接用套接字的IPRAW模式去处理IGMP。

套接字初始化

从 W5200的8个套接字中选择一个以进行多播。将"多播组MAC地址"设为Sn_DHAR0,将"多播组IP地址"设为Sn_DIPR0。然后将"多播组 端口号"设为Sn_PORT0和Sn_DPORT0。设置Sn_MR(P3:P0)成为UDP模式,将Sn_MR(MULT1)设置为1.最后执行 OPEN(打开)命令。如果Sn_SR的状态在OPEN(打开)命令之后被改为SOCK_UDP,套接字初始化就完成了。

检查接收到的数据

请参考"5.2.2.1单播方式和广播方式"

接收过程

请参考"5.2.2.1单播方式和广播方式"

检查发送数据/发送过程

因为用户在套接字初始化中设置了多播组的信息,因此用户不必再设目的设备的IP地址和端口号。然后,复制要传送的数据到内部TX缓冲区,执行SEND命令就可以了。

检查发送完成/超时

因为主机负责所有关于数据传输的协议,因此超时是可能发生的。

检查完成/套接字关闭

参考"5.2.2.1单播&广播"

5.2.3 IPRAW(以IP层为上限的处理模式)

IPRAW 是一种用TCP、UDP和IP层进行数据通信的模式,这些网络层都是较低层的协议层,IPRAW支持IP层协议,比如根据协议号有ICMP(0x01)和 IGMP(0x02)。ICMP的"Ping"和IGMP的v1/v2应经被通过硬件逻辑包含进了W5200。如果用户需要,主机能通过打开套接字到 IPRAW模式而直接处理IPRAW。在这种情况下,用户必须设置他想要的IP报头的协议段号。协议号是被IANA定义的,请参考网 站:http://www.iana.org/assignments/protocol-numbers协议号必须在套接字打开之前被设置进 Sn_PROTO。在IPRAW模式下,W5200不支持TCP(0x06)或UDP(0x11)协议号。IPRAW的套接字通信只允许指定协议号的通 信。比如IGMP。

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

网站地图

Top