以文本方式查看主題 - 曙海教育集團(tuán)論壇 (http://www.hufushizhe.com/bbs/index.asp) -- DSP2000技術(shù)討論 (http://www.hufushizhe.com/bbs/list.asp?boardid=27) ---- 一種基于Matlab的DSP調(diào)試及直接代碼生成方法 (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=27&id=1569) |
||||||
-- 作者:wangxinxin -- 發(fā)布時(shí)間:2010-11-20 13:17:56 -- 一種基于Matlab的DSP調(diào)試及直接代碼生成方法 Matlab作為一種有效的信號(hào)處理工具,已經(jīng)滲透到DSP的設(shè)計(jì)當(dāng)中。開(kāi)發(fā)者在將一個(gè)新的數(shù)字信號(hào)處理算法應(yīng)用于實(shí)際前,一般是先用Matlab進(jìn)行模擬驗(yàn)證,當(dāng)模擬結(jié)果滿意時(shí)再把算法修改成C或DSP匯編語(yǔ)言通過(guò)CCS在目標(biāo)DSP上實(shí)現(xiàn),并比較實(shí)際應(yīng)用與模擬的結(jié)果以發(fā)現(xiàn)誤差,如此反復(fù)進(jìn)行。在較新版本的Matlab(6.0以上)中提供了Matlab與DSP的統(tǒng)一集成環(huán)境后,眾多學(xué)者對(duì)Matlab環(huán)境下的DSP調(diào)試進(jìn)行了研究。文獻(xiàn)[2-4]從CCSLink的角度出發(fā),對(duì)Matlab環(huán)境下的DSP調(diào)試進(jìn)行了原理及思路上的闡述,但均未涉及到直接代碼生成。本文在介紹CCSLink的連接對(duì)象、嵌入式對(duì)象和RTDX對(duì)象的基礎(chǔ)上,詳細(xì)闡述Simulink環(huán)境下的直接代碼生成。 1 CCSLink及ETTIC2000概述 Matlab具有強(qiáng)大的分析、計(jì)算和可視化功能,但處理速度慢;DSP具有快速的信號(hào)處理能力,但是其CCS的編譯環(huán)境中數(shù)據(jù)可編輯和分析能力不如Matlab;而MathWorks公司和TI公司聯(lián)合開(kāi)發(fā)的Matlab Linkfor CCS Development Tools(CCSLink)和EmbeddedTarget for the TI TMS320C2000 DSP Platform(ETTIC2000),CCSLink提供了Matlab和CCS的接口,能把Matlab和TI CCS及目標(biāo)DSP連接起來(lái)。利用此工具可以像操作Matlab變量一樣來(lái)操作TI DSP的存儲(chǔ)器或寄存器。CCSLink支持CCS能夠識(shí)別的任何目標(biāo)板(C200,C5000,C600),此工具用于DSP程序的調(diào)試過(guò)程。而CCSLink與ETTIC2000的配合使用,可直接由Matlab的Simulink模型生成TIC2000DSP的可執(zhí)行代碼,能在集成、統(tǒng)一的Matlab環(huán)境下完成DSP的整個(gè)開(kāi)發(fā)過(guò)程。 2 CCSLink環(huán)境下的DSP調(diào)試 CCSLink向用戶提供了3個(gè)組件內(nèi)容,如圖1所示。
2.1 CCSLink的接口對(duì)象 2.1.1 CCS IDE的連接對(duì)象 該對(duì)象支持TI的C2000/5000/6000系列DSP,利用此對(duì)象可創(chuàng)建CCS IDE和Matlab的連接。用戶可以編寫(xiě)用于DSP程序的Matlab語(yǔ)言批處理腳本,從Matlab的命令窗中直接運(yùn)行CCS IDE中的應(yīng)用程序,向硬件DSP的存儲(chǔ)器或寄存器發(fā)送或取出數(shù)據(jù),檢查DSP的狀態(tài),停止或啟動(dòng)程序在DSP中的運(yùn)行。 2.1.2 與RTDX的連接對(duì)象 該對(duì)象提供Matlab和硬件DSP之間的實(shí)時(shí)通信通道。它允許用戶在主機(jī)和目標(biāo)板之間進(jìn)行實(shí)時(shí)的數(shù)據(jù)交換而不用考慮目標(biāo)程序的運(yùn)行。RTDX連接對(duì)象實(shí)際上是CCS連接對(duì)象的一個(gè)子類,在創(chuàng)建CCS連接對(duì)象的同時(shí)創(chuàng)建RTDX連接對(duì)象,它們不能分別創(chuàng)建。 2.1.3 嵌入式對(duì)象 在Matlab環(huán)境中創(chuàng)建一個(gè)可以代表嵌入在目標(biāo)C程序中的變量的對(duì)象。利用嵌入式對(duì)象可直接訪問(wèn)嵌入在目標(biāo)DSP的存儲(chǔ)器和寄存器中的變量,即把目標(biāo)C程序中的變量作為Matlab的一個(gè)變量來(lái)對(duì)待,并把編輯后的信息反返回到DSP程序中。所有這些操作均在Matlab環(huán)境下完成。 2.2 CCS IDE連接對(duì)象應(yīng)用 CCS IDE連接對(duì)象提供Matlab與CCS IDE和目標(biāo)DSP的連接,利用此連接可以在Matlab環(huán)境中控制和操作DSP中的應(yīng)用程序;利用Matlab中強(qiáng)大的計(jì)算、分析和可視化工具來(lái)分析和對(duì)比目標(biāo)程序運(yùn)行過(guò)程中的結(jié)果;而嵌入式對(duì)象則提供Matlab對(duì)DSP內(nèi)存中的變量進(jìn)行實(shí)時(shí)訪問(wèn)和控制,這樣大大縮短嵌入式應(yīng)用程序的開(kāi)發(fā)調(diào)試周期。本文以運(yùn)行具體程序說(shuō)明調(diào)試過(guò)程。源程序PWM.pjt保存在Matlab根目錄下的project文件下。
從上述程序可知,在Matlab環(huán)境下可以完成對(duì)CCS工程文件的調(diào)入、編譯,生成可執(zhí)行文件并將其加載到DSP目標(biāo)板。并且可以通過(guò)相應(yīng)的連接對(duì)象和嵌入式對(duì)象操作函數(shù),實(shí)現(xiàn)在DSP硬件不停止執(zhí)行程序的情況下對(duì)DSP的C語(yǔ)言程序中數(shù)據(jù)結(jié)構(gòu)變量的讀寫(xiě)修改。 3 ETTIC2000環(huán)境下的直接代碼生成 由第2節(jié)中可知,CCSLink為TI DSP實(shí)時(shí)應(yīng)用開(kāi)發(fā)的調(diào)試和測(cè)試階段提供了強(qiáng)大的支持,而ETTIC2000則為TI C2000 DSP實(shí)時(shí)應(yīng)用開(kāi)發(fā)的整個(gè)過(guò)程(概念設(shè)計(jì)、算法仿真、源代碼編寫(xiě)、目標(biāo)代碼生成、調(diào)試和測(cè)試)都提供了支持。利用ETTIC2000能夠從Sireulink模型自動(dòng)生成TI(22000 DSP的可執(zhí)行代碼,并且為TI LF2407 EVM目標(biāo)板上的I/O設(shè)備提供驅(qū)動(dòng)代碼,使得MINULINK模型可以直接在LF2407EVM板上進(jìn)行實(shí)時(shí)測(cè)試,從而在Simulink統(tǒng)一環(huán)境下就可以實(shí)現(xiàn)整個(gè)硬件在線仿真。 3.1 ETTIC2000應(yīng)用開(kāi)發(fā)過(guò)程 應(yīng)用ETTIC2000開(kāi)發(fā)實(shí)時(shí)DSP處理的過(guò)翟如下: (1)概念構(gòu)思和DSP處理算法設(shè)計(jì); (2)在Simulink環(huán)境下,利用DSP BLOCKSET,F(xiàn)IXED-POINT BLOCKSET,C2000 DSPLIB和Simulink等庫(kù)中的模塊構(gòu)建算法模型,并在Simulink環(huán)境下進(jìn)行仿真; (3)如果Simulink仿真效果滿意,就可以在模型中加入需要的LF2407 EVM目標(biāo)板上的I/O模塊; (4)設(shè)置REAL-TIME WORKSHOP中的編譯鏈接(BUILD)選項(xiàng); (5)利用CCS中的調(diào)試工具、CCSLink或RTDX來(lái)調(diào)試目標(biāo)DSP中的程序; REAL-TIME WORKSHOP能夠從Simulink模型中自動(dòng)產(chǎn)生C代碼并且插入ADC和DAC模塊指定的I/O設(shè)備驅(qū)動(dòng)程序。再通過(guò)REAL-TIME WORKSHOP面板上的BUILD按鈕,REAL-TIME WORKSHOP會(huì)自動(dòng)產(chǎn)生實(shí)時(shí)可執(zhí)行代碼。 3.2 建立Simulink模型 由前述連接對(duì)象可知,系統(tǒng)已經(jīng)正確安裝了TIC2000系列DSP目標(biāo)板。在Matlab命令窗口輸入:C2000LIB,打開(kāi)TIC2000的Simulink模塊庫(kù),其模型庫(kù)組成如圖2所示。本系統(tǒng)采用2407目標(biāo)板,因此只用到C2000 Target Preferences和C2400 DSP ChipSupport等模塊。本文以脈寬調(diào)制中A/D采樣控制為例,其建立的Simulink模型如圖3所示。
3.3 REAL-TIME WORKSHOP選項(xiàng)設(shè)置 建立好Simulink模型后,設(shè)置其屬性,生成CCS可執(zhí)行的工程文件。 在Simulink模型窗口選擇Simulation下拉菜單中選擇Configuration Parameters,彈出如圖4所示對(duì)話框。在屬性對(duì)話框中單擊Real-Time Workshop選項(xiàng)卡,在Category欄中選中Target configuration修改System target file和Template make file文件名。其他選擇默認(rèn)值,單擊Generate Code,就可以將Simulink模型自動(dòng)生成CCS IDE的工程文件,并自動(dòng)調(diào)入CCSIDE中,則該工程文件就可以在CCS IDE中編譯下載運(yùn)行。其生成的工程文件在CCS IDE環(huán)境下的載人情況如圖5所示。
在直接代碼生成時(shí),Matlab命令窗口返回信息如下:
至此,代碼生成并在CCS IDE中編譯完畢。 4 結(jié) 語(yǔ) 本文基于Matlab環(huán)境對(duì)DSP的實(shí)時(shí)調(diào)試及直接代碼生成過(guò)程做了詳細(xì)的闡述,并結(jié)合實(shí)例給予演示。實(shí)驗(yàn)證明,應(yīng)用Matlab對(duì)DSP進(jìn)行實(shí)時(shí)調(diào)試和代碼生成,有效地改變了傳統(tǒng)的設(shè)計(jì)方法。Matlab的易于操作性有助于在設(shè)計(jì)早期發(fā)現(xiàn)錯(cuò)誤并進(jìn)行實(shí)時(shí)更改。而CCSLINK與ETTIC2000的結(jié)合,使得在集成、統(tǒng)一的Matlab環(huán)境下完成DSP開(kāi)發(fā)的整個(gè)過(guò)程. |