<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP的實(shí)時(shí)數(shù)據(jù)無損壓縮實(shí)現(xiàn)方案

          基于DSP的實(shí)時(shí)數(shù)據(jù)無損壓縮實(shí)現(xiàn)方案

          作者: 時(shí)間:2012-05-16 來源:網(wǎng)絡(luò) 收藏

          數(shù)據(jù)壓縮技術(shù)能減少傳輸所用的時(shí)間和存儲(chǔ)空間,在有限的信道容量?jī)?nèi)傳輸更多的有用信息,有助于降低功率和帶寬要求,改善通信效率。反之,如果不進(jìn)行數(shù)據(jù)壓縮,則無論傳輸或存儲(chǔ)都很難實(shí)用化[1]。

          本文引用地址:http://www.ex-cimer.com/article/257508.htm

          1 硬件及實(shí)現(xiàn)原理

          結(jié)合本設(shè)計(jì)的實(shí)際情況,由于壓縮算法比較復(fù)雜,計(jì)算量大,在壓縮數(shù)據(jù)時(shí)必須采用浮點(diǎn)型運(yùn)算。另一方面,由于處理精度要求高,所以需要選擇浮點(diǎn)型?;谏鲜隹紤],選用TI公司的一款性價(jià)比非常高的浮點(diǎn)芯片TMS320C6713。其主頻225MHz,每周期執(zhí)行8條32bit指令,最高定點(diǎn)運(yùn)算能力為 1800MIPS,浮點(diǎn)運(yùn)算能力為1350MFLOPS,32位指令集,而且內(nèi)部自帶256KB的RAM,4KB程序緩沖器和4KB的數(shù)據(jù)緩沖器,可以通過外部存儲(chǔ)器接口EMIF(External Memory Inter Faces)擴(kuò)展SDRAM和Flash[2]。在本設(shè)計(jì)中,對(duì)原始數(shù)據(jù)按照每2 048B為一組進(jìn)行壓縮。壓縮的最小單位是2 048B,且壓縮率不固定,對(duì)于某組特定數(shù)據(jù)壓縮后可能比原來的數(shù)據(jù)還要大。壓縮前后的數(shù)據(jù)都需要放到的RAM中進(jìn)行處理,其256KB的RAM不能滿足本設(shè)計(jì)存儲(chǔ)要求,需要通過EMIF擴(kuò)展存儲(chǔ)空間。SDRAM選用Micron公司的MT48LC2M32B2。其數(shù)據(jù)總線為32位,存儲(chǔ)空間為 64Mbit。工作電壓為3.3V,內(nèi)部流水線結(jié)構(gòu)保證了芯片的高速運(yùn)行。SDRAM可以與EMIF無縫接口。EMIF的CE0連入片選引腳CS,將 SDRAM映射到CE0地址空間(0x80000000-0x80800000)。Flash是系統(tǒng)在斷電后用來保存程序和初始化數(shù)據(jù)的存儲(chǔ)器,系統(tǒng)上電時(shí),由引導(dǎo)程序?qū)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/DSP">DSP的應(yīng)用程序從該存儲(chǔ)器引導(dǎo)到系統(tǒng)的高速存儲(chǔ)器RAM中。本設(shè)計(jì)用AMD公司生產(chǎn)的1M×8bit/512K×16bit AM29LV800-70 Flash存儲(chǔ)器,其數(shù)據(jù)寬度為8位、16位可選,采用3.3V供電,訪問時(shí)間僅70ns。EMIF的CE1連入片選引腳CE,將Flash映射到CE1 地址空間地址范圍為0x90000000~0x90100000,尋址空間為1MB[3]。

          通常在高速數(shù)據(jù)采集系統(tǒng)中,數(shù)據(jù)處理速度及數(shù)據(jù)傳輸速度與前端A/D轉(zhuǎn)換器的采集速度不一致。為了協(xié)調(diào)它們之間工作,可以加入數(shù)據(jù)存儲(chǔ)器或者數(shù)據(jù)緩存器(FIFO)進(jìn)行數(shù)據(jù)緩沖,使得前端數(shù)據(jù)采集和后級(jí)數(shù)據(jù)處理能夠協(xié)調(diào)工作。在本設(shè)計(jì)中,前端的采樣速度為27Kb/s;且數(shù)據(jù)流是連續(xù)的。DSP的主頻為 225MHz,經(jīng)過鎖向環(huán)分頻后其讀取數(shù)據(jù)的速度為38Mb/s左右。DSP若一直等待讀數(shù)據(jù),會(huì)大大降低其數(shù)據(jù)的處理能力。DSP讀入數(shù)據(jù)后,馬上對(duì)數(shù)據(jù)進(jìn)行壓縮,壓縮后把相應(yīng)的數(shù)據(jù)寫到輸出FIFO。同理,發(fā)送模塊的處理速度為18Kb/s。DSP寫輸出FIFO的速度也在38Mb/s左右。顯然,前端與DSP及DSP與發(fā)送模塊的處理速度不是一個(gè)數(shù)量級(jí)。所以在前端與DSP之間,DSP與發(fā)送模塊間分別加了兩個(gè)FIFO。本設(shè)計(jì)中FIFO1、 FIFO2均選用IDT72V19160,其存儲(chǔ)空間為128KB,16位并行數(shù)據(jù)總線,可達(dá)到100MHz的操作時(shí)鐘。原理框圖如圖1所示。


          前端通過16位數(shù)據(jù)總線將數(shù)據(jù)寫入到輸入FIFO1中。在程序中通過控制其半滿(HF)信號(hào),即當(dāng)數(shù)據(jù)超過32KB時(shí)(32768+1), HF信號(hào)低電平有效,就會(huì)觸發(fā)一次中斷通知可編程邏輯和DSP,DSP進(jìn)入中斷后把2KB的數(shù)據(jù)從輸入FIFO1中讀入到SBUF所指向的SDRAM空間中,在進(jìn)行高速壓縮以后,被壓縮的數(shù)據(jù)放到DBUF中。SBUF的數(shù)據(jù)要與DBUF的數(shù)據(jù)進(jìn)行比較,若DBUF中存儲(chǔ)數(shù)據(jù)的容量小于SBUF中的存儲(chǔ)數(shù)據(jù)的容量,就把DBUF中相應(yīng)的數(shù)據(jù)寫到DSP的軟FIFO中,否則,就把SBUF中相應(yīng)的數(shù)據(jù)寫到DSP的軟FIFO中。最終,DSP把壓縮后的數(shù)據(jù)通過其軟FIFO寫入到輸出FIFO2中,等待發(fā)送模塊把數(shù)據(jù)讀走。

          在上述過程中,如果DSP沒有等待到中斷信號(hào),則返回繼續(xù)等待,直到檢測(cè)到中斷信號(hào),才讀取FIFO1中的數(shù)據(jù)。在DSP對(duì)SBUF中的數(shù)據(jù)幀壓縮的同時(shí),前端以固定的采樣率對(duì)模擬信號(hào)進(jìn)行采樣,并寫入到輸入FIFO1中。同時(shí)DSP把壓縮后的數(shù)據(jù)按每次小于2KB左右的速度寫入到輸出FIFO2。當(dāng)輸出FIFO2半滿,發(fā)送模塊控制器會(huì)把其HF信號(hào)通過GPIO口指向DSP。本設(shè)計(jì)中用GP10實(shí)現(xiàn)相應(yīng)的操作。DSP的GPIO口可以設(shè)為輸入引腳,在中斷向量表中定義后,其本身可以當(dāng)作中斷使用。這樣DSP可以把采集到的源源不斷地寫入到FIFO2。整個(gè)信號(hào)處理模塊的不同子模塊都處于并行工作狀態(tài),較好地實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)壓縮,提高了壓縮效率。

          設(shè)備上電DSP復(fù)位后,由其內(nèi)部固化的自引導(dǎo)程序(BOOT)將存于Flash存儲(chǔ)器的程序和數(shù)據(jù)搬移至內(nèi)部 RAM中,然后DSP即可以開始讀取壓縮算法的應(yīng)用程序,繼續(xù)運(yùn)行。DSP的工作流程圖如圖2所示。上電以后,首先初始化DSP的CSL函數(shù)庫,然后初始化PLL、GPIO及關(guān)中斷寄存器,等待中斷信號(hào)的來臨。


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();