《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于ARC算法的數(shù)據(jù)壓縮技術(shù)和實(shí)現(xiàn)
基于ARC算法的數(shù)據(jù)壓縮技術(shù)和實(shí)現(xiàn)
來(lái)源:電子技術(shù)應(yīng)用2013年第8期
凌 偉1,2, 張會(huì)新1,2
1. 電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室(中北大學(xué)),山西 太原030051; 2. 儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,山西 太原030051
摘要: 針對(duì)無(wú)損壓縮技術(shù)在航天遙測(cè)系統(tǒng)中的應(yīng)用情況,提出了基于現(xiàn)場(chǎng)可編程門陣列(FPGA)和數(shù)字信號(hào)處理器(DSP)硬件結(jié)構(gòu)的遙測(cè)噪聲數(shù)據(jù)實(shí)時(shí)無(wú)損壓縮系統(tǒng)的方案。結(jié)合Shannon信息論中信息熵的概念,研究了數(shù)據(jù)壓縮的本質(zhì)和算法評(píng)估標(biāo)準(zhǔn)。通過(guò)PC仿真試驗(yàn)對(duì)多種算法的壓縮效果進(jìn)行了比較,最終選擇算術(shù)編碼(ARC)作為無(wú)損壓縮的算法。測(cè)試結(jié)果表明,該方案能夠?qū)崟r(shí)采集并壓縮遙測(cè)噪聲數(shù)據(jù),有效地提高壓縮去除率和壓縮速度,優(yōu)化壓縮性能。
中圖分類號(hào): TP273
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)08-0084-04
Technology and implementation of data compression based on ARC algorithm
Ling Wei1,2, Zhang Huixin1,2
1. National Key Laboratory for Electronic Measurement Technology(North University of China), Taiyuan 030051,China; 2. Key Laboratory of Instrumentation Science & Dynamic Measurement of Ministry of Education, Taiyuan 030051,China
Abstract: For the application of lossless compression techniques in the aerospace telemetry system, the program that the hardware configuration of real-time telemetry noise data lossless compression system was designed based on Field Programmable Gate Array (FPGA) and Digital Signal Processor (DSP) was provided.Combined with the concept of information entropy of Shannon theory, the nature of data compression algorithm evaluation criteria were studied. After comparing different compression results of several algorithms via PC simulation test , Arithmetic Coding(ARC) algorithm was selected finally. The test results showed that this program was able to collect and compress the telemetry noise data, improved the compression removal rate and compression speed, optimized compression performance.
Key words : telemetry; lossless compression; FPGA; DSP; ARC algorithm

    航天技術(shù)的發(fā)展,對(duì)遙測(cè)系統(tǒng)的性能要求越來(lái)越高。飛行器復(fù)雜程度的加大、測(cè)量參數(shù)種類的增多、數(shù)據(jù)量的增大、測(cè)量實(shí)時(shí)性的增強(qiáng)使傳統(tǒng)有限傳輸信道容量的遙測(cè)系統(tǒng)面臨巨大挑戰(zhàn)。為此,可以通過(guò)采用數(shù)據(jù)壓縮技術(shù),有效地提高信道利用率,減少遙測(cè)數(shù)據(jù)的傳輸時(shí)間和存儲(chǔ)空間,增強(qiáng)遙測(cè)數(shù)據(jù)的實(shí)時(shí)性和吞吐率。

    設(shè)計(jì)的數(shù)據(jù)壓縮器以FPGA為控制單元,用DSP實(shí)現(xiàn)數(shù)據(jù)壓縮,可將6路模擬信號(hào)采集并壓縮,再經(jīng)長(zhǎng)線發(fā)送至數(shù)據(jù)接收器。實(shí)現(xiàn)硬件模塊化、功能軟件化設(shè)計(jì),依靠FPGA的并行執(zhí)行特性,結(jié)合高速DSP通信,可靠地完成被測(cè)信號(hào)的采集、壓縮功能。在保證系統(tǒng)可靠性的同時(shí)節(jié)省系統(tǒng)的開(kāi)發(fā)成本,提高了系統(tǒng)的可重構(gòu)性[1-2]。
