《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 遙測噪聲數(shù)據(jù)無損壓縮關(guān)鍵技術(shù)實(shí)現(xiàn)
遙測噪聲數(shù)據(jù)無損壓縮關(guān)鍵技術(shù)實(shí)現(xiàn)
2014年電子技術(shù)應(yīng)用第10期
崔海波1,2,梁 庭1,2,景俊英1,2,曹翱翔1,2
1.中北大學(xué) 儀器科學(xué)與動(dòng)態(tài)測試教育部重點(diǎn)實(shí)驗(yàn)室,山西 太原030051; 2.電子測試技術(shù)重點(diǎn)實(shí)驗(yàn)室,山西 太原030051
摘要: 提出了采用DSP+FPGA架構(gòu)搭建硬件平臺(tái),通過ARC算法實(shí)現(xiàn)對多路噪聲數(shù)據(jù)無損壓縮的設(shè)計(jì)方法。對設(shè)計(jì)中關(guān)鍵技術(shù)(如模/數(shù)轉(zhuǎn)換、數(shù)據(jù)緩沖設(shè)計(jì)和DSP程序設(shè)計(jì))作了詳細(xì)的說明。
關(guān)鍵詞: ARC算法 DSP+FPGA 無損壓縮
中圖分類號: TP274
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)10-0076-03
Key technologies of telemetry noise data lossless compression
Cui Haibo1,2,Liang Ting1,2,Jing Junying1,2,Cao Aoxiang1,2
1.Key Laboratory of Instrumentation Science & Dynamic Measurement,Ministry of Education,North University of China,Taiyuan 030051,China;2.Education Science and Technology on Electronic Test & Measurement Laboratory,Taiyuan 030051,China
Abstract: A method to lossless compress multi-channel noise data is proposed by using DSP+FPGA architecture and ARC algorithm. Detailed explanations of the key technologies such as analog to digital conversion, the design of data buffer and how program run in DSP are given. Using a test platform to verify the performance of this design, the results show that the consequent of noise data compression is obviously, the reduction of noise signal is perfect. Thus it realizes lossless compression of noise data and can well meet the needs of the telemetry system.
Key words : ARC algorithm;DSP+FPGA;lossless compress

0 引言

    飛行器的工作狀態(tài)參數(shù)和環(huán)境參數(shù)主要通過無線遙測和回收遙測獲得,是評定飛行器性能和分析飛行器故障的依據(jù)[1]。隨著航天技術(shù)的發(fā)展,飛行器內(nèi)部的工作參數(shù)越發(fā)復(fù)雜,遙測數(shù)據(jù)的信息量越來越大,遙測系統(tǒng)現(xiàn)有的存儲(chǔ)能力和信道帶寬已經(jīng)很難滿足如此大數(shù)據(jù)量的存儲(chǔ)、傳輸要求??紤]到技術(shù)、成本等條件的限制,一味增加信道帶寬和存儲(chǔ)器的容量是不現(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ù)存儲(chǔ)的壓力,也降低了對信道帶寬的要求,提高了通信效率。

    遙測噪聲信號的頻率和幅度變化很大且無規(guī)則,信號的相關(guān)性差,為反映信號的完整特性,需要較高的采樣頻率,這樣就會(huì)產(chǎn)生很大的數(shù)據(jù)量。為有效地完成對噪聲信號的測量,這里采用ARC(算術(shù)編碼)算法對噪聲數(shù)據(jù)進(jìn)行無損壓縮,以DSP+FPGA為硬件平臺(tái)[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才會(huì)讀取噪聲數(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通信控制模塊會(huì)接收讀數(shù)命令并在4 KB FIFO達(dá)到半滿時(shí)按照HDLC協(xié)議的要求將壓縮數(shù)據(jù)傳輸?shù)酵獠吭O(shè)備進(jìn)行存儲(chǔ)、傳輸和分析等操作。

ck3-t1.gif

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),用于啟動(dòng)各組的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所示。

ck3-t2.gif

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的采樣率會(huì)產(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所示。

ck3-t3.gif

    噪聲數(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上電啟動(dòng)或者復(fù)位后,從 Flash中加載程序,進(jìn)入主函數(shù)main()完成外部FIFO數(shù)據(jù)讀入、啟動(dòng)ARC壓縮,讀寫SDRAM和數(shù)據(jù)輸出等工作工作。程序流程如圖4所示。

ck3-t4.gif

    當(dāng)DSP檢測到外部8 KB FIFO半滿信號后會(huì)讀取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)行編碼,這會(huì)使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ù)均勻流動(dòng)。

5 測試驗(yàn)證與分析

    采用測試系統(tǒng)對設(shè)計(jì)的噪聲壓縮裝置的性能進(jìn)行了驗(yàn)證,測試系統(tǒng)的測試臺(tái)向噪聲壓縮裝置提供4路信號來模擬噪聲傳感器的輸入,噪聲壓縮裝置對輸入信號完成壓縮后將數(shù)據(jù)回傳給測試臺(tái)并由測試臺(tái)將壓縮數(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所示。

ck3-t5.gif

ck3-t6.gif

ck3-t7.gif

ck3-t8.gif

    從測試結(jié)果可以看出,同一種信號幅值、頻率不同,它們的壓縮去除率會(huì)存在差異;幅值、頻率相同,不同種類信號的壓縮去除率也會(huì)不同。對標(biāo)準(zhǔn)信號源,該壓縮裝置的壓縮去除率接近90%。圖9為噪聲壓縮裝置對實(shí)際噪聲信號壓縮后由上位機(jī)還原得到的波形,可以看出該壓縮裝置對實(shí)際噪聲信號的壓縮去除率能達(dá)到50%以上。

ck3-t9.gif

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)峰.便攜式多通道振動(dòng)信號分析儀數(shù)采模塊設(shè)計(jì)[J].自動(dòng)化與儀表,2014(1):15-18.

[6] 康偉,路秀芬,詹哲軍.基于ADS8365的高速同步數(shù)據(jù)采集系統(tǒng)[J].電腦開發(fā)與應(yīng)用,2009,22(4):48-51.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。