文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)08-0084-04
航天技術(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.