1 數(shù)據(jù)壓縮器的總體設(shè)計(jì)
    數(shù)據(jù)壓縮器基于FPGA和DSP的硬件平臺(tái),將待壓縮的6路模擬信號(hào)經(jīng)過(guò)調(diào)理后輸入給A/D轉(zhuǎn)換器進(jìn)行量化,F(xiàn)PGA將量化結(jié)果寫入其內(nèi)部FIFO(First In First Out)緩存中。DSP通過(guò)判斷FIFO的半滿信號(hào)讀取數(shù)據(jù),并根據(jù)通道號(hào)把數(shù)據(jù)流分配到6個(gè)分組緩存區(qū),當(dāng)其中任一分組緩存區(qū)滿2 KB時(shí),就進(jìn)行一次壓縮,壓縮后的數(shù)據(jù)被存入緩存器中。當(dāng)緩存器半滿時(shí),DSP將壓縮后的數(shù)據(jù)串行發(fā)送至FPGA,F(xiàn)PGA根據(jù)接口的通信協(xié)議再把壓縮數(shù)據(jù)發(fā)送給數(shù)據(jù)接收器,以保證壓縮數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。壓縮器的總體設(shè)計(jì)方案如圖1所示[3-5]。

2 硬件及實(shí)現(xiàn)原理
2.1 控制單元的選型

    FPGA采用XILINX公司的低成本產(chǎn)品XC3S200AN。其包含豐富的Block RAM資源,可利用IP核建立內(nèi)部FIFO,以便于數(shù)據(jù)緩存。XC3S200AN內(nèi)部含有4 MB大小的Flash,可以存儲(chǔ)FPGA程序。DSP是執(zhí)行數(shù)據(jù)壓縮的核心單元器件,選型時(shí)在考慮處理速度的同時(shí),還要兼顧其與其他設(shè)備的接口匹配能力。選用TI公司的TMS320C6416高性能DSP,其CPU工作主頻達(dá)到600 MHz,內(nèi)含容量為1 MB的RAM內(nèi)存,同時(shí)可通過(guò)外部存儲(chǔ)器接口(EMIF)、多通道緩存串口(MCBSP)等外設(shè)接口與FPGA及存儲(chǔ)器連接。
2.2 信號(hào)采集電路設(shè)計(jì)
     設(shè)計(jì)要實(shí)現(xiàn)對(duì)6個(gè)通道的信號(hào)進(jìn)行每通道30 kHz、8位分辨率的采樣,相當(dāng)于總采樣率180 kHz。選用TI公司的16位、250 kS/s、6通道同步采樣模數(shù)轉(zhuǎn)換器ADS8365,能夠滿足要求[2]。為了保證模擬信號(hào)能被正確量化,先采用運(yùn)算放大器OPA4340對(duì)信號(hào)進(jìn)行電壓跟隨,再由FPGA控制ADS8365進(jìn)行采樣,通過(guò)在FPGA內(nèi)部建立FIR濾波器IP核對(duì)采集到的數(shù)據(jù)進(jìn)行數(shù)字濾波,隨后將其低13位并置3位通道編號(hào)發(fā)送給DSP。DSP工作頻率通常能達(dá)到幾百兆赫茲,但FPGA的工作頻率僅為幾十兆赫茲,所以FPGA要將數(shù)據(jù)先緩存在其內(nèi)部FIFO,便于DSP讀取[6-8]。信號(hào)調(diào)理電路如圖2所示。

