馬文姬,韓 焱
(中北大學(xué)信息探測與處理山西省重點(diǎn)實(shí)驗(yàn)室,太原 030051)
基于巴克碼的飛行遙測系統(tǒng)采編器設(shè)計(jì)*
馬文姬,韓 焱*
(中北大學(xué)信息探測與處理山西省重點(diǎn)實(shí)驗(yàn)室,太原 030051)
針對飛行器處于黑障區(qū)時(shí)信息短時(shí)中斷,產(chǎn)生數(shù)據(jù)丟幀的問題,提出了一種基于巴克碼的多路混合編碼器設(shè)計(jì)方法,該方法采用巴克碼對采集的多路信號(hào)混合編幀,可以在接收端對數(shù)據(jù)有效分離。采用FPGA設(shè)計(jì),并用MATLAB解碼以檢測數(shù)據(jù)的具體丟幀和誤碼率情況。結(jié)果表明,該采編器對采集的多路數(shù)據(jù)信號(hào)進(jìn)行了有效編幀,達(dá)到了預(yù)期的設(shè)計(jì)要求,在信噪比為5dB時(shí)誤碼率減小了25%,且提高了數(shù)據(jù)的糾錯(cuò)能力和識(shí)別力,得到了和理論分析的一致的結(jié)果。
飛行遙測系統(tǒng);混合編幀;巴克碼;黑障區(qū);數(shù)據(jù)分離;誤碼率
在遙測應(yīng)用中,由于遙測環(huán)境復(fù)雜,各種干擾因素可造成遙測信號(hào)的短時(shí)中斷。而遙測數(shù)據(jù)的重要程度更是不言而喻[1-2],如何克服黑障區(qū)通信中斷所帶來的數(shù)據(jù)丟幀問題是飛行遙測系統(tǒng)總體技術(shù)中研究的一個(gè)熱點(diǎn)。
針對遙測系統(tǒng)在黑障區(qū)時(shí)的數(shù)據(jù)丟幀問題,胡紅軍[3]等人通過分析不同頻率電磁波對信號(hào)傳輸影響,探討航天測控中使用更高頻率來降低信號(hào)傳輸損耗,解決黑障區(qū)測控中斷難題。戴衛(wèi)兵[4]等人設(shè)計(jì)了一種基于PCM幀結(jié)構(gòu)的遙測發(fā)射系統(tǒng),把一些影響飛行安全的參數(shù)遙測到地面以實(shí)時(shí)監(jiān)測。閆鑫[5]采用了一種記憶重發(fā)技術(shù)構(gòu)成的PCM編碼器,可以實(shí)現(xiàn)多種幀結(jié)構(gòu)設(shè)汁,彌補(bǔ)了數(shù)據(jù)丟幀的現(xiàn)象,提高遙測數(shù)據(jù)的完整性。
本文基于巴克碼組極易捕獲的特性,提出了一種混合編幀的數(shù)據(jù)打包方法,設(shè)計(jì)基于FPGA的飛行遙測系統(tǒng)采編器,來有效地檢測和判斷數(shù)據(jù)丟幀情況。
巴克碼定義[6-8]如下:一個(gè)包含n個(gè)碼元的碼組{x1,x2,…,xn}中,當(dāng)1≤i≤n時(shí),每個(gè)碼元xi只可能取值為+1或-1,當(dāng)i<1或者i>n時(shí),xi為0。顯然可見,當(dāng)j=0時(shí),自相關(guān)函數(shù)
(1)
式中:j代表碼元的位移序數(shù)。若它的局部自相關(guān)函數(shù)滿足:
(2)
滿足這樣相關(guān)函數(shù)的碼組稱為巴克碼。由式(2)表明,巴克碼的R(0)=n,而在其他處的自相關(guān)函數(shù)R(j)的絕對值均不大于1。也就是說巴克碼組的自相關(guān)函數(shù)僅在R(0)處出現(xiàn)峰值,其他處的R(j)值均很小,正是由于巴克碼組具有尖銳的單峰,便于與隨機(jī)的數(shù)字信息相區(qū)別,易于識(shí)別,出現(xiàn)偽同步小等特點(diǎn),本文采用巴克碼組實(shí)現(xiàn)編碼。
此外,用巴克碼設(shè)計(jì)的函數(shù)為W(k),每位巴克碼可以代表一定長度的時(shí)域抽樣信號(hào),若對1個(gè)窄帶干擾信號(hào)時(shí)域加巴克碼變換,相當(dāng)于對其進(jìn)行擴(kuò)譜處理。如式(3),其中,X(k)為輸入信號(hào)。
X′(k)=X(k)W(k)
(3)
這樣,窄帶干擾信號(hào)的能量就被近于均勻地?cái)U(kuò)展到一定的帶寬范圍內(nèi),進(jìn)而干擾信號(hào)被近似白化,干擾信號(hào)的幅值會(huì)明顯減小,從而減少了由多路造成的頻偏以及干擾的影響。后面通過仿真進(jìn)一步討論加入巴克碼變換之后對誤碼率的作用效果。
目前尚未找到巴克碼的一般構(gòu)造方法,只搜索到表1中的幾組巴克碼。表1列出了兩種可供選擇廣義巴克碼序列,其中的碼字均采用八進(jìn)制表示。
表1 兩種可供選擇的同步巴克碼序列(八進(jìn)制)
飛行遙測系統(tǒng)采編器設(shè)計(jì)方案包括:(1)采集多路模擬信號(hào)和數(shù)字信號(hào),并將模擬信號(hào)經(jīng)A/D轉(zhuǎn)換為數(shù)字信號(hào);(2)將所有數(shù)字信號(hào)基于多組巴克碼按照一定的編碼方式編幀并輸出。其中以控制器FPGA實(shí)現(xiàn)對整個(gè)過程中的數(shù)據(jù)采集、編幀和存儲(chǔ)等控制。控制器的主要功能:①控制模擬信號(hào)的A/D轉(zhuǎn)換,并將其存入FIFO中;②接收數(shù)字信號(hào),并寫入FIFO中;③控制所有數(shù)據(jù)的編碼輸出。采編器整體設(shè)計(jì)框圖如圖1所示。
圖1 采編器設(shè)計(jì)框圖
由以上分析可知,飛行遙測系統(tǒng)采編器的設(shè)計(jì)主要分為:數(shù)據(jù)采集系統(tǒng)和巴克碼編碼系統(tǒng)。
2.1 數(shù)據(jù)采集系統(tǒng)
數(shù)據(jù)采集系統(tǒng)需要采集數(shù)據(jù)的信號(hào)有模擬信號(hào)和數(shù)字信號(hào),由于控制器FPGA直接處理的是數(shù)字信號(hào),所以數(shù)據(jù)采集模塊主要討論模擬信號(hào)的采集問題。而A/D轉(zhuǎn)換器可將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),因此,A/D轉(zhuǎn)換器是數(shù)據(jù)采集模塊的核心[9-10]。本設(shè)計(jì)中的A/D轉(zhuǎn)換器采用芯片MAX1308,其可在1.98 μs內(nèi)完成8通道的轉(zhuǎn)換,每通道吞吐率為456 ksample/s,T/H輸入帶寬為20 MHz,12位并行數(shù)據(jù)輸出。
此外,在數(shù)據(jù)采集系統(tǒng)中,當(dāng)前端A/D轉(zhuǎn)換器輸出數(shù)據(jù)的速率遠(yuǎn)大于數(shù)據(jù)總線的傳輸速率時(shí),應(yīng)該在系統(tǒng)中設(shè)置數(shù)據(jù)緩沖區(qū)暫存采集數(shù)據(jù),等待數(shù)據(jù)總線傳輸?shù)耐瓿?以避免丟失數(shù)據(jù)[11]。設(shè)計(jì)中采用的是FIFO作為緩沖。整個(gè)數(shù)據(jù)采集系統(tǒng)電路如圖2所示。
圖2 數(shù)據(jù)采集系統(tǒng)電路
2.2 數(shù)據(jù)編碼系統(tǒng)
由式(2)的分析可知,巴克碼組具有尖銳的自相關(guān)函數(shù),當(dāng)將其集中插入于數(shù)據(jù)作為幀頭時(shí),會(huì)使得接收時(shí)能夠容易地立即捕獲它。但是在編碼時(shí)碼元長度的增加會(huì)占用過多的通信資源[12]。因此設(shè)計(jì)按照需求分別選取長度為4位和16位的巴克碼組作為模擬通道幀頭,數(shù)字通道幀頭,子幀頭以及總幀頭來完成編碼。如下:
16 bit總幀頭:EB90;
16 bit子幀頭:EE16;
4 bit模擬通道幀頭:8;
4 bit數(shù)字通道幀頭:4。
數(shù)據(jù)編碼系統(tǒng)采用混合編幀的處理方法,即將所有數(shù)據(jù)按照一定的數(shù)據(jù)幀格式打包編幀,對不同種類的信號(hào)分別加上不同的幀標(biāo)志以示區(qū)別。設(shè)計(jì)中包括模擬量和數(shù)字量2種數(shù)據(jù),FPGA首先從數(shù)據(jù)采集系統(tǒng)中的2個(gè)FIFO中提取數(shù)據(jù),然后編碼處理。整個(gè)數(shù)據(jù)打包方案如表1所示。
表2 數(shù)據(jù)打包方案
3.1 采集控制程序設(shè)計(jì)
在采集系統(tǒng)中,用FPGA來控制8路12 bit A/D轉(zhuǎn)換器即MAX1308芯片的信號(hào)輸出,復(fù)位信號(hào)reset為高電平時(shí)有效,外部時(shí)鐘CLK頻率為10 MHz,在R。下降沿時(shí)開始讀取信號(hào)。使用有限狀態(tài)機(jī)來控制A/D采樣,包括12種狀態(tài)。狀態(tài)圖如圖3所示。
圖3 狀態(tài)圖
狀態(tài)圖說明:當(dāng)復(fù)位信號(hào)為低時(shí),狀態(tài)機(jī)處于初始狀態(tài)S0,數(shù)據(jù)輸出使能無效,啟動(dòng)轉(zhuǎn)換輸入CONVST為高電平,片選信號(hào)CS=1,寫信號(hào)WR=1,fifo_wr=0;當(dāng)為高電平時(shí)跳到狀態(tài)S1為通道選擇;當(dāng)CS變?yōu)榈碗娖綍r(shí),到達(dá)狀態(tài)S2準(zhǔn)備配置寄存器;當(dāng)WR為低電平,若數(shù)據(jù)輸出使能有效,到達(dá)狀態(tài)S3完成寄存器配置;當(dāng)WR跳為高電平時(shí),為等待進(jìn)入讀狀態(tài)S4;若數(shù)據(jù)輸出使能無效,清空配置寄存器進(jìn)入啟動(dòng)轉(zhuǎn)換輸入狀態(tài)S5;當(dāng)CONVST跳為低電平時(shí),為等待轉(zhuǎn)換結(jié)果S6;等到下一個(gè)CONVST跳變?yōu)楦唠娖綍r(shí)準(zhǔn)備讀取數(shù)據(jù)S7;當(dāng)最后轉(zhuǎn)換結(jié)束時(shí),開始讀取數(shù)據(jù)S8,否則為狀態(tài)S7;當(dāng)CS跳為低電平時(shí),進(jìn)入讀信號(hào)狀態(tài)S9;當(dāng)讀信號(hào)跳為0時(shí),等待讀取下一個(gè)信號(hào)S10,并且控制fifo寫使能有效;S11為靜止等待狀態(tài)。
根據(jù)信號(hào)采集系統(tǒng)的需求,FPGA控制A/D轉(zhuǎn)換器MAX1308實(shí)現(xiàn)模擬信號(hào)的采集,并將其存儲(chǔ)在FIFO中,在rd_n每一次的下降沿開始讀入數(shù)據(jù),讀取8通道的模擬信號(hào),并控制fifo_wr寫入有效。具體的狀態(tài)機(jī)采集波形如圖4所示。
圖4 狀態(tài)機(jī)采集波形
3.2 編碼控制程序設(shè)計(jì)
根據(jù)巴克碼特性以及編碼系統(tǒng)設(shè)計(jì)要求,用FPGA來實(shí)現(xiàn)編碼電路的邏輯控制,按照數(shù)據(jù)打包方案進(jìn)行統(tǒng)一編碼,其具體過程包括對16通道數(shù)據(jù)添加通道號(hào)、序列號(hào)、子幀頭、總幀頭將數(shù)據(jù)打包并存儲(chǔ)等。其編碼整體流程框圖如圖5所示。
圖5 數(shù)據(jù)編碼流程圖
根據(jù)上述數(shù)據(jù)編碼流程圖,FPGA控制編碼過程,每采集8個(gè)模擬信號(hào)和1路數(shù)字信號(hào)之后就進(jìn)行一次編碼輸出。clk為外部時(shí)鐘信號(hào),rst復(fù)位信號(hào)高電平有效,ad_din是12位的模擬量輸入,data_din是8位的數(shù)字量輸入,dout為混合編碼輸出,其中包含子幀頭,幀序列號(hào),模擬量幀頭,模擬量通道號(hào),模擬量,數(shù)字量幀頭,數(shù)字量。數(shù)據(jù)編碼波形如圖6所示。
圖6 數(shù)據(jù)編碼波形
圖6顯示的是數(shù)據(jù)編碼系統(tǒng)對采集的8通道模擬量和數(shù)字量之后完成的一次編碼,輸出樣式為:ee16-00000000-8-0001-1002-2003-3004-4005-5006-6007-7008-401符合數(shù)據(jù)編碼系統(tǒng)的數(shù)據(jù)打包要求,總位數(shù)為192 bit。
在試驗(yàn)階段,為了驗(yàn)證編碼的正確性,利用標(biāo)準(zhǔn)信號(hào)源提供8路頻率逐漸增大的正弦信號(hào):y1=A*{sin[2*pi*fn*(t)]},其中A為0.5V,fn分別為200 Hz、300 Hz、400 Hz、500 Hz、700 Hz、1 000 Hz,1 500 Hz,2 200 Hz。將此8個(gè)信號(hào)分別給模擬輸入端,用設(shè)計(jì)的采編器對其進(jìn)行采集編碼并輸出,由MATLAB對其編碼后的數(shù)據(jù)進(jìn)行回讀分析。首先讀取其編碼打包之后的部分?jǐn)?shù)據(jù),為了查看方便,主要顯示以EE16為查詢點(diǎn)部分?jǐn)?shù)據(jù),并給與標(biāo)注后,如圖7所示。
圖7 編碼結(jié)果部分?jǐn)?shù)據(jù)
由圖7可以看到,數(shù)據(jù)是以總幀頭EB90作為起始,以EE16作為子幀頭,并加以模擬幀頭和通道號(hào)完成打包的。在MATLAB中根據(jù)數(shù)據(jù)編碼系統(tǒng)所采用的巴克碼組的特性,對回讀的數(shù)據(jù)中選取4個(gè)EE16之間的數(shù)據(jù)即4幀數(shù)據(jù)求取自相關(guān)函數(shù),圖8為歸一化自相關(guān)函數(shù)。
圖8 部分歸一化自相關(guān)函數(shù)
由圖6可以看出,兩個(gè)EE16之間相隔45位16進(jìn)制數(shù),轉(zhuǎn)化為2進(jìn)制數(shù)之后為180 bit。在圖8中可以看出求取的歸一化自相關(guān)函數(shù)為偶函數(shù),只需看以0為分界線的右邊即可,在右半部分?jǐn)?shù)據(jù)中,含有4個(gè)峰值點(diǎn),這就代表出現(xiàn)4次EE16的出現(xiàn);由于選取的第1個(gè)值EE16放在數(shù)據(jù)首位,所以會(huì)出現(xiàn)R(0)為第1個(gè)峰值點(diǎn);此外,由于兩個(gè)EE16之間的數(shù)據(jù)位相差18位,所以在其歸一化自相關(guān)函數(shù)上體現(xiàn)為180次,360次,540次移位之后出現(xiàn)峰值。從以上3點(diǎn),可以確定利用巴克碼的特性,通過求取通過整個(gè)已編碼數(shù)據(jù)的自相關(guān)函數(shù)可以找到巴克碼的所在位置,這樣就可以對整個(gè)數(shù)據(jù)包有效分離。然后根據(jù)編碼時(shí)的數(shù)據(jù)打包方法,逆向解包,解出每個(gè)通道數(shù)據(jù)并繪制圖形。驗(yàn)證時(shí),由于采編器輸入的信號(hào)均是峰值為0.5 V,直流偏置為0 V的正弦波,若在一幅圖中顯示,會(huì)出現(xiàn)波形混疊。為了能夠?qū)?通道數(shù)據(jù)清晰地顯示,對解碼輸出的1通道到8的數(shù)據(jù)分別加偏置1 V、3 V、5 V、7 V、9 V、11 V、13 V、15 V。如圖9所示。
圖9 8通道正弦波測試曲線
圖10 不同信噪比條件下的誤碼率比較
將圖9波形與標(biāo)準(zhǔn)信號(hào)源的輸出對比,相互吻合,測試證明飛行遙測系統(tǒng)采編器達(dá)到了設(shè)計(jì)需求。
為了考察加入巴克碼變換之后對誤碼率的作用效果,當(dāng)系統(tǒng)存在干擾時(shí)進(jìn)行測試,如圖10,圖10顯示,相比于不加任何碼和常用的加入固定前導(dǎo)碼(0x55和0xAA)的飛行器系統(tǒng),基于巴克碼完成的采編器由于其擴(kuò)頻性能已將干擾能量擴(kuò)展到一定帶寬范圍內(nèi),在檢測時(shí)能有效抑制干擾,從而具有更好的誤碼率性能,這與理論分析的結(jié)果一致。
飛行遙測系統(tǒng)采編器針對飛行器進(jìn)入“黑障區(qū)”數(shù)據(jù)丟幀的問題,采用了可編程時(shí)序控制技術(shù),以及巴克碼編碼技術(shù),設(shè)計(jì)了數(shù)據(jù)采集系統(tǒng)與數(shù)據(jù)編碼系統(tǒng),有效地檢測和判斷數(shù)據(jù)丟幀情況,降低了誤碼率,保證測試數(shù)據(jù)的質(zhì)量,為地面數(shù)據(jù)處理帶來方便。目前,該采編器已成功應(yīng)用于某飛行器飛行試驗(yàn)中,取得了良好的效果,具有廣泛的應(yīng)用前景。
[1] 謝銘勛. 再入遙測技術(shù)[M]. 國防工業(yè)出版社,1992:1-12.
[2] 曲馨,方格平.“黑障”問題的介紹與分析[J]. 硅谷,2010(10):149,173.
[3] 胡紅軍,陳勇,陳菊. 飛行器黑障區(qū)測控技術(shù)問題探討[J]. 彈箭與制導(dǎo)學(xué)報(bào),2012(2):197-199,206.
[4] 戴衛(wèi)兵,田寶泉,朱攀. 機(jī)載遙測發(fā)射系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 中國測試,2011(2):76-79.
[5] 閆鑫. PCM記憶重發(fā)編碼器的設(shè)計(jì)[J]. 電子測試,2012(3):73-76.
[6] 李志剛. 基于瞬時(shí)自相關(guān)的信號(hào)分選方法研究[J]. 電子器件,2007,30(6):2186-2188.
[7] Abhisek Ukil. Low Autocorrelation Binary Sequences:Number Theory-Based Analysis for Minimum Energy Level,Barker Codes[J]. Digital Signal Processing,2009,202.
[8] Hyunchul Bae,Jaekwon Kim,Jinwook Burm. An SNR Improvement of Passive SAW Tags with 5-bit Barker Code Sequence[J]. International Journal of Electronics,2012,997.
[9] 紀(jì)立紅,蒙美海,邵森木,等. 基于片上系統(tǒng)的數(shù)據(jù)采集編碼器[J]. 探測與控制學(xué)報(bào),2010,32(6):30-36.
[10] 林小江,郭東文. 8路遙測信號(hào)采編器的設(shè)計(jì)與實(shí)現(xiàn)[J]. 裝備指揮技術(shù)學(xué)院學(xué)報(bào),2003(1):74-77.
[11] 張鵬飛,李鵬,沈三民,等. 一種遙測數(shù)據(jù)采編器設(shè)計(jì)[J]. 計(jì)算機(jī)測量與控制,2011(2):468-470.
[12] 袁強(qiáng),焦新泉,方煒,等. 基于FPGA的多通道遙測采編器設(shè)計(jì)[J]. 傳感器與微系統(tǒng),2015,12:97-100.
Design of Flight Telemetry System Sampling Encoder Based on the Barker Code*
MAWenji,HANYan*
(Shanxi Key Laboratory of Signal Capturing and Processing,North University of China,Taiyuan 030051,China)
To solve the problem of short-term interruption of information and data frame dropping when aircraft is in the blackout area,a design method of multi-channel encoder based on the barker code is proposed. This method adopts barker code to do the hybrid encoding frame for the collected multi-channel signal,it can do the effective separation for data on the receiving end. Designing the method by using the FPGA and detecting specific lost frames of data by using MATLAB to decode,the results show that this sampling encoder completes the effective frame process,achieves the desired design requirements,the error rate reduces 25% when SNR is 5 dB. It improves the ability of data error correction and discrimination,and enhances the robustness of flight telemetry system.
flight telemetry system;mixed frame;barker code;blackout area;data separation;error rate
項(xiàng)目來源:中北大學(xué)第十二屆研究生科技立項(xiàng)項(xiàng)目(20151240)
2016-04-08 修改日期:2016-06-22
TN919
A
1005-9490(2017)03-0636-05
C:6210J
10.3969/j.issn.1005-9490.2017.03.024