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