2.3 DSP的通信接口設(shè)計(jì)
    DSP從FPGA中讀取采樣數(shù)據(jù)進(jìn)行壓縮,再將壓縮后數(shù)據(jù)發(fā)回FPGA,由FPGA進(jìn)行編碼后發(fā)送到數(shù)據(jù)接收器。由于數(shù)據(jù)壓縮需要較大的處理空間,而DSP內(nèi)部存儲(chǔ)空間有限,為防止在數(shù)據(jù)壓縮期間內(nèi)采樣數(shù)據(jù)和壓縮結(jié)果因不能及時(shí)傳送而丟失,故在數(shù)據(jù)輸入、輸出接口之間設(shè)計(jì)了緩存單元。采樣數(shù)據(jù)輸入緩存可用FPGA內(nèi)部FIFO承擔(dān),考慮到FPGA內(nèi)部RAM資源有限,僅能搭建容量較小的FIFO,而需要的是大容量數(shù)據(jù)輸出緩存單元。因此,設(shè)計(jì)中DSP的外部存儲(chǔ)采用64 MB容量,能夠緩存1 MB壓縮數(shù)據(jù),64位數(shù)據(jù)寬度的同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(SDRAM)MT48LC2M32B2TG芯片。DSP在采集數(shù)據(jù)時(shí)的數(shù)據(jù)通信操作較復(fù)雜,如果按照外設(shè)的器件手冊(cè)編程實(shí)現(xiàn)對(duì)其控制效率太低,而用DSP的外部存儲(chǔ)器接口EMIFA可極大地簡(jiǎn)化操作過(guò)程,將采集數(shù)據(jù)FIFO映射到EMIFA的CE2空間;將SDRAM映射到CE0空間,只需設(shè)置DSP的EMIFA相關(guān)寄存器參數(shù)即可實(shí)現(xiàn)數(shù)據(jù)通信。同樣可通過(guò)設(shè)置DSP的MCBSP相關(guān)寄存器參數(shù)來(lái)完成壓縮后數(shù)據(jù)的發(fā)送[9-11]。連接如圖3所示。
3 邏輯控制
3.1 FPGA邏輯設(shè)計(jì)

    壓縮器中,F(xiàn)PGA作為控制單元,完成6路模擬信號(hào)采集的邏輯控制、數(shù)據(jù)傳輸控制以及與DSP的數(shù)據(jù)傳輸。如圖4所示,F(xiàn)PGA邏輯功能可劃分為4個(gè)模塊,分別為信號(hào)采集模塊、數(shù)據(jù)輸入緩存模塊、DSP通信模塊和數(shù)據(jù)輸出模塊。其中數(shù)據(jù)輸入、輸出緩存模塊的實(shí)現(xiàn),可通過(guò)調(diào)用FPGA的IP核設(shè)置參數(shù)生成相應(yīng)容量的FIFO來(lái)完成。

 

 

3.2 DSP程序設(shè)計(jì)
    DSP程序模塊主要完成模擬信號(hào)的壓縮處理。DSP的程序包括模擬數(shù)據(jù)的預(yù)處理、模擬數(shù)據(jù)的壓縮以及與外部存儲(chǔ)器的通信等。DSP程序流程圖如圖5所示[12-14]。

    TMS320C6416在上電啟動(dòng)或者復(fù)位后,DSP程序從Flash中加載并啟動(dòng),完成系統(tǒng)的初始化以及各個(gè)參數(shù)的設(shè)置,然后進(jìn)入主函數(shù)、初始化CSL函數(shù)庫(kù)、MCBSP、可編程輸入輸出接口(GPIO)等相關(guān)中斷寄存器和內(nèi)部FIFO。當(dāng)TMS320C6416檢測(cè)到輸入FIFO半滿信號(hào),DSP從輸入FIFO中讀取模擬信號(hào)的量化值,當(dāng)SBUF中有待處理標(biāo)志時(shí),DSP啟動(dòng)ARC編碼開(kāi)始數(shù)據(jù)壓縮,ARC編碼將返回壓縮后的數(shù)據(jù)長(zhǎng)度,如果壓縮后的數(shù)據(jù)長(zhǎng)度比壓縮前的小,DSP將壓縮后數(shù)據(jù)寫入內(nèi)部數(shù)據(jù)發(fā)送緩存器,反之則將壓縮前的數(shù)據(jù)直接寫入。同時(shí)DSP不斷監(jiān)測(cè)內(nèi)部緩存的狀態(tài)與外部輸出FIFO中數(shù)據(jù)狀態(tài),當(dāng)內(nèi)部FIFO數(shù)據(jù)量大于512 B,同時(shí)外部FIFO不半滿,DSP從內(nèi)部FIFO取出數(shù)據(jù)啟動(dòng)MSBSP傳輸,將壓縮后的數(shù)據(jù)發(fā)送到FPGA。
