W7100A單片機(jī)的MACRAW模式及簡(jiǎn)單的ARP應(yīng)用
在第一章簡(jiǎn)單介紹下MACRAW模式,第二章介紹MACRAW SOCKET,第三章則是ARP(地址解析協(xié)議)。希望對(duì)大家有所幫助。
1. 簡(jiǎn)介
MACRAW是一個(gè)低于IP層的以太網(wǎng)MAC通信,它能夠靈活使用目的主機(jī)的上層協(xié)議。圖1顯示了通過(guò)協(xié)議棧的數(shù)據(jù)封裝形式。W7100A是全硬件的TCP/IP協(xié)議棧芯片,它不僅包括OSI的4層,還包括4層之外的應(yīng)用層。因此,W7100A能夠簡(jiǎn)單且穩(wěn)定地應(yīng)用于嵌入式互聯(lián)網(wǎng)中。如果在鏈路層需要進(jìn)行數(shù)據(jù)處理,可以使用MACRAW模式下的軟件TCP/IP協(xié)議來(lái)完成。
MACRAW模式支持鏈路層的地址解析協(xié)議(ARP)。在W7100A中,ARP請(qǐng)求和回復(fù)都已經(jīng)通過(guò)硬件邏輯進(jìn)行了處理。盡管如此,它仍然可以在MACRAW模式下打開(kāi)SOCKET0 (第0個(gè) socket)(MACRAW模式下只能使用SOCKET0)。利用該SOCKET0,用戶便能夠處理軟件TCP/IP協(xié)議棧指定的協(xié)議,例如ARP等。本文主要介紹W7100A單片機(jī)的MACRAW模式以及簡(jiǎn)單的ARP應(yīng)用。
<圖1>通過(guò)協(xié)議棧的數(shù)據(jù)封裝形式
2. MACRAW SOCKET
MACRAW模式下的通信只支持SOCKET0,但是此時(shí)SOCKET1~7也能同時(shí)工作于硬件TCP/IP協(xié)議棧下。SOCKET0作為NIC(網(wǎng)絡(luò)接口控制器)使用,這樣便可實(shí)現(xiàn)軟件TCP/IP協(xié)議棧。這就是W7100A單片機(jī)的混合TCP/IP協(xié)議棧:支持硬件TCP/IP和軟件TCP/IP協(xié)議棧。對(duì)于普通的數(shù)據(jù)傳輸,軟件TCP/IP能夠通過(guò)MACRAW模式進(jìn)行處理。MACRAW模式下的SOCKET0能夠處理除了SOCKET1~7需要使用的協(xié)議之外的其它所有協(xié)議。由于MACRAW是處理純以太網(wǎng)數(shù)據(jù)包的通信方法,這就要求工程師具備軟件TCP/IP協(xié)議棧的知識(shí)背景。
圖2顯示了MACRAW的數(shù)據(jù)格式。MACRAW數(shù)據(jù)由兩個(gè)字節(jié)的PACKET-INF0以及數(shù)據(jù)包組成。PACKET-INFO包含數(shù)據(jù)包的字節(jié)大小,而數(shù)據(jù)包又包括6字節(jié)的目的MAC地址、6字節(jié)的源MAC地址、2字節(jié)的類型(Type)以及46~1500字節(jié)的有效載荷(payload)。其中有效載荷(payload)具有和ARP或者IP相似的互聯(lián)網(wǎng)協(xié)議。
具體的詳細(xì)信息,請(qǐng)參考:
http://www.iana.org/assignments/ethernet-numbers.
<圖2>MACRAW的數(shù)據(jù)格式
評(píng)論