摘 要:本文介紹了一種DSP軟件快速開發(fā)方法。該方法以Mathworks公司的MATLAB為核心,聯(lián)合TI公司的CCS IDE編譯器,以及瑞士Technosoft公司的DMC Developer Pro作為實(shí)驗(yàn)平臺,實(shí)現(xiàn)DSP代碼的快速開發(fā),從而實(shí)現(xiàn)了設(shè)計(jì)階段和實(shí)現(xiàn)階段的無縫連接,使開發(fā)周期極大的縮短。
關(guān)鍵字:Matlab;DSP;RTW
中圖分類號:TP332
數(shù)字信號處理器(DSPs)以其低功耗、高性能著稱,芯片處理速度快,最新的DSPs技術(shù)的運(yùn)算速度可達(dá)μm級,因此,被廣泛的應(yīng)用到機(jī)電、數(shù)控、能源等領(lǐng)域。為了提高DSPs系統(tǒng)的開發(fā)效率,如何高效的開發(fā)DSP程序成了DSP應(yīng)用的關(guān)鍵問題。匯編語言和C語言是常用的DSPs系統(tǒng)開發(fā)工具,此種方式代碼效率高、程序執(zhí)行速度快,但是這兩種語言難于上手,對于初學(xué)者很難掌握,而且不同生產(chǎn)廠商的芯片指令不同,所以如果采用匯編語言來開發(fā)DSP程序,一般開發(fā)周期較長,軟件維護(hù)及升級困難,而且可移植性較差[1]。針對上述問題,本文將MATLAB的Real Time Workshop(RTW)與TI的MATLAB Link for Code Composer Studio(CCSLink)結(jié)合,最后在MATLAB與CCSLink結(jié)合的測試平臺上對實(shí)際系統(tǒng)進(jìn)行硬件在環(huán)調(diào)試。
1 DSPs系統(tǒng)設(shè)計(jì)
DSPs系統(tǒng)設(shè)計(jì)如圖1所示,主要包括三種方法:(1)異步調(diào)用,在MATLAB環(huán)境中創(chuàng)建CCS的連接對象。此對象實(shí)現(xiàn)CCS和MATLAB的連接,從MATLAB命令窗中就可以運(yùn)行CCS中的應(yīng)用程序,查詢目標(biāo)DSPs的狀態(tài)信息,修改或讀取目標(biāo)DSPs的存儲器或寄存器中的數(shù)據(jù)。(2)調(diào)試模式,在MATLAB環(huán)境中創(chuàng)建嵌入的變量的對象。此嵌入式對象可直接訪問嵌入在目標(biāo)DSPs中的存儲器和寄存器中的變量,即把目標(biāo)C程序中的變量作為MATLAB的一個(gè)變量對待,可以調(diào)試DSPs程序。(3)同步調(diào)用,在MATLAB環(huán)境中創(chuàng)建RTDX連接對象,此對象提供MATLAB和DSPs之間的實(shí)時(shí)通信通道,此通道可以向DSPs發(fā)送數(shù)據(jù)的同時(shí),不必停止DSPs上運(yùn)行的程序,并把處理結(jié)果取回到MATLAB空間中進(jìn)行分析。
2 設(shè)計(jì)代碼
DSPs系統(tǒng)代碼設(shè)計(jì)過程如圖2所示,主要包括三個(gè)過程:
(1)模型設(shè)計(jì),在Simulink環(huán)境下根據(jù)系統(tǒng)需求設(shè)計(jì)模型。
(2)代碼生成,代碼生成是由很多軟件聯(lián)合完成的,CCSLink、RTW、Embedded Target for TI C2000 DSP,生成的程序代碼可以直接傳到DSPs目標(biāo)控制板上。
(3)代碼調(diào)試,在MATLAB環(huán)境下,代碼調(diào)試過程變得簡單,調(diào)試過程在MATLAB圖形化的界面幫助下,很容易跟蹤變量及查看寄存器狀態(tài)。三個(gè)過程不是絕對劃分,而是一個(gè)反復(fù)螺旋上升的過程,調(diào)試過程中出現(xiàn)的問題,通過重新的模型設(shè)計(jì)調(diào)整,不斷地優(yōu)化模型。
3 實(shí)例分析
下面我們將通過一個(gè)簡單的異步電動(dòng)機(jī)的交流伺服系統(tǒng)的實(shí)現(xiàn)來看一下如何實(shí)現(xiàn)DSP軟件的快速開發(fā)。此系統(tǒng)實(shí)現(xiàn)簡單的伺服電機(jī)控制功能,該系統(tǒng)是由電流環(huán)和位置環(huán)構(gòu)成的雙閉環(huán)系統(tǒng),系統(tǒng)的電流環(huán)控制器采用PI控制,位置環(huán)控制器采用PD控制。圖3和圖4為該交流伺服控制系統(tǒng)的應(yīng)用流程,直觀地展示了從軟件設(shè)計(jì)到軟件調(diào)試的整個(gè)過程。開發(fā)步驟如下:
(1)系統(tǒng)模型搭建如圖3,使用各種組件及參數(shù)設(shè)置。開發(fā)者在MATLAB/Simulink圖形化建模和仿真環(huán)境中,非常簡單的完成了系統(tǒng)的設(shè)計(jì)。
(2)代碼生成,在控制系統(tǒng)模型中選擇某一模塊,利用RTW中 Build Subsystem功能,即把該模塊生成相應(yīng)的C/C++代碼。
(3)DSP代碼的修改與調(diào)試如圖4,在MATLAB/Simulink中生成的C/C++代碼下載到DMC Developer Pro IDE平臺,在實(shí)際的數(shù)字控制板中進(jìn)行在環(huán)調(diào)試運(yùn)行。
4 結(jié)束語
本文采用基于MATLAB結(jié)合CCSLink的DSP軟件開發(fā)方法,充分發(fā)揮了MATLAB圖形化工作界面,易于操作的特點(diǎn),將以前不易實(shí)現(xiàn)的仿真調(diào)試環(huán)節(jié),放到MATLAB中實(shí)現(xiàn)。該方法不僅極大的縮短了開發(fā)時(shí)間,同時(shí)使得開發(fā)者更多的關(guān)注系統(tǒng)的性能及應(yīng)用價(jià)值,把工作重點(diǎn)從編程轉(zhuǎn)移到對系統(tǒng)的設(shè)計(jì)上面來,可以縮短從實(shí)驗(yàn)室設(shè)計(jì)階段轉(zhuǎn)化為工業(yè)應(yīng)用階段的時(shí)間。
參考文獻(xiàn):
[1]劉思久,孫瑩,趙蔚.基于MATLAB/RTW的控制系統(tǒng)一體化設(shè)計(jì)方法[J].哈爾濱理工大學(xué)學(xué)報(bào),2004(05).
[2]許儒泉,高雪清.基于Matlab的DSP系統(tǒng)級的設(shè)計(jì)方法[J].現(xiàn)代電子技術(shù),2004(15).
[3]武曉光,丁新宇.利用Matlab和Simulink對DSP進(jìn)行系統(tǒng)級的設(shè)計(jì)方法[J].電子設(shè)計(jì)應(yīng)用,2003(03).
[4]耶曉東.基于Matlab的IIR數(shù)字濾波器設(shè)計(jì)及DSP實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2011(05).
作者簡介:侯金平,(1975-),女,教師,主要從事計(jì)算機(jī)及網(wǎng)絡(luò)方面的實(shí)驗(yàn)教學(xué)工作。
作者單位:遼寧盤錦大洼高級中學(xué),遼寧盤錦 124200;鞍山變壓器有限公司,遼寧鞍山 114000