3.3 無(wú)損壓縮算法及實(shí)現(xiàn)
    通過(guò)試驗(yàn),比較ARC、WINZIP、WINRAR、字典編碼等常用的數(shù)據(jù)無(wú)損壓縮算法的壓縮結(jié)果。在壓縮去除率、壓縮速度以及穩(wěn)定性等各方面綜合分析后,最終采用ARC編碼。ARC編碼采用依次遞推方式,對(duì)全序列連續(xù)編碼。ARC算法不是依據(jù)每個(gè)信源符號(hào)單獨(dú)映射后編碼,而是將整個(gè)信號(hào)符號(hào)序列全部映射到實(shí)數(shù)軸上(0,1)區(qū)間內(nèi)的一個(gè)子區(qū)間內(nèi),子區(qū)間長(zhǎng)度等于該序列的概率。當(dāng)整個(gè)序列映射完畢,就可以用一個(gè)概率值表示,可以在子區(qū)間內(nèi)選擇一個(gè)有代表性的介于0和1之間的二進(jìn)制小數(shù)作為實(shí)際的ARC編碼輸出,從而實(shí)現(xiàn)高效編碼。例如,算術(shù)編碼對(duì)某條輸入信號(hào)序列的輸出為1011001111,它表示小數(shù)0.101100111,即十進(jìn)制數(shù)0.72。在VC中編譯調(diào)試后,再將算法移植到DSP開(kāi)發(fā)平臺(tái)CCS3.3上繼續(xù)編譯直到通過(guò)[15-16]。
4 測(cè)試結(jié)果
    數(shù)據(jù)壓縮器地面測(cè)試臺(tái)是專門用來(lái)對(duì)數(shù)據(jù)壓縮器進(jìn)行單元測(cè)試的,它可以完全地模擬數(shù)據(jù)壓縮器在實(shí)際環(huán)境下的電氣工作環(huán)境。地面測(cè)試臺(tái)通過(guò)電纜傳輸?shù)綁嚎s器信號(hào)輸入接口,壓縮器采集處理完畢,把數(shù)據(jù)通過(guò)422接口回傳到地面測(cè)試臺(tái),測(cè)試臺(tái)將接收到的數(shù)據(jù)通過(guò)USB接口存儲(chǔ)到計(jì)算機(jī)以便事后分析處理。測(cè)試系統(tǒng)結(jié)構(gòu)圖如圖6所示。
    對(duì)采集到的6組遙測(cè)信號(hào)利用ARC算法進(jìn)行32 min無(wú)損壓縮,測(cè)試得到162.8 MB的數(shù)據(jù)??傻脡嚎s去除率為:
    1-162.8 MB/(6×30 kHz×8 bit×32×60 s)=52.9%
    壓縮過(guò)程中SDRAM的最大占用比例為55%。通過(guò)MATLAB工具,對(duì)一路壓縮前的原始數(shù)據(jù)和解壓還原后數(shù)據(jù)進(jìn)行頻域分析,圖7和圖8分別為兩者的幅頻特性圖,橫軸為頻率值,縱軸為幅值。實(shí)測(cè)噪聲的主要頻率分布在1~2 kHz的范圍內(nèi),解壓后,由于前端濾波器的作用,頻率大于10 kHz的部分基本被濾掉,但數(shù)據(jù)主要成分基本保持下來(lái),能比較真實(shí)地反映數(shù)據(jù)的實(shí)際分布情況。通過(guò)對(duì)比,可以看出原始數(shù)據(jù)與解壓后數(shù)據(jù)具有一致性,壓縮器的壓縮性能良好,可以較好地完成數(shù)據(jù)壓縮任務(wù),而且在設(shè)計(jì)指標(biāo)上考慮了一定冗余量,提高了壓縮裝置的可靠性,減輕遙測(cè)系統(tǒng)的傳輸帶寬壓力。

    為有效降低遙測(cè)速變數(shù)據(jù)單信道容量,從而在有限的帶寬中增加更多的測(cè)試通道和測(cè)試參數(shù),提高帶寬利用率,通過(guò)對(duì)壓縮機(jī)理的研究、壓縮算法的比較及相關(guān)硬件的設(shè)計(jì),總體上實(shí)現(xiàn)了遙測(cè)噪聲數(shù)據(jù)的無(wú)損壓縮。通過(guò)單元測(cè)試,充分驗(yàn)證了所設(shè)計(jì)的遙測(cè)噪聲數(shù)據(jù)無(wú)損壓縮裝置的正確性與可靠性。數(shù)據(jù)無(wú)損壓縮對(duì)當(dāng)前許多應(yīng)用領(lǐng)域都產(chǎn)生了深遠(yuǎn)的影響,特別是在航天遙測(cè)領(lǐng)域,意義重大。針對(duì)目前的研究情況,進(jìn)一步需改進(jìn)的問(wèn)題包括:(1)數(shù)據(jù)采集部分可以在現(xiàn)有遙測(cè)噪聲數(shù)據(jù)采集的基礎(chǔ)上,結(jié)合FPGA的高性能和AD器件的更新,增加提高數(shù)據(jù)采集路數(shù),提高采集速率和精度。(2)優(yōu)化ARC編碼方式??梢越Y(jié)合其他的算法,實(shí)現(xiàn)算法自適應(yīng)以增強(qiáng)數(shù)據(jù)處理適應(yīng)能力,進(jìn)一步提高壓縮器性能。(3)推廣技術(shù)的使用范圍,比如應(yīng)用在數(shù)據(jù)采編、存儲(chǔ)等各個(gè)領(lǐng)域,以節(jié)省數(shù)據(jù)存儲(chǔ)容量開(kāi)銷。
