iEthernet W5200数据手册(版本1.2.4)之:寄存器说明
0支持PAP和CHAP两种类型的
身份验证方法。

PPPALGO(PPPoE模式的认证算法)[R][0x001E][0x00]
该寄存器通知认证算法于PPPoE模式。如需详细信息,请参阅PPPoE的应用说明。
VERSIONR (W5200芯片版本寄存器)[R][0x001F][0x03]
该寄存器是W5200芯片版本寄存器。
PTIMER(PPP 连接控制协议请求定时寄存器)[R/W][0x0028]
该寄存器是指示发送LCP Echo请求的期限。PTIMER的值为1时,大约是25毫秒(ms) 。
例) 如果 PTIMER是 200,
200 * 25(ms) = 5000(ms) = 5 seconds
PMAGIC(PPP 连接控制协议幻数寄存器)[R/W] [0x0029][0x00]
该寄存器用于选择LCP协商的幻数(Magic number)。请参考应用笔记中的"如何连接ADSL"。
INTLEVEL(低电平中断定时器寄存器) [R/W][0x0030 – 0x0031][0x0000]
该寄存器用于设置中断生效等待的时间(IAWT)。它配置nINT低等待时间直到下一个中断生效。

图 6 INTLEVEL的时序
A. 对Socket0而言,当触发接收中断(即:S0_IR(3) = ‘1’),那么相应的IR2位就会被置1(即:IR(S0_IR) = ‘1’).一旦IR2的某位被置1了,nINT就将变为低电平。B,C同理。
B. 在Socket 1中,触发连接中断(S1_IR(0)='1')和相应的位(bit)设置为'1' (IR(S1_IR)='1')。
C.主机清零S0_IR(S0_IR=0x00)则相应的IR位(bit)也会自动被清零(IR(S0_IR) = ‘0’)。nINT信号变为高电平。
D.虽然S0_IR被清零了,但是由于socket1的中断还存在,所以IR2的值不为0.既然IR2的值不为
0,那么nINT引脚就应该变为低电平。那么nINT从高电平变为低电平需要多长时间呢?这就
要看INTLEVEL register的设置情况了。如果INTLEVEL register的值是0x000F的话,nINT将在IAWT(16 PLL_CLK)后变为低电平。
IR2(W5200 SOCKET中斷寄存器)[R/W][0x0034][0x00]
IR2这个寄存器用来通知主机W5200中socket发生中断。如果任何中断发生时,IR2相关的位(bit)会被设置为‘1’。当相关的掩码位(bit)被设置为‘1’时,nINT信号为低电平。nINT会保持低电平直到所有Sn_IR的位(bit) 被设置为‘0’时,它才会变为高电平。 
1
PHYSTATUS(W5200物理层状态寄存器)[R/W][0x17]
PHYSTATUS是用来指示W5200物理层状态的寄存器。

IMR2(中断掩码寄存器2)[R/W][0x0016][0x00]
该中断掩码寄存器是用来掩码中断。每个中断掩码位(bit)对应于中断寄存器2(IR2)。当中断掩码位被设置为"1"且中断寄存器2的相关位也置1时,中断发生。如果任何位(bit)在中断掩码寄存器(IMR)设置为’0'时,就不会发生中断。


4.2 Socket 寄存器
Sn1_MR (Socket n-th 模式寄存器) [R/W] [0x4000+0x0n00] [0x00]
2
该寄存器用于配置所有SOCKET的选项或协议类型

1n是 Socket n-th 的数目 (0, 1, 2, 3, 4, 5, 6, 7).
2[读/写] [socket 0地址, socket 1地址, socket 2地址, socket 3地址, socket 4地址, socket 5地址,socket 6
地址, socket 7地址] [复位数值]

Sn_CR (Socket n-th 命令寄存器) [R/W] [0x4001+0x0n00] [0x00]
这是用来设置Socket n-th的命令如OPEN、CLOSE、CONNECT、LISTEN、END和RECEIVE。
经W5200识别这一命令后,Sn_CR寄存器会自动清零为 0x00。尽管Sn_CR被清零为 0x00,
但命令仍在处理中。为了验证该命令是否完成,请检查Sn_IR或Sn_SR寄存器。


以下命令只适用于SOCKET 0 和 S0_MR(P3:P0) = S0_MR_PPPoE。更多细节请参考"如何使用ADSL"。

Sn_IR (Socket n-th中断寄存器) [R] [0x4002+0x0n00] [0x00]
Sn_IR寄存器用于提供给Socket n-th中断类型信息,如建立(Establishment)、终止(Termination)、接收数据(Receiving data)和超时(Timeout)。当触发一个中断即Sn_IMR的掩码位是'1'的时候,Sn_IR的中断位将会变成‘1’。
如果想把Sn_IR位清零的话,主机应该将该位置‘1’。以当所有Sn_IR的位被清零后(‘0’),IR(n)
将会自动清零。

Sn_SR (Socket n-th状态寄存器) [R] [0x4003+0x0n00] [0x00]
该寄存器提供Socket n-th的状态。 当使用Sn_CR寄存器或在传输/接收数据包时,Socket
的状态将会更改。下表描述了不同 Socket n-th的状态。


以下是转换状态的过程。

数值 代号 说明


图 7 Socket的状态转换图
Sn_PORT (Socket n-th源端口寄存器)
- iEthernet W5200数据手册(版本1.2.4)之:引脚分配(09-18)
- iEthernet W5200数据手册(版本1.2.4)之:外部接口(09-18)
- iEthernet W5200数据手册(版本1.2.4)之:电器规格(09-18)
- 高性能32位移位寄存器单元的设计(06-14)
- STM32F之RTC(07-05)
- W5500 数据手册 Version 1.0 之:寄存器和内存构成(09-18)
