王成
西安航空學(xué)院電氣學(xué)院, 陜西 西安 710077
Mathworks公司與TI公司聯(lián)合開發(fā)的Matlab Link for CCS Development Tools,提供了Matlab與CCS的接口,即把Matlab與TI CCS即目標(biāo)DSP連接起來。Matlab Link for CCS Development Tools作為工具箱被集成在Matlab中,利用此工具箱可以像操作Matlab變量一樣來操作 DSP寄存器[1]。
TMS320C28x是到目前為止用于數(shù)字控制領(lǐng)域性能最好的D5P芯片。這種芯片采用32位的定點(diǎn)DSP核,可以在單個(gè)指令周期內(nèi)完成32×32位的乘累加運(yùn)算,具有增強(qiáng)的電機(jī)控制外設(shè),高性能的模/數(shù)轉(zhuǎn)換能力和改進(jìn)的通信接口,采用低電壓供電(3.3v外設(shè)/1.8vCPU核),與TMS320C24x源代碼兼容。TMS320F2812芯片具有較高的性能和適用于控制領(lǐng)域的功能,廣泛應(yīng)用于工業(yè)自動(dòng)化、電機(jī)控制等領(lǐng)域[2]。本文以SEED-DSK2812開發(fā)板作為硬件工具。
首先根據(jù)系統(tǒng)的設(shè)計(jì)要求,在Matlab/Simulink 平臺(tái)下搭建系統(tǒng)模型,仿真實(shí)現(xiàn)后,通過Matlab 提供的Real Time Workshop 生成面向DSP 編譯器的工程文件代碼,并進(jìn)一步完成代碼的編譯、鏈接生成DSP可執(zhí)行文件,最后下載到目標(biāo)DSP 開發(fā)板上運(yùn)行,完成系統(tǒng)的開發(fā)。
上述開發(fā)過程全部在Matlab//Simulink環(huán)境下進(jìn)行,開發(fā)人員不需編寫程序代碼,只需利用Matlab/Simulink 的模塊完成系統(tǒng)設(shè)計(jì)即可。而且在系統(tǒng)設(shè)計(jì)過程可對(duì)系統(tǒng)進(jìn)行實(shí)時(shí)仿真驗(yàn)證,保證系統(tǒng)設(shè)計(jì)的正確性[3]。
為驗(yàn)證CCS Link是否安裝正確,打開matlab,在命令窗中鍵入命令help ccslink,如CCSLink安裝正確,命令窗即顯示產(chǎn)品信息,如圖1所示。
圖1 CCS Link安裝信息
驗(yàn)證CCS是否在主機(jī)系統(tǒng)安裝并合理配置,在Matlab命令窗鍵入命令ccsboardinfo,如CCS已安裝并合理配置,則命令窗即顯示產(chǎn)品信息,如圖2所示。
圖2 CCS安裝配置圖
TMS320F2812 ADC模塊是一個(gè)12位分辨率、具有流水線結(jié)構(gòu)的模數(shù)轉(zhuǎn)換器,具有16個(gè)通道,可配置為2個(gè)獨(dú)立的8通道模塊,也可級(jí)聯(lián)成一個(gè)16通道的模塊。本例通過使用ADC模塊進(jìn)行采樣的模擬電壓,并產(chǎn)生一個(gè)PWM的脈沖波形,并通過輸入的模擬電壓來控制PWM輸出波形的占空比。
TMS320F2812 ADC模塊表示連接到選定模塊輸入引腳的信號(hào),并進(jìn)行模擬量到數(shù)字量的轉(zhuǎn)換。該ADC塊的輸出為模擬輸入信號(hào)的數(shù)字值,并且將轉(zhuǎn)換后的值存儲(chǔ)在結(jié)果寄存器中。本例中可以使用此塊捕獲和數(shù)字化輸入的模擬信號(hào),應(yīng)用DSP 單序列發(fā)生器,外部輸入來自可調(diào)電壓信號(hào),接入DSP模數(shù)轉(zhuǎn)換輸入引腳ADCINB0引腳。
TMS320F2812 包含用于生成信號(hào)的脈沖寬度調(diào)制器。其能夠提供選項(xiàng)來設(shè)定事件管理器A或時(shí)間管理器B的生成所需波形。每個(gè)事件管理器在同一時(shí)刻可產(chǎn)生8個(gè)PWM的波形輸出,通過帶有可編程死區(qū)的3個(gè)全比較單元可單獨(dú)產(chǎn)生3對(duì)輸出;通過GP定時(shí)器的比較功能可產(chǎn)生兩個(gè)單獨(dú)的PWM。本例選擇事件管理器B作為PWM信號(hào)輸出。設(shè)計(jì)思路流程如圖3所示。
圖3 ADC控制PWM輸出設(shè)計(jì)圖
Matlab/Simulink 模型搭建如圖4所示
圖4中Pulse Generator模塊可設(shè)置輸出信號(hào)參數(shù),通過調(diào)整ADC的輸入電壓值,可使輸出的PWM信號(hào)占空比隨之發(fā)生變化,但PWM信號(hào)的周期保持不變。如圖5所示,分別產(chǎn)生占空比分別為50%和75%的PWM信號(hào)。
圖4 ADC控制PWM占空比模型圖
圖5 ADC控制PWM輸出波形圖
當(dāng)Matlab/Simulink 模型仿真實(shí)現(xiàn)后,在Real-Time Workshop 界面,選擇系統(tǒng)目標(biāo)為ccslink_ert.tlc,選擇語言為C語言,再點(diǎn)擊generate code 按鈕。如圖6所示。
圖6 DSP代碼生成圖
Matlab 將根據(jù)設(shè)置自動(dòng)生成DSP 工程文件自動(dòng)連接打開CCS 開發(fā)環(huán)境,并且對(duì)C 語言代碼進(jìn)行編譯、鏈接,下載到目標(biāo)板。通過觀察Matlab命令窗可知,代碼的生成過程中建立了DSP工程文件,其中包括:源文件、庫文件、輸出文件等[4]。如圖7所示。
圖7 DSP生成文件圖
將輸入電壓連接到ADC輸入ADCINA0的管腳,電路設(shè)計(jì)框圖如圖8所示。
圖8 硬件電路連接框圖
利用示波器觀察PWM1管腳波形,通過不斷調(diào)整ADC模塊電壓輸入值,可觀察到PWM1管腳輸出波形按照設(shè)定進(jìn)行變化??煞謩e生成占空比為50%和占空比為75%的PWM波形,如圖9所示。證明由Simulink模型DSP生成代碼正確,達(dá)到設(shè)計(jì)要求。
圖9 DSP芯片PWM輸出波形圖
通過以上示例,驗(yàn)證了利用Matlab/Simulink 搭建模型并直接生成DSP代碼開發(fā)方法。通過此方法,開發(fā)人員僅通過Matlab/Simulink搭建系統(tǒng)模型,利用Matlab Link for CCS Development Tools工具箱,即可實(shí)現(xiàn)DSP系統(tǒng)的開發(fā)過程,不但減輕了開發(fā)人員的工作負(fù)擔(dān),提高了工作效率,還可以實(shí)現(xiàn)更加復(fù)雜的控制算法,具有很強(qiáng)的實(shí)用意義。
[1]李真芳,蘇濤,黃小宇. DSP程序開發(fā)-Matlab調(diào)試及直接目標(biāo)代碼生成[M ]. 西安:西安電子科技大學(xué)出版社, 2003
[2]王忠勇,陳恩慶. TMS320F2812 DSP原理與應(yīng)用技術(shù)[M ]. 北京: 電子工業(yè)出版社, 2012
[3]齊星剛,趙剛,李原. 在Matlab/ Simulink 平臺(tái)上DSP 代碼的自動(dòng)生成[J]. 中國(guó)測(cè)試技術(shù),2005 ,31 (1) : 87-88.
[4]盧小錦,曾岳南. 基于Matlab/ Simulink 的TMS320F2812代碼開發(fā)[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009,2:79-81