文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)10-0076-03
0 引言
飛行器的工作狀態(tài)參數(shù)和環(huán)境參數(shù)主要通過無線遙測和回收遙測獲得,是評定飛行器性能和分析飛行器故障的依據(jù)[1]。隨著航天技術(shù)的發(fā)展,飛行器內(nèi)部的工作參數(shù)越發(fā)復(fù)雜,遙測數(shù)據(jù)的信息量越來越大,遙測系統(tǒng)現(xiàn)有的存儲能力和信道帶寬已經(jīng)很難滿足如此大數(shù)據(jù)量的存儲、傳輸要求??紤]到技術(shù)、成本等條件的限制,一味增加信道帶寬和存儲器的容量是不現(xiàn)實(shí)的。目前,數(shù)據(jù)壓縮技術(shù)被廣泛應(yīng)用于遙測系統(tǒng)[2]。根據(jù)遙測數(shù)據(jù)的特點(diǎn),采用合適的算法對大數(shù)據(jù)量的遙測數(shù)據(jù)進(jìn)行編碼壓縮,不僅減輕了遙測系統(tǒng)數(shù)據(jù)存儲的壓力,也降低了對信道帶寬的要求,提高了通信效率。
遙測噪聲信號的頻率和幅度變化很大且無規(guī)則,信號的相關(guān)性差,為反映信號的完整特性,需要較高的采樣頻率,這樣就會產(chǎn)生很大的數(shù)據(jù)量。為有效地完成對噪聲信號的測量,這里采用ARC(算術(shù)編碼)算法對噪聲數(shù)據(jù)進(jìn)行無損壓縮,以DSP+FPGA為硬件平臺[3],充分利用FPGA高速、并行的特性和DSP在算法實(shí)現(xiàn)上的優(yōu)勢,很好地實(shí)現(xiàn)了對遙測噪聲數(shù)據(jù)的實(shí)時(shí)、無損壓縮。
1 系統(tǒng)設(shè)計(jì)
系統(tǒng)整體設(shè)計(jì)框圖如圖1所示,由噪聲傳感器采集的噪聲信號經(jīng)調(diào)理電路濾波、放大后,進(jìn)行A/D轉(zhuǎn)換得到量化噪聲數(shù)據(jù);FPGA將噪聲數(shù)據(jù)寫入內(nèi)部8 KB FIFO,直到FIFO達(dá)到半滿[4],DSP才會讀取噪聲數(shù)據(jù)進(jìn)行算術(shù)編碼;編碼壓縮后的噪聲數(shù)據(jù)先是被DSP緩存至SDRAM,然后通過McBSP串口發(fā)送到FPGA,F(xiàn)PGA通過內(nèi)建的4 KB FIFO對接收的壓縮數(shù)據(jù)進(jìn)行緩沖;422通信控制模塊會接收讀數(shù)命令并在4 KB FIFO達(dá)到半滿時(shí)按照HDLC協(xié)議的要求將壓縮數(shù)據(jù)傳輸?shù)酵獠吭O(shè)備進(jìn)行存儲、傳輸和分析等操作。
2 數(shù)模轉(zhuǎn)換電路設(shè)計(jì)
噪聲信號的模數(shù)轉(zhuǎn)換采用TI公司的ADS8365芯片實(shí)現(xiàn)。它是16位6通道并行A/D,最高采樣率可達(dá)250 kS/s,完全滿足對4路噪聲信號進(jìn)行27 kHz采樣的要求。
ADS8365的6個(gè)模擬輸入通道可分為3組,分別為A、B和C組[5]。每組都有一個(gè)保持信號(分別為HOLDA、HOLDB和HOLDC),用于啟動各組的A/D轉(zhuǎn)換。6個(gè)通道可以進(jìn)行同步并行采樣和轉(zhuǎn)換。當(dāng)ADS8365的HOLDX保持20 ns的低電平后開始轉(zhuǎn)換。當(dāng)轉(zhuǎn)換結(jié)果被存入輸出寄存器后,引腳EOC的輸出將保持半個(gè)時(shí)鐘周期的低電平,以提示FPGA進(jìn)行轉(zhuǎn)換結(jié)果的接收,F(xiàn)PGA通過置RD和CS為低電平使數(shù)據(jù)通過并行輸出總線讀出。
ADS8365的數(shù)據(jù)的讀出模式有3種,分別是:直接地址讀取、FIFO讀取、循環(huán)讀取,是由地址/模式信號A0、A1和A2來選擇的[6]。本系統(tǒng)FPGA將數(shù)據(jù)讀出配置為FIFO讀取模式。A/D轉(zhuǎn)換電路如圖2所示。
3 FPGA與DSP通信設(shè)計(jì)
FPGA控制ADS8365完成對4路噪聲信號的A/D轉(zhuǎn)換,各路量化數(shù)據(jù)加入通道標(biāo)志后依次寫入FPGA內(nèi)部FIFO。當(dāng)FIFO達(dá)到半滿后,通知DSP讀取2 048 B數(shù)據(jù)進(jìn)行編碼,編碼時(shí)間最長為40 ms,平均20 ms。DSP在編碼過程中不能與FPGA進(jìn)行數(shù)據(jù)通信,F(xiàn)PGA要對由A/D產(chǎn)生的量化數(shù)據(jù)進(jìn)行緩存。按最長耗時(shí)40 ms計(jì)算,每路27 kHz的采樣率會產(chǎn)生為4.32 K個(gè)采樣點(diǎn)。采用16位FIFO,則FIFO的深度應(yīng)大于4 320,這里為增加可靠性,設(shè)計(jì)FIFO深度為8 192。
FPGA內(nèi)部FIFO由Block RAM構(gòu)建,其與DSP EMIF接口的連接如圖3所示。
噪聲數(shù)據(jù)經(jīng)DSP壓縮后可以通過并行EMIF總線傳輸至FPGA。但為降低數(shù)據(jù)傳輸誤碼率,提高系統(tǒng)穩(wěn)定性,本設(shè)計(jì)采用DSP的McBSP0串口將壓縮后的數(shù)據(jù)以串行數(shù)據(jù)流的方式傳送至FPGA。McBSP0傳輸單元的大小設(shè)置為48 bit,包括4 bit起始位、32位數(shù)據(jù)位和12 bit停止位。FPGA將串行接收的壓縮數(shù)據(jù)轉(zhuǎn)換成8 bit并行數(shù)據(jù)并將其寫入到內(nèi)部4 KB FIFO中。FPGA通過422接口與外部設(shè)備通信,在接收到讀數(shù)命令后判斷4 KB FIFO是否達(dá)到半滿。如果FIFO達(dá)到半滿,就讀取FIFO中的數(shù)據(jù),并進(jìn)行HDLC協(xié)議編碼和幀格式編碼后發(fā)送出去;否則采用填充幀技術(shù),將預(yù)先定義好的一組固定幀結(jié)構(gòu)數(shù)據(jù)發(fā)送給外部設(shè)備。
4 DSP程序設(shè)計(jì)
基于C語言的各種常見壓縮算法的開發(fā)都已很成熟,ARC算法的源程序也容易調(diào)研,算法的具體實(shí)現(xiàn)過程在此不再贅述。本設(shè)計(jì)將ARC源程序移植到DSP中實(shí)現(xiàn)算法的壓縮功能,DSP上電啟動或者復(fù)位后,從 Flash中加載程序,進(jìn)入主函數(shù)main()完成外部FIFO數(shù)據(jù)讀入、啟動ARC壓縮,讀寫SDRAM和數(shù)據(jù)輸出等工作工作。程序流程如圖4所示。
當(dāng)DSP檢測到外部8 KB FIFO半滿信號后會讀取2 048 B噪聲數(shù)據(jù)到內(nèi)部4個(gè)緩存中,由于4路噪聲信號采樣時(shí)僅相差一個(gè)采樣點(diǎn),故各路噪聲數(shù)據(jù)相差一個(gè)字節(jié)。DSP內(nèi)4路噪聲數(shù)據(jù)對應(yīng)的緩存幾乎同時(shí)達(dá)到2 048 B, DSP需要同時(shí)對4路噪聲數(shù)據(jù)進(jìn)行編碼,這會使DSP長時(shí)間處于繁忙狀態(tài)而不能進(jìn)行采樣數(shù)據(jù)的讀入和壓縮數(shù)據(jù)的輸出,容易引起FPGA內(nèi)部8 KB FIFO溢出和4 KB FIFO的讀空。如果采用中斷方式打斷壓縮進(jìn)程、讀入量化數(shù)據(jù)和輸出壓縮數(shù)據(jù),則可能造成DSP內(nèi)數(shù)據(jù)量過大,超出DSP片內(nèi)RAM容量。這里將DSP內(nèi)的4個(gè)緩存預(yù)設(shè)初值分別設(shè)為1 536 B、1 024 B、512 B和0 B,DSP每次從FPGA內(nèi)部FIFO中讀取2 048 B數(shù)據(jù),則DSP內(nèi)每個(gè)緩存增加512 B。DAP第一次讀取FIFO,第一路噪聲數(shù)據(jù)對應(yīng)的緩存達(dá)到2 048 B,進(jìn)行編碼、輸出后,該緩存數(shù)據(jù)量變?yōu)?。此時(shí),4路緩存中的字節(jié)數(shù)變?yōu)?、1 536、1 024和512。DSP第二次讀取FIFO后,第2路數(shù)據(jù)緩存達(dá)到2 048 B,完成對第二路噪聲數(shù)據(jù)的編碼、傳輸。如此循環(huán)執(zhí)行,實(shí)現(xiàn)每次只對一路噪聲數(shù)據(jù)進(jìn)行處理,保證了數(shù)據(jù)的連續(xù)均勻流動。
5 測試驗(yàn)證與分析
采用測試系統(tǒng)對設(shè)計(jì)的噪聲壓縮裝置的性能進(jìn)行了驗(yàn)證,測試系統(tǒng)的測試臺向噪聲壓縮裝置提供4路信號來模擬噪聲傳感器的輸入,噪聲壓縮裝置對輸入信號完成壓縮后將數(shù)據(jù)回傳給測試臺并由測試臺將壓縮數(shù)據(jù)上傳至上位機(jī)。上位機(jī)對壓縮數(shù)據(jù)先進(jìn)行數(shù)據(jù)結(jié)構(gòu)分析,如果數(shù)據(jù)結(jié)構(gòu)正確,就按照HDLC協(xié)議將數(shù)據(jù)解碼并去除填充數(shù)據(jù)和幀標(biāo)識。之后根據(jù)ARC算法將噪聲數(shù)據(jù)解壓還原并分離得到各路噪聲原始數(shù)據(jù),上位機(jī)對各路噪聲原始數(shù)據(jù)進(jìn)行處理,還原出各路信號的原始波形。
給噪聲無損壓縮裝置的噪聲信號輸入接口輸入信號,其中第1路為幅值2 V、頻率25 Hz的正弦波,第2路為幅值3 V、頻率25 Hz的正弦波,第3路為幅值2 V、頻率50 Hz的正弦波,第4路為幅值2 V、頻率25 Hz的矩形波。測試結(jié)果如圖5~圖8所示。
從測試結(jié)果可以看出,同一種信號幅值、頻率不同,它們的壓縮去除率會存在差異;幅值、頻率相同,不同種類信號的壓縮去除率也會不同。對標(biāo)準(zhǔn)信號源,該壓縮裝置的壓縮去除率接近90%。圖9為噪聲壓縮裝置對實(shí)際噪聲信號壓縮后由上位機(jī)還原得到的波形,可以看出該壓縮裝置對實(shí)際噪聲信號的壓縮去除率能達(dá)到50%以上。
6 結(jié)論
數(shù)據(jù)壓縮技術(shù)在遙測系統(tǒng)中對包括噪聲信號在內(nèi)的速變參數(shù)的處理已經(jīng)很常見,本文設(shè)計(jì)的系統(tǒng)以FPGA+DSP為硬件核心,其中,F(xiàn)PGA主要完成對模/數(shù)轉(zhuǎn)換和數(shù)據(jù)通信的控制,噪聲數(shù)據(jù)的編碼無損壓縮則是在DSP中實(shí)現(xiàn)的。同時(shí),采用不同信號對設(shè)計(jì)的噪聲壓縮裝置進(jìn)行了測試,得到了理想的效果。本文提出的設(shè)計(jì)思路對其他類型數(shù)據(jù)的壓縮也有一定的借鑒意義。
參考文獻(xiàn)
[1] 謝紅衛(wèi),張明.航天測控系統(tǒng)[M].長沙:國防科技大學(xué)出版社,2000.
[2] 劉文怡.遙測速變數(shù)據(jù)無損壓縮時(shí)空性能優(yōu)化設(shè)計(jì)與應(yīng)用[D].太原:中北大學(xué),2009.
[3] 冷佳鵬,劉文怡.一種遙測數(shù)據(jù)實(shí)時(shí)壓縮系統(tǒng)[J].電子技術(shù)應(yīng)用,2013,39(4):72-74.
[4] 孟楠,楊巖飛,劉文怡.遙測速變數(shù)據(jù)實(shí)時(shí)無損壓縮技術(shù)研究[J].科學(xué)技術(shù)與工程,2013,13(33):9983-9986.
[5] 張峰,趙慧昌,石現(xiàn)峰.便攜式多通道振動信號分析儀數(shù)采模塊設(shè)計(jì)[J].自動化與儀表,2014(1):15-18.
[6] 康偉,路秀芬,詹哲軍.基于ADS8365的高速同步數(shù)據(jù)采集系統(tǒng)[J].電腦開發(fā)與應(yīng)用,2009,22(4):48-51.