W5500笔记

来源:互联网 发布:张馨予淘宝店名 编辑:程序博客网 时间:2024/05/29 01:52

w5500以太网控制器,集成TCP/IP协议栈、10/100M以太网数据链路层(MAC)、物理层(PHY),因而实现了TCP/IP4层协议中的3层,用户只需要实现最上层的应用层就行。


接口:

w5500使用SPI与主机通讯,本身作为SPI从机工作;

w5500仅支持SPI协议中的模式03(数据都是在时钟上升沿锁存,下降沿输出),两者唯一区别是非活动状态下,时钟信号的极性;

w5500MOSIMISO均遵从又高到低的传输序列。

w5500与外设主机SPI通讯帧格式:

地址段 16寄存器或TX/RX偏移地址

控制段 8 BSB[7:4]:区域选择位(1个通用寄存器、8socket寄存器、每个socket2TX/RX缓存)

RWB[3]:/写访问设置位

OM[1:0]:数据长度模式选择位(跟片选线结合配置,仅讨论实际采用的可变数据长度模式)

数据段长度可变 n字节(1<=n


寄存器和内存:

中断默认处于开启状态,中断分为2类:

普通中断(IR):产生这类中断时INTn引脚拉低,实际INTn引脚未用,即不考虑普通中断

socket中断(Sn_IR):INTn引脚只有在socket中断全部结束后才能被拉低

超时时间定义:

RTR配置重传超时时间,单位值是100us,缺省值是200ms100us*0x07D0,在该时间内,w5500等待Sn_CR(CONNECTDISCONCLOSESENDSEND_MACSEND_KEEP)传输后,来自对方的回应如果没有回应,进行包重传或触发超时中断

RCR设置重传次数,缺省值8,当RCR+1次重传时,超时中断触发(Sn_IR[TIMEOUT]1

w5500超时包含2种:

ARP(地址解析协议)重传超时:ARP_timeout=RTR×0.1ms)*RCR+1




TCP重传超时:TCP_timeout=

N-重传次数

 M-满足

&  0<M<RCR的最小值

-              




W5500socket可以使用3种协议:

TCP:

TCPserver流程-配置socketTCP模式(Sn_MR,MR_TCP

打开socketSn_CR,OPEN

开启监听,等待client连接请求(Sn_CR,LISTEN

一旦建立连接(Sn_SR,ESTABLISHED),serverclient就可以相互通讯

TCPclient流程-配置socketTCP模式(Sn_MR,MR_TCP

打开socketSn_CR,OPEN

发出连接请求,等待server接收连接(Sn_CR,CONNET

一旦建立连接(Sn_SR,ESTABLISHED,serverclient就可以相互通讯

TCP下关闭socket流程:

主动关闭-发出断开请求(FIN数据包)到所连接的对方(Sn_CR,DISCON),当断开请求没有收到对方的ACK时,TCP_timeout触发,Sn_SR变为SOCK_CLOSEDsocket关闭

被动关闭-当从对方接收到断开连接请求(FIN数据包)时,回复一个FIN到对方Sn_CR,DISCON),Sn_SR变为SOCK_CLOSEDsocket关闭

直接关闭-Sn_CR,CLOSE),Sn_SR变为SOCK_CLOSEDsocket关闭

UCP

流程-配置socketUDP模式(Sn_MR,MR_UDP

打开socketSn_CR,OPEN

MACRAR:略


收发缓冲内存:

W5500分别有16KB内存用于作收发缓冲,缺省每个socket分配2KB,该值可以通过Sn_TXBUF_SIZE/Sn_RXBUF_SIZE重新分配,但不论大小如何,收发缓冲的寻址范围都是0x00000xffff

注:收发缓冲地址偏移、保存理解起来有些麻烦,实际使用只需参照例程



0 0