单片机寄存器

上传人:re****.1 文档编号:506445834 上传时间:2023-08-12 格式:DOCX 页数:11 大小:48.02KB
返回 下载 相关 举报
单片机寄存器_第1页
第1页 / 共11页
单片机寄存器_第2页
第2页 / 共11页
单片机寄存器_第3页
第3页 / 共11页
单片机寄存器_第4页
第4页 / 共11页
单片机寄存器_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《单片机寄存器》由会员分享,可在线阅读,更多相关《单片机寄存器(11页珍藏版)》请在金锄头文库上搜索。

1、端口(SOCKET)寄存器1)Socket n 的模式寄存器 Sn_MR R/W 0x4000+0x0n00 0x00该寄存器用于设置每个端口(SOCKET)的功能选项和协议类型。各位定义如下:B7B6B5B4B3B2B1B0MULT1MFND/MCReservedP3P2P1P0B7(MULTI):多播方式控制位,只有在UDP模式下有效(P3P0: 0010)。 0:禁止多播;1:允许多播。为了使用多播,在打开SOCKET之前,应将多播分组的IP地址写到SOCKET n的目的 IP寄存器,将多播分组的端口号写到SOCKET n的目的端口号寄存器。B6 (MF): MAC地址过滤控制位,只用于

2、MACRAW (P3P0: 0100)模式。0:禁止MAC地址过滤;1:允许MAC地址过滤。当该位置1时, W5200 只接收属于自己的数据包和广播的数据包;当该位为0 时,W5200接收以太网上所有的数据包。当使用混合TCP/IP协议栈时,建议将该位置1 以免主机过渡接收数据包。B5 (ND/MC):使用无延迟的应答(ACK)控制位。0:禁止无延迟ACK选项;1:允许无延迟ACK选项。只有在TCP模式(P3P0: 0001)下有效。如果该位设置为1在收到对端的数据包 后马上响应一个ACK数据包。如果该位清0 ACK将根据内部时间溢出机制进行响应。在MULTI置1且使用UDP模式(P3P0:

3、0010)时,该位为多播版本号选择控制 位(MC功能)。0:使用IGMP版本2; 1:使用IGMP版本1。另外,多播也可以在诸如在线/离开/报告给多播分组等的IGMP信息中发送版本号。B4:保留位。B3B0:设置端口的工作模式协议,如表6-9所示。表 6-9 端口的工作模式协议设置P3P2P1P0意义0000端口关闭0001TCP0010UDP0011IPRAW注:SOCKET 0可工作在MACRAW模式和PPPoE模式,其设置方法如表6-10所示。表6-10 SOCKET 0的工作模式协议设置P3P2P1P0意义0100MACRAW0101PPPoE也就是说,S0_MR_MACRAW 和 S

4、0_MR_PPPoE 只能在 SOCKET0 工作。S0_MR_PPPoE 是临时用于与PPPoE服务器的连接和中断,连接建立以后,该端口可以用于其它协议。2)Socket n 命令寄存器 Sn_CR R/W 0x4001+0x0n00 0x00该寄存器用于设置SOCKET n的命令,诸如:打开、关闭、连接、侦听、发送、接收等 动作。W5200确认该命令以后,Sn_CR寄存器自动清零(0x00)。即使Sn_CR清零,指令仍 然在处理中。为了验证命令是否执行完成,可以检查Sn_IR寄存器或Sn_SR寄存器。该寄存 器不同的取值所代表的含义如表 6-11 所示。表 6-11 Socket n 命令

5、寄存器不同取值所代表的含义值符号描述0x01OPEN根据Sn_MR (P3P0)所选择的协议初始化并打开SOCKET n。与Sn_MR对 应的Sn_SR的值如下:Sn_MR_CLOSE (0x00):无效Sn_MR_TCP(0x01): SOCK_INIT (0x13)Sn_MR_UDP(0x02): SOCK_UDP(0x22)Sn_MR_IPRAW(0x03): SOCK_IPRAW(0x32)S0_MR_MACRAW(0x04): SOCK_MACRAW(0x42)S0 MR PPPoE (0x05): SOCK PPPoE (0x5F)0x02LISTEN该命令只有在TCP模式(Sn_

6、MR(P3P0)=Sn_MR_TCP)下有效。在这种 模式下,SOCKET n配置为TCP服务器,等待其它TCP客户端的连接请求(SYN 数据包)。Sn_SR寄存器从SOCK_INIT状态改变为SOCK_LISTEN状态。当客户端的连接请求成功建立,Sn_SR寄存器的状态将从SOCK_LISTEN变 为 SOCK_ESTABLISHED,且 Sn_SR(0)的值置1如果连接失败(SYN/ACK 数据包发送失败),Sn_SR (3)置1且Sn_SR变为SOCK_CLOSED。如果在连接请求过程中TCP客户端的目标端口号不存在,W5200将发送一个 RST数据包,且 Sn SR的状态不变。0x04

