基于FPGA的報(bào)文數(shù)據(jù)分析模塊的設(shè)計(jì)
根據(jù)其工作原理,本文設(shè)計(jì)了報(bào)文數(shù)據(jù)分析模塊的結(jié)構(gòu),如圖3所示。
圖中網(wǎng)絡(luò)PHY芯片將網(wǎng)絡(luò)上的MAC數(shù)據(jù)幀接收下來后,按先后順序存放在數(shù)據(jù)緩沖區(qū)中,然后由FPGA實(shí)現(xiàn)數(shù)據(jù)預(yù)處理單元的工作。
數(shù)據(jù)預(yù)處理實(shí)現(xiàn)網(wǎng)絡(luò)報(bào)文的統(tǒng)計(jì)、分類、定位、分析和緩存操作,分類指的是報(bào)文屬于哪種類型,定位指的是報(bào)文由哪個(gè)網(wǎng)絡(luò)設(shè)備發(fā)送和發(fā)往哪個(gè)網(wǎng)絡(luò)設(shè)備,統(tǒng)計(jì)指的是報(bào)文所處以太網(wǎng)的流量統(tǒng)計(jì),分析指的是對特定類型的報(bào)文進(jìn)行簡單分析,緩存操作指的是經(jīng)過前述所有操作后將報(bào)文按指定格式進(jìn)行重組放置于數(shù)據(jù)緩存區(qū)。
數(shù)據(jù)緩沖區(qū)A的任務(wù)是暫存由網(wǎng)絡(luò)PHY芯片接收的MAC數(shù)據(jù)幀。當(dāng)網(wǎng)絡(luò)中的MAC數(shù)據(jù)幀被PHY芯片接收下來后,數(shù)據(jù)幀的前導(dǎo)碼和幀開始符將被PHY芯片識別并丟棄。從目的MAC地址開始,后面的所有數(shù)據(jù)將進(jìn)行重組并發(fā)送到數(shù)據(jù)緩沖區(qū)A中。此項(xiàng)工作由PHY芯片完成。
數(shù)據(jù)緩沖區(qū)A中的數(shù)據(jù)經(jīng)過FPGA的接收和分析后,必須進(jìn)行重組,按照事先約定好的數(shù)據(jù)格式存儲(chǔ)到數(shù)據(jù)緩沖區(qū)B中,以便后端的CPU準(zhǔn)確地接收到數(shù)據(jù),方便CPU進(jìn)行處理。
在FPGA接收一幀網(wǎng)絡(luò)報(bào)文并分析后,生成一個(gè)32個(gè)字節(jié)的包頭。包頭初始化時(shí),logo字段置0x58,macno字段置對應(yīng)的MAC編號,dmuno字段置DMU板編號,len字段置報(bào)文長度,type字段置‘C’,sec和nsec字段置報(bào)文的時(shí)間戳的秒和納秒,flag字段置0xFF,result字段置0x0000。包頭所有字段都由數(shù)據(jù)預(yù)處理單元負(fù)責(zé)填寫,包頭type字段表明報(bào)文所屬類型,報(bào)文類型分為A(0x40)、B(0x41)、C(0x41)三類,默認(rèn)為C類。
數(shù)據(jù)分析處理系統(tǒng)從數(shù)據(jù)緩沖區(qū)A中取出一幀加入包頭的網(wǎng)絡(luò)報(bào)文,并開始分析操作。這一過程可以使用流水線式作業(yè),啟用幾條流水線由選定的FPGA的資源來決定。
根據(jù)報(bào)文處理流程,將整個(gè)模塊分為3個(gè)功能子單元,如圖4所示。由于MAC地址是由6個(gè)字節(jié)的數(shù)據(jù)構(gòu)成,數(shù)據(jù)較長,分析起來比較困難,為了簡化CPU的分析過程,提高CPU的使用率,將6個(gè)字節(jié)的MCA地址簡化為2個(gè)字節(jié)的地址標(biāo)記,這樣就大大減輕了CPU的工作負(fù)擔(dān)。根據(jù)MAC地址不同,將其分為A、B、C三類地址:A類終端信息鏈表定義為ATMList;B類終端信息鏈表定義為BTMList;C類終端信息鏈表定義為CTMList。
fpga相關(guān)文章:fpga是什么
通信相關(guān)文章:通信原理
交換機(jī)相關(guān)文章:交換機(jī)工作原理
評論