基于MPSoC的以太網接口設計與實現
2.1 幀格式定義
圖3所示為兩種協議的數據格式定義。以太網IP核用戶接口數據以幀格式定義數據的輸出或輸入,數據寬度為8位,幀數據長度范圍為64~1 518 Byte,在具體硬件設計中一般選擇固定數據長度傳輸,使硬件結構設計簡單。具體格式如圖3(a)所示,先輸入的數據為目的網卡的網絡地址,數據長度為6Byte。其次是6 Byte的源片網絡地址。接著為幀傳輸定義的類型或數據傳輸長度,長度占2 Byte,數據長度通常在數據幀比較短情況指定。如0010,表示后面傳輸的16個數據是有效的,傳輸多余長度的數據,以太網控制器IP核默認為無效數據。而采用類型定義來傳輸幀,在數據傳輸長度范圍內,結束控制信號以前的數據都表示為有效數據。文中選用512的固定數據傳輸長度和8 000標識的幀類型完成硬件設計。本文引用地址:http://www.104case.com/article/155185.htm
網路接口數據包格式如圖3(b)所示,數據深度定義為變長,數據寬度為34位,為多核系統實時高效的數據傳輸提供良好的協調作用。第一個數據為系統網絡協議的路由包,其后一個數據為配置信息,稱為配置包。接著為不定長度有效數據包。有效數據包發送結束后,緊接著發送一個數據結束包。
網路數據包中不同包類型的格式定義,具體描述如圖4所示,數據高2位標識不同包格式類型。當高2位為11 B時,標識為路由包,其中第28~17位表示傳輸的數據長度,第16位到第9位定義數據源傳播的網絡坐標地址,低8位定義為數據通訊的目的網絡地址,剩下數據位定義為保留位。當高2位為10B時,標識為配置包,其他位根據通信需求,設置不同配置信息。當高2位為00B時,標識為數據包,剩余位為傳輸的有效數據信息。當高2位為01B時,標識為結束包,其它位為保留位。
2.2 接口時序圖
以太網控制器IP核接口時序如圖5(a)所示。主要有3類信號:時鐘信號、控制信號和數據信號。時鐘信號為clock。而控制信號有sof_ n、eof_n、scr_rdy_n,其中sof_n表示幀傳輸開始控制信號,eof_n為幀傳輸結束控制信號,scr_rdy_n為傳輸有效控制信號,控制信號均為低電平有效。用戶端數據信號為Data。網路接口側時序圖如圖5(b)所示。信號包括ip_stb、ip_ack、ip_fail、ip_fwd、ip_cancal、ip_sus pond。它們為多核系統網絡通訊的完成握手應答傳輸機制。控制信號均為高電平有效,ip_data是數據傳輸信號。
2.3 發送模塊設計
發送模塊完成數據以太網IP核接口到網路的數據接口協議轉換,如圖2所示。該模塊包括發送讀控制器,發送數據緩存模塊和發送寫控制器。發送讀控制器完成目的地址、源地址和數據類型的數據信息截斷,把傳播的有效數據寫入發送數據緩存模塊中,設計通過一個有限狀態機結合計數器來完成功能的實現。發送數據緩存模塊用一個異步FIFO來承擔,同時完成數據8~32位的數據寬度擴展,同時完成跨時鐘域數據傳輸任務。由于該模塊數據讀入是高時鐘頻率的8位數據,數據讀出是系統時鐘頻率下的32位數據,數據的流動是由慢到快的傳遞過程,因此選用一個深度為64的FIFO單元來承擔。發送寫控制模塊通過讀取緩存模塊中的數據,配置發送數據的有效信息,完成網絡數據包格式封裝,最后傳輸至多核系統通信網絡資源接口。
2.4 接收模塊設計
接收模塊承擔網絡數據包協議到以太網IP核接口協議轉換,包含接收寫控制器、接收數據緩存模塊和接收讀控制器。接收寫控制器模塊設計,通過網絡控制信號和FIFO標識信號以及當前狀態改變狀態機的狀態跳轉。根據不同狀態產生控制信號,實現網絡包、配置包、結束包和負載信息的截取,把傳播的有效數據寫入數據緩沖模塊。數據緩存模塊把32位網絡數據轉換到8位寬的以太網控制器接口數據,同時實現數據跨時鐘域傳輸任務。該數據流動方向,速度是由快到慢的過程,結合硬件邏輯資源和任務請求的頻度,該設計選用一個深度為1 024,寬度為32的異步FIFO單元來承擔。接收讀控制器模塊通過讀取緩存FIFO中數據,配置發送數據的源和目的網卡地址及幀類型,完成以太網數據幀的封裝,傳輸至以太網IP核用戶端接口。
評論