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