Matlab作為一種有效的信號處理工具,已經滲透到DSP的設計當中。開發者在將一個新的數字信號處理算法應用于實際前,一般是先用Matlab進行模擬驗證,當模擬結果滿意時再把算法修改成C或DSP匯編語言通過CCS在目標DSP上實現,并比較實際應用與模擬的結果以發現誤差,如此反復進行。在較新版本的Matlab(6.0以上)中提供了Matlab與DSP的統一集成環境后,眾多學者對Matlab環境下的DSP調試進行了研究。從CCSLink的角度出發,對Matlab環境下的DSP調試進行了原理及思路上的闡述,但均未涉及到直接代碼生成。本文在介紹CCSLink的連接對象、嵌入式對象和RTDX對象的基礎上,詳細闡述Simulink環境下的直接代碼生成。
1 CCSLink及ETTIC2000概述
Matlab具有強大的分析、計算和可視化功能,但處理速度慢;DSP具有快速的信號處理能力,但是其CCS的編譯環境中數據可編輯和分析能力不如Matlab;而MathWorks公司和TI公司聯合開發的Matlab Linkfor CCS Development Tools(CCSLink)和EmbeddedTarget for the TI TMS320C2000 DSP Platform(ETTIC2000),CCSLink提供了Matlab和CCS的接口,能把Matlab和TI CCS及目標DSP連接起來。利用此工具可以像操作Matlab變量一樣來操作TI DSP的存儲器或寄存器。CCSLink支持CCS能夠識別的任何目標板(C200,C5000,C600),此工具用于DSP程序的調試過程。而CCSLink與ETTIC2000的配合使用,可直接由Matlab的Simulink模型生成TIC2000DSP的可執行代碼,能在集成、統一的Matlab環境下完成DSP的整個開發過程。
2 CCSLink環境下的DSP調試
CCSLink向用戶提供了3個組件內容,如圖1所示。
2.1 CCSLink的接口對象
2.1.1 CCS IDE的連接對象
該對象支持TI的C2000/5000/6000系列DSP,利用此對象可創建CCS IDE和Matlab的連接。用戶可以編寫用于DSP程序的Matlab語言批處理腳本,從Matlab的命令窗中直接運行CCS IDE中的應用程序,向硬件DSP的存儲器或寄存器發送或取出數據,檢查DSP的狀態,停止或啟動程序在DSP中的運行。
2.1.2 與RTDX的連接對象
該對象提供Matlab和硬件DSP之間的實時通信通道。它允許用戶在主機和目標板之間進行實時的數據交換而不用考慮目標程序的運行。RTDX連接對象實際上是CCS連接對象的一個子類,在創建CCS連接對象的同時創建RTDX連接對象,它們不能分別創建。
2.1.3 嵌入式對象
在Matlab環境中創建一個可以代表嵌入在目標C程序中的變量的對象。利用嵌入式對象可直接訪問嵌入在目標DSP的存儲器和寄存器中的變量,即把目標C程序中的變量作為Matlab的一個變量來對待,并把編輯后的信息反返回到DSP程序中。所有這些操作均在Matlab環境下完成。
2.2 CCS IDE連接對象應用
CCS IDE連接對象提供Matlab與CCS IDE和目標DSP的連接,利用此連接可以在Matlab環境中控制和操作DSP中的應用程序;利用Matlab中強大的計算、分析和可視化工具來分析和對比目標程序運行過程中的結果;而嵌入式對象則提供Matlab對DSP內存中的變量進行實時訪問和控制,這樣大大縮短嵌入式應用程序的開發調試周期。本文以運行具體程序說明調試過程。源程序PWM.pjt保存在Matlab根目錄下的project文件下。
從上述程序可知,在Matlab環境下可以完成對CCS工程文件的調入、編譯,生成可執行文件并將其加載到DSP目標板。并且可以通過相應的連接對象和嵌入式對象操作函數,實現在DSP硬件不停止執行程序的情況下對DSP的C語言程序中數據結構變量的讀寫修改。
3 ETTIC2000環境下的直接代碼生成
由第2節中可知,CCSLink為TI DSP實時應用開發的調試和測試階段提供了強大的支持,而ETTIC2000則為TI C2000 DSP實時應用開發的整個過程(概念設計、算法仿真、源代碼編寫、目標代碼生成、調試和測試)都提供了支持。利用ETTIC2000能夠從Sireulink模型自動生成TI(22000 DSP的可執行代碼,并且為TI LF2407 EVM目標板上的I/O設備提供驅動代碼,使得MINULINK模型可以直接在LF2407EVM板上進行實時測試,從而在Simulink統一環境下就可以實現整個硬件在線仿真。
3.1 ETTIC2000應用開發過程
應用ETTIC2000開發實時DSP處理的過翟如下:
(1)概念構思和DSP處理算法設計;
(2)在Simulink環境下,利用DSP BLOCKSET,FIXED-POINT BLOCKSET,C2000 DSPLIB和Simulink等庫中的模塊構建算法模型,并在Simulink環境下進行仿真;
(3)如果Simulink仿真效果滿意,就可以在模型中加入需要的LF2407 EVM目標板上的I/O模塊;
(4)設置REAL-TIME WORKSHOP中的編譯鏈接(BUILD)選項;
(5)利用CCS中的調試工具、CCSLink或RTDX來調試目標DSP中的程序;
REAL-TIME WORKSHOP能夠從Simulink模型中自動產生C代碼并且插入ADC和DAC模塊指定的I/O設備驅動程序。再通過REAL-TIME WORKSHOP面板上的BUILD按鈕,REAL-TIME WORKSHOP會自動產生實時可執行代碼。
3.2 建立Simulink模型
由前述連接對象可知,系統已經正確安裝了TIC2000系列DSP目標板。在Matlab命令窗口輸入:C2000LIB,打開TIC2000的Simulink模塊庫,其模型庫組成如圖2所示。本系統采用2407目標板,因此只用到C2000 Target Preferences和C2400 DSP ChipSupport等模塊。本文以脈寬調制中A/D采樣控制為例,其建立的Simulink模型如圖3所示。
3.3 REAL-TIME WORKSHOP選項設置
建立好Simulink模型后,設置其屬性,生成CCS可執行的工程文件。
在Simulink模型窗口選擇Simulation下拉菜單中選擇Configuration Parameters,彈出如圖4所示對話框。在屬性對話框中單擊Real-Time Workshop選項卡,在Category欄中選中Target configuration修改System target file和Template make file文件名。其他選擇默認值,單擊Generate Code,就可以將Simulink模型自動生成CCS IDE的工程文件,并自動調入CCSIDE中,則該工程文件就可以在CCS IDE中編譯下載運行。其生成的工程文件在CCS IDE環境下的載人情況如圖5所示。
在直接代碼生成時,Matlab命令窗口返回信息如下:
至此,代碼生成并在CCS IDE中編譯完畢。
4 結 語
本文基于Matlab環境對DSP的實時調試及直接代碼生成過程做了詳細的闡述,并結合實例給予演示。實驗證明,應用Matlab對DSP進行實時調試和代碼生成,有效地改變了傳統的設計方法。Matlab的易于操作性有助于在設計早期發現錯誤并進行實時更改。而CCSLINK與ETTIC2000的結合,使得在集成、統一的Matlab環境下完成DSP開發的整個過程。
-
dsp
+關注
關注
554文章
8058瀏覽量
349646 -
matlab
+關注
關注
185文章
2980瀏覽量
230753 -
調試
+關注
關注
7文章
587瀏覽量
34017 -
代碼
+關注
關注
30文章
4813瀏覽量
68844
發布評論請先 登錄
相關推薦
評論