協議解析方法、裝置及包含協議解析裝置的二層交換系統與流程
2023-05-09 07:37:31 2

本發明屬於電力系統中智能變電站通信技術領域,具體涉及一種協議解析方法、裝置及包含協議解析裝置的二層交換系統。
背景技術:
電網的高度智能化對電力通信系統提出了需求,全網信息數位化、通信平臺網絡化、信息平臺共享化是其基本特徵,大容量、快速、高安全、低成本是其發展方向。乙太網技術是目前工業控制領域較為成熟可行的技術,現在以及未來都將是電網通信的主要技術。目前電網系統中區域網如智能變電站,採用乙太網技術進行通信組網所用的網絡通信設備主要是二層網絡交換機。由於站內通常包含多種類型的數據業務報文,如MMS、GOOSE、SMV等,這些報文都有自己各自的特點,有的是突發報文、有的是定時報文、有的實時性要求高、有的是組播/廣播報文、有的流量大等等,當這些不同特點的報文在同一個網絡裡用傳統交換設備傳輸時,會帶來相互影響和幹擾,使得性能有所下降甚至不能達到預期的目的。
此時作為網絡通信節點的乙太網交換機如果具備報文解析和智能識別功能,便可根據不同類型的業務報文進行合適的控制,以滿足帶寬、實時性等方面的要求,同時也可提高通信的網絡的安全係數。
技術實現要素:
為了實現上述目的,本發明提出一種具備速度快、精度高、易實現和低成本等優點且通過硬體實現的協議解析方法、裝置及包含協議解析裝置的二層交換系統;適用於智能變電站通信系統,通過智能識別、管理網絡業務報文,有效提高網絡安全性。
本發明的目的是採用下述技術方案實現的:
一種協議解析方法,所述方法包括:
獲取經S3MII總線傳輸的業務報文信息;
封裝為數據幀,採用FPGA算法快速解析每一幀數據。
優選的,所述經S3MII總線傳輸的業務報文信息的獲取方法包括,實時監控經S3MII總線傳輸的業務報文信息,根據本地參考時鐘和處理器的控制信號按比特逐位獲取,並以字節為單位存儲。
優選的,所述封裝為數據幀包括:按字節分析幀頭,定義幀格式,獲取幀起始標誌位其後攜帶的數據欄位;
選擇指定位置的幀標誌,讀取其對應的類型欄位,通過與已知的數據類型進行比較識別業務報文類型後,放入緩存區以待確認;其中,所述已知的數據類型包括MMS、SMV和GOOSE;
根據自定義的安全優先級從緩衝區中選取待確認幀,執行CRC校驗,若校驗結果發生CRC錯誤,則將當前發生CRC錯誤的幀丟棄,通過並行總線發送信號告知處理器;否則,將CRC正確的幀封裝;
將接收到的CRC正確的幀插入幀尾後四個字節進行封裝,生成完整的數據幀,並遵循S3MII接口協議標準發送數據幀;
接收到數據幀後,根據預先的配置的目的地址將數據幀轉發到指定埠。
進一步地,所述定義幀格式具體包括;定義長度為7個字節、數值為0X55的前導碼,以及位於幀前導碼後接長度為1個字節、數值為0XD5的開始符,以7個0X55和1個0XD5的位置作為幀起始標誌位;
定義長度均為6個字節的目地址和源地址,分別表示各數據幀所到達的目的地址和源地址;
定義802.1q的欄位長度為4個字節,用於配置數據幀的安全優先級和VLAN信息;
定義長度/類型欄位長度為2個字節,用於表示該數據幀的總長度或者業務報文類型;
定義數據負荷區的長度為46-1500個字節,表示該數據幀攜帶的用戶信息。
進一步地,所述將數據幀轉發到指定埠之後還包括:以業務報文類型為依據,採用狀態機快速識別每一幀數據所攜帶的業務報文信息;
結合現場實際工況按比例分配帶寬或者設置固定帶寬,實現流量控制,對於非法業務報文信息進行攔截或丟棄處理,並將處理結果轉發到處理器,同步顯示於用戶端,提示用戶排查非法來源。
一種協議解析裝置,所述協議解析裝置包括:
獲取模塊,用於獲取經S3MII總線傳輸的業務報文信息;
封裝模塊,用於封裝為數據幀;
解析模塊,用於採用FPGA算法快速解析每一幀數據。
優選的,所述獲取模塊包括:
監控單元,用於實時監控經S3MII總線傳輸的業務報文信息,根據本地參考時鐘和處理器的控制信號按比特逐位獲取,並以字節為單位存儲;
優選的,所述封裝模塊包括:分析單元,用於按字節分析幀頭,定義幀格式,獲取幀起始標誌位其後攜帶的數據欄位;
類型識別單元,用於選擇指定位置的幀標誌,讀取其對應的類型欄位,通過與已知的數據類型進行比較識別業務報文類型後,放入緩存區以待確認;其中,所述已知的數據類型包括MMS、SMV和GOOSE;
確認單元,用於根據自定義的安全優先級從緩衝區中選取待確認幀,執行CRC校驗,若校驗結果發生CRC錯誤,則將當前發生CRC錯誤的幀丟棄,通過並行總線發送信號告知處理器;否則,將CRC正確的幀封裝;
生成單元,用於將接收到的CRC正確的幀插入幀尾後四個字節進行封裝,生成完整的數據幀,並遵循S3MII接口協議標準發送數據幀;
轉發單元,用於接收到數據幀後,根據預先的配置的目的地址將數據幀轉發到指定埠。
進一步地,所述分析單元包括:
第一處理子單元,用於定義長度為7個字節、數值為0X55的前導碼,以及位於幀前導碼後接長度為1個字節、數值為0XD5的開始符,以7個0X55和1個0XD5的位置作為幀起始標誌位;
第二處理子單元,用於定義長度均為6個字節的目地址和源地址,分別表示各數據幀所到達的目的地址和源地址;
第三處理子單元,用於定義802.1q的欄位長度為4個字節,用於配置數據幀的安全優先級和VLAN信息;
第四處理子單元,用於定義長度/類型欄位長度為2個字節,用於表示該數據幀的總長度或者業務報文類型;
第五處理子單元,用於定義數據負荷區的長度為46-1500個字節,表示該數據幀攜帶的用戶信息。
優選的,所述解析模塊包括:
信息識別單元,用於將數據幀轉發到指定埠之後以業務報文類型為依據,採用狀態機快速識別每一幀數據所攜帶的業務報文信息;
控制單元,用於結合現場實際工況按比例分配帶寬或者設置固定帶寬,實現流量控制,對於非法業務報文信息進行攔截或丟棄處理,並將處理結果轉發到處理器,同步顯示於用戶端,提示用戶排查非法來源。
一種二層交換系統,所述系統包括第一物理接口收發器、第二物理接口收發器、第一FPGA晶片、第二FPGA晶片、處理器模塊、核心交換模塊、本地時鐘模塊和供電模塊;所述第一FPGA晶片和第二FPGA晶片均包括如權利要求6-10任意一項所述的協議解析裝置;所述協議解析裝置通過並行總線與處理器模塊相連,以實現乙太網數據幀的識別、解析和封裝;
其中,所述處理器模塊用於控制整個系統,具備協議解析功能,以實現對所述系統中各部分的配置管理;所述供電模塊,用於為系統及系統下各部分提供不同等級的電壓電源;所述本地時鐘模塊分別與第一物理接口收發器、第二物理接口收發器、第一FPGA晶片、第二FPGA晶片、處理器模塊和核心交換模塊單向連接,為其提供本地參考時鐘;
設置於物理層與數據鏈路層之間的第一、第二物理接口收發器分別通過S3MII總線與設於數據鏈路層的第一、第二FPGA晶片雙向連接;所述第一FPGA晶片和第二FPGA晶片通過獨立的S3MII總線與核心交換模塊雙向連接,通過16位數據總線與處理器模塊雙向連接;所述核心交換模塊與處理器模塊之間通過PCIE總線雙向連接。
優選的,所述第一物理接口收發器和第二至物理接口收發器分別設有第一光/電埠單元和第二光/電埠單元;所述第一、第二光/電埠單元分別通過S3MII總線與其對應的第一、第二FPGA晶片雙向連接,以實現物理層和數據鏈路層之間的數據交互。
優選的,所述第一光/電埠單元和第二光/電埠單元分別包含8組順次排列的光/電埠。
優選的,所述第一、第二物理接口收發器具備數據的串並聯轉換、編碼/解碼功能,用於接收/發送網絡中的光/電物理量或者電信號,完成電信號與光/電物理量之間的相互轉換,獲取電信號中的業務報文信息。
優選的,所述本地時鐘模塊,為第一、第二物理接口收發器提供125M時鐘;為第一、第二FPGA晶片提供125M時鐘;為處理器模塊提供50M時鐘;
所述供電模塊,為第一、第二物理接口收發器提供2.5V、1.2V電源;為一、第二FPGA晶片提供1.2V、2.5、3.3V電壓;為處理器模塊提供1V、2.5V、3.3V電壓;為本地時鐘模塊提供3.3V電壓;為核心交換模塊提供2.5V、3.3V電壓。
與最接近的現有技術相比,本發明達到的有益效果是:
本發明基於FPGA的硬體算法解析、識別數據幀,運算速度快、精度高且操作簡單;可以準確快速分析業務報文類型,以實現網絡報文的智能實時監控和網絡業務流量的動態管理,有效提高了網絡的安全性的同時確保通信網絡更加穩固、流暢。本申請提出的裝置及方法適用於智能變電站通信應用,為變電站的通信網絡智能化的實現提供支撐,具有實際工程應用價值。
附圖說明
圖1為數據幀結構示意圖;
圖2為包含協議解析裝置的二層交換系統結構示意圖;
圖3為數據幀封裝和解析方法流程圖;
具體實施方式
下面結合附圖對本發明的具體實施方式做進一步的詳細說明。
1、本實施例中提供一種協議解析方法,所述方法包括:
(1)獲取經S3MII總線傳輸的業務報文信息;
經S3MII總線傳輸的業務報文信息的獲取方法包括,實時監控經S3MII總線傳輸的業務報文信息,根據本地參考時鐘和處理器的控制信號按比特逐位獲取,並以字節為單位存儲;
(2)封裝為數據幀,採用FPGA算法快速解析每一幀數據。
封裝為數據幀包括:按字節分析幀頭,定義幀格式,獲取幀起始標誌位其後攜帶的數據欄位;如圖1所示。
選擇指定位置的幀標誌,讀取其對應的類型欄位,通過與已知的數據類型進行比較識別業務報文類型後,放入緩存區以待確認;其中,所述已知的數據類型包括MMS、SMV和GOOSE;
根據自定義的安全優先級從緩衝區中選取待確認幀,執行CRC校驗,若校驗結果發生CRC錯誤,則將當前發生CRC錯誤的幀丟棄,通過並行總線發送信號告知處理器;否則,將CRC正確的幀封裝;
將接收到的CRC正確的幀插入幀尾後四個字節進行封裝,生成完整的數據幀,並遵循S3MII接口協議標準發送數據幀;
接收到數據幀後,根據預先的配置的目的地址將數據幀轉發到指定埠。
將數據幀轉發到指定埠之後還包括:以業務報文類型為依據,採用狀態機快速識別每一幀數據所攜帶的業務報文信息;
結合現場實際工況按比例分配帶寬或者設置固定帶寬,實現流量控制,對於非法業務報文信息進行攔截或丟棄處理,並將處理結果轉發到處理器,同步顯示於用戶端,提示用戶排查非法來源。
定義幀格式具體包括;定義長度為7個字節、數值為0X55的前導碼,以及位於幀前導碼後接長度為1個字節、數值為0XD5的開始符,以7個0X55和1個0XD5的位置作為幀起始標誌位;定義長度均為6個字節的目地址和源地址,分別表示各數據幀所到達的目的地址和源地址;定義802.1q的欄位長度為4個字節,用於配置數據幀的安全優先級和VLAN信息;定義長度/類型欄位長度為2個字節,用於表示該數據幀的總長度或者業務報文類型;
定義數據負荷區的長度為46-1500個字節,表示該數據幀攜帶的用戶信息。
2、本實施例中提供一種協議解析裝置,所述協議解析裝置包括:
獲取模塊,用於獲取經S3MII總線傳輸的業務報文信息;
封裝模塊,用於封裝為數據幀;
解析模塊,用於採用FPGA算法快速解析每一幀數據。
獲取模塊包括:監控單元,用於實時監控經S3MII總線傳輸的業務報文信息,根據本地參考時鐘和處理器的控制信號按比特逐位獲取,並以字節為單位存儲;
封裝模塊包括:分析單元,用於按字節分析幀頭,定義幀格式,獲取幀起始標誌位其後攜帶的數據欄位;如圖1所示。
其中,分析單元包括:第一處理子單元,用於定義長度為7個字節、數值為0X55的前導碼,以及位於幀前導碼後接長度為1個字節、數值為0XD5的開始符,以7個0X55和1個0XD5的位置作為幀起始標誌位;
第二處理子單元,用於定義長度均為6個字節的目地址和源地址,分別表示各數據幀所到達的目的地址和源地址;
第三處理子單元,用於定義802.1q的欄位長度為4個字節,用於配置數據幀的安全優先級和VLAN信息;
第四處理子單元,用於定義長度/類型欄位長度為2個字節,用於表示該數據幀的總長度或者業務報文類型;
第五處理子單元,用於定義數據負荷區的長度為46-1500個字節,表示該數據幀攜帶的用戶信息。
類型識別單元,用於選擇指定位置的幀標誌,讀取其對應的類型欄位,通過與已知的數據類型進行比較識別業務報文類型後,放入緩存區以待確認;其中,所述已知的數據類型包括MMS、SMV和GOOSE;
確認單元,用於根據自定義的安全優先級從緩衝區中選取待確認幀,執行CRC校驗,若校驗結果發生CRC錯誤,則將當前發生CRC錯誤的幀丟棄,通過並行總線發送信號告知處理器;否則,將CRC正確的幀封裝;
生成單元,用於將接收到的CRC正確的幀插入幀尾後四個字節進行封裝,生成完整的數據幀,並遵循S3MII接口協議標準發送數據幀;
轉發單元,用於接收到數據幀後,根據預先的配置的目的地址將數據幀轉發到指定埠。
解析模塊包括:信息識別單元,用於將數據幀轉發到指定埠之後以業務報文類型為依據,採用狀態機快速識別每一幀數據所攜帶的業務報文信息;
控制單元,用於結合現場實際工況按比例分配帶寬或者設置固定帶寬,實現流量控制,對於非法業務報文信息進行攔截或丟棄處理,並將處理結果轉發到處理器,同步顯示於用戶端,提示用戶排查非法來源。
3、如圖2所示,本實施例中提供一種二層交換系統,所述系統包括第一物理接口收發器、第二物理接口收發器、第一FPGA晶片、第二FPGA晶片、處理器模塊、核心交換模塊、本地時鐘模塊和供電模塊;所述第一FPGA晶片和第二FPGA晶片均包括上述的協議解析裝置;所述協議解析裝置通過並行總線與處理器模塊相連,以實現乙太網數據幀的識別、解析和封裝;
其中,所述處理器模塊用於控制整個系統,具備協議解析功能,以實現對所述系統中各部分的配置管理;所述供電模塊,用於為系統及系統下各部分提供不同等級的電壓電源;所述本地時鐘模塊分別與第一物理接口收發器、第二物理接口收發器、第一FPGA晶片、第二FPGA晶片、處理器模塊和核心交換模塊單向連接,為其提供本地參考時鐘;
設置於物理層與數據鏈路層之間的第一、第二物理接口收發器分別通過S3MII總線與設於數據鏈路層的第一、第二FPGA晶片雙向連接;所述第一FPGA晶片和第二FPGA晶片通過獨立的S3MII總線與核心交換模塊雙向連接,通過16位數據總線與處理器模塊雙向連接;所述核心交換模塊與處理器模塊之間通過PCIE總線雙向連接。
第一物理接口收發器和第二至物理接口收發器分別設有第一光/電埠單元和第二光/電埠單元;所述第一、第二光/電埠單元分別通過S3MII總線與其對應的第一、第二FPGA晶片雙向連接,以實現物理層和數據鏈路層之間的數據交互。
第一光/電埠單元和第二光/電埠單元分別包含8組順次排列的光/電埠。
第一、第二物理接口收發器具備數據的串並聯轉換、編碼/解碼功能,用於接收/發送網絡中的光/電物理量或者電信號,完成電信號與光/電物理量之間的相互轉換,獲取電信號中的業務報文信息。
本地時鐘模塊,為第一、第二物理接口收發器提供125M時鐘;為第一、第二FPGA晶片提供125M時鐘;為處理器模塊提供50M時鐘;
所述供電模塊,為第一、第二物理接口收發器提供2.5V、1.2V電源;為一、第二FPGA晶片提供1.2V、2.5、3.3V電壓;為處理器模塊提供1V、2.5V、3.3V電壓;為本地時鐘模塊提供3.3V電壓;為核心交換模塊提供2.5V、3.3V電壓。
第一、第二FPGA晶片均包括與核心交換模塊雙向連接的協議解析裝置;所述協議解析裝置通過並行總線與處理器模塊相連,以實現乙太網數據幀的識別、解析和封裝;其中,所述核心交換模塊,用於接收數據幀,根據預先的配置的目的地址將數據幀轉發到指定埠。
基於FPGA的二層交換系統的業務報文解析方法,具體在交換裝置的物理層和數據鏈路層之間加入FPGA(現場可編程陣列),以實現業務報文的傳輸和識別和網絡交換節點的智能化;如圖3所示,其方法包括:
(1)獲取經S3MII總線傳輸的業務報文信息;
經S3MII總線傳輸的業務報文信息的獲取方法包括,實時監控經S3MII總線傳輸的業務報文信息,根據本地參考時鐘和處理器模塊的控制信號按比特逐位獲取,並以字節為單位存儲。
(2)封裝為數據幀,採用FPGA算法快速解析每一幀數據。具體包括:
按字節分析幀頭,定義幀格式,獲取幀起始標誌位其後攜帶的數據欄位;
選擇指定位置的幀標誌,讀取其對應的類型欄位,通過與已知的數據類型進行比較識別業務報文類型後,放入緩存區以待確認;其中,所述已知的數據類型包括MMS、SMV和GOOSE;
根據自定義的安全優先級從緩衝區中選取待確認幀,執行CRC校驗,若校驗結果發生CRC錯誤,則將當前發生CRC錯誤的幀丟棄,通過並行總線發送信號告知處理器;否則,將CRC正確的幀封裝;
將接收到的CRC正確的幀插入幀尾後四個字節進行封裝,生成完整的數據幀,並遵循S3MII接口協議標準發送數據幀;
接收到數據幀後,根據預先的配置的目的地址將數據幀轉發到指定埠。
將數據幀轉發到指定埠之後還包括:以業務報文類型為依據,採用狀態機快速識別每一幀數據所攜帶的業務報文信息;
結合現場實際工況按比例分配帶寬或者設置固定帶寬,實現流量控制,對於非法業務報文信息進行攔截或丟棄處理,並將處理結果轉發到處理器,同步顯示於用戶端,提示用戶排查非法來源。
最後應當說明的是:以上實施例僅用以說明本申請的技術方案而非對其保護範圍的限制,儘管參照上述實施例對本申請進行了詳細的說明,所屬領域的普通技術人員應當理解:本領域技術人員閱讀本申請後依然可對申請的具體實施方式進行種種變更、修改或者等同替換,這些變更、修改或者等同替換,其均在其申請待批的權利要求範圍之內。