文獻標識碼: A
文章編號: 0258-7998(2013)08-0084-04
航天技術的發(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.