国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種實時軟件幀的同步方法

      文檔序號:7554085閱讀:289來源:國知局
      專利名稱:一種實時軟件幀的同步方法
      技術領域
      本發(fā)明屬于衛(wèi)星遙感領域,涉及軟件幀同步格式化器,特別涉及一種高效的實時軟件幀同步方法。
      背景技術
      快視系統(tǒng)是遙感衛(wèi)星地面接收站的重要組成部分,處理流程如附圖2所示,它負責將實時接收到的衛(wèi)星基帶數(shù)據(jù)進行格式化處理,并將處理后的圖像和輔助數(shù)據(jù)進行移動窗顯示,快視系統(tǒng)不僅可以實時監(jiān)測圖像質量(參見Yang Ren-zhong, YU Gang, ZHANG Ning.AQuality Identifying Method and Implementation of Remote Sensing Satellite RawData[J], Control&Automation, 2010, 04:207-209),而且在應急模式下,快視圖像產(chǎn)品可直接被相關部門使用,大大提高了遙感衛(wèi)星影像利用的時效性(參見Yang Ren-zhong, CAIXing-wen, YANG Lei, SHI Lu.Research on Technology of Quick Look Processing ofGeneral Remote Sensing Satellite[J].Remote Sensing Application, 2009, 5:32-35)(參見 Yang Ren-zhong, ZHANG Ning, SHI Lu.Design and Implementation of RemoteSensing Satellite Raw Data Record System Software[J].Control&Automation, 2010, 26:114-116)。幀同步格式化器是快視系統(tǒng)的關鍵設備,主要負責從衛(wèi)星下傳的基帶數(shù)據(jù)流中提取幀同步字、成幀處理,并進行數(shù)據(jù)解擾。幀同步格式化器分為硬件和軟件兩種,硬件幀同步格式化器速度快、可實現(xiàn)實時處理,但是開發(fā)周期較長,成本較高(參見CHEN Yan.A Method of Implementing Frame-Synchronization Based on FPGA For High-speedCommunication [J].Ratio Engineering, 2010, Vol.40N0.5:25-39);軟件巾貞同步格式化器開發(fā)周期短、成本低、可配置性和可移植性強,但是速度較低(參見ZHU Dang-jie, YangRen-zhong.Research and Realization of a New Algorithm in Software FrameSynchronization [J].Science Technology and Engineering, 2007,16:4044-4057),是制約軟件幀同步實時處理的瓶頸。目前,KMP算法和查找表方法已應用到軟件幀同步器中,有效的提高了幀同步處理速度,但是傳統(tǒng)軟件幀同步算法仍然無法滿足快視系統(tǒng)中高碼速率數(shù)據(jù)實時處理要求。衛(wèi)星原始數(shù)據(jù)在開始和結束位置往往會出現(xiàn)無效數(shù)據(jù),主要有兩個原因:一是解調器處于失鎖狀態(tài),此時所記錄的數(shù)據(jù)就是無效數(shù)據(jù);二是由于天線在開始和結束接收數(shù)據(jù)時,仰角較低,易受到大氣干擾、遮擋或跟蹤捕捉信號差的原因,導致出現(xiàn)大量誤碼。傳統(tǒng)軟件幀同步方法在處理穩(wěn)定數(shù)據(jù)區(qū)域時,由于數(shù)據(jù)誤碼率較低,大部分搜索處于鎖定狀態(tài),處理速度較快;但是在處理不穩(wěn)定數(shù)據(jù)區(qū)時,由于數(shù)據(jù)的誤碼率很高,存在大量無效數(shù)據(jù),處理效率較低,無法滿足實時性要求。對于下行碼率較低(低于100Mbps)的傳統(tǒng)衛(wèi)星,可通過增加緩存的辦法緩解不穩(wěn)定數(shù)據(jù)區(qū)處理效率低的問題,但隨著現(xiàn)代衛(wèi)星數(shù)傳碼率的提高(如部分衛(wèi)星碼率已大于400Mbps),增加緩存的方式已經(jīng)無法滿足處理效率要求。

      發(fā)明內(nèi)容
      為了解決該問題,本發(fā)明在研究KMP算法的基礎上,提出了一種實時軟件幀的同步方法,避免了對大量連續(xù)無效數(shù)據(jù)的幀同步字檢測,大大提高了幀同步處理速度。本發(fā)明提出了一種實時軟件幀的同步方法,在進行幀同步處理時對接收到的衛(wèi)星基帶數(shù)據(jù)進行邏輯分段,搜索態(tài)時,首先采用逆向搜索的方法,通過檢測當前數(shù)據(jù)段尾部數(shù)據(jù),判斷該數(shù)據(jù)段是否包含同步字,如果尾部數(shù)據(jù)檢測到同步字,說明該數(shù)據(jù)段包含數(shù)據(jù)幀,那么再從該數(shù)據(jù)段頭部開始逐字節(jié)檢測同步字,否則直接處理下一數(shù)據(jù)段,并依次類推;校驗態(tài)和鎖定態(tài)時,將相鄰兩段數(shù)據(jù)作為連續(xù)數(shù)據(jù)進行處理。一種實時軟件幀的同步方法,包括以下步驟:步驟一:首先對任務訂單進行解析,獲取衛(wèi)星和傳感器標識、接收和發(fā)送IP與端口號任務信息,根據(jù)任務訂單讀取參數(shù)文件;
      步驟二:根據(jù)步驟一讀取的參數(shù)文件進行初始化,生成同步碼查找表、字節(jié)查找表、字節(jié)對齊查找表、PN碼解擾數(shù)組,開辟接收和發(fā)送循環(huán)緩存buffer塊;所述接收和發(fā)送循環(huán)緩存buffer塊個數(shù)為數(shù)據(jù)分組個數(shù),buffer塊大小為每組字節(jié)數(shù);步驟三:啟動數(shù)據(jù)接收、發(fā)送和處理三個線程,初始化數(shù)據(jù)接收和數(shù)據(jù)發(fā)送網(wǎng)絡端口,并將接收線程設為監(jiān)聽狀態(tài),所述數(shù)據(jù)接收線程負責接收通過網(wǎng)絡發(fā)送的衛(wèi)星原始數(shù)據(jù),將接收的數(shù)據(jù)緩存到接收buffer塊中,并通知處理線程進行處理;所述處理線程負責原始數(shù)據(jù)同步字提取、字節(jié)對齊、數(shù)據(jù)解擾,并通知發(fā)送線程進行數(shù)據(jù)發(fā)送;所述發(fā)送線程負責將處理線程幀同步處理得到的成幀數(shù)據(jù)通過網(wǎng)絡發(fā)送到外部處理單元,進行后續(xù)處理;步驟四:接收數(shù)據(jù)時,將接收到的所述的衛(wèi)星原始數(shù)據(jù)依次寫入到接收循環(huán)緩存buffer塊中,寫滿一個buffer塊后,將其狀態(tài)標識設為寫結束狀態(tài),并通知處理線程進行中貞同步處理,當寫完最后一個buffer塊時,返回第一個buffer塊繼續(xù)寫入;步驟五:處理線程開始幀同步處理,若當前buffer狀態(tài)為不含數(shù)據(jù)幀狀態(tài),對其最后幾幀長度數(shù)據(jù)逐字節(jié)與同步碼位移查找表比對,若搜索到同步碼則轉到步驟六處理,否則等待下一 buffer塊指針,繼續(xù)對其進行處理,所述同步碼位移查找表是在程序初始化時根據(jù)同步字建立的查找表,該表包括了同步字在不同比特偏移下所對應的值;步驟六:將當前buffer狀態(tài)設定為含有數(shù)據(jù)巾貞模式,從該buffer塊頭部逐字節(jié)進行同步字檢測,檢測到同步碼后,轉到步驟七;步驟七:進入校驗狀態(tài),如果當前同步字位置到該buffer塊結尾不夠兩幀長度,等待下一 buffer塊指針,并將當前buffer塊剩余數(shù)據(jù)補充到下一 buffer塊前面,組成連續(xù)數(shù)據(jù),從當前搜索到的同步字位置開始跨越一個幀長進行同步字檢測,檢驗該位置同步字是否存在位移或比特錯誤,若超出容錯范圍則校驗失敗,則轉到步驟八重新進入搜索狀態(tài),若校驗成功則將程序狀態(tài)設為鎖定態(tài),則轉到步驟九處理;步驟八:從當前同步字位置逐字節(jié)進行同步字檢測,若檢測到同步字,轉到步驟七處理,否則等待下一 buffer塊指針,轉到步驟五處理;步驟九:程序進入鎖定態(tài)時,將當前鎖定成功的一幀數(shù)據(jù)逐字節(jié)根據(jù)比特移位數(shù)在字節(jié)對齊查找表中搜索后填充對應的內(nèi)容,完成字節(jié)對齊操作,然后將對齊后的數(shù)據(jù)與預處理階段生成的解擾表進行異或,將結果填充到輸出環(huán)形buffer中,通知發(fā)送線程發(fā)送數(shù)據(jù),并轉到步驟七繼續(xù)處理,所述字節(jié)對齊查找表是在程序初始化時建立的,該表給出了比特偏移后數(shù)據(jù)、比特偏移量與原字節(jié)的對應關系,利用該表可完成字節(jié)對齊;所述比特移位數(shù)是同步字的比特偏移量;步驟十:發(fā)送線程接到發(fā)送通知后,對輸出環(huán)形buffer進行檢測,并將格式化后的數(shù)據(jù)發(fā)送到其他處理單元,如果數(shù)據(jù)接收和處理線程結束返回,格式化數(shù)據(jù)發(fā)送完畢后,幀同步程序退出。步驟一中所述的參數(shù)文件是事先存放在本地硬盤上的的文件,該文件包含待處理數(shù)據(jù)的同步字、同步字長度、幀長、數(shù)據(jù)分組個數(shù)、每組字節(jié)數(shù)以及擾碼文件路徑等處理參數(shù)。
      步驟二中所述buffer塊有四種狀態(tài),分別是正在讀、正在寫、讀完畢和寫完畢,正在讀狀態(tài)表示從當前buffer塊讀取數(shù)據(jù),正在寫狀態(tài)表示向當前buffer塊寫入數(shù)據(jù),讀完畢狀態(tài)表示從當前buffer塊讀取數(shù)據(jù)完畢,寫完畢狀態(tài)表示向當前buffer塊寫入數(shù)據(jù)完畢。本發(fā)明所提出的一種實時軟件幀同步方法的優(yōu)點在于:(I)本方法通過對高頻操作以及大量使用的相似性操作建立查找表,提高了效率,減少了時間,通過引入容錯機制,在幀同步過程中可以實現(xiàn)位容錯和滑動容錯。(2)本方法充分利用計算機對于字節(jié)處理的優(yōu)勢,對于原始數(shù)據(jù)不進行IQ比特的分離,對于IQ兩路數(shù)據(jù)直接采取合并處理的方式進行同步,避免了數(shù)據(jù)分離與合并的操作,提高了處理效率,同時也防止雙路輸出導致的IQ路數(shù)據(jù)時間同步的問題。(3)本方法通過配置文件實現(xiàn)去傳感器化,將同步頭、幀長度、擾碼文件位置等信息存放在配置文件中,只需改變該配置文件中的信息,即可兼容多衛(wèi)星多傳感器數(shù)據(jù),極大提高了該軟件的靈活性和實用性。(4)本方法將數(shù)據(jù)進行分段和逆向搜索,避免了對大量連續(xù)無效數(shù)據(jù)的同步字檢測,提聞了巾貞同步效率。


      圖1為本發(fā)明一種實時軟件幀同步方法的幀同步處理流程圖;圖2為遙感衛(wèi)星地面接收站快視系統(tǒng)流程圖;圖3為本發(fā)明一種實時軟件幀同步方法中接收和發(fā)送buffer示意圖;圖4為本發(fā)明一種實時軟件幀同步方法的網(wǎng)絡初始化流程圖;圖5為本發(fā)明一種實時軟件幀同步方法的同步字提取流程圖;圖6為本發(fā)明一種實時軟件幀同步方法的字節(jié)對齊處理流程圖;圖7為本發(fā)明一種實時軟件幀同步方法的數(shù)據(jù)解擾處理流程圖;圖8為本發(fā)明一種實時軟件幀同步方法與傳統(tǒng)幀同步處理方法對HJlA衛(wèi)星原始數(shù)據(jù)處理速度對比圖。
      具體實施例方式下面將結合附圖對本發(fā)明方法作進一步的詳細說明。
      本發(fā)明提出了一種實時軟件幀同步方法,幀同步處理的目的是從遙感衛(wèi)星下傳的基帶數(shù)據(jù)流中提取幀同步字、成幀處理,并進行數(shù)據(jù)解擾。本發(fā)明方法在進行幀同步處理時對接收到的衛(wèi)星基帶數(shù)據(jù)進行邏輯分段,搜索態(tài)時,首先通過檢測當前數(shù)據(jù)段尾部數(shù)據(jù),判斷該數(shù)據(jù)段是否包含同步字,如果尾部數(shù)據(jù)檢測到同步字,說明該數(shù)據(jù)段包含同步字,那么再從該數(shù)據(jù)段頭部開始逐字節(jié)檢測同步字,否則直接處理下一數(shù)據(jù)段,并依次類推;校驗態(tài)和鎖定態(tài)時,將相鄰兩段數(shù)據(jù)作為連續(xù)數(shù)據(jù)進行處理。本方法通過數(shù)據(jù)分組和逆向搜索處理,避免了對大量連續(xù)無效數(shù)據(jù)的幀同步字檢測,大大提高了幀同步處理速度。如附圖1所示,一種實時軟件幀同步方法,包括以下步驟:步驟一:以HJlA衛(wèi)星原始數(shù)據(jù)為例,幀同步軟件啟動后,對任務訂單進行解析,獲取衛(wèi)星標識,傳感器標識,接收和發(fā)送IP、端口號等任務信息,根據(jù)任務訂單讀取本地硬盤上的參數(shù)文件,HJlA衛(wèi)星數(shù)傳幀1、Q交織后長度為2078字節(jié),同步字長度為8字節(jié),數(shù)據(jù)分組數(shù)為100,每組大小為4M字節(jié);所述本地硬盤上的參數(shù)文件是事先存放在本地硬盤上的文件,該文件包含原始數(shù)據(jù)的同步字、同步字長度、幀長、數(shù)據(jù)分組個數(shù)、每組字節(jié)數(shù)以及擾碼文件路徑等處理參數(shù)。步驟二:根據(jù)步驟一讀取的處理參數(shù)進行初始化,生成同步碼查找表、字節(jié)查找表、字節(jié)對齊查找表、PN碼解擾數(shù)組等,開 辟接收和發(fā)送循環(huán)緩存buffer塊,所述buffer塊個數(shù)為數(shù)據(jù)分組個數(shù),buffer塊大小為數(shù)據(jù)組字節(jié)數(shù),buffer塊分組方式如圖4所示。根據(jù)本地參數(shù)文件設置,循環(huán)接收緩存單元共有100個buffer塊組成,每個buffer塊大小為4MByte,循環(huán)發(fā)送緩存單元共有100個buffer塊組成,每個buffer塊大小為128幀HJlA數(shù)傳幀長。每個buffer塊有四種狀態(tài),分別是正在讀、正在寫、讀完畢和寫完畢,正在讀狀態(tài)表示從當前buffer塊讀取數(shù)據(jù);正在寫狀態(tài)表示向當前buffer塊寫入數(shù)據(jù);讀完畢狀態(tài)表示從當前buffer塊讀取數(shù)據(jù)完畢;寫完畢狀態(tài)表示向當前buffer塊寫入數(shù)據(jù)完畢。幀同步處理時共有三種狀態(tài):搜索態(tài)、鎖定態(tài)和校驗態(tài),其中搜索態(tài)和鎖定態(tài)為幀同步處理的主要工作狀態(tài),校驗態(tài)是搜索態(tài)向鎖定態(tài)轉變的一個中間狀態(tài),用于減少同步碼的誤判。步驟三:啟動數(shù)據(jù)接收、發(fā)送和處理三個線程,初始化網(wǎng)絡端口,并將接收線程設為監(jiān)聽狀態(tài),所述數(shù)據(jù)接收線程負責接收通過網(wǎng)絡發(fā)送的衛(wèi)星原始數(shù)據(jù),將接收的數(shù)據(jù)緩存到接收buffer塊中,并通知處理線程進行處理;所述處理線程負責原始數(shù)據(jù)同步字提取、字節(jié)對齊、數(shù)據(jù)解擾,并通知發(fā)送線程進行數(shù)據(jù)發(fā)送;所述發(fā)送線程負責將處理線程幀同步處理得到的成幀數(shù)據(jù)通過網(wǎng)絡發(fā)送到外部處理單元,進行后續(xù)處理。步驟四:接收數(shù)據(jù)時,將接收到的數(shù)據(jù)依次寫入到buffer塊中,寫滿一個buffer塊后,將其狀態(tài)標識設為寫結束狀態(tài),并通知處理線程進行幀同步處理。步驟五:處理線程開始幀同步處理,若當前buffer狀態(tài)為不含數(shù)據(jù)幀狀態(tài),對其最后幾幀長度數(shù)據(jù)逐字節(jié)與同步碼位移查找表比對,若搜索到同步碼,轉到步驟6處理,否則等待下一 buffer塊指針,返回步驟5對其進行處理,同步字提取流程如附圖6所示。在同步字提取過程中,數(shù)據(jù)以buffer塊為單位進行除判,搜索態(tài)下對整buffer塊數(shù)據(jù)進行逐字節(jié)同步碼搜索會占用大量處理時間,可以僅對buffer塊最后3幀長度數(shù)據(jù)進行逐字節(jié)的同步碼搜索,若無法找到同步碼則認為當前buffer塊不存在數(shù)據(jù)幀而進行整塊的丟棄;若搜索到同步碼則對該幀從buffer塊的頭部進行逐字節(jié)的同步碼搜索。由于每傳感器傳輸?shù)臄?shù)據(jù)均大于單一 buffer塊的容量,可以認為若某一 buffer塊中含有數(shù)據(jù)幀,則該buffer塊結尾部分含有幀數(shù)據(jù)。根據(jù)抽屜原理,在m幀長度的隨機連續(xù)數(shù)據(jù)中至少包含m-Ι個完整的數(shù)據(jù)幀,對于同步頭長度為n bit,信道誤碼率為P (假設每bit誤碼概率相互獨立)的情況下,該數(shù)據(jù)段包含的m-Ι個幀同步頭中均存在錯誤,即可以被程序誤判的概率Pmis為[1-(1-P)T1,由于O < P < I,Pmis正比于η,取典型值η = 64,p = lX10_5,m = 4可以計算得Pmis最大值的數(shù)量級為I ΧΙΟ,。步驟六:將當前buffer狀態(tài)設定為含有數(shù) 據(jù)巾貞模式,從該buffer塊頭部逐字節(jié)進行搜索,搜索到同步碼后,轉到步驟7 ;步驟七:程序進入校驗狀態(tài),如果當前同步頭位置到該buffer塊結尾不夠兩幀長度,等待下一 buffer塊指針,并將剩余數(shù)據(jù)補充到將該buffer塊前面,組成連續(xù)數(shù)據(jù)。從當前搜索到的同步頭位置開始跨越一個幀長進行搜索,檢測該位置同步碼是否存在位移或bit錯誤,若超出容錯范圍則校驗失敗,轉到步驟8重新進入搜索狀態(tài),若校驗成功則設定為鎖定態(tài),轉到步驟9處理。步驟八:從當前同步頭位置逐字節(jié)進行搜索,若檢測到同步字,轉到步驟7處理,否則等待下一 buffer塊指針,轉到步驟5處理;步驟九:程序進入鎖定狀態(tài)時,將當前鎖定成功的一幀數(shù)據(jù)逐字節(jié)根據(jù)搜索到的bit移位數(shù)在字節(jié)對齊查找表中搜索后填充對應的內(nèi)容,完成字節(jié)對齊操作,然后將對齊后的數(shù)據(jù)與預處理階段生成的解擾表進行異或,將結果填充到輸出環(huán)形buffer中,通知發(fā)送線程發(fā)送數(shù)據(jù),并轉到步驟7繼續(xù)處理。字節(jié)對齊處理主要利用同步碼提取處理標識出的同步碼及其偏移量對數(shù)據(jù)進行bit移位,實現(xiàn)數(shù)據(jù)幀的“字對齊”,該操作利用查表的方式進行,處理后的數(shù)據(jù)為已經(jīng)成幀的數(shù)據(jù),字節(jié)對齊處理流程如附圖6所示。由于同步碼提取模塊按照字節(jié)單方向位移進行搜索,因此進行字節(jié)對齊時進行的位移,每字節(jié)只需考慮當前字節(jié)和下一字節(jié)的內(nèi)容,共有28X 28即216種情況,每字節(jié)移位情況共有8即23種情況,因此建立一個8X65536的位移查找表就可以滿足字節(jié)對齊的搜索要求,該表占用內(nèi)存約512KB,每字節(jié)進行對齊處理的時間復雜度為0(1)。數(shù)據(jù)解擾處理主要完成幀數(shù)據(jù)的恢復,利用擾碼序列與加擾的數(shù)據(jù)進行處理,實現(xiàn)數(shù)據(jù)的解擾,數(shù)據(jù)解擾處理流程如附圖7所示。初始化階段主要完成擾碼序列的獲取,進行處理時只需要將幀數(shù)據(jù)同擾碼緩存逐塊進行異或即可完成解擾過程。為了便于擴充功能,擾碼序列為預先存儲在本地硬盤中的以pn為擴展名的文件,該文件通過專門的外部程序事先生成,內(nèi)容為從幀頭開始到開始進行解擾的位之前均以O填充,從開始解擾的位開始填充生成的擾碼序列。生成擾碼序列時需要提供符合業(yè)內(nèi)標準的擾碼生成多項式(二進制形式)、擾碼生成多項式長度、頭部長度、擾碼周期長度、加擾長度、幀長度、結尾需要填充額外內(nèi)容的位數(shù)和填充內(nèi)容(O或I)。生成的算法為:程序先生成頭部長度位數(shù)個0,然后采用按位與和位段結合的方式獲得擾碼序列,如對于某10位起始1111111111的擾碼初態(tài),生成規(guī)則為(從左側起)第1、3、7位進行異或得到結果填充到改式子的左側,那么處理流程為:首先將該數(shù)據(jù)擴充為16位,即0000001111111111,該數(shù)據(jù)段位從右側起至左側為bo到bl5,每位段為I位,處理時,數(shù)據(jù)同0000001010001000進行按位與得到結果0000001010001000,通過段位將結果所有位進行異或操作得到1,然后將數(shù)據(jù)的bio置I,將bo輸出,然后將整個數(shù)據(jù)右移I位重復上面操作,直到得到整個擾碼序列,再根據(jù)參數(shù)填充對應長度的O或I,最后填充O補滿一個幀長,并將結果存儲到以衛(wèi)星標識、傳感器標識組成文件名的Pn文件中。幀同步軟件運行時,數(shù)據(jù)解擾處理在預處理階段根據(jù)參數(shù)讀入PN碼序列到一個包含一幀長度的64bit整數(shù)倍的PN碼緩存中,進行處理時,(在64位平臺上)以每64bit為一個單位進行異或操作得到解擾后數(shù)據(jù)。步驟十:發(fā)送線程接到發(fā)送通知后,對輸出環(huán)形buffer進行檢測,并將格式化后數(shù)據(jù)發(fā)送到其他處理單元,如果數(shù)據(jù)接收和處理線程結束返回,格式化數(shù)據(jù)發(fā)送完畢后,幀同步程序退出。以Visual Studio2008 為開發(fā)環(huán)境,在計算機平臺(Xeon CPU X567002.93GHz36GBRAM)上對本發(fā)明算法進行了仿真測試,測試數(shù)據(jù)選取HJlA真實衛(wèi)星數(shù)據(jù),大小為766MB,數(shù)傳幀長為2078字節(jié),同步字8字節(jié)。測試方案如下:(I)在同步字偏移O比特和7比特兩種情況下,利用本軟件分別對幀頭數(shù)據(jù)無誤碼、錯3bit、多3bit以及少3bit數(shù)據(jù)進行幀同步處理,以檢驗 本算法位容錯
      及抗滑幀能力,測試結果如表I所示。
      權利要求
      1.一種實時軟件幀的同步方法,其特征在于,包括以下步驟: 步驟一:首先對任務訂單進行解析,獲取衛(wèi)星和傳感器標識、接收和發(fā)送IP與端口號任務信息,根據(jù)任務訂單讀取參數(shù)文件; 步驟二:根據(jù)步驟一讀取的參數(shù)文件進行初始化,生成同步碼查找表、字節(jié)查找表、字節(jié)對齊查找表、PN碼解擾數(shù)組,開辟接收和發(fā)送循環(huán)緩存buffer塊;所述接收和發(fā)送循環(huán)緩存buffer塊個數(shù)為數(shù)據(jù)分組個數(shù),buffer塊大小為每組字節(jié)數(shù); 步驟三:啟動數(shù)據(jù)接收、發(fā)送和處理三個線程,初始化數(shù)據(jù)接收和數(shù)據(jù)發(fā)送網(wǎng)絡端口,并將接收線程設為監(jiān)聽狀態(tài),所述數(shù)據(jù)接收線程負責接收通過網(wǎng)絡發(fā)送的衛(wèi)星原始數(shù)據(jù),將接收的數(shù)據(jù)緩存到接收buffer塊中,并通知處理線程進行處理;所述處理線程負責原始數(shù)據(jù)同步字提取、字節(jié)對齊、數(shù)據(jù)解擾,并通知發(fā)送線程進行數(shù)據(jù)發(fā)送;所述發(fā)送線程負責將處理線程幀同步處理得到的成幀數(shù)據(jù)通過網(wǎng)絡發(fā)送到外部處理單元,進行后續(xù)處理;步驟四:接收數(shù)據(jù)時,將接收到的所述的衛(wèi)星原始數(shù)據(jù)依次寫入到接收循環(huán)緩存buffer塊中,寫滿一個buffer塊后,將其狀態(tài)標識設為寫結束狀態(tài),并通知處理線程進行中貞同步處理,當寫完最后一個buffer塊時,返回第一個buffer塊繼續(xù)寫入; 步驟五:處理線程開始幀同步處理,若當前buffer狀態(tài)為不含數(shù)據(jù)幀狀態(tài),對其最后幾幀長度數(shù)據(jù)逐字節(jié)與同步碼位移查找表比對,若搜索到同步碼則轉到步驟六處理,否則等待下一 buffer塊指針,繼續(xù)對其進行處理,所述同步碼位移查找表是在程序初始化時根據(jù)同步字建立的查找表,該表包括了同步字在不同比特偏移下所對應的值; 步驟六:將當前buffer狀態(tài)設定為含有數(shù)據(jù)幀模式,從該buffer塊頭部逐字節(jié)進行同步字檢測,檢測到同步碼后,轉到步驟七; 步驟七:進入校驗狀態(tài),如果當前同步字位置到該buffer塊結尾不夠兩幀長度,等待下一 buffer塊指針,并將當前buffer塊剩余數(shù)據(jù)補充到下一 buffer塊前面,組成連續(xù)數(shù)據(jù),從當前搜索到的同步字位置開始跨越一個幀長進行同步字檢測,檢驗該位置同步字是否存在位移或比特錯誤,若超出容錯范圍則校驗失敗,則轉到步驟八重新進入搜索狀態(tài),若校驗成功則將程序狀態(tài)設為鎖定態(tài),則轉到步驟九處理; 步驟八:從當前同步字位置逐字節(jié)進行同步字檢測,若檢測到同步字,轉到步驟七處理,否則等待下一 buffer塊指針,轉到步驟五處理; 步驟九:程序進入鎖定態(tài)時,將當前鎖定成功的一幀數(shù)據(jù)逐字節(jié)根據(jù)比特移位數(shù)在字節(jié)對齊查找表中搜索后填充對應的內(nèi)容,完成字節(jié)對齊操作,然后將對齊后的數(shù)據(jù)與預處理階段生成的解擾表進行異或,將結果填充到輸出環(huán)形buffer中,通知發(fā)送線程發(fā)送數(shù)據(jù),并轉到步驟七繼續(xù)處理,所述字節(jié)對齊查找表是在程序初始化時建立的,該表給出了比特偏移后數(shù)據(jù)、比特偏移量與原字節(jié)的對應關系,利用該表可完成字節(jié)對齊;所述比特移位數(shù)是同步字的比特偏移量; 步驟十:發(fā)送線程接到發(fā)送通知后,對輸出環(huán)形buffer進行檢測,并將格式化后的數(shù)據(jù)發(fā)送到其他處理單元,如果數(shù)據(jù)接收和處理線程結束返回,格式化數(shù)據(jù)發(fā)送完畢后,幀同步程序退出。
      2.如權利要求1所述的一種實時軟件幀的同步方法,其特征在于,步驟一中所述的參數(shù)文件是事先存放在本地硬盤上的的文件,該文件包含待處理數(shù)據(jù)的同步字、同步字長度、幀長、數(shù)據(jù)分組個數(shù)、每組字節(jié)數(shù)以及擾碼文件路徑等處理參數(shù)。
      3.如權利要求1或2所述的一種實時軟件幀的同步方法,其特征在于,步驟二中所述buffer塊有四種狀態(tài),分別是正在讀、正在寫、讀完畢和寫完畢,正在讀狀態(tài)表示從當前buffer塊讀取數(shù)據(jù),正在寫狀態(tài)表示向當前buffer塊寫入數(shù)據(jù),讀完畢狀態(tài)表示從當前buffer塊讀取數(shù)據(jù)完畢, 寫完畢狀態(tài)表示向當前buffer塊寫入數(shù)據(jù)完畢。
      全文摘要
      本發(fā)明提出了一種實時軟件幀的同步方法,避免了對大量連續(xù)無效數(shù)據(jù)的幀同步字檢測,大大提高了幀同步處理速度。本發(fā)明在進行幀同步處理時對接收到的衛(wèi)星基帶數(shù)據(jù)進行邏輯分段,搜索態(tài)時,首先采用逆向搜索的方法,通過檢測當前數(shù)據(jù)段尾部數(shù)據(jù),判斷該數(shù)據(jù)段是否包含同步字,如果尾部數(shù)據(jù)檢測到同步字,說明該數(shù)據(jù)段包含數(shù)據(jù)幀,那么再從該數(shù)據(jù)段頭部開始逐字節(jié)檢測同步字,否則直接處理下一數(shù)據(jù)段,并依次類推;校驗態(tài)和鎖定態(tài)時,將相鄰兩段數(shù)據(jù)作為連續(xù)數(shù)據(jù)進行處理。
      文檔編號H04L27/26GK103227660SQ20131009877
      公開日2013年7月31日 申請日期2013年3月26日 優(yōu)先權日2013年3月26日
      發(fā)明者侯仰拴, 石濤, 胡玉新, 高辰陽 申請人:中國科學院電子學研究所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1