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