7、CONNECT该命令只有在TCP模式下有效,且SOCKET n设置为TCP客户端。端口向 TCP服务器发出连接请求(SYN数据包)。TCP服务器的IP地址和端口号由目的 IP地址寄存器(Sn_DIPR0)和目的端口号寄存器(Sn_DPORT0)确定。客户端的连接请求成功建立后,Sn_S将改变为SOCK_ESTABLISHED,且 Sn_IR (0)改变为1在下面几种情况下,连接请求失败:当一个ARP超时异常发生(Sn_IR (s) =1),表明没有能够通过ARP过 程获得目的硬件地址;没有接收到SYN/ACK数据包,且产生TCP超时异常(Sn_IR (3) =1;接收到RST数据包而不是SYN

8、/ACK数据包。在以上这些情况下,Sn SR状态改变为SOCK CLOSED。0x08DISCON该命令只有在TCP模式下有效。不管是在TCP服务器还是TCP客户端, 该命令做断开连接的处理,有两种方式:主动关闭:发送一个断开连接的请求(FIN数据包)到连接的对端。 被动关闭:当收到对端的FIN数据包时,回复一个FIN数据包到对端。当收到FIN/ACK数据包时,Sn_SR的状态改变为SOCK_CLOSED。如果没 有收到断开连接的请求,将产生TCP超时(Sn_IR (3) =1),且Sn_SR的状态改 变为 SOCK_CLOSED。例如:如果用CLOSE命令代替DISCON,Sn_SR的状态将

9、变成CLOSED, 但不会有断开连接的过程(不产生断开连接的请求)。如果在通信过程中接收到 RST数据包,Sn SR无条件地改变为SOCK CLOSED。0x10CLOSE关闭SOCKETo Sn SR的状态改变为SOCK CLOSED o0x20SENDSEND命令将TX数据存储器中的所有数据都发送出去。详细信息请查看SOCKET n的TX剩余空间大小寄存器(Sn_TX_FSR),SOCKET n的TX写指针 寄存器(Sn TX WR) 和 SOCKET n的TX读指针寄存器(Sn TX RD)。0x21SEND_MAC该命令只有在UDP模式有效。其基本操作与SEND相同。但SEND操作需

10、要通过ARP (地址解析协议)过程获得目的硬件物理地址。SEND_MAC不需要 通过ARP获得目的硬件物理地址,由用户设置SOCKET n的目的硬件物理地址0x22SEND_KEEP该命令只有在TCP模式下有效。通过发送一个字节的数据检查连接的状态。 如果没有对端的响应或中断,将产生超时中断。0x40RECVRECV命令通过RX读指针寄存器(Sn_RX_RD)处理数据的接收。详细信息请 参考服务器模式接收处理:SOCKET n的RX接收数据长度寄存器(Sn_RX_RSR), SOCKET n的RX写指针寄存器(Sn_RX_WR),SOCKET n的RX读指针寄存器(Sn RX RD)o表 6-

11、12 中的命令只用于 SOCKET 0 和 S0_MR(P3P0 )=S0_MR_PPPoE。表 6-12 只用于 SOCKET 0 和 S0_MR ( P3P0 ) =S0_MR_PPPoE 的命令值符号描述0x23PCON发送PPPoE搜寻数据包,开始ADSL连接。0x24PDISCON关闭PPPoE连接。0x25PCR在每一个阶段发送REQ信息。0x26PCN在每一个阶段发送NAK信息。0x27PCJ在每一个阶段发送REJECT信息。3) Socket n 中断寄存器 Sn _IR R 0x4002+0x0n00 0x00Sn_IR 寄存器提供 Socket n 的中断类型信息,如建立连

12、接、断开连接、接收数据和超时 当SCOCKET产生中断且Sn_IMR相对应的屏蔽位为 T 时,Sn_IR的中断位将会变成 T。为了清除 Sn_IR 位,主机应该相应的位写1。当所有 Sn_IR 的位被清零后, IR(n) 将会自动清零。各位的定义如下:B7B6B5B4B3B2B1B0PRECVPFAILPNEXTSEND OKRIMEOUTRECVDISCONCONB7 (PRECV): Sn_IR (PRECV)中断。只有在“ SOCKET=0”且“S0_MR (P3P0) =S0_MR_PPPoE”时有效。当接收到一个不支持的选项时,产生PPP接收中断。B6( PFAIL): Sn_IR(

13、 PFAIL)中断。只有在“ SOCKET=0 ”且“ S0_MR( P3P0) =S0_MR_PPPoE”时有效。当PAP认证失败时产生PPP失败中断。B5(PNEXT): Sn_IR(PNEXT)中断。只有在“ SOCKET=0”且“S0_MR(P3P0) =S0_MR_PPPoE”时有效。在ADSL连接过程中,当状态发生改变时产生下一个状态的中断。B4 (SEND_OK): Sn_IR (SENDOK)中断。当数据包发送完成时产生SEND_OK中断。B3 (TIMEOUT): Sn_IR (TIMEOUT)中断。当发生 ARP超时或TCP超时时,产生 TIMEOUT 中断。B2 (REC

14、V): Sn_IR (RECV)中断。当接收到对端的数据时,产生接收数据中断。B1 (DISCON): Sn_IR (DISCON)中断。当从对端接收到FIN/ACK数据包的FIN时, 产生断开连接中断。B0 (CON): Sn_IR (CON)中断。当连接建立时产生连接中断。4) Socket n 状态寄存器 Sn _SR R 0x4003+0x0n00 0x00该寄存器提供 Socket n 的状态。当使用 Sn_CR 寄存器,或在传输/接收数据包时, Socket 的状态将会更改。不同 Socket n 的状态如表 6-13 所示。表 6-13 不同 Socket n 的状态值符号描述0

15、x00SOCK_CLOSED这是SOCKET n的资源被释放的状态。不管以前的状态值是什 么,当执行DISCON或CLOSE命令,或产生ARP超时或TCP超时 时,它的数值都将会更改为SOCK CLOSEDo0x13SOCK_INIT如果Sn_MR设置为TCP,且给Sn_CR写入OPEN命令,状态 寄存器将会改变为SOCK_INIT状态。这是建立TCP连接的第一步。 这时,可以运行LISTEN命令将端口设置为TCP服务器模式,或运行 CONNECT命令进入TCP客户端模式。这是SOCKET n在TCP服务 器模式下等待TCP客户端连接请求的状态。0x14SOCK LISTENSOCKET n运行在TCP服务器模式下,等待从TCP客户端的连接请求。当执行了 LISTEN命令,状态则改变为SOCK

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号