新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機以太網控制芯片W7100A數據手冊(三)

        單片機以太網控制芯片W7100A數據手冊(三)

        作者: 時間:2016-11-26 來源:網絡 收藏

        8.3寄存器描述

        8.3.1模式寄存器

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

        例:設置地址為”192.168.0.2”

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

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

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

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

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

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

        0xFE00170xFE0018
        0x0F0xA0

        如果對端沒有響應或響應延遲都將產生重傳。

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

        該寄存器內的數值設定可重發的次數。如果重發的次數超過設定值,將產生超時中斷(相關的端口中斷寄存器中的Sn_IR超時位(TIMEOUT)置’1’。

        在TCP通信模式,Sn_IR的TIMEOUT=’1’時,Sn_SR的狀態改變為”SOCK_CLOSED”狀態。在其它通信模式,只是Sn_IR的TIMEOUT=’1’。

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

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

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

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

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

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

        TCP數據包重復傳輸的最終超時的值計算如下:

        例:當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服務器連接時該寄存器指示通過的安全認證方法。W7100A只支持兩種安全類型:PAP和CHAP。

        認證類型
        0xC023PAP
        0xC223CHAP

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

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

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

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

        例:設置PTIMER =200

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

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

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

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

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

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

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

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

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

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

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

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

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

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


        上一頁 1 2 3 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 乐平市| 蒙城县| 寿光市| 沙河市| 逊克县| 哈尔滨市| 奎屯市| 赣榆县| 迁西县| 无锡市| 宜丰县| 湘乡市| 射阳县| 濮阳县| 平原县| 卫辉市| 桂东县| 方正县| 翁牛特旗| 新竹县| 宣威市| 溧阳市| 宣化县| 吉木萨尔县| 团风县| 西乌珠穆沁旗| 蓝山县| 彰化县| 洞头县| 金沙县| 四子王旗| 金川县| 静海县| 永康市| 新安县| 岑溪市| 马尔康县| 伊宁市| 武山县| 新河县| 徐水县|