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