w5300的特性
- w5300的特性
- w5300的模块
- w5300的数据通信
- 三星手机 SPH.W5300能把韩文改成中文么
- 诺基亚5300和5200有什么区别
- w5300的简介
l 支持软、硬件混合TCP/IP协议: TCP, UDP, ICMP, IGMP, IPv4, ARP, PPPoE, Ethernet;
l 支持8个独立的端口(sockets)同时连接;
l 网络数据传输,速率可达到80Mbps;
l 支持ADSL连接 (支持PPPOE协议,带PAP/CHAP验证);
l 内部128K字节存储器作TX/RX缓存;
l 根据端口通信数据吞吐量动态调整内部TX/RX存储器分配;
l 内嵌10BaseT/100BaseTX以太网物理层,支持自动应答(全双工/半双工模式);
I 可选TX1:1 RX1:1 网络变压器接口YL18-2050S,YT37-1107S及YL2J011D,YL2J201A
l 支持自动极性变换(MDI/MDIX);
l 支持8/16位数据总线;
l 0.18μm CMOS工艺;
l 3.3V工作电压,I/O口可承受5V电压,内部带1.8V电压调整器;
l LQFP-100,14x14mm无铅封装。
将25MHz的时钟源经过6倍频,建立150MHz的时钟信号。150MHz的时钟用于内部单元的运行,如
TCP/IP内核、主机接口管理和寄存器管理。锁相环在复位后锁定并提供稳定的时钟信号。 电源调节系统通过3.3v的输入建立1.8v/150mA的输出电压。电源调节系统为W5300的内核提供电源。
因此不需要其它电源调节器。为了使1.8v的电源更稳定,建议增加电容滤波。 它管理内部128K字节的数据存储器。由主机分配每个端口的TX/RX存储器。主机可以通过每个
SOCKET的FIFO寄存器访问TX/RX存储器。 这是128K字节通信数据存储器,组成16个8K字节的DPRAM (双端口RAM)。可以由主机灵活分配给
每个SOCKET。 它管理MII接口,根据TEST_MODE的配置,MII接口可以在内部PHY和外部PHY(第三方PHY)
之间切换。 W5300内部集成了10BaseT/100BaseTX的以太网PHY。PHY支持半双工/全双工自动握手和
MDI/MDIX自动检查。它还支持6种网络指示的LED输出,如LINK状态、速度和双工状态。 TCP/IP内核是完全基于WIZnet网络协议处理技术进行硬件逻辑化。
- 802.3以太网MAC(介质访问控制)
它控制以太网的CSMA/CD(载波监听多路访问/冲突检测)访问。他是基于48位源/目的MAC地址的
协议技术。它也允许主机通过SOCKET0控制MAC层。因此可以实现软件TCP/IP协议和硬件TCP/IP协议。
- PPPOE(通过以太网的点对点协议)
这是在以太网上实现PPP服务的协议。它将以太网数据帧的有效载荷数据封装为PPP数据帧而进行传
输。当接收数据时,它拆封PPP数据帧。PPPoE支持与PPPoE服务器的PPP通信,支持PAP/CHAP验证
方法。
- ARP(地址解析协议)
ARP是通过IP地址解析MAC地址的协议。它发送ARP响应给来自对端的ARP请求。它也发送ARP请求
查找对端的MAC地址,同时处理对该请求的ARP响应。
- IP(网络协议)
IP协议支持IP层的数据通信。不支持IP分片。不能接收分片的数据包。除了TCP和UDP,所有的协议
号都支持。在TCP和UDP情况下,使用硬件的协议栈。
- ICMP(Internet控制信息协议)
它接收ICMP数据包,如分片的MTU、无法访问的目标及标识主机等。当收到Ping请求的ICMP数据包
时,它将响应Ping应答的ICMP数据包。它支持最大119个字节的Ping请求。如果超过119个字节时,它将
不再支持。
- IGMPv1/v2(Internet组管理协议版本1/2)
它处理IGMP协议,如加入/脱离组、在UDP多播模式下报告等等。只支持IGMP的版本1和版本2。如
果使用更高版本的IGMP, 则需要在IP层手动实现。
- UDP(数据报文协议)
这是在UDP层实现数据传输的协议。它支持用户报文,如单播、多播和广播。
- TCP(传输控制协议)
这是在TCP层实现数据传输的协议。它支持“TCP客户端”和“TCP服务器”。W5300不需要主机的干预,内部处理所有的通信协议。W5300基于TOE(TCP/IP Offload引擎),通
过减少主机处理TCP/IP协议时的负荷,可以极大地提升主机的性能。
完成初始化设置以后,W5300可以以TCP、UDP、IPRAW或MACRAW的方式打开SOCKET发送或接
收数据。W5300支持8个SOCKET同时且独立地工作。在本章将描述每种通信方式的工作方法。 TCP是一种连接通信的协议,在TCP模式,首先要根据IP地址和端口号与对端建立SOCKET连接。通
过连接的SOCKET发送和接收数据。
建立SOCKET的连接有“TCP服务器”和“TCP客户端”之分。区分它们的方法是谁首先发送连接请
求(SYS数据包)。“TCP服务器”等待对端的连接请求,当收到连接请求时建立SOCKET连接(被动打
开)。“TCP客户端”主动发出连接请求,与对端建立连接(主动打开)。
SOCKET初始化
为了实现TCP通信,需要对SOCKET进行初始化设置并打开SOCKET。为了打开SOCKET,选择其中
的一个SOCKET(被选择的SOCKET称之为SOCKETn),通过Sn_MR(P3:P0)和Sn_PORTR分别设置通
信协议和本机端口号(在TCP服务器模式,称之为侦听端口号),然后执行OPEN命令。执行完OPEN命
令后,如果Sn_SSR改变为SOCK_INIT,则SOCKET的初始化设置完成。
在TCP服务器和TCP客户端模式,SOCKET初始化的过程都是相同的。下面的方法是将SOCKET初始
化为TCP模式。
{
START:
Sn_MR = 0x0001; /* sets TCP mode */
Sn_PORTR = source_port; /* sets source port number */
Sn_CR = OPEN; /* sets OPEN command */
/* wait until Sn_SSR is changed to SOCK_INIT */
if (Sn_SSR != SOCK_INIT) Sn_CR = CLOSE; goto START;
}
如果接收到对端的数据字节数为偶数,Sn_MR(ALIGN)置‘1’。当Sn_MR(ALIGN)=1时,W5300不
需要增加TCP模式的PACKET-INFO,而只将数据保存在SOCKETn的内部RX存储器。这样将减少主机对
SOCKET_INFO的额外处理,提高系统性能。(在前面的代码中,Sn_MR=0x0101可能会被Sn_MR=0x0001
取代)
侦听
运行LISTEN命令将W5300设置为TCP服务器模式
{
/* listen SOCKET */
Sn_CR = LISTEN;
/* wait until Sn_SSR is changed to SOCK_LISTEN */
If (Sn_SSR != SOCK_LISTEN) Sn_CR = CLOSE; goto START;
}
建立连接?
当Sn_SSR改变为SOCK_LISTEN状态时,如果收到SYN数据包,那么Sn_SSR将改变为
SOCK_SYNRECV。发送了SYN/ACK数据包后,SOCKETn就建立了连接。SOCKETn建立连接以后就可
以进行数据通信。有两种方法可以检验是否建立SOCKETn的连接。
第1种方法
{
if (Sn_IR(CON) == ‘1’) Sn_IR(CON) = ‘1’; goto ESTABLISHED stage;
/* In this case, if the interrupt of SOCKETn is activated, interrupt occurs. Refer to IR, IMR
Sn_IMR and Sn_IR. */
}
第二种方法
{
if (Sn_SSR == SOCK_ESTABLISHED) goto ESTABLISHED stage;
}
建立连接:接收到数据?
检查是否接收到对端发送来的数据。
第1种方法
{
if (Sn_IR(RECV) == ‘1’) Sn_IR(RECV) = ‘1’; goto Receiving Process stage;
/* In this case, if the interrupt of SOCKETn is activated, interrupt occurs. Refer to IR, IMR
Sn_IMR and Sn_IR. */
}
第2种方法
{
if (Sn_RX_RSR != 0x00000000) goto Receiving Process stage;
}
第1种方法,当SOCKETn接收到数据包时,Sn_IR(RECV)将置‘1’。这时如果主机还没有处理上次
接收数据包的Sn_IR(RECV),而W5300又收到下一次的数据包,主机保持前一次的Sn_IR(RECV),不能
识别下一次数据包的Sn_IR(RECV),因此,如果主机没有能力处理所有数据包的Sn_IR(RECV),建议不
采用这种方法。
建立连接:接收数据处理
当Sn_MR(ALIGN)=0时,数据包中包含PACKET-INFO和数据的数据。在Sn_ME(ALIGN)=1时,TCP
数据只有数据包而没有PACKET-INFO。
在TCP模式,如果对端发送的数据的大小超过SOCKETn的RX存储器的剩余空间,那么W5300将不能
接收数据,这时的W5300将继续保持连接,并等待RX存储器的剩余空间大于数据长度。
{
/* first, check Sn_MR(ALIGN) */
if (Sn_MR(ALIGN) == ‘0’)
{
pack_size = Sn_RX_FIFOR; /* extract size of DATA packet from internal RX memory */
}
else
{
pack_size = Sn_RX_RSR; /* check the total received data size */
}
/* calculate the read count of Sn_RX_FIFOR */
if (pack_size is odd ?) read_cnt = (pack_size + 1) / 2;
read_cnt = pack_size / 2;
/* extract DATA packet from internal RX memory */
for( i = 0; i 《 read_cnt; i++)
{
data_buf = Sn_RX_FIFOR; /* data_buf is array of 16bit */
}
/* set RECV command */
Sn_CR = RECV;
}
注意:当SOCKETn只用于接收数据而不发送数据时,主机不能快速接收处理数据将导致使内部RX存
储器溢出。
在这种情况下,即使W5300的窗口尺寸(接收数据的最大尺寸)不为0,对端误以为窗口尺寸为0而不再发送数据,等待窗口尺寸增加。这样就会降低W5300接收数据的性能。为了解决这个问题,主机首先处理内部RX存储器接收的数据,同时通知对端,W5300的窗口尺寸增加了已经接收数据的大小。针对上面代码,在RECV命令之后增加以下的代码。
/* set RECV command */
Sn_CR = RECV;
/* Add the code that notifies the update of window size to the peer */
/* check the received data process to finish or not */
if(Sn_RX_RSR == 0) /* send the window-update packet when the window size is full */
{ /* Sn_RX_RSR can be compared with another value instead of ?0?, according to the host
performance of receiving data */
Sn_TX_WRSR = 0x00000001; /* set Dummy Data size to Sn_TX_WRSR */
Sn_CR = SEND; /* set SEND command */
while(Sn_CR != 0x00); /* check SEND command completion */
while(Sn_IR(SENDOK) == 0); /* wait for SEND OK */
Sn_IR(SENDOK) =1; /* Clear SENDOK bit */
}
建立连接:发送数据?/发送处理
将数据通过Sn_TX_FIFOR写入到内部TX存储器后,W5300将试着把数据发送到对端。发送数据的大
小不能比分配给该SOCKETn的内部TX存储器空间大。如果发送数据的尺寸比MSS大,W5300将自动根据
MSS分片,然后再发送。
为了下一次数据的发送,主机必须检查上次SEND命令是否执行完毕。如果上一次的SEND命令还没
有执行完而又开始下一次的SEND命令,将可能产生各种各样的错误。数据越大,执行SEND命令所需要
的时间就会越长。所以要想提高发送效率,适当将数据分为合适的大小发送。
{
/* first, get the free TX memory size */
FREESIZE:
get_free_size = Sn_TX_FSR;
if (Sn_SSR != SOCK_ESTABLISHED && Sn_SSR != SOCK_CLOSE_WAIT) goto CLOSED
state;
if (get_free_size 《 send_size) goto FREESIZE;
/* calculate the write count of Sn_TX_FIFOR */
if (send_size is odd ?) write_cnt = (send_size + 1) / 2;
else write_cnt = send_size / 2;
/* copy data to internal TX memory */
for (i = 0; i 《 write_cnt; i++)
{
Sn_TX_FIFOR = data_buf; /* data_buf is array of 16bit */
}
/* check previous SEND command completion */
if (is first send ?) ; /* skip check Sn_IR(SENDOK) */
else
{
while(Sn_IR(SENDOK)==‘0’)
{
if(Sn_SSR == SOCK_CLOSED) goto CLOSED state; /* check connection establishment */
}
Sn_IR(SENDOK) = ‘1’; /* clear previous interrupt of SEND completion */
}
/* sets transmission data size to Sn_TX_WRSR */
Sn_TX_WRSR = send_size;
/* set SEND command */
Sn_CR = SEND;
}
建立连接:接收到FIN
它检查是否接收到断开连接的请求(FIN数据包)。检查如下:
第1种方法
{
if (Sn_IR(DISCON) == ‘1’) Sn_IR(DISCON)=‘1’; goto CLOSED stage;
/* In this case, if the interrupt of SOCKETn is activated, interrupt occurs. Refer to IR, IMR
Sn_IMR and Sn_IR. */
}
第2种方法
{
if (Sn_SSR == SOCK_CLOSE_WAIT) goto CLOSED stage;
}
建立连接:断开连接?/断开连接处理
如果不再需要进行数据通信,或收到FIN数据包,那么SOCKET的连接应该断开。
{
/* set DISCON command */
Sn_CR = DISCON;
}
建立连接:关闭端口?
它检查SOCKETn是否通过DISCON或CLOSE命令断开连接或关闭端口。
第1种方法
{
if (Sn_IR(DISCON) == ‘1’) goto CLOSED stage;
/* In this case, if the interrupt of SOCKETn is activated, interrupt occurs. Refer to IR, IMR
Sn_IMR and Sn_IR. */
}
第2种方法
{
if (Sn_SSR == SOCK_CLOSED) goto CLOSED stage;
}
建立连接:超时
超时可能发生在TCP数据包传输过程中,如连接请求(SYN数据包)或其响应数据包(SYN/ACK数
据包)、数据(DATA数据包)或其响应数据包(DATA/ACK数据包)、断开连接请求(FIN数据包)或其
响应数据包(FIN/ACK数据包)等等。如果以上的数据包在RTR和RCR设定的时间内没有发送出去,那么
将产生TCP超时,且Sn_SSR将改变为SOCK_CLOSED状态。
TCP超时检查如下:
第1种方法:
{
if (Sn_IR(TIMEOUT bit) == ‘1’) Sn_IR(TIMEOUT)=‘1’; goto CLOSED stage;
/* In this case, if the interrupt of SOCKETn is activated, interrupt occurs. Refer to IR, IMR
Sn_IMR and Sn_IR. */
}
第2种方法:
{
if (Sn_SSR == SOCK_CLOSED) goto CLOSED stage;
}
SOCKET关闭
SOCKETn经过断开连接处理或由于超时而断开连接,它用于关闭断开连接的SOCKETn。主机也可以不进
行断开连接处理而直接关闭SOCKETn。
{
/* clear remained interrupts */
Sn_IR = 0x00FF;
IR(n) = ‘1’;
/* set CLOSE command */
Sn_CR = CLOSE;
} 它发送连接请求(SYN数据包)到对端。在与对端SOCKET建立连接的过程中可能会出现ARP超时,
或TCP连接超时。
{
Sn_DIPR = server_ip; /* set TCP SERVER IP address*/
Sn_DPORTR = server_port; /* set TCP SERVER listen port number*/
Sn_CR = CONNECT; /* set CONNECT command */
}
你说的是翻译东西还是变手机操作语言
我猜你买的水货,还是韩文的操作界面,去网上找找有刷机软件吗改变这个只能使用刷机软件
楼主你好:
5300和5200的区别有一下几点
第一.5300的显示屏采用QVGA分辨率的,5200只是一般的屏幕显示,5300相对显示出来的效果好很多.
第二.5300的屏幕有2.0英寸,5200的只有1.8英寸.相比下5300的屏幕更大一点,显示就清晰很多.
第三.5300的摄像头是130w的,而5200的只是30w,相比下5300的拍摄效果更好.
第四.5300的音乐快捷键不同与5200的有所区别,相比下5300更容易操控.
第五.如果是买行货的话,5300有标配的256m的内存卡,而5200是没有的.
缺点:在白色的地方很容易脏.
(希望以上的资料对楼主有用)
W5300在内存空间和数据处理能力等方面都有很大的提高。W5300特别适用于IPTV,IP机顶盒和数字电
视等大流量多媒体数据的传输。通过一个集成有TCP/IP协议和10/100M的以太网MAC和PHY的单芯片可以非常简单和快捷地实现
Internet连接。
W5300与主机(MCU)采用总线接口。通过直接访问方式或间接访问方式,W5300可以很容易与主
机接口,就像访问SRAM存储器。W5300的通信数据可以通过每个端口的TX/RX FIFO寄存器访问。由于
这些特性,即使一个初学者也很容易使用W5300实现Internet连接。
相关tag:w5300中文数据手册
本站部分资源来源于网络,如果侵犯了您的权益,请联系我们删除1354090129@qq.com