本發明屬于衛星通信,具體涉及一種適用于星載協議解析設備的多源異構協議解析方法。
背景技術:
1、天地一體化網絡和路由技術的快速發展,加速了衛星與地面移動通信產業生態系統的逐步融合,針對星地融合異構網絡相關技術的研究已經成為研究熱點。同時,這也對數據傳輸提出了更高的要求,所需的通信協議種類也越來越多。星地融合通信中,星地通信協議和星間通信協議等多樣化的數據源和數據協議,導致傳統面向單一類型的協議數據解析方法無法勝任。
2、目前,主流的協議解析處理方式有三種:軟件處理、專用橋接芯片處理以及fpga(現場可編程門陣列)處理。軟件處理是使用高級語言在軟件層面編寫邏輯,將數據包上傳給cpu(中央處理器)進行數據解析。例如文獻基于vbscript的遙測數據處理技術研究[j].現代電子技術,2015,38(11):117-122.li?z?m.research?on?telemetry?data?processingtechnology?based?on?vbscript[j].modern?electronicstechnique,2015,38(11):117-122(inchinese),針對星群衛星遙測數據格式的多樣性,提出了基于vbscript腳本的遙測數據處理方式,對不同格式遙測數據進行解析。
3、文獻一種可定制的異構網絡協議解析器的設計[j].軟件工程,2021,24(10):31-36.doi:10.19644/j.cnki.issn2096-1472.2021.010.008,設計了基于xml(可擴展性標記語言)協議描述文件的協議解析器,用于異構網絡下的協議解析;
4、軟件處理協議解析的方案,執行效率低,延遲較大,且高度依賴cpu(中央處理器)的參與,從而增加了系統資源開銷。此外,軟件處理方案無法滿足衛星載荷對高速據率和實時性的要求。
5、專用橋接芯片處理是通過定制專用橋接芯片,對特定的協議進行解析。
6、其所有功能邏輯均由數字電路實現,不需要cpu(中央處理器)的參與,因此其處理效率高、吞吐量大、延遲低,但專用芯片電路無法滿足固定場景之外的協議解析需求,面對多場景下協議解析時需要橋接多片芯片電路才能實現,不滿足星上部署星載協議解析設備系統小型化的需求。
7、使用fpga(現場可編程門陣列)編寫協議解析邏輯,可借助fpga(現場可編程門陣列)具有靈活性高、并行處理能力強、可定制化編程的優點,適應多場景下靈活、高效的協議解析需求。但是,目前大多數基于fpga的協議解析方案主要集中在單一協議轉換設計上,難以應對星地融合網絡架構下多源異構數據協議的復雜解析任務。而且,多數協議解析方案僅對數據域進行簡單的搬運式解析,無法實現基于位域字段的精細解析,致使星載通信設備在處理有效數據域時,還需額外執行復雜的移位、拼接等操作,進而增加了星載設備的操作復雜性,影響了整體通信效率。
技術實現思路
1、為了克服上述現有技術存在的不足,本發明的目的在于提供一種適用于星載協議解析設備的多源異構協議解析方法,通過建立位域結構體的參數查找表,將通信協議中各信息單元的特征映射到統一的域參數表內,處理時按位域提取有效數據,并轉換成標準字節流格式,便于星載設備快速、高效的處理有效數據。此外,面對不同數據源、不同協議類型以及不同數據格式等多源異構數據,本發明的解析方法具有通用性和模塊可復用性。
2、為了實現上述目的,本發明采用的技術方案是:
3、一種適用于星載協議解析設備的多源異構協議解析方法,包括以下步驟;
4、步驟1:星載協議解析系統接收到一包數據幀后,將數據幀傳遞至數據幀預處理模塊;數據幀預處理模塊負責執行幀頭定位和幀校驗,校驗通過后,剝離封裝字段,提取有效載荷并傳輸至消息組合與提取模塊;
5、步驟2:消息組合與提取模塊解析有效載荷消息頭中的分段標志位以判斷消息的完整性;
6、若為分段消息,則根據消息序列號和段內偏移量執行數據緩存與重組;待有效載荷中的獨立消息單元即子消息重組完成后,將完整子消息數據傳輸至參數處理模塊進行解析;
7、若為非分段消息,則直接提取子消息數據,并傳遞給后續參數處理模塊;
8、步驟3:參數處理模塊解析子消息數據中的數據協議單元(pdu),并基于通信協議定義的字段結構提取參數字段,隨后,參數處理模塊通過參數序列化處理將長短不一的參數字段轉換為標準字節流格式,供星載處理設備直接調用,從而簡化設備的數據處理流程。
9、所述步驟1中,系統啟動后,對從外部接口輸入的數據流進行幀頭檢索,將接收的數據流(檢測到接收數據流中包含星地通信專用鏈路協議中規定的固定幀頭字段參數值,即找到了數據幀起始位置)與星地通信專用鏈路協議中規定的固定幀頭字段參數值進行精準比對,一旦鎖定幀頭位置,便依據幀長度字段準確接收完整的數據幀,并同步開展幀數據校驗工作;對于校驗無誤、正確接收的數據幀,系統會執行去除幀頭、幀尾的處理步驟,僅提取并傳遞有效載荷數據至消息組合與提取模塊,以確保數據的準確傳輸與高效處理。
10、所述步驟2中,解析有效載荷中的消息頭時,檢測分段標志位的狀態,當分段標志位為高電平時,當前消息屬于分段消息,此時,消息組合與提取模塊將執行以下緩存管理策略:
11、步驟(1)、序列號匹配判定:若當前消息的序列號與現有緩存消息序列號隊列匹配,則根據消息頭中攜帶的段內偏移量參數,將當前有效載荷數據寫入對應緩存區的指定位置,并與既有緩存的有效載荷數據完成拼接;
12、若當前消息的序列號不存在于現有緩存隊列中,則更新緩存消息序列號隊列,并將當前有效載荷數據寫入新的緩存單元;
13、步驟(2)、完整性校驗機制:每次接收分段消息后,更新對應緩存單元的分段計數器,當已接收分段消息數量達到消息頭中聲明的總分段數時,表示全部分段消息已接收完整,隨后,將完整子消息數據從緩存區移出,并傳遞至參數處理模塊進行后續解析。
14、當分段標志位為低電平時,表明當前消息不屬于分段消息,此時,消息組合與提取模塊將直接從有效載荷中提取子消息數據,并將其傳遞至參數處理模塊進行后續解析。
15、所述步驟3具體為:
16、通過預先配置好的參數查找表,對通信幀中的協議數據單元(pdu)進行按位域解析處理,并將提取后長短不一的參數字段,經過參數序列化處理后轉換為標準字節流序列;
17、其中,域參數查找表內描述的是消息協議中各位域結構體的相關參數信息。
18、所述參數處理模塊負責對子消息(數據幀的有效載荷中包含的獨立消息單元)中的數據單元進行精準解析,參數處理模塊依據通信協議規范中定義的完整數據域格式,對子消息體中的各數據單元進行解析,提取參數字段,并將其轉換為標準字節流格式。
19、所述參數處理模塊包括數據緩存ram、參數字節序列緩存ram、序列化處理以及域參數查找表;
20、數據緩存ram用于暫存消息組合與提取模塊傳輸的子消息數據;
21、參數字節序列緩存ram用于存儲經參數解析和序列化處理后的數據,對處理后的數據進行緩存,便于數據輸出時進行數據位寬轉換以及跨時鐘處理;
22、域參數查找表存儲了預定義的通信協議映射關系,包括消息類型、子消息id、域參數名稱及其靜態長度等關鍵信息。
23、序列化處理通過對長短不一的參數字段進行重新整理,將這些字段轉換為標準字節流格式,以滿足星載處理設備的傳輸和處理要求。該處理機制具有以下優勢:首先,通過數據拼接和字節對齊操作,確保數據格式符合星載處理設備的接口規范,提升數據處理效率;其次,統一的序列化格式保證了參數處理模塊內部數據格式的一致性,有利于模塊的標準化設計和功能復用。在參數處理模塊內,域參數查找表、數據緩存ram、參數字節序列緩存ram以及序列化處理均是獨立的處理邏輯(可以理解為子模塊);在參數處理模塊進行數據解析時,會調用域參數查找表中的函數,以獲取數據解析過程中所需的信息,包括參數序列的有效長度以及參數字段相對于消息頭起始位置的字節偏移。
24、當參數處理模塊檢測到數據輸入時,首先持續從數據緩存ram中讀取單個緩存單元的數據;
25、接著,動態調用域參數查找表中通信協議格式定義的映射關系,進行數據解析;
26、最后,將解析完成的數據存入參數字節序列緩存ram。整個數據處理過程中,數據的存儲均遵循大端序的方式。
27、一種適用于星載協議解析設備的多源異構協議解析系統,包括數據幀預處理模塊、消息組合與提取模塊、參數處理模塊;
28、所述數據幀預處理模塊用于幀頭定位、數據幀完整性校驗以及有效載荷提??;
29、所述消息組合與提取模塊用于分段消息的檢測、數據緩存以及子消息組合;
30、所述參數處理模塊用于協議數據單元(pdu)的按位域解析、參數序列化處理。
31、一條子消息數據由多個協議數據單元組成,或單個協議數據單元對應一條子消息;
32、子消息數據通過協議數據單元的解析,被拆分為多個參數字段。參數字段是子消息數據中業務邏輯的最終承載單元,其含義由通信協議明確指定。
33、本發明的有益效果:
34、本發明圍繞著衛星星地通信專用鏈路協議的解析場景,提出了一種基于fpga的多源異構協議解析方法,適用于星載協議解析設備。
35、本發明通過預先建立的參數查找表,將通信協議中各信息單元的特征映射到統一的參數表內,從而在參數處理的序列化過程中采用統一的處理邏輯,降低了系統復雜度。
36、本發明具備良好的可擴展性,當業務量增長或出現新的協議和消息格式時,只需對域查找表進行更新和擴展,而無需對整個處理架構進行大規模的修改,極大地降低了系統維護和升級的成本,提升了數據處理的高效性和靈活性。
37、本發明為星載數據解析器的研究,提供了一種高效、靈活、可擴展的解決方案,具有較高的實用價值和廣泛的應用前景。