新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機以太網(wǎng)控制芯片W7100A數(shù)據(jù)手冊(三)

單片機以太網(wǎng)控制芯片W7100A數(shù)據(jù)手冊(三)

作者: 時間:2016-11-26 來源:網(wǎng)絡(luò) 收藏

8.3寄存器描述

8.3.1模式寄存器

MR (模式寄存器) [R/W] [0xFE0000] [0x00]

例:設(shè)置地址為”192.168.0.2”

0xFE000F0xFE00100xFE00110xFE0012
192 (0xC0)168 (0xA8)0 (0x00)2 (0x02)

IR (中斷寄存器) [R] [0xFE0015] [0x00]

該寄存器由主機W7100A設(shè)置以確定中斷產(chǎn)生的來源。任何中斷都可以由中斷屏蔽寄存器屏蔽。當寄存器中任意中斷位被置位,INT5(nINT5: TCPIP內(nèi)核中斷) 引腳將變低電平,它將一直保持低電平直到中斷寄存器中的所有位都清除。

RTR ((重發(fā)時間值寄存器) [R/W] [0xFE0017 – 0xFE0018] [0x07D0]

該寄存器用來設(shè)置時間溢出的值。每一單位數(shù)值為100us。初始化時值為200ms(0x07D0),即該值設(shè)為2000(0xFA0)。

例:設(shè)定400ms,其值為4000(0x0FA0)

0xFE00170xFE0018
0x0F0xA0

如果對端沒有響應(yīng)或響應(yīng)延遲都將產(chǎn)生重傳。

RCR (重傳計數(shù)寄存器) [R/W] [0xFE0019] [0x08]

該寄存器內(nèi)的數(shù)值設(shè)定可重發(fā)的次數(shù)。如果重發(fā)的次數(shù)超過設(shè)定值,將產(chǎn)生超時中斷(相關(guān)的端口中斷寄存器中的Sn_IR超時位(TIMEOUT)置’1’。

在TCP通信模式,Sn_IR的TIMEOUT=’1’時,Sn_SR的狀態(tài)改變?yōu)?rdquo;SOCK_CLOSED”狀態(tài)。在其它通信模式,只是Sn_IR的TIMEOUT=’1’。

W7100A超時中斷可以通過RTR和RCR進行配置。其中TIMEOUT中斷分為ARP超時和TCP重傳超時.

對于ARP(參考RFC 826,http://www.ietf.org/rfc.html)重傳超時, W7100A自動發(fā)送ARP請求到對端IP地址,以獲得MAC地址信息。(用于IP,UDP,或TCP通信).在等待對端ARP響應(yīng)過程中,如果在RTR設(shè)置的時間范圍內(nèi)都沒有響應(yīng),將產(chǎn)生超時并重復發(fā)送ARP請求。重發(fā)上限為’RCR+1’次。

在ARP重復請求’RCR+1’次后如果沒有ARP響應(yīng),那么最終將產(chǎn)生超時且Sn_IR(TIMEOUT)置’1’。

ARPTO = ( RTR X 0.1ms ) X ( RCR + 1 )

ARP請求超時的計算如下(ARPTO):

TCP數(shù)據(jù)包傳輸超時,W7100A傳輸TCP數(shù)據(jù)包(SYN,FIN,RST,DATA數(shù)據(jù)包)并在RTR和RCR設(shè)置的時間范圍內(nèi)等待響應(yīng)(ACK)。如果對端沒有響應(yīng)將產(chǎn)生超時,并重復發(fā)送先前的TCP數(shù)據(jù)包。重復發(fā)送的次數(shù)為’RCR+1’。如果TCP數(shù)據(jù)包經(jīng)過’RCR+1’次重復發(fā)送也沒有得到對端的ACK響應(yīng),此時將產(chǎn)生最終的超時。在Sn_IR(TIMEOUT)=1時Sn_SR的值為’SOCKET_CLOSED’。

TCP數(shù)據(jù)包重復傳輸?shù)淖罱K超時的值計算如下:

例:當RTR = 2000(0x07D0), RCR = 8(0x0008),

ARPTO= 2000 X 0.1ms X 9 = 1800ms = 1.8s

TCPTO= (0x07D0 + 0x0FA0 + 0x1F40 + 0x3E80 + 0x7D00 + 0xFA00 + 0xFA00 + 0xFA00 + 0xFA00) X 0.1ms

= (2000 + 4000 + 8000 + 16000 + 32000 + ((8 - 4) X 64000)) X 0.1ms

= 318000 X 0.1ms = 31.8s

PATR (PPPoE模式下認證類型) [R] [0xFE001C-0xFE001D] [0x0000]

在與PPPoE服務(wù)器連接時該寄存器指示通過的安全認證方法。W7100A只支持兩種安全類型:PAP和CHAP。

認證類型
0xC023PAP
0xC223CHAP

PPPALGO (PPPoE模式下認證算法)[R][0xFE001E][0x00]

該寄存器用于指示PPPoE連接時的認證算法。詳細信息請參考PPPOE應(yīng)用筆記。

PTIMER (PPP連接控制協(xié)議請求定時器寄存器) [R/W] [0xFE0028] [0x28]

該寄存器表示發(fā)出LCP Echo(響應(yīng)請求)所需要的時間間隔。每1單位大約25ms。

例:設(shè)置PTIMER =200

200 * 25(ms) = 5000(ms) = 5 s

PMAGIC (PPP連接控制協(xié)議(LPC)幻數(shù)寄存器) [R/W] [0xFE0029][0x00]

該寄存器用于LCP握手時采用的幻數(shù)選項。參照 “How to connect ADSL”應(yīng)用筆記。

VERSIONR (W7100A芯片版本寄存器)[R][0xFE001F][0x02]

該寄存器存儲W7100A的版本信息。

INTLEVEL (中斷低電平等待時間寄存器)[R/W][0xFE0030 – 0xFE0031][0x0000]

INTLEVEL設(shè)置中斷觸發(fā)等待時間(IAWT)。它配置內(nèi)部中斷INT5在下一個中斷發(fā)生前的低電平觸發(fā)等待時間。如果用戶想啟用TCP/IP內(nèi)核中斷,INTLEVEL寄存器的值必須大于0x2B00。否則TCP/IP內(nèi)核中斷可能被忽略。

a.對于SOCKET 0,如果中斷發(fā)生(S0_IR(3) = ‘1’)且相應(yīng)IR2位被置1(IR(S0_IR) = ‘1’),內(nèi)部中斷INT5信號將會被拉低。

b.同樣的情況出現(xiàn)在:當socket 1出現(xiàn)連續(xù)中斷(S1_IR(0)=‘1’)且相應(yīng)位被置1(IR(S1_IR)=‘1’)。

c.當主機清掉S0_IR(S0_IR = 0x00)位及相應(yīng)的IR2位(IR(S0_IR) = ‘0’),內(nèi)部中斷INT5信號將會從低電平(啟動)重新拉高(禁止)。

d.當S1_IR清除后,因為SOCKET 1中斷,對應(yīng)的IR2并不為0x00,內(nèi)部INT5信號應(yīng)該為低電平。

然而,由于INTLEVEL值為0x000F,內(nèi)部INT5信號還要持續(xù)IAWT(16 PLL_CLK)時間。

IR2 (W7100A端口中斷寄存器)[R/W][0xFE0034][0x00]

IR2寄存器用于通知主機W7100A產(chǎn)生端口中斷。當中斷產(chǎn)生后,在IR2的相關(guān)位置’1’.此時,INT5 (nINT5: TCPIP內(nèi)核中斷)引腳輸出低電平信號,直到IR2的所有位都為’0’。一旦通過Sn_IR將IR2所有位都清零,INT5就變回高電平。


上一頁 1 2 3 下一頁

評論


技術(shù)專區(qū)

關(guān)閉