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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于DSP和CPLD的低功耗多路數(shù)據(jù)處理系統(tǒng)設(shè)計方案

          基于DSP和CPLD的低功耗多路數(shù)據(jù)處理系統(tǒng)設(shè)計方案

          作者: 時間:2012-06-13 來源:網(wǎng)絡(luò) 收藏

          引言

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

          隨著電子技術(shù)的應(yīng)用和發(fā)展,數(shù)字信號處理內(nèi)容日益復雜,同時,很多情況下要求整個系統(tǒng)具有低功耗的特點。為滿足這種要求,芯片設(shè)計技術(shù)也在向低功耗、高性能的方向發(fā)展。從處理速度來看,TMS320VC5502的運算能力已經(jīng)達到了600MMACS,即每秒鐘可以完成6億次乘加運算。從功耗來看,TMS320VC5502內(nèi)核電壓只有1.26V,整個芯片的功耗也大大降低了。本文介紹了基于TMS320VC5502和 XC95144的低功耗多路系統(tǒng)。

          模擬信號的輸入經(jīng)過50Hz陷波電路(濾除工頻干擾)和信號預選頻電路。經(jīng)過預處理的模擬信號作為ADC的模擬輸入進行A/D變換,最后由實現(xiàn)對數(shù)字信號的濾波處理。將技術(shù)相結(jié)合,利用編程的靈活性,來控制6路ADC的啟動和停止,簡化了整個硬件電路的設(shè)計,達到動態(tài)地選擇采樣通道的目的。同時將DSP處理后的數(shù)據(jù)發(fā)送到PC ,在PC上利用MATLAB和VC等工具對處理后的數(shù)據(jù)進行后端分析。本文主要介紹基于低功耗TMS320VC5502和CPLD的前端數(shù)據(jù)采集和處理系統(tǒng)。

          ADS7805簡介

          ADS7805是一款具有16位量化精度的A/D轉(zhuǎn)換芯片。它的基本組成結(jié)構(gòu)包括16位精度的基于電容網(wǎng)絡(luò)的逐次逼近型ADC、采樣保持電路、時鐘、對微處理器的接口和三態(tài)輸出。ADS7805的最高采樣速率為100kHz,模擬信號輸入范圍為-10V~+10V,5V單電源供電,最大耗散功率為100mW。

          ADS7805為5V單電源供電,輸出的數(shù)據(jù)位為‘1’時,電平值為5V,而DSP芯片的I/O電壓采用的是3.3V邏輯電平,因此,還需要在ADS7805的數(shù)據(jù)輸出端加上電平轉(zhuǎn)換芯片,設(shè)計時選用了74ALVC164245,它可以將5V電平轉(zhuǎn)換為3.3V,也可以將3.3V轉(zhuǎn)換為5V。

          硬件接口電路設(shè)計

          從硬件角度來看,DSP完成濾波運算的核心工作,而整個系統(tǒng)的控制核心是CPLD,DSP對6路A/D采樣的操作是由CPLD產(chǎn)生控制信號,控制著ADS7805的采樣觸發(fā)信號、6個ADC的復用和解復用,以及5V轉(zhuǎn)3.3V電壓轉(zhuǎn)換芯片74ALVC164245的選通等。CPLD和DSP的時鐘輸入采用30MHz有源晶振。CPLD、DSP、ADC和電平轉(zhuǎn)換芯片之間的接口電路如圖1所示。

            
          圖1 DSP、CPLD與ADC接口電路圖

          DSP利用片選信號、地址信號、讀寫使能信號向CPLD發(fā)出指令,CPLD根據(jù)DSP的指令向6個ADS7805發(fā)出控制信號,啟動芯片進行采樣并控制DSP完成對數(shù)據(jù)的讀取。由于ADS7805輸出的數(shù)據(jù)要通過電平轉(zhuǎn)換芯片,CPLD還需要控制74ALVC164245芯片的選通和轉(zhuǎn)換,就是圖1中的OE[1:0]信號。因此,DSP必須向CPLD提供的控制信號包括CE2片選信號、ARE讀使能信號和AWE寫使能信號,當DSP讀取A/D轉(zhuǎn)換數(shù)據(jù)的時候,選通74ALVC164245進行電平轉(zhuǎn)換,當ADC對模擬信號進行A/D轉(zhuǎn)換時,不使能164245芯片,以免造成多路數(shù)據(jù)引起的數(shù)據(jù)總線沖突。由于有6個ADS7805,所以至少需要分配3根地址線信號(一般選為最低3位地址線引腳)區(qū)分這6個ADS7805,但3根地址線信號實際上可以用來表示8個地址,剩余的2個地址也可以利用起來,例如,對剩余的2個地址中的一個進行讀操作可以視為DSP發(fā)出命令,用以啟動ADS7805,這樣就可以省去DSP和CPLD之間AWE信號的連接了。CPLD需要提供給ADS7805的信號包括片選信號CS[5:0]和數(shù)據(jù)讀取/啟動轉(zhuǎn)換信號RC[5:0],此外,CPLD還要提供電平轉(zhuǎn)換芯片的片選信號,并且需要接入一個時鐘信號,用來給CPLD提供時序邏輯的同步時鐘信號。

          CPLD程序設(shè)計

          根據(jù)ADS7805的工作原理和DSP讀寫特性,對CPLD進行編程來實現(xiàn)DSP對6個ADS7805的分時讀取操作以及啟動ADS7805的轉(zhuǎn)換。

          整個程序采用Verilog HDL語言設(shè)計。為了便于測試,增加了一個FLAG標志信號,當FLAG為低的時候,說明DSP正在讀取ADS7805轉(zhuǎn)換過的數(shù)據(jù)。當FLAG為高的時候,說明ADS7805正在進行新一輪的轉(zhuǎn)換。程序設(shè)計的重點在于啟動ADS7805的新一輪采樣,而ADS7805啟動采樣需要CS和RC同時為低且保持40ns。當DSP讀完6個ADC的數(shù)據(jù)后就要啟動新一輪采樣。當對第6個ADS7805的讀取操作完成后,F(xiàn)LAG標志位被拉高并利用計數(shù)器進行記時,輸入的時鐘頻率是30MHz。因此需要讓RC[5:0]和CS[5:0]輸出信號至少保持2個時鐘周期的低電平才能成功地啟動下一次A/D轉(zhuǎn)換。根據(jù)系統(tǒng)的要求,CPLD程序主要分3個always塊。

          第一個模塊利用DSP的CE2地址空間選擇信號、地址線A[4:2]、ARE讀信號以及定義的3位計數(shù)器cnt[2:0]作為觸發(fā)信號。當CE2和ARE都為低時,根據(jù)DSP的A[4:2]選擇6個中的一個進行讀取,其他5個都被禁止,這時,RC[5:0]應(yīng)該均為高。如果A[4:2]=000,那么CS[5:0]=111110,開始讀第一個ADS7805的數(shù)據(jù)到DSP。為了防止數(shù)據(jù)丟失,在讀數(shù)據(jù)的時候,RC[5:0]應(yīng)該始終保持為高,因為如果CS[5:0]和RC[5:0]信號中同一位均保持為低超過40ns,就會啟動一次新的采樣,這樣會造成沒有被讀的ADS7805產(chǎn)生一次新的采樣而丟掉之前轉(zhuǎn)換的數(shù)據(jù),對整個系統(tǒng)的結(jié)果造成很大的影響。讀完第6個ADC以后,在ARE的上升沿將FLAG標志拉高,這時計數(shù)器開始記數(shù),根據(jù)記數(shù)器的數(shù)值,當2cnt[2:0]6的時候,將RC[5:0]和CS[5:0]同時拉低,這樣有3個時鐘周期的長度大概有100ns,保證了同時為低的時間不小于40ns,啟動新一輪的采樣。第二個always模塊主要實現(xiàn)對FLAG標志位的判斷和設(shè)定。當A[4:2]=000時,說明DSP開始讀A/D采樣數(shù)據(jù),這時FLAG=0。當A[4:2]=101時,說明6個ADS7805數(shù)據(jù)已經(jīng)被讀完,需要進行新的采樣,這時FALG=1。第三個always模塊主要實現(xiàn)計數(shù)器的設(shè)計。記數(shù)時鐘頻率為30MHz。當FLAG為高且cnt[2:0]7時,開始記數(shù)。當FALG為低時,對計數(shù)器進行復位。

          根據(jù)以上設(shè)計思路,成功地做到了對6路信號的采樣和讀取控制,達到了預期的效果。仿真波形如圖2所示。

           
          圖2 CPLD仿真波形圖

          DSP軟件設(shè)計

          在進行DSP程序設(shè)計之前,先利用MATLAB的FDATOOL工具設(shè)計數(shù)字濾波器,將濾波器系數(shù)以.h文件形式導出MATLAB,在CCS中定義一個數(shù)組存放濾波器系數(shù),就可以成功地將濾波器系數(shù)導入CCS。

          本文主要介紹DSP對多路信號讀取并處理的軟件設(shè)計方案。圖3是整個程序的流程圖。首先應(yīng)該對DSP芯片進行初始化,主要包括對TMS320VC5502的PLL寄存器進行初始化、初始化系統(tǒng)中斷向量表、EMIF的初始化和定時器的初始化。DSP通過EMIF接口對外圍ADC的轉(zhuǎn)換數(shù)據(jù)進行讀取。整個數(shù)據(jù)讀取和數(shù)字濾波工作是在定時器中斷程序中進行的。定時器模塊主要用來確定采樣周期,即每來一個定時器中斷就對信號進行一次采樣并完成對信號的實時處理運算。因此,定時器的中斷周期也就是采樣周期,同時,也規(guī)定了DSP做一次信號處理運算所耗時間的上限,即必須在相鄰兩次的時鐘中斷之間完成一次處理所需要的運算和操作。然后初始化EMIF模塊,這一部分比較重要,因為ADC轉(zhuǎn)換好的數(shù)據(jù)是通過EMIF接口送進DSP芯片的。ADC芯片在本系統(tǒng)中被內(nèi)存化了,也就是說,從DSP芯片的角度看,讀寫ADC芯片和讀寫異步SRAM沒有差別,因此,要將ADC芯片也分配到片外存儲空間里,本系統(tǒng)采用的方法是將ADC芯片分配到CE2空間0x400000~0x400005連續(xù)的6個地址,使用異步16位SRAM的配置方式來配置CE2空間的控制寄存器。當有中斷請求時,DSP就進入頻率為40KHz的定時器中斷,進行讀取和濾波工作。

           
          圖3 DSP程序流程圖

          系統(tǒng)功耗估計

          通過查閱芯片手冊可以知道,TMS320VC5502需要的1.26V核心電壓供電能力為250mA,3.3V的I/O電壓和鎖相環(huán)I/O電壓的供電能力為50mA, DSP芯片的功耗為480mW。ADS7805芯片的功耗典型值為100mW,6個共計600mW。CPLD的3.3V電源消耗電流的典型值為100mA,即330mW。這樣,整個系統(tǒng)功耗大概為1.5W。在使用電池供電的情況下,這個功耗大小也是可以接受的。例如,使用一個12V輸出、50Ah的蓄電池,理想情況下可以對系統(tǒng)供電400小時。即使考慮電壓轉(zhuǎn)換過程中的能量損耗,用上述規(guī)格的蓄電池對系統(tǒng)供電40個小時也是可行的。

          結(jié)語

          本文介紹了一種基于DSP和CPLD的低功耗多路數(shù)據(jù)采集系統(tǒng)。 CPLD簡化了硬件設(shè)計,可以很方便地對系統(tǒng)進行在線編程,具有很高的靈活性。本系統(tǒng)已應(yīng)用于軍事等具有低功耗、高性能要求的領(lǐng)域。



          關(guān)鍵詞: DSP 數(shù)據(jù)處理 CPLD

          評論


          相關(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); })();