基于DSP和CPLD的低功耗多路數據處理系統設計
隨著(zhù)電子技術(shù)的應用和發(fā)展,數字信號處理內容日益復雜,同時(shí),很多情況下要求整個(gè)系統具有低功耗的特點(diǎn)。為滿(mǎn)足這種要求,DSP芯片設計技術(shù)也在向低功耗、高性能的方向發(fā)展。從處理速度來(lái)看,TMS320VC5502的運算能力已經(jīng)達到了600MMACS,即每秒鐘可以完成6億次乘加運算。從功耗來(lái)看,TMS320VC5502內核電壓只有1.26V,整個(gè)芯片的功耗也大大降低了。本文介紹了基于TMS320VC5502和CPLD XC95144的低功耗多路數據處理系統。
模擬信號的輸入經(jīng)過(guò)50Hz陷波電路(濾除工頻干擾)和信號預選頻電路。經(jīng)過(guò)預處理的模擬信號作為ADC的模擬輸入進(jìn)行A/D變換,最后由DSP實(shí)現對數字信號的濾波處理。將CPLD和DSP技術(shù)相結合,利用CPLD編程的靈活性,來(lái)控制6路ADC的啟動(dòng)和停止,簡(jiǎn)化了整個(gè)硬件電路的設計,達到動(dòng)態(tài)地選擇采樣通道的目的。同時(shí)將DSP處理后的數據發(fā)送到PC ,在PC上利用MATLAB和VC等工具對處理后的數據進(jìn)行后端分析。本文主要介紹基于低功耗TMS320VC5502和CPLD的前端數據采集和處理系統。
ADS7805簡(jiǎn)介
ADS7805是一款具有16位量化精度的A/D轉換芯片。它的基本組成結構包括16位精度的基于電容網(wǎng)絡(luò )的逐次逼近型ADC、采樣保持電路、時(shí)鐘、對微處理器的接口和三態(tài)輸出。ADS7805的最高采樣速率為100kHz,模擬信號輸入范圍為-10V~+10V,5V單電源供電,最大耗散功率為100mW。
ADS7805為5V單電源供電,輸出的數據位為‘1’時(shí),電平值為5V,而DSP芯片的I/O電壓采用的是3.3V邏輯電平,因此,還需要在A(yíng)DS7805的數據輸出端加上電平轉換芯片,設計時(shí)選用了74ALVC164245,它可以將5V電平轉換為3.3V,也可以將3.3V轉換為5V。
硬件接口電路設計
從硬件角度來(lái)看,DSP完成濾波運算的核心工作,而整個(gè)系統的控制核心是CPLD,DSP對6路A/D采樣的操作是由CPLD產(chǎn)生控制信號,控制著(zhù)ADS7805的采樣觸發(fā)信號、6個(gè)ADC的復用和解復用,以及5V轉3.3V電壓轉換芯片74ALVC164245的選通等。CPLD和DSP的時(shí)鐘輸入采用30MHz有源晶振。CPLD、DSP、ADC和電平轉換芯片之間的接口電路如圖1所示。
圖1 DSP、CPLD與ADC接口電路圖
DSP利用片選信號、地址信號、讀寫(xiě)使能信號向CPLD發(fā)出指令,CPLD根據DSP的指令向6個(gè)ADS7805發(fā)出控制信號,啟動(dòng)芯片進(jìn)行采樣并控制DSP完成對數據的讀取。由于A(yíng)DS7805輸出的數據要通過(guò)電平轉換芯片,CPLD還需要控制74ALVC164245芯片的選通和轉換,就是圖1中的OE[1:0]信號。因此,DSP必須向CPLD提供的控制信號包括CE2片選信號、ARE讀使能信號和AWE寫(xiě)使能信號,當DSP讀取A/D轉換數據的時(shí)候,選通74ALVC164245進(jìn)行電平轉換,當ADC對模擬信號進(jìn)行A/D轉換時(shí),不使能164245芯片,以免造成多路數據引起的數據總線(xiàn)沖突。由于有6個(gè)ADS7805,所以至少需要分配3根地址線(xiàn)信號(一般選為最低3位地址線(xiàn)引腳)區分這6個(gè)ADS7805,但3根地址線(xiàn)信號實(shí)際上可以用來(lái)表示8個(gè)地址,剩余的2個(gè)地址也可以利用起來(lái),例如,對剩余的2個(gè)地址中的一個(gè)進(jìn)行讀操作可以視為DSP發(fā)出命令,用以啟動(dòng)ADS7805,這樣就可以省去DSP和CPLD之間AWE信號的連接了。CPLD需要提供給ADS7805的信號包括片選信號CS[5:0]和數據讀取/啟動(dòng)轉換信號RC[5:0],此外,CPLD還要提供電平轉換芯片的片選信號,并且需要接入一個(gè)時(shí)鐘信號,用來(lái)給CPLD提供時(shí)序邏輯的同步時(shí)鐘信號。
CPLD程序設計
根據ADS7805的工作原理和DSP讀寫(xiě)特性,對CPLD進(jìn)行編程來(lái)實(shí)現DSP對6個(gè)ADS7805的分時(shí)讀取操作以及啟動(dòng)ADS7805的轉換。
整個(gè)程序采用Verilog HDL語(yǔ)言設計。為了便于測試,增加了一個(gè)FLAG標志信號,當FLAG為低的時(shí)候,說(shuō)明DSP正在讀取ADS7805轉換過(guò)的數據。當FLAG為高的時(shí)候,說(shuō)明ADS7805正在進(jìn)行新一輪的轉換。程序設計的重點(diǎn)在于啟動(dòng)ADS7805的新一輪采樣,而ADS7805啟動(dòng)采樣需要CS和RC同時(shí)為低且保持40ns。當DSP讀完6個(gè)ADC的數據后就要啟動(dòng)新一輪采樣。當對第6個(gè)ADS7805的讀取操作完成后,FLAG標志位被拉高并利用計數器進(jìn)行記時(shí),輸入的時(shí)鐘頻率是30MHz。因此需要讓RC[5:0]和CS[5:0]輸出信號至少保持2個(gè)時(shí)鐘周期的低電平才能成功地啟動(dòng)下一次A/D轉換。根據系統的要求,CPLD程序主要分3個(gè)always塊。
第一個(gè)模塊利用DSP的CE2地址空間選擇信號、地址線(xiàn)A[4:2]、ARE讀信號以及定義的3位計數器cnt[2:0]作為觸發(fā)信號。當CE2和ARE都為低時(shí),根據DSP的A[4:2]選擇6個(gè)中的一個(gè)進(jìn)行讀取,其他5個(gè)都被禁止,這時(shí),RC[5:0]應該均為高。如果A[4:2]=000,那么CS[5:0]=111110,開(kāi)始讀第一個(gè)ADS7805的數據到DSP。為了防止數據丟失,在讀數據的時(shí)候,RC[5:0]應該始終保持為高,因為如果CS[5:0]和RC[5:0]信號中同一位均保持為低超過(guò)40ns,就會(huì )啟動(dòng)一次新的采樣,這樣會(huì )造成沒(méi)有被讀的ADS7805產(chǎn)生一次新的采樣而丟掉之前轉換的數據,對整個(gè)系統的結果造成很大的影響。讀完第6個(gè)ADC以后,在A(yíng)RE的上升沿將FLAG標志拉高,這時(shí)計數器開(kāi)始記數,根據記數器的數值,當2
根據以上設計思路,成功地做到了對6路信號的采樣和讀取控制,達到了預期的效果。仿真波形如圖2所示。
圖2 CPLD仿真波形圖
DSP軟件設計
在進(jìn)行DSP程序設計之前,先利用MATLAB的FDATOOL工具設計數字濾波器,將濾波器系數以.h文件形式導出MATLAB,在CCS中定義一個(gè)數組存放濾波器系數,就可以成功地將濾波器系數導入CCS。
本文主要介紹DSP對多路信號讀取并處理的軟件設計方案。圖3是整個(gè)程序的流程圖。首先應該對DSP芯片進(jìn)行初始化,主要包括對TMS320VC5502的PLL寄存器進(jìn)行初始化、初始化系統中斷向量表、EMIF的初始化和定時(shí)器的初始化。DSP通過(guò)EMIF接口對外圍ADC的轉換數據進(jìn)行讀取。整個(gè)數據讀取和數字濾波工作是在定時(shí)器中斷程序中進(jìn)行的。定時(shí)器模塊主要用來(lái)確定采樣周期,即每來(lái)一個(gè)定時(shí)器中斷就對信號進(jìn)行一次采樣并完成對信號的實(shí)時(shí)處理運算。因此,定時(shí)器的中斷周期也就是采樣周期,同時(shí),也規定了DSP做一次信號處理運算所耗時(shí)間的上限,即必須在相鄰兩次的時(shí)鐘中斷之間完成一次處理所需要的運算和操作。然后初始化EMIF模塊,這一部分比較重要,因為ADC轉換好的數據是通過(guò)EMIF接口送進(jìn)DSP芯片的。ADC芯片在本系統中被內存化了,也就是說(shuō),從DSP芯片的角度看,讀寫(xiě)ADC芯片和讀寫(xiě)異步SRAM沒(méi)有差別,因此,要將ADC芯片也分配到片外存儲空間里,本系統采用的方法是將ADC芯片分配到CE2空間0x400000~0x400005連續的6個(gè)地址,使用異步16位SRAM的配置方式來(lái)配置CE2空間的控制寄存器。當有中斷請求時(shí),DSP就進(jìn)入頻率為40KHz的定時(shí)器中斷,進(jìn)行讀取和濾波工作。
圖3 DSP程序流程圖
系統功耗估計
通過(guò)查閱芯片手冊可以知道,TMS320VC5502需要的1.26V核心電壓供電能力為250mA,3.3V的I/O電壓和鎖相環(huán)I/O電壓的供電能力為50mA, DSP芯片的功耗為480mW。ADS7805芯片的功耗典型值為100mW,6個(gè)共計600mW。CPLD的3.3V電源消耗電流的典型值為100mA,即330mW。這樣,整個(gè)系統功耗大概為1.5W。在使用電池供電的情況下,這個(gè)功耗大小也是可以接受的。例如,使用一個(gè)12V輸出、50Ah的蓄電池,理想情況下可以對系統供電400小時(shí)。即使考慮電壓轉換過(guò)程中的能量損耗,用上述規格的蓄電池對系統供電40個(gè)小時(shí)也是可行的。
結語(yǔ)
本文介紹了一種基于DSP和CPLD的低功耗多路數據采集系統。 CPLD簡(jiǎn)化了硬件設計,可以很方便地對系統進(jìn)行在線(xiàn)編程,具有很高的靈活性。本系統已應用于軍事等具有低功耗、高性能要求的領(lǐng)域。
評論