基於流水線的數據幀發送方法、接收方法
2023-05-14 05:58:16 1
基於流水線的數據幀發送方法、接收方法
【專利摘要】本發明提供一種基於流水線的數據幀發送方法、接收方法,涉及數據幀處理領域;解決串行處理方法對數據幀處理時,時延較長,實時性差,影響通信效率的問題;其技術方案為:在發送數據時,提取需要發送的數據並將其分為幀頭段和數據段,然後以流水線方式將幀頭段和數據段按段依次進行數據加密和編碼,在接收數據時,以流水線方式將幀頭段和數據段按段依次進行解碼和數據解密。本發明引用流水線處理方式,實現了數據幀的快速處理,提高了數據幀處理實時性,滿足實際需要;將本方法與傳統方法進行比較,單在數據發送過程中,對於6個消息字的數據幀,就節省時間8.04ms。
【專利說明】基於流水線的數據幀發送方法、接收方法
【技術領域】
[0001]本發明涉及數據幀處理領域,尤其是涉及一種基於流水線的數據幀發送方法、接收方法。
【背景技術】
[0002]地空數據鏈終端設備主要用於實現指控命令的上傳、態勢信息的共享以及平臺狀態信息的共享。
[0003]中頻處理模塊是地空數據鏈終端設備重要組成部分之一,主要實現中頻信號解調、發送數據調製、實現數據鏈的物理層和鏈路層波形、實現與保密機的互聯互通。中頻數據幀處理能力及方式是衡量鏈路性能的重要指標,影響通信效率、通信質量。
[0004]現有數據幀處理方法主要採用常規串行處理方法及多晶片處理方法。串行處理方法是先將前一個數據幀處理完成後,再處理第二幀數據,此方法能夠實現數據通信,但是對於長幀數據,時延較長,實時性差,影響通信效率;多晶片處理方法,是採用多個晶片(4個DSP晶片,4個FPGA,4個加密晶片)同時進行工作,雖然提高了效率,但存在很大缺點:佔用硬體資源多,成本高,體積大,靈活性低,資源利用效率低。
【發明內容】
[0005]本發明的目的在於:針對現有技術存在的問題,提供一種基於流水線的數據幀發送方法、接收方法,解決現有採用串行處理方法對數據幀處理時,時延較長,實時性差,影響通信效率的問題;解決現有採用多個晶片對數據幀處理時,佔用硬體資源多,成本高,體積大,靈活性低,資源利用效率低的問題。
[0006]本發明的發明目的通過以下技術方案來實現:一種基於流水線的數據幀發送方法,其特徵在於,該方法包括以下步驟:
[0007](I)提取需要發送的數據並判斷是否是一個完整的數據幀,如果是則將其分為幀頭段和數據段,並以流水線方式將幀頭段和數據段按段依次進行數據加密和編碼,如果不是則進行步驟(2);
[0008](2)判斷所提取的數據是否為幀頭數據,且是否滿足幀頭段處理要求,如果是則將幀頭段進行數據加密和編碼處理,一邊處理一邊接收剩餘的數據段;
[0009](3)判斷所接收的數據是否滿足數據段處理要求,如果是,則接著幀頭段的處理,以流水線方式,將數據段按段進行數據加密和編碼處理;否則,則繼續接收數據;
[0010](4)當整幀數據全部編碼完成後,根據協議添加同步頭組幀,並將組幀後的數據流發送出去。
[0011]優選的,在步驟(I)或步驟(2)處理幀頭段數據時,提取幀頭中消息字個數位,判斷其值是否處於I到K之間,如果是,則繼續後續處理;如果否則丟掉此數據幀,處理下一數據幀。
[0012]優選的,所述數據幀由幀頭和多個消息字組成,幀頭獨立分為幀頭段,每兩個消息字組成一個數據段。
[0013]優選的,所述以流水線方式將幀頭段和數據段按段依次進行數據加密和編碼為:當對加密後的幀頭段進行編碼時,對分成的第一個數據段進行加密,當對第一個數據段進行編碼時,對第二個數據段進行加密,依次處理完整幀數據。
[0014]一種基於流水線的數據幀接收方法,其特徵在於,該方法包括以下步驟:
[0015](I)提取接收到的bit流數據,並判斷是否通過窗口法找到最大相關峰,如果是則開始接收幀頭段數據,並進行步驟(2),否則繼續查收最大相關峰;
[0016](2)判斷幀頭段數據是否全部接收,如果是則進行步驟(3),否,則繼續接收;
[0017](3)繼續接收數據段數據,同時,以流水線方式將幀頭段和數據段按段依次進行解碼和數據解密;
[0018](4)當整幀數據全部解密完成後,發送給下一級處理器。
[0019]優選的,判斷是否通過窗口法找到最大相關峰的步驟包括以下步驟:
[0020](11)設定相關峰閾值;設定窗口長度,解調的bit流從右端不斷進來,填充到窗口中,每Ibit從窗口右端進來,窗口中原來數據依次向左移動Ibit位置;
[0021](12)每更新Ibit數據,則將窗口中的數據與相關碼作與運算,得出兩組數據,然後統計每組中的比特和,I表+1,0表-1,得到兩個相關值;
[0022](13)將兩個相關值與相關峰閾值相比,如果都大於相關峰閾值,則認為已找到最大相關峰,否則繼續返回步驟(11)。
[0023]優選的,所述以流水線方式將幀頭段和數據段按段依次進行解碼和數據解密為:當對解碼後的幀頭段進行解密時,對接收到的第一個數據段進行解碼,當對第一個數據段進行解密時,對第二個數據段進行解碼,依次處理完整幀數據。
[0024]與現有技術相比,本發明引用流水線處理方式,實現了數據幀的快速處理,提高了數據幀處理實時性,滿足實際需要;將本方法與傳統方法進行比較,單在數據發送過程中,對於6個消息字的數據幀,就節省時間8.04ms。
【專利附圖】
【附圖說明】
[0025]圖1為發送過程中的流水線處理方式的示意圖;
[0026]圖2為接收過程中的流水線處理方式的示意圖;
[0027]圖3為本發明的硬體結構示意圖;
[0028]圖4為基於本發明硬體的數據幀收發通道原理圖;
[0029]圖5為本發明與現有技術的對比示意圖。
【具體實施方式】
[0030]下面結合附圖和具體實施例對本發明進行詳細說明。
[0031]實施例
[0032]通常,數據幀由幀頭(幀頭由M字節構成)和消息字(每個消息字包含N字節(N可根據實際情況規定))構成。幀頭為本幀數據控制信息,其中前3位元組包含:中繼信息位,聯通標誌位,消息字個數位,加密標誌位;後1-3個字節包含:備用位,控制位,版本號,平臺號等信息。前3個字節不送到保密機,後M-3個字需送到保密機進行加密。消息字個數為I到K(K > 1,K為最大消息字個數)個。數據幀分段遵循原則:幀頭獨立一段,稱為幀頭段;消息字部分,兩個消息字組成一段。
[0033]以下以一幀數據(6個消息字,每個消息字包含t字節)為例,闡述本發明的數據發送與接收過程。
[0034]一、基於流水線的數據幀發送方法:
[0035]I)提取數據
[0036]通過串口接收由協議處理模塊傳送的數據,從接收緩衝中提取數據進行處理。如果是一個完整的數據幀,則按照協議對數據進行分段,共4段(I個幀頭段,3個數據段),按段對數據進行處理。若當前數據幀不完整,正在接收,判斷所接收到的數據是否為幀頭數據,判斷是否滿足幀頭段處理要求,如果滿足則按段進行處理,一邊處理一邊接收剩餘的數據段;如果所接收的數據不滿足段數據處理要求,則繼續接收數據。
[0037]在處理幀頭段數據時,需要進行數據幀合理性判斷,即提取幀頭中消息字個數位,判斷其值是否處於I到K之間,如果正確,則依次對幀頭段,數據段進行處理;如果不正確(可能是串口傳輸錯誤導致),則丟掉此數據幀,處理第二幀數據。
[0038]2)數據加密
[0039]首先,幀頭段通過串口送到保密機進行加密,從保密機輸出串口接收已經加密的中貞頭段。
[0040]其次,數據段通過串口送到保密機進行加密,從保密機輸出串口接收已經加密的數據段。
[0041]加密原則:進入保密機的數據個數不變,且前後字節相互獨立。
[0042]3)分段編碼
[0043]經過加密後的幀頭段,數據段都要進行編碼處理。
[0044]對於幀頭段,接收到M個字節,即進行編碼;數據段,每接收到2t字節進行編碼,直到整幀結束。
[0045]如圖1所示,在幀頭段進行編碼的同時,對數據段I進行加密,數據段3進行加密時,數據段2進行編碼,依次處理整幀數據,以提高處理速率。
[0046]4)組幀發送
[0047]當整幀數據全部編碼完成後,根據協議添加同步頭組幀,將組幀後的數據流通過EMIF接口傳送給FPGA,FPGA進行調製,並通過DA變換處理後,形成基帶信號,送到接收機,功率放大器,最後通過天線發送。
[0048]二、基於流水線的數據幀接收方法:
[0049]ADC數據經過FPGA解調後,形成bit流,通過EMIF接口送到接收緩衝。
[0050]I)查收相關峰
[0051]首先,設定相關峰閾值THR。
[0052]其次,用窗口法計算最大相關峰
[0053]設窗口長度為126Byte,解調比特流從右端不斷進來,填充到此窗口中,每Ibit從窗口右端進來,窗口中原來數據依次向左移動Ibit位置。每更新Ibit數據,窗口中的數據都要與相關碼作與運算,得出兩組數據,每組6Byte,然後統計每組中的比特和,I表+1,O表-1,得到兩個相關值,然後將兩個相關值與相關峰閾值THR相比,都大於相關峰門限時,認為已找到最大相關峰。隨後的值為有效數據值。否則按照相同方法繼續搜索相關峰。
[0054]在實際運用過程中,有可能不止計算一次相關峰。
[0055]2)解析幀頭段數據
[0056]當找到最大相關峰之後,開始接收幀頭段數據,根據協議判斷幀頭段數據是否全部接收,如果是則進行步驟3);否,則繼續接收。
[0057]3)分段解碼
[0058]首先分段解碼幀頭段,然後依次解碼數據段。
[0059]4)數據解密
[0060]對幀頭段進行解密,然後依次解密數據段數據。
[0061]如圖2所示,當保密機在解密幀頭段數據,數據段I同時進行解碼,保密機在解密數據段2時,數據段3同時進行解碼,依次處理整幀數據。
[0062]數據解密與加密採用相同流程,它通過發送到保密模塊的命令字進行區別。
[0063]5)串口數據傳輸
[0064]將解碼出的數據通過串口傳輸給相應協議處理模塊。
[0065]為了實現前述方法,本發明提供一種硬體平臺,如圖3所示,其主要由AD,DA轉換晶片,FPGA晶片,DSP晶片,存儲晶片SDRAM,串口復用晶片TL16C754,及與之相關聯的處理器及加密模塊組成。接收過程:接收下變頻信號,完成AD採樣、解調、解幀等處理,將信息通過不同類型接口發送給下一級處理器。發送過程:從處理器接收待發數據,完成加密調製過程,經過DA變換後,產生是上變頻信號。地空數據鏈中頻數據幀處理主要由DSP完成,包括發送通道和接收通道兩個部分,如圖4所示。其中發送過程:提取待發送數據,加密處理,分段編碼,FPGA調製,中頻信號DA變換處理;接收過程:中頻信號AD變換處理,FPGA解調,分段解碼,解密處理,串口傳送數據。
[0066]將本方法與傳統方法進行比較,如圖5所示,單在數據發送過程中,對於6個消息字的數據巾貞,就節省時間8.04msο
[0067]以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,應當指出的是,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護範圍之內。
【權利要求】
1.一種基於流水線的數據幀發送方法,其特徵在於,該方法包括以下步驟: (1)提取需要發送的數據並判斷是否是一個完整的數據幀,如果是則將其分為幀頭段和數據段,並以流水線方式將幀頭段和數據段按段依次進行數據加密和編碼,如果不是則進行步驟⑵; (2)判斷所提取的數據是否為幀頭數據,且是否滿足幀頭段處理要求,如果是則將幀頭段進行數據加密和編碼處理,一邊處理一邊接收剩餘的數據段; (3)判斷所接收的數據是否滿足數據段處理要求,如果是,則接著幀頭段的處理,以流水線方式,將數據段按段進行數據加密和編碼處理;否則,則繼續接收數據; (4)當整幀數據全部編碼完成後,根據協議添加同步頭組幀,並將組幀後的數據流發送出去。
2.根據權利要求1所述的一種基於流水線的數據幀發送方法,其特徵在於,在步驟(1)或步驟(2)處理幀頭段數據時,提取幀頭中消息字個數位,判斷其值是否處於1到1(之間,如果是,則繼續後續處理;如果否則丟掉此數據幀,處理下一數據幀。
3.根據權利要求1所述的一種基於流水線的數據幀發送方法,其特徵在於,所述數據幀由幀頭和多個消息字組成,幀頭獨立分為幀頭段,每兩個消息字組成一個數據段。
4.根據權利要求1所述的一種基於流水線的數據幀發送方法,其特徵在於,所述以流水線方式將幀頭段和數據段按段依次進行數據加密和編碼為:當對加密後的幀頭段進行編碼時,對分成的第一個數據段進行加密,當對第一個數據段進行編碼時,對第二個數據段進行加密,依次處理完整幀數據。
5.一種基於流水線的數據幀接收方法,其特徵在於,該方法包括以下步驟: (1)提取接收到的流數據,並判斷是否通過窗口法找到最大相關峰,如果是則開始接收幀頭段數據,並進行步驟(2),否則繼續查收最大相關峰; (2)判斷幀頭段數據是否全部接收,如果是則進行步驟(3),否,則繼續接收; (3)繼續接收數據段數據,同時,以流水線方式將幀頭段和數據段按段依次進行解碼和數據解密; (4)當整幀數據全部解密完成後,發送給下一級處理器。
6.根據權利要求5所述的一種基於流水線的數據幀接收方法,其特徵在於,判斷是否通過窗口法找到最大相關峰的步驟包括以下步驟: (11)設定相關峰閾值;設定窗口長度,解調的6仏流從右端不斷進來,填充到窗口中,每161丨從窗口右端進來,窗口中原來數據依次向左移動161丨位置; (12)每更新化「數據,則將窗口中的數據與相關碼作與運算,得出兩組數據,然後統計每組中的比特和,1表+1,0表-1,得到兩個相關值; (13)將兩個相關值與相關峰閾值相比,如果都大於相關峰閾值,則認為已找到最大相關峰,否則繼續返回步驟(11)。
7.根據權利要求5所述的一種基於流水線的數據幀接收方法,其特徵在於,所述以流水線方式將幀頭段和數據段按段依次進行解碼和數據解密為:當對解碼後的幀頭段進行解密時,對接收到的第一個數據段進行解碼,當對第一個數據段進行解密時,對第二個數據段進行解碼,依次處理完整幀數據。
【文檔編號】H04L1/00GK104393958SQ201410707568
【公開日】2015年3月4日 申請日期:2014年11月28日 優先權日:2014年11月28日
【發明者】餘水, 李川, 蘇本磊, 曾慶紅, 楊自力 申請人:成都航天通信設備有限責任公司