結(jié)合MATLAB開發(fā)DSP系統(tǒng)的設(shè)計(jì)研究與實(shí)現(xiàn)
2017-10-20 |
rar |
0.3 MB |
次下載 |
1積分
資料介紹
提出結(jié)合MATLAB來開發(fā)DSP系統(tǒng)的思想,闡述了實(shí)現(xiàn)該思想的兩種工具,并詳細(xì)介紹了使用MATLAB Link for Code Composer Studio輔助DSP設(shè)計(jì)的相關(guān)內(nèi)容,包括其功能特點(diǎn)、實(shí)現(xiàn)方式、工作原理等。
最后結(jié)合典型的FIR濾波器實(shí)例,探討了使用該工具的方法,并設(shè)計(jì)了圖形用戶界面。結(jié)果表明應(yīng)用MATLAB輔助開發(fā)DSP系統(tǒng)可以發(fā)揮二者的優(yōu)勢(shì),縮短開發(fā)周期,降低開發(fā)門檻,優(yōu)化開發(fā)過程。
1 引言
數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)是指一類具有專門為完成數(shù)字信號(hào)處理任務(wù)而優(yōu)化設(shè)計(jì)的系統(tǒng)體系結(jié)構(gòu)、硬件和軟件資源的單片可編程處理器件。數(shù)字信號(hào)處理器是實(shí)現(xiàn)數(shù)字信號(hào)處理任務(wù)的一個(gè)重要而有效的手段,隨著通信和信息技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理器件在最近20年得到了空前的發(fā)展和應(yīng)用。
MATLAB是美國(guó)MathWorks公司開發(fā)的一種科學(xué)計(jì)算軟件,專門以矩陣的形式處理數(shù)據(jù),在科學(xué)計(jì)算、控制系統(tǒng)、信息處理等多種領(lǐng)域有著廣泛的應(yīng)用。
MATLAB具有強(qiáng)大的計(jì)算、分析和可視化功能,但MATLAB語言是解釋執(zhí)行的,執(zhí)行速度較慢;而DSP是為了完成實(shí)時(shí)數(shù)字信號(hào)處理任務(wù)而設(shè)計(jì)的,算法的高效實(shí)現(xiàn)是DSP器件的顯著特點(diǎn),但是其開發(fā)門檻高。如果能把MATLAB和DSP開發(fā)工具結(jié)合在一起,取長(zhǎng)補(bǔ)短,相輔相成,將是DSP設(shè)計(jì)人員夢(mèng)寐以求的一種新的開發(fā)思想。MathWorks公司和TI公司聯(lián)合開發(fā)的MATLAB Link for Code Composer Studio(簡(jiǎn)稱CCSLink)和Embedded Target for TI TMS320C6000 DSP工具正是這一思想的完美實(shí)現(xiàn)。
本文所作研究是以自行研制的DSP教學(xué)實(shí)驗(yàn)箱為平臺(tái)進(jìn)行的,其DSP采用TMS320VC5416芯片實(shí)現(xiàn)。本文內(nèi)容安排如下:第1部分在介紹相關(guān)背景知識(shí)的基礎(chǔ)上,引入使用MATLAB輔助DSP設(shè)計(jì)的思想;第2部分介紹了MATALB中實(shí)現(xiàn)這一思想的兩種工具;第3部分介紹了工具之一CCSLink的實(shí)現(xiàn)方式及工作原理;第4部分結(jié)合實(shí)驗(yàn)平臺(tái)給出了CCSLink的應(yīng)用實(shí)例。第五部分對(duì)本文作了總結(jié)。
2 MATLAB輔助DSP設(shè)計(jì)的方法概述
實(shí)現(xiàn)MATLAB輔助DSP設(shè)計(jì)的方法有兩種,即CCSLink和Embedded Target for TI TMS320C6000 DSP。前者可實(shí)現(xiàn)MATLAB與C2000/C5000/C6000 DSP之間的數(shù)據(jù)交互和程序控制;后者可實(shí)現(xiàn)從Simulink模型自動(dòng)生成DSP目標(biāo)代碼,但僅支持C6000系列的部分DSP器件。
考慮到實(shí)驗(yàn)平臺(tái)是以C5000 DSP為基礎(chǔ)的,并且第二種工具較容易操作等因素,下面主要研究利用CCSLink輔助DSP設(shè)計(jì)的方法。
2.1 Embedded Target for TI TMS320C6000 DSP
Code Composer Studio(CCS)是TI提供的DSP的集成開發(fā)環(huán)境。
對(duì)于C6000系列而言,利用工具Embedded Target for TI TMS320C6000 DSP,用戶可以從Simulink模型直接生成針對(duì)DSP目標(biāo)板的可執(zhí)行文件或者CCS工程文件,實(shí)現(xiàn)了MATLAB/Simulink與CCS集成開發(fā)環(huán)境(IDE)的無縫連接,從而把設(shè)計(jì)人員從繁雜的DSP編程中解脫出來,將主要的精力放在設(shè)計(jì)而不是DSP編程上,所以極大地縮短了系統(tǒng)的測(cè)試和開發(fā)周期,進(jìn)而保證了所設(shè)計(jì)系統(tǒng)的高性能。
2.2 MATLAB Link for Code Composer Studio
集成在MATLAB6.5或更高版本中的CCSLink工具把MATLAB、TI DSP及其集成開發(fā)環(huán)境CCS連接在一起,使得我們可以在MATLAB環(huán)境下就可以完成對(duì)CCS和DSP目標(biāo)板的操作,包括與目標(biāo)內(nèi)存之間的數(shù)據(jù)交互,檢測(cè)處理器的狀態(tài),控制DSP程序的運(yùn)行等。它提供了MATLAB、CCS和目標(biāo)DSP板的雙向連接,開發(fā)者可以利用MATLAB中強(qiáng)大的可視化、數(shù)據(jù)處理和分析工具對(duì)DSP中的數(shù)據(jù)進(jìn)行分析和再處理,以輔助DSP系統(tǒng)設(shè)計(jì),這樣就極大地降低了開發(fā)人員編寫DSP代碼的難度和工作量,提高了整個(gè)DSP系統(tǒng)的性能和可行性。
我們利用CCSLink提供的相關(guān)函數(shù)能夠?qū)崿F(xiàn)MATLAB與目標(biāo)DSP的存儲(chǔ)器及寄存器間的信息交互,如同操作MATLAB變量一樣來讀、寫TI DSP中的存儲(chǔ)器或寄存器,即整個(gè)目標(biāo)DSP對(duì)于MATLAB而言是透明的。CCSLink支持TI的C2000/C5000/C6000等多系列DSP,應(yīng)用廣泛。
3 CCSLink的實(shí)現(xiàn)方式及工作原理
3.1 CCSLink的實(shí)現(xiàn)方式
利用CCSLink即可實(shí)現(xiàn)MATLAB、CCS和目標(biāo)DSP之間的信息交互。CCSLink共提供了3種實(shí)現(xiàn)方式:
1)使用與CCS IDE的連接對(duì)象。利用此對(duì)象來創(chuàng)建CCS IDE和MATLAB的連接,從MATLAB命令窗中即可運(yùn)行CCS IDE中的應(yīng)用程序,查詢目標(biāo)DSP的狀態(tài)信息,修改或讀取目標(biāo)DSP的存儲(chǔ)器或寄存器中的數(shù)據(jù),甚至可以調(diào)試DSP程序。其工作原理見3.2節(jié)。
2)使用與RTDX(Real-Time Data Exchange)的連接對(duì)象。提供MATLAB和硬件DSP 之間的實(shí)時(shí)通信通道。利用此連接對(duì)象,可以打開、使能、關(guān)閉或禁止DSP的RTDX通道,利用此通道可以實(shí)時(shí)地向硬件目標(biāo)DSP發(fā)送和取出數(shù)據(jù)而不必停止DSP上運(yùn)行的程序。例如把原始數(shù)據(jù)發(fā)送給程序進(jìn)行處理,并把處理結(jié)果取回到MATLAB空間中進(jìn)行分析。
RTDX連接對(duì)象實(shí)際上是CCS連接對(duì)象的一個(gè)子類,在創(chuàng)建CCS連接對(duì)象的同時(shí)創(chuàng)建RTDX連接對(duì)象,它們不能分別創(chuàng)建。
3)使用嵌入式對(duì)象。在MATLAB環(huán)境中創(chuàng)建一個(gè)可以代表嵌入在目標(biāo)C程序中的變量的對(duì)象。利用嵌入式對(duì)象可直接訪問嵌入在目標(biāo)DSP中的存儲(chǔ)器和寄存器中的變量,即把目標(biāo)C程序中的變量作為MATLAB的一個(gè)變量對(duì)待。
3.2 CCSLink的工作原理
上面的三種方式在具體實(shí)現(xiàn)時(shí)略有不同,但是其原理相似,不失一般性,我們通過第一種方式——與CCS IDE的連接對(duì)象,來介紹CCSLink的工作機(jī)理。
1)選擇目標(biāo)DSP并創(chuàng)建CCS IDE連接對(duì)象
在MATLAB環(huán)境下使用函數(shù)ccsdsp并配置相應(yīng)的屬性名和屬性值即可創(chuàng)建一個(gè)CCS IDE連接對(duì)象cc:
cc=ccsdsp(‘boardnum’, x, ‘procnum’, y, ‘timeout’, z);
其中,boardnum、procnum、timeout都是屬性名。分別表示創(chuàng)建連接對(duì)象時(shí)所使用的目標(biāo)板編號(hào)、DSP處理器編號(hào)及全局超時(shí)值。
2)在MATLAB環(huán)境下加載CCS工程文件
projfile=fullfile(matlabroot, ‘toolbox’, ‘tiddk’, …, ‘ccsproject.pjt’); %取得工程文件
projpath = fileparts(projfile); %取得工程文件路徑
open(cc, projfile); %加載工程文件,該函數(shù)實(shí)現(xiàn)把文件filename加載在CCS IDE中
cd(cc, projpath); %改變CCS的工作路徑
3)在MATLAB環(huán)境下編譯、連接并下載可執(zhí)行文件
創(chuàng)建了CCS IDE連接對(duì)象并加載工程文件后,即可通過函數(shù)build()編譯和鏈接工程文件,以生成針對(duì)目標(biāo)DSP的可執(zhí)行文件(.out文件);通過函數(shù)load()下載可執(zhí)行文件到目標(biāo)DSP中。
具體方法如下:
build(cc); %編譯、鏈接工程文件,生成目標(biāo)DSP可執(zhí)行文件
load(cc, ‘ccsproject.out’); %下載可執(zhí)行文件到目標(biāo)DSP,可執(zhí)行文件名與工程名相同
4)在MATLAB環(huán)境下控制程序運(yùn)行
CCSLink提供了3個(gè)函數(shù)用于控制目標(biāo)DSP的運(yùn)行狀態(tài)。通過這些函數(shù),在MATLAB下對(duì)DSP的控制操作就像在CCS IDE中一樣方便,實(shí)際上也確實(shí)是這樣進(jìn)行的。
halt(cc); %中斷處理器的運(yùn)行
restart(cc); %復(fù)位程序計(jì)數(shù)器PC,重新執(zhí)行程序
run(cc, ‘runtohalt’, 30); %執(zhí)行程序到斷點(diǎn)處,最后一個(gè)參數(shù)表示超時(shí)時(shí)間,此處為30s
5)在MATLAB環(huán)境下對(duì)CCS IDE連接對(duì)象進(jìn)行操作
在MATLAB中可以方便的操作DSP存儲(chǔ)器和寄存器中的數(shù)據(jù),包括讀操作和寫操作。下面以讀寫目標(biāo)DSP存儲(chǔ)器和寄存器中的數(shù)據(jù)來說明。
date=read(cc, [256,0], ‘double’, 100); %從目標(biāo)存儲(chǔ)器目的地址100H(即十進(jìn)制數(shù)256)處開始,讀取100個(gè)雙精度數(shù)并賦給MATLAB對(duì)象date
reg=regread(cc, ‘A0’, ‘2scomp’); %讀取DSP寄存器A0中的數(shù)據(jù),并轉(zhuǎn)化成雙精度數(shù)分配給MATLAB對(duì)象reg
write(cc, [256,0], double([1.0 2.0 3.0]));%向目標(biāo)存儲(chǔ)器100H開始的地址處,寫入三個(gè)雙精度數(shù)據(jù)
6)關(guān)閉CCS IDE連接對(duì)象
當(dāng)一切操作執(zhí)行完成后,需要?jiǎng)h除ccsdsp對(duì)象,以收回系統(tǒng)資源。
clear cc; %關(guān)閉CCS IDE連接對(duì)象
4 CCSLink應(yīng)用實(shí)例
通過CCSLink工具,可以使用MATLAB來進(jìn)行DSP的輔助設(shè)計(jì)。在此以FIR濾波器為例,介紹CCSLink在DSP設(shè)計(jì)中的應(yīng)用。在該實(shí)例中,F(xiàn)IR濾波的核心內(nèi)容由DSP實(shí)現(xiàn),而算法仿真、系數(shù)產(chǎn)生、用戶界面、結(jié)果驗(yàn)證等部分由MATLAB輔助完成。
4.1 FIR濾波器設(shè)計(jì)
設(shè)輸入信號(hào)為x(n),輸出信號(hào)為y(n),則FIR濾波器對(duì)應(yīng)的差分方程可表示為:
其中,h(k)(k=0,1,2,…,N-1)表示濾波器系數(shù)序列,是濾波器設(shè)計(jì)的關(guān)鍵。h(k)可以通過MATLAB工具箱提供的濾波器函數(shù)fir1()和fir2()來獲?。菏紫韧ㄟ^建立MATLAB/Simulink模型,根據(jù)所需設(shè)計(jì)低通濾波器的性能要求來確定濾波器的階數(shù)和截止頻率等參數(shù)。本例所設(shè)計(jì)的FIR低通濾波器參數(shù)為:截止頻率(Fc)2kHz,采樣頻率(Fs)8kHz,階數(shù)(N)40。然后借助函數(shù)fir1(N, WN)即可返回對(duì)應(yīng)濾波器的系數(shù)矩陣,其中N為階數(shù),WN為濾波器的歸一化截止頻率,即WN= 2Fc/Fs,且0≤WN≤1。
4.2 DSP濾波算法實(shí)現(xiàn)
結(jié)合MATLAB產(chǎn)生的濾波器系數(shù),就可以編寫DSP濾波主程序了,關(guān)鍵代碼如下:
FIR_TASK:
STM #K_FIR_BFFR, BK ; 設(shè)置FIR循環(huán)緩沖區(qū)的大小
LD *INBUF_P+, -1, A ; 數(shù)據(jù)輸入
FIR_FILTER:
STL A, *FIR_DATA_P+% ; 最新數(shù)據(jù)替代最舊數(shù)據(jù)
RPTZ A, (K_FIR_BFFR-1)
MAC *FIR_DATA_P+0%, *FIR_COFF_P+0%, A ; 乘累加
STH A,*OUTBUF_P ; 數(shù)據(jù)輸出
4.3 MATLAB輔助設(shè)計(jì)
本設(shè)計(jì)中,算法仿真、系數(shù)產(chǎn)生、用戶界面等部分由MATLAB輔助完成。算法仿真、系數(shù)產(chǎn)生方法在4.1中已詳細(xì)介紹,本節(jié)重點(diǎn)介紹用戶界面部分。本圖形用戶界面可以實(shí)現(xiàn)如下功能:修改參數(shù),如濾波參數(shù)n和Wn,這種參數(shù)選取方法避免了反復(fù)修改DSP程序的弊端,可以滿足不同層次使用者的使用;控制操作過程,如加載工程文件、下載可執(zhí)行文件、運(yùn)行程序等;繪制DSP輸入數(shù)據(jù)的時(shí)域及頻域信號(hào);繪制濾波后DSP輸出數(shù)據(jù)的時(shí)域及頻域信號(hào);使用MATLAB提供的濾波函數(shù)對(duì)輸入數(shù)據(jù)進(jìn)行濾波計(jì)算,并把所得結(jié)果與DSP輸出信號(hào)進(jìn)行比較,以驗(yàn)證或改良DSP算法。
用戶界面的流程圖如圖1所示,主要由圖形界面和回調(diào)函數(shù)兩大部分組成。其中,圖形界面由文件FIR_BPF.m實(shí)現(xiàn);回調(diào)函數(shù)總共由6個(gè)文件實(shí)現(xiàn),分別是input.m,input2.m,output.m,output2.m,lvbopin.m和lvbohou.m。
當(dāng)輸入帶有干擾的方波信號(hào)后,分別查看輸入波形、MATLAB濾波輸出信號(hào)、DSP濾波輸出信號(hào),結(jié)果如圖2所示。比較MATLAB濾波輸出信號(hào)和DSP濾波輸出信號(hào),據(jù)此可以采用修改濾波器系數(shù)或DSP程序等措施來改進(jìn)DSP濾波算法。
圖1 用戶圖形界面流程圖
圖2 實(shí)驗(yàn)結(jié)果
5 結(jié)束語
本文探索并實(shí)現(xiàn)了利用CCSLink輔助DSP設(shè)計(jì)的完整過程。同時(shí)以FIR濾波器為例,利用CCSLink輔助設(shè)計(jì)了基于DSP TMS320VC5416的應(yīng)用系統(tǒng),該系統(tǒng)具有靈活的參數(shù)設(shè)置和快速的處理效率,很好地達(dá)到了輔助DSP設(shè)計(jì)的目的;再者,利用MATLAB的GUI工具設(shè)計(jì)了相應(yīng)的圖形用戶界面,便于不同技術(shù)層次的用戶操作,增強(qiáng)了DSP系統(tǒng)的適用性。
本文作者創(chuàng)新點(diǎn):1.發(fā)展了利用MATLAB輔助DSP設(shè)計(jì)的思想,把DSP系統(tǒng)設(shè)計(jì)中的算法仿真、系數(shù)產(chǎn)生、結(jié)果驗(yàn)證、用戶界面等環(huán)節(jié)交由MATLAB完成,實(shí)現(xiàn)了二者的無縫連接。2.通過MATLAB設(shè)計(jì)的人機(jī)界面,增強(qiáng)了DSP系統(tǒng)的適用性,便于不同技術(shù)層次的用戶操作。
?
最后結(jié)合典型的FIR濾波器實(shí)例,探討了使用該工具的方法,并設(shè)計(jì)了圖形用戶界面。結(jié)果表明應(yīng)用MATLAB輔助開發(fā)DSP系統(tǒng)可以發(fā)揮二者的優(yōu)勢(shì),縮短開發(fā)周期,降低開發(fā)門檻,優(yōu)化開發(fā)過程。
1 引言
數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)是指一類具有專門為完成數(shù)字信號(hào)處理任務(wù)而優(yōu)化設(shè)計(jì)的系統(tǒng)體系結(jié)構(gòu)、硬件和軟件資源的單片可編程處理器件。數(shù)字信號(hào)處理器是實(shí)現(xiàn)數(shù)字信號(hào)處理任務(wù)的一個(gè)重要而有效的手段,隨著通信和信息技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理器件在最近20年得到了空前的發(fā)展和應(yīng)用。
MATLAB是美國(guó)MathWorks公司開發(fā)的一種科學(xué)計(jì)算軟件,專門以矩陣的形式處理數(shù)據(jù),在科學(xué)計(jì)算、控制系統(tǒng)、信息處理等多種領(lǐng)域有著廣泛的應(yīng)用。
MATLAB具有強(qiáng)大的計(jì)算、分析和可視化功能,但MATLAB語言是解釋執(zhí)行的,執(zhí)行速度較慢;而DSP是為了完成實(shí)時(shí)數(shù)字信號(hào)處理任務(wù)而設(shè)計(jì)的,算法的高效實(shí)現(xiàn)是DSP器件的顯著特點(diǎn),但是其開發(fā)門檻高。如果能把MATLAB和DSP開發(fā)工具結(jié)合在一起,取長(zhǎng)補(bǔ)短,相輔相成,將是DSP設(shè)計(jì)人員夢(mèng)寐以求的一種新的開發(fā)思想。MathWorks公司和TI公司聯(lián)合開發(fā)的MATLAB Link for Code Composer Studio(簡(jiǎn)稱CCSLink)和Embedded Target for TI TMS320C6000 DSP工具正是這一思想的完美實(shí)現(xiàn)。
本文所作研究是以自行研制的DSP教學(xué)實(shí)驗(yàn)箱為平臺(tái)進(jìn)行的,其DSP采用TMS320VC5416芯片實(shí)現(xiàn)。本文內(nèi)容安排如下:第1部分在介紹相關(guān)背景知識(shí)的基礎(chǔ)上,引入使用MATLAB輔助DSP設(shè)計(jì)的思想;第2部分介紹了MATALB中實(shí)現(xiàn)這一思想的兩種工具;第3部分介紹了工具之一CCSLink的實(shí)現(xiàn)方式及工作原理;第4部分結(jié)合實(shí)驗(yàn)平臺(tái)給出了CCSLink的應(yīng)用實(shí)例。第五部分對(duì)本文作了總結(jié)。
2 MATLAB輔助DSP設(shè)計(jì)的方法概述
實(shí)現(xiàn)MATLAB輔助DSP設(shè)計(jì)的方法有兩種,即CCSLink和Embedded Target for TI TMS320C6000 DSP。前者可實(shí)現(xiàn)MATLAB與C2000/C5000/C6000 DSP之間的數(shù)據(jù)交互和程序控制;后者可實(shí)現(xiàn)從Simulink模型自動(dòng)生成DSP目標(biāo)代碼,但僅支持C6000系列的部分DSP器件。
考慮到實(shí)驗(yàn)平臺(tái)是以C5000 DSP為基礎(chǔ)的,并且第二種工具較容易操作等因素,下面主要研究利用CCSLink輔助DSP設(shè)計(jì)的方法。
2.1 Embedded Target for TI TMS320C6000 DSP
Code Composer Studio(CCS)是TI提供的DSP的集成開發(fā)環(huán)境。
對(duì)于C6000系列而言,利用工具Embedded Target for TI TMS320C6000 DSP,用戶可以從Simulink模型直接生成針對(duì)DSP目標(biāo)板的可執(zhí)行文件或者CCS工程文件,實(shí)現(xiàn)了MATLAB/Simulink與CCS集成開發(fā)環(huán)境(IDE)的無縫連接,從而把設(shè)計(jì)人員從繁雜的DSP編程中解脫出來,將主要的精力放在設(shè)計(jì)而不是DSP編程上,所以極大地縮短了系統(tǒng)的測(cè)試和開發(fā)周期,進(jìn)而保證了所設(shè)計(jì)系統(tǒng)的高性能。
2.2 MATLAB Link for Code Composer Studio
集成在MATLAB6.5或更高版本中的CCSLink工具把MATLAB、TI DSP及其集成開發(fā)環(huán)境CCS連接在一起,使得我們可以在MATLAB環(huán)境下就可以完成對(duì)CCS和DSP目標(biāo)板的操作,包括與目標(biāo)內(nèi)存之間的數(shù)據(jù)交互,檢測(cè)處理器的狀態(tài),控制DSP程序的運(yùn)行等。它提供了MATLAB、CCS和目標(biāo)DSP板的雙向連接,開發(fā)者可以利用MATLAB中強(qiáng)大的可視化、數(shù)據(jù)處理和分析工具對(duì)DSP中的數(shù)據(jù)進(jìn)行分析和再處理,以輔助DSP系統(tǒng)設(shè)計(jì),這樣就極大地降低了開發(fā)人員編寫DSP代碼的難度和工作量,提高了整個(gè)DSP系統(tǒng)的性能和可行性。
我們利用CCSLink提供的相關(guān)函數(shù)能夠?qū)崿F(xiàn)MATLAB與目標(biāo)DSP的存儲(chǔ)器及寄存器間的信息交互,如同操作MATLAB變量一樣來讀、寫TI DSP中的存儲(chǔ)器或寄存器,即整個(gè)目標(biāo)DSP對(duì)于MATLAB而言是透明的。CCSLink支持TI的C2000/C5000/C6000等多系列DSP,應(yīng)用廣泛。
3 CCSLink的實(shí)現(xiàn)方式及工作原理
3.1 CCSLink的實(shí)現(xiàn)方式
利用CCSLink即可實(shí)現(xiàn)MATLAB、CCS和目標(biāo)DSP之間的信息交互。CCSLink共提供了3種實(shí)現(xiàn)方式:
1)使用與CCS IDE的連接對(duì)象。利用此對(duì)象來創(chuàng)建CCS IDE和MATLAB的連接,從MATLAB命令窗中即可運(yùn)行CCS IDE中的應(yīng)用程序,查詢目標(biāo)DSP的狀態(tài)信息,修改或讀取目標(biāo)DSP的存儲(chǔ)器或寄存器中的數(shù)據(jù),甚至可以調(diào)試DSP程序。其工作原理見3.2節(jié)。
2)使用與RTDX(Real-Time Data Exchange)的連接對(duì)象。提供MATLAB和硬件DSP 之間的實(shí)時(shí)通信通道。利用此連接對(duì)象,可以打開、使能、關(guān)閉或禁止DSP的RTDX通道,利用此通道可以實(shí)時(shí)地向硬件目標(biāo)DSP發(fā)送和取出數(shù)據(jù)而不必停止DSP上運(yùn)行的程序。例如把原始數(shù)據(jù)發(fā)送給程序進(jìn)行處理,并把處理結(jié)果取回到MATLAB空間中進(jìn)行分析。
RTDX連接對(duì)象實(shí)際上是CCS連接對(duì)象的一個(gè)子類,在創(chuàng)建CCS連接對(duì)象的同時(shí)創(chuàng)建RTDX連接對(duì)象,它們不能分別創(chuàng)建。
3)使用嵌入式對(duì)象。在MATLAB環(huán)境中創(chuàng)建一個(gè)可以代表嵌入在目標(biāo)C程序中的變量的對(duì)象。利用嵌入式對(duì)象可直接訪問嵌入在目標(biāo)DSP中的存儲(chǔ)器和寄存器中的變量,即把目標(biāo)C程序中的變量作為MATLAB的一個(gè)變量對(duì)待。
3.2 CCSLink的工作原理
上面的三種方式在具體實(shí)現(xiàn)時(shí)略有不同,但是其原理相似,不失一般性,我們通過第一種方式——與CCS IDE的連接對(duì)象,來介紹CCSLink的工作機(jī)理。
1)選擇目標(biāo)DSP并創(chuàng)建CCS IDE連接對(duì)象
在MATLAB環(huán)境下使用函數(shù)ccsdsp并配置相應(yīng)的屬性名和屬性值即可創(chuàng)建一個(gè)CCS IDE連接對(duì)象cc:
cc=ccsdsp(‘boardnum’, x, ‘procnum’, y, ‘timeout’, z);
其中,boardnum、procnum、timeout都是屬性名。分別表示創(chuàng)建連接對(duì)象時(shí)所使用的目標(biāo)板編號(hào)、DSP處理器編號(hào)及全局超時(shí)值。
2)在MATLAB環(huán)境下加載CCS工程文件
projfile=fullfile(matlabroot, ‘toolbox’, ‘tiddk’, …, ‘ccsproject.pjt’); %取得工程文件
projpath = fileparts(projfile); %取得工程文件路徑
open(cc, projfile); %加載工程文件,該函數(shù)實(shí)現(xiàn)把文件filename加載在CCS IDE中
cd(cc, projpath); %改變CCS的工作路徑
3)在MATLAB環(huán)境下編譯、連接并下載可執(zhí)行文件
創(chuàng)建了CCS IDE連接對(duì)象并加載工程文件后,即可通過函數(shù)build()編譯和鏈接工程文件,以生成針對(duì)目標(biāo)DSP的可執(zhí)行文件(.out文件);通過函數(shù)load()下載可執(zhí)行文件到目標(biāo)DSP中。
具體方法如下:
build(cc); %編譯、鏈接工程文件,生成目標(biāo)DSP可執(zhí)行文件
load(cc, ‘ccsproject.out’); %下載可執(zhí)行文件到目標(biāo)DSP,可執(zhí)行文件名與工程名相同
4)在MATLAB環(huán)境下控制程序運(yùn)行
CCSLink提供了3個(gè)函數(shù)用于控制目標(biāo)DSP的運(yùn)行狀態(tài)。通過這些函數(shù),在MATLAB下對(duì)DSP的控制操作就像在CCS IDE中一樣方便,實(shí)際上也確實(shí)是這樣進(jìn)行的。
halt(cc); %中斷處理器的運(yùn)行
restart(cc); %復(fù)位程序計(jì)數(shù)器PC,重新執(zhí)行程序
run(cc, ‘runtohalt’, 30); %執(zhí)行程序到斷點(diǎn)處,最后一個(gè)參數(shù)表示超時(shí)時(shí)間,此處為30s
5)在MATLAB環(huán)境下對(duì)CCS IDE連接對(duì)象進(jìn)行操作
在MATLAB中可以方便的操作DSP存儲(chǔ)器和寄存器中的數(shù)據(jù),包括讀操作和寫操作。下面以讀寫目標(biāo)DSP存儲(chǔ)器和寄存器中的數(shù)據(jù)來說明。
date=read(cc, [256,0], ‘double’, 100); %從目標(biāo)存儲(chǔ)器目的地址100H(即十進(jìn)制數(shù)256)處開始,讀取100個(gè)雙精度數(shù)并賦給MATLAB對(duì)象date
reg=regread(cc, ‘A0’, ‘2scomp’); %讀取DSP寄存器A0中的數(shù)據(jù),并轉(zhuǎn)化成雙精度數(shù)分配給MATLAB對(duì)象reg
write(cc, [256,0], double([1.0 2.0 3.0]));%向目標(biāo)存儲(chǔ)器100H開始的地址處,寫入三個(gè)雙精度數(shù)據(jù)
6)關(guān)閉CCS IDE連接對(duì)象
當(dāng)一切操作執(zhí)行完成后,需要?jiǎng)h除ccsdsp對(duì)象,以收回系統(tǒng)資源。
clear cc; %關(guān)閉CCS IDE連接對(duì)象
4 CCSLink應(yīng)用實(shí)例
通過CCSLink工具,可以使用MATLAB來進(jìn)行DSP的輔助設(shè)計(jì)。在此以FIR濾波器為例,介紹CCSLink在DSP設(shè)計(jì)中的應(yīng)用。在該實(shí)例中,F(xiàn)IR濾波的核心內(nèi)容由DSP實(shí)現(xiàn),而算法仿真、系數(shù)產(chǎn)生、用戶界面、結(jié)果驗(yàn)證等部分由MATLAB輔助完成。
4.1 FIR濾波器設(shè)計(jì)
設(shè)輸入信號(hào)為x(n),輸出信號(hào)為y(n),則FIR濾波器對(duì)應(yīng)的差分方程可表示為:
其中,h(k)(k=0,1,2,…,N-1)表示濾波器系數(shù)序列,是濾波器設(shè)計(jì)的關(guān)鍵。h(k)可以通過MATLAB工具箱提供的濾波器函數(shù)fir1()和fir2()來獲?。菏紫韧ㄟ^建立MATLAB/Simulink模型,根據(jù)所需設(shè)計(jì)低通濾波器的性能要求來確定濾波器的階數(shù)和截止頻率等參數(shù)。本例所設(shè)計(jì)的FIR低通濾波器參數(shù)為:截止頻率(Fc)2kHz,采樣頻率(Fs)8kHz,階數(shù)(N)40。然后借助函數(shù)fir1(N, WN)即可返回對(duì)應(yīng)濾波器的系數(shù)矩陣,其中N為階數(shù),WN為濾波器的歸一化截止頻率,即WN= 2Fc/Fs,且0≤WN≤1。
4.2 DSP濾波算法實(shí)現(xiàn)
結(jié)合MATLAB產(chǎn)生的濾波器系數(shù),就可以編寫DSP濾波主程序了,關(guān)鍵代碼如下:
FIR_TASK:
STM #K_FIR_BFFR, BK ; 設(shè)置FIR循環(huán)緩沖區(qū)的大小
LD *INBUF_P+, -1, A ; 數(shù)據(jù)輸入
FIR_FILTER:
STL A, *FIR_DATA_P+% ; 最新數(shù)據(jù)替代最舊數(shù)據(jù)
RPTZ A, (K_FIR_BFFR-1)
MAC *FIR_DATA_P+0%, *FIR_COFF_P+0%, A ; 乘累加
STH A,*OUTBUF_P ; 數(shù)據(jù)輸出
4.3 MATLAB輔助設(shè)計(jì)
本設(shè)計(jì)中,算法仿真、系數(shù)產(chǎn)生、用戶界面等部分由MATLAB輔助完成。算法仿真、系數(shù)產(chǎn)生方法在4.1中已詳細(xì)介紹,本節(jié)重點(diǎn)介紹用戶界面部分。本圖形用戶界面可以實(shí)現(xiàn)如下功能:修改參數(shù),如濾波參數(shù)n和Wn,這種參數(shù)選取方法避免了反復(fù)修改DSP程序的弊端,可以滿足不同層次使用者的使用;控制操作過程,如加載工程文件、下載可執(zhí)行文件、運(yùn)行程序等;繪制DSP輸入數(shù)據(jù)的時(shí)域及頻域信號(hào);繪制濾波后DSP輸出數(shù)據(jù)的時(shí)域及頻域信號(hào);使用MATLAB提供的濾波函數(shù)對(duì)輸入數(shù)據(jù)進(jìn)行濾波計(jì)算,并把所得結(jié)果與DSP輸出信號(hào)進(jìn)行比較,以驗(yàn)證或改良DSP算法。
用戶界面的流程圖如圖1所示,主要由圖形界面和回調(diào)函數(shù)兩大部分組成。其中,圖形界面由文件FIR_BPF.m實(shí)現(xiàn);回調(diào)函數(shù)總共由6個(gè)文件實(shí)現(xiàn),分別是input.m,input2.m,output.m,output2.m,lvbopin.m和lvbohou.m。
當(dāng)輸入帶有干擾的方波信號(hào)后,分別查看輸入波形、MATLAB濾波輸出信號(hào)、DSP濾波輸出信號(hào),結(jié)果如圖2所示。比較MATLAB濾波輸出信號(hào)和DSP濾波輸出信號(hào),據(jù)此可以采用修改濾波器系數(shù)或DSP程序等措施來改進(jìn)DSP濾波算法。
圖1 用戶圖形界面流程圖
圖2 實(shí)驗(yàn)結(jié)果
5 結(jié)束語
本文探索并實(shí)現(xiàn)了利用CCSLink輔助DSP設(shè)計(jì)的完整過程。同時(shí)以FIR濾波器為例,利用CCSLink輔助設(shè)計(jì)了基于DSP TMS320VC5416的應(yīng)用系統(tǒng),該系統(tǒng)具有靈活的參數(shù)設(shè)置和快速的處理效率,很好地達(dá)到了輔助DSP設(shè)計(jì)的目的;再者,利用MATLAB的GUI工具設(shè)計(jì)了相應(yīng)的圖形用戶界面,便于不同技術(shù)層次的用戶操作,增強(qiáng)了DSP系統(tǒng)的適用性。
本文作者創(chuàng)新點(diǎn):1.發(fā)展了利用MATLAB輔助DSP設(shè)計(jì)的思想,把DSP系統(tǒng)設(shè)計(jì)中的算法仿真、系數(shù)產(chǎn)生、結(jié)果驗(yàn)證、用戶界面等環(huán)節(jié)交由MATLAB完成,實(shí)現(xiàn)了二者的無縫連接。2.通過MATLAB設(shè)計(jì)的人機(jī)界面,增強(qiáng)了DSP系統(tǒng)的適用性,便于不同技術(shù)層次的用戶操作。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于MATLAB平臺(tái)的DSP嵌入式應(yīng)用程序設(shè)計(jì)的研究總結(jié)
- 基于MATLAB平臺(tái)的DSP嵌入式應(yīng)用程序設(shè)計(jì)的研究簡(jiǎn)介
- 系統(tǒng)仿真及其Matlab實(shí)現(xiàn) 27次下載
- LMS自適應(yīng)濾波器的MATLAB仿真和DSP實(shí)現(xiàn) 64次下載
- 基于MATLAB的DSP控制系統(tǒng)仿真平臺(tái)設(shè)計(jì)方案 20次下載
- DSP系統(tǒng)程序遠(yuǎn)程更新的研究與實(shí)現(xiàn) 10次下載
- 如何在DSP芯片上實(shí)現(xiàn)Matlab的仿真算法 33次下載
- Matlab教程之Matlab安裝教程和如何使用Matlab生成DSP C6748可用的算法 20次下載
- Matlab輔助DSP圖像處理開發(fā) 25次下載
- 一種基于Matlab的DSP開發(fā)思路的研究 5次下載
- 基于MATLAB平臺(tái)的DSP嵌入式應(yīng)用程序設(shè)計(jì)的研究 5次下載
- 基于DSP開發(fā)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 7次下載
- 基于MATLAB平臺(tái)的DSP控制系統(tǒng)仿真技術(shù)研究 15次下載
- MATLAB平臺(tái)的DSP嵌入式應(yīng)用程序設(shè)計(jì)的研究 7次下載
- 融合DSP設(shè)計(jì)與FPGA硬件實(shí)現(xiàn) 225次下載
- ZEMAX與MATLAB動(dòng)態(tài)數(shù)據(jù)交換及其應(yīng)用 907次閱讀
- 基于DSP技術(shù)和USB通信技術(shù)相結(jié)合實(shí)現(xiàn)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì) 4852次閱讀
- 基于DSP+FPGA實(shí)現(xiàn)的TL6678F-EasyEVM開發(fā)板的介紹 3834次閱讀
- C和匯編代碼結(jié)合 是實(shí)現(xiàn)DSP軟件設(shè)計(jì)的最好方式 2723次閱讀
- 基于Matlab/RTW實(shí)現(xiàn)實(shí)時(shí)仿真與嵌入式系統(tǒng)開發(fā)設(shè)計(jì) 4541次閱讀
- 基于FPGA和DSP的噴油器霧化粒徑測(cè)量系統(tǒng)的設(shè)計(jì) 1918次閱讀
- 基于DSP的穩(wěn)定平臺(tái)伺服系統(tǒng)的設(shè)計(jì)研究 2542次閱讀
- 基于Matlab/Simulink的二階控制系統(tǒng)仿真研究 4.1w次閱讀
- 基于Matlab的FIR帶通濾波器設(shè)計(jì)與實(shí)現(xiàn) 2.9w次閱讀
- 基于DSP CCS2.2實(shí)現(xiàn)指紋識(shí)別預(yù)處理系統(tǒng) 1956次閱讀
- 基于以太網(wǎng)的DSP遠(yuǎn)程加載技術(shù)研究 1399次閱讀
- Ladon DSP/SOC開發(fā)平臺(tái) 1223次閱讀
- DSP開發(fā)注意問題 785次閱讀
- 基于現(xiàn)代DSP技術(shù)的QPSK調(diào)制器的設(shè)計(jì) 2154次閱讀
- 電網(wǎng)調(diào)度微機(jī)開票系統(tǒng)的研究和開發(fā) 590次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1489次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 91次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識(shí)別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 9次下載 | 免費(fèi)
- 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
- 7基于單片機(jī)和 SG3525的程控開關(guān)電源設(shè)計(jì)
- 0.23 MB | 3次下載 | 免費(fèi)
- 8基于單片機(jī)的紅外風(fēng)扇遙控
- 0.23 MB | 3次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30319次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評(píng)論
查看更多