《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于ARC算法的數(shù)據(jù)壓縮技術和實現(xiàn)
基于ARC算法的數(shù)據(jù)壓縮技術和實現(xiàn)
來源:電子技術應用2013年第8期
凌 偉1,2, 張會新1,2
1. 電子測試技術國家重點實驗室(中北大學),山西 太原030051; 2. 儀器科學與動態(tài)測試教育部重點實驗室,山西 太原030051
摘要: 針對無損壓縮技術在航天遙測系統(tǒng)中的應用情況,提出了基于現(xiàn)場可編程門陣列(FPGA)和數(shù)字信號處理器(DSP)硬件結構的遙測噪聲數(shù)據(jù)實時無損壓縮系統(tǒng)的方案。結合Shannon信息論中信息熵的概念,研究了數(shù)據(jù)壓縮的本質(zhì)和算法評估標準。通過PC仿真試驗對多種算法的壓縮效果進行了比較,最終選擇算術編碼(ARC)作為無損壓縮的算法。測試結果表明,該方案能夠實時采集并壓縮遙測噪聲數(shù)據(jù),有效地提高壓縮去除率和壓縮速度,優(yōu)化壓縮性能。
中圖分類號: TP273
文獻標識碼: A
文章編號: 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

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

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

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

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

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

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

 

 

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

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

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