W5500笔记

    xiaoxiao2021-03-26  25

    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

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

    转载请注明原文地址: https://ju.6miu.com/read-350216.html

    最新回复(0)