參考文獻(xiàn)
[1] 諶德榮,陳宇川.運(yùn)載火箭遙測(cè)數(shù)據(jù)壓縮系統(tǒng)方案設(shè)計(jì)[J].導(dǎo)彈與航天運(yùn)載技術(shù),2000,10(6):1-4.
[2] 楊恒,李愛(ài)國(guó).FPGA/CPLD最新實(shí)用技術(shù)指南[M].北京:清華大學(xué)出版社,2005.
[3] 梁二虎.遙測(cè)噪聲數(shù)據(jù)實(shí)時(shí)無(wú)損壓縮設(shè)備的研制[D].太原:中北大學(xué),2008.
[4] 劉文怡.遙測(cè)速變數(shù)據(jù)無(wú)損壓縮時(shí)空性能優(yōu)化設(shè)計(jì)與應(yīng)用[D].太原:中北大學(xué),2009.
[5] 王浩. 基于DSP遙測(cè)噪聲數(shù)據(jù)實(shí)時(shí)無(wú)損壓縮技術(shù)的研究[D].太原:中北大學(xué),2009.
[6] 陳子為. 基于ADS8364 的多通道高速數(shù)據(jù)采集處理系統(tǒng)[J].數(shù)據(jù)采集與處理,2006,12(3):25-27.
[7] 常鐵原,王欣,陳文軍.多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2008,11(2):21-23.
[8] 劉嵩.基于FPGA的多通道同步數(shù)據(jù)采集與處理系統(tǒng)的實(shí)現(xiàn)[D].武漢:中南民族大學(xué)大學(xué),2009.
[9] 汪安民,張松燦,常春藤.TMS320C6000 DSP實(shí)用技術(shù)與開(kāi)發(fā)案例[M].北京:人民郵電出版社,2008.
[10] 王念旭.DSP基礎(chǔ)與應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2001.
[11] 任麗香. TMS320C6000系列DSP的原理和應(yīng)用[M].北京:電子工業(yè)出版社,2002.
[12] 郭煒,邵詩(shī)逸.DSP通過(guò)外部Flash實(shí)現(xiàn)自引導(dǎo)啟動(dòng)[J].微處理機(jī),2007,2(1):124-26.
[13] 吳冬梅,張玉杰.DSP技術(shù)及應(yīng)用[M].北京:北京大學(xué)出版社,2006.
[14] 尹勇,歐兆軍,關(guān)榮鋒. DSP集成開(kāi)發(fā)環(huán)境CCS使用指南[M].北京:北京航空航天大學(xué)出版社,2003.
[15] 姜丹.信息論與編碼[M].合肥:中國(guó)科學(xué)技術(shù)大學(xué)出版社,2001.
[16] 曾玲. 幾種數(shù)據(jù)壓縮算法的比較[J]. 通信技術(shù), 2002,36(9):27-29.
[17] Zhang Yan. Multi-channel high-speed data acquisition and storage system[C].Proceedings of the 5th International Conference on Wireless communications, networking and  mobile computing.Piscataway,NJ: IEEE Press,2009:2022-2025.

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