DIY编程器网

标题: W5500 数据手册 Version 1.0 之:寄存器描述 [打印本页]

作者: admin    时间: 2014-10-12 14:30
标题: W5500 数据手册 Version 1.0 之:寄存器描述
4 寄存器描述
                         
                        4.1 通用寄存器
                        MR (模式寄存器 - Mode Register) [R/W] [0x0000] [0x00]2 2 注脚符号 : 【可读/写】【内存地址】【默认值】 - [Read/Write] [Address] [Reset value]
                        该寄存器用于 S/W 复位,ping block模式和PPPoE模式。
                       
                        表格 6 通用寄存器描述
                       
                       
                         
                        GAR (网关IP地址寄存器) [R/W] [0x0001 – 0x0004] [0x00]
                        该寄存器用来设置默认网关地址。
                        例) 例如:“192.168.0.1”
                       
                         
                        SUBR (子网掩码寄存器) [R/W] [0x0005 – 0x0008] [0x00]
                        该寄存器用来设置子网掩码地址.
                        例) 例如: “255.255.255.0”
                       
                         
                        SHAR (源MAC地址寄存器) [R/W] [0x0009 – 0x000E] [0x00]
                        该寄存器用来设置源MAC地址。
                        例) 例如:“00.08.DC.01.02.03”
                       
                         
                        SIPR (源IP地址寄存器) [R/W] [0x000F – 0x0012] [0x00]
                        该寄存器用来设置源IP地址。
                        例)例如:“192.168.0.2”
                       
                         
                        INTLEVEL (低电平中断定时器寄存器) [R/W] [0x0013 – 0x0014] [0x0000]
                        该寄存器用于设置中断生效等待的时间(IAWT)。当下一个中断触发,中断引脚将会在INTLEVEL时间后,拉低中断引脚(INTn)。
       
               

       
                图 21 INTLEVEL 时序

                 
                         A. 当Socket 0的超时中断被触发,在INTn引脚被拉低后,S0_IR[3] & SIR[0]设置为‘1’。
                         B. 当Socket 1的连接中断在前一个中断未处理完成之前被触发,则INTn引脚仍然位低,S1_IR[0] & SIR[1]位设置为‘1’。
                         C. 如果主机完全是通过清理S0_IR[3]位来完成之前的中断,则INTn引脚拉高,但是S1_IR[0] & SIR[1]仍然为‘1’。
                         D. 即使S1_IR[0] & SIR[1]位被设置为‘1’,但是在INTLEVEL期间,INTn不能被拉低。只有过了INTLEVEL时间,INTn才能被拉低。
                         
                 
                        RTR (重试时间值寄存器) [R/W] [0x0019 – 0x001A] [0x07D0]
                        RTR 配置了重传超时的时间值。每一单位数值为100 微秒。初始化时值设为2000(0x07D0),即相当于200 毫秒(100us X 2000)。
                         
                        在RTR配置的时间内,W5500等待Sn-CR(CONNECT, DISCON, CLOSE, SEND, SEND_MAC, SEND_KEEP command)传输后,来自对方的回应。如果在RTR时间段内没有回应,W5500进行包重传或触发超时中断。
                        例) 当超时周期别设置为400ms时,RTR = (400ms / 1ms) X 10 = 4000(0x0FA0)
                       
                         
                        RCR (重试计数寄存器) [R/W] [0x001B] [0x08]
                        该寄存器是设置重新传送的次数。当第‘RCR+1’次重传时,超时中断就会置‘1’。(中断寄存器(Sn_IR)的 ‘中断’位(‘TIMEOUT’ bit)设置为'1')。
                        例) RCR = 0x0007
                       
                        W5500的超时可以用RTR和RCR来配置。W5500的超时包括地址解析协议(ARP)和TCP重新传送超时。
                         
                        在ARP的重新传送超时(请参阅 RFC 826 http://www.ietf.org/rfc.html),W5500会自动发 送ARP请求去对方(peer)的IP地址,从而获取MAC地址信息(IP、UDP或TCP用于通信)。至 于等待对方(peer)的ARP 响应方面,如在RTR中设置了重新传送时间时,对方(peer)的ARP没 有响应,超时发生和ARP将会请求重新传送。一直重复此步骤达'RCR+1'次。 如果在ARP重复请求重新传送次数达到'RCR+1'次时,仍然没有得到ARP响应,就会触发最终超时中断,Sn_IR(TIMEOUT)会变为'1'。
                         
                        ARP请求的最终超时值(ARPTO)如下:
                       
                         
                        在配置了RTR和RCR期间,发生TCP数据包重传超时,W5500就会发送 TCP 数据包(SYN、FIN、RST、数据包)和等待确认(ACK)。如果没有对方(peer)的ACK响应,就会触发一个临时超时中断且TCP数据包(较早前传送的)会重新传送。直到重新传送'RCR+1'次。即使TCP数据包重新传送'RCR+1'次,如果对方(peer)仍然没有的ACK回应,就会触发最终超时中断且同一时间Sn_IR(TIMEOUT)='1'。

                        4.2 Socket端口寄存器
                        Sn3_MR (Socket n模式寄存器) [R/W] [0x0000] [0x00]
                         
                        该寄存器用于配置所有SOCKET的选项或协议类型
                       
                        表格 12 Sn_MR描述
                       
                 
                        Sn_IR (Socket n 中断寄存器) [R] [0x0002] [0x00]
                        Sn_IR寄存器用于提供给Socket n中断类型信息,如建立(Establishment)、终止(Termination)、接收数据(Receiving data)和超时(Timeout)。当触发一个中断即Sn_IMR的对应位是'1'的时候,Sn_IR的对应位也将会变成‘1’。
                         
                        如果想把Sn_IR位清零的话,主机应该将该位置‘1’。
                       
                 
                        Sn_DHAR寄存器指示的为:UDP模式下,使用Send_MAC配置命令,配置Socket n的目标主机MAC地址;或者CONNECT/SEND配置命令,ARP过程获取到的MAC地址。
                         
                        例) 如Socket 0的目标MAC地址 = 08.DC.00.01.02.10,配置应如下,
                       
                         
                        Sn_DIPR (Socket 目标IP地址寄存器) [R/W] [0x000C-0x000F] [0x00000000]
                        Sn_DIPR配置或指示的为Socket n的目标主机IP地址,在TCP/UDP模式下生效。
                         
                        在TCP客户端模式下,在CONNECT配置命令前,该寄存器设置了TCP服务器的IP地址。
                         
                        在TCP服务器模式下,他显示了在成功建立连接后,TCP客户端的IP地址;
                         
                        在UDP模式下,他配置了对方主机的IP地址以供SEND或SEND_MAC配置命令后接收UDP包。
                         
                        例) 如Socket 0的目标IP地址= 192.168.0.11, 配置应如下,
                       
                         
                        Sn_DPORT (Socket n目标端口寄存器) [R/W] [0x0010-0x0011] [0x00]
                        Sn_DPORT 配置或指示了Socket n的目标主机端口号,在TCP/UDP模式下生效。
                         
                        在TCP客户端模式下,在CONNET配置命令前,该寄存器配置了TCP Server监听的端口号。
                         
                        在TCP服务器模式下,他显示了在成功建立连接后,TCP客户端的端口号;
                         
                        在UDP模式下,他配置了对方主机的端口号以供SEND或SEND_MAC配置命令后接收UDP包。
                         
                        例) 如Socket 0的目标端口号 = 5000(0x1388) ,配置应如下,
                 
                        Sn_RX_RSR (Socket n 空闲接收缓存寄存器) [R] [0x0026-0x0027] [0x0000]




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2