嵌入式目標(biāo)模塊在DSP系統(tǒng)開(kāi)發(fā)中的應(yīng)用
隨著電子技術(shù)的不斷進(jìn)步,特別是3C(計(jì)算機(jī)、通信、消費(fèi)電子)的飛速發(fā)展,電子設(shè)備日趨數(shù)字化、小型化和集成化,嵌入式芯片逐漸成為設(shè)計(jì)開(kāi)發(fā)人員的首選。DSP作為嵌入式芯片的典型代表之一,在信息產(chǎn)業(yè)領(lǐng)域得到了廣泛應(yīng)用。
DSP雖然為3C產(chǎn)品的開(kāi)發(fā)提供了很好的硬件支撐平臺(tái),但設(shè)計(jì)者仍得花費(fèi)一定的時(shí)間去掌握DSP內(nèi)部各種寄存器的正確設(shè)置、軟件編程方法以及控制算法設(shè)計(jì),這必然會(huì)增大產(chǎn)品開(kāi)發(fā)難度,延長(zhǎng)產(chǎn)品開(kāi)發(fā)周期,從而影響開(kāi)發(fā)效率。Matlab公司最新推出的針對(duì)DSP應(yīng)用控制系統(tǒng)而開(kāi)發(fā)的嵌入式目標(biāo)模塊Embedded Target for TI C2000 DSP即可解決上述問(wèn)題,用戶通過(guò)使用該模塊,不僅可以進(jìn)行電路的系統(tǒng)級(jí)仿真,還可編譯生成相應(yīng)的C語(yǔ)言代碼,并下載到目標(biāo)板,直接運(yùn)行程序,進(jìn)行算法的探索與設(shè)計(jì)思路的驗(yàn)證,提高開(kāi)發(fā)效率。
應(yīng)用流程
作為一種專用的集成開(kāi)發(fā)環(huán)境,Matlab公司最新推出的Embedded Target for TI C2000 DSP 開(kāi)發(fā)平臺(tái)能夠讓設(shè)計(jì)人員直接進(jìn)行(半)實(shí)物仿真、算法的探索與研究,以及產(chǎn)品可靠性的驗(yàn)證,從而有效地減少了設(shè)計(jì)開(kāi)發(fā)過(guò)程中的消耗,加快了原型開(kāi)發(fā)的速度。該平臺(tái)有如下幾個(gè)優(yōu)點(diǎn):
1) 在TI C2000 DSP 上自動(dòng)測(cè)試、執(zhí)行Simulink仿真模型;
2) 提供模塊化的系統(tǒng)和功能,比如PWM、ADC、CAN以及目標(biāo)板載內(nèi)存等;
3) 生成文檔化的易讀可編輯的C語(yǔ)言代碼,并生成Code Composer Studio項(xiàng)目文件;
4) 在F2407 eZdsp評(píng)估板和F2812 eZdsp評(píng)估板上進(jìn)行自動(dòng)化實(shí)時(shí)測(cè)試;
5) 對(duì)TI推出的IQmath Library提供模塊化的支持,可以用于仿真和代碼生成;
6) 可以進(jìn)行定點(diǎn)系統(tǒng)的設(shè)計(jì)、仿真、自動(dòng)定標(biāo)和代碼生成工作。
Embedded Target for TI C2000 DSP提供了將MATLAB和Simulink與TI eXpressDSP工具、TI C2000 DSP控制器集成在一起進(jìn)行系統(tǒng)開(kāi)發(fā)的手段。通過(guò)Real-Time Workshop和TI的開(kāi)發(fā)工具將Simulink模型轉(zhuǎn)變?yōu)閷?shí)時(shí)C代碼,這樣就可以利用這些產(chǎn)品在TI C2000 DSP系統(tǒng)上(如F2812 eZds評(píng)估板和F2407 eZdsp評(píng)估板等)實(shí)現(xiàn)自動(dòng)代碼生成、產(chǎn)品原型和嵌入式系統(tǒng)實(shí)現(xiàn),并可實(shí)時(shí)進(jìn)行算法驗(yàn)證,極大地提高了開(kāi)發(fā)效率。另外,該模塊還有強(qiáng)大的可擴(kuò)充能力,用戶可以增加自己的代碼、中斷服務(wù)程序、IO設(shè)備驅(qū)動(dòng)到CCS(Code Composer Studio)的工程項(xiàng)目中,這樣就可以直接驅(qū)動(dòng)自行開(kāi)發(fā)研制的控制板卡或第三方的硬件設(shè)備板卡,完成產(chǎn)品的設(shè)計(jì)。采用該平臺(tái),開(kāi)發(fā)人員不用編寫一行代碼,就可以完成幾乎所有設(shè)計(jì)、仿真和編程下載的工作,整個(gè)開(kāi)發(fā)流程如圖1所示。
圖1 Embedded Target for TI C2000應(yīng)用流程示意圖
Embedded Target for TI C2000 DSP應(yīng)用實(shí)例
下面以一個(gè)基于DSP TMS320F2812芯片的帶CAN2.0B網(wǎng)絡(luò)接口的數(shù)字逆變控制器的設(shè)計(jì)為例,介紹利用Embedded Target for TI C2000 DSP模塊,與Matlab的Simulink產(chǎn)品中的其他模塊結(jié)合,實(shí)現(xiàn)對(duì)該逆變控制器進(jìn)行仿真和編程下載的應(yīng)用。
數(shù)字式逆變器采用單相半橋逆變結(jié)構(gòu),逆變控制器核心芯片選用TMS320F2812,輸出兩路SPWM,EXB841模塊作為SPWM信號(hào)的驅(qū)動(dòng)放大器,控制開(kāi)關(guān)采用全控器件IGBT,輸入電壓311V,輸出電壓為100V(有效值),開(kāi)關(guān)頻率為10kHz,逆變輸出電壓頻率為50Hz。逆變控制器的系統(tǒng)原理及接口框圖如圖2所示,逆變系統(tǒng)的電流和電壓通過(guò)電壓霍爾傳感器和電流采樣電路分別檢測(cè)出來(lái),送入模擬信號(hào)處理電路中進(jìn)行模擬濾波處理和幅值調(diào)整,處理后的信號(hào)送入DSP芯片之中,經(jīng)過(guò)DSP片內(nèi)的12位A/D轉(zhuǎn)換模塊,變?yōu)閿?shù)字信號(hào),DSP對(duì)信號(hào)進(jìn)行數(shù)字濾波后,判斷單相半橋的輸出電壓、電流是否過(guò)壓或過(guò)流,并采取相應(yīng)的保護(hù)措施;再根據(jù)控制算法進(jìn)行處理,通過(guò)DSP片內(nèi)的PWM輸出模塊,得到所需要的兩路SPWM波形信號(hào),經(jīng)過(guò)EXB841驅(qū)動(dòng)放大模塊進(jìn)行處理,最后對(duì)IGBT逆變半橋進(jìn)行
圖2 DSP逆變控制器接口示意圖
C語(yǔ)言項(xiàng)目框架圖
如圖3所示,系統(tǒng)利用A/D轉(zhuǎn)換模塊,將采集到的逆變電流和電壓作為SPWM輸出的控制源。并通過(guò)CAN通道1將A/D轉(zhuǎn)換值以及PWM輸出占空比輸送出來(lái),同時(shí)還可以通過(guò)CAN通道0接收來(lái)自于網(wǎng)絡(luò)上的通信命令,執(zhí)行相應(yīng)的子程序。C28X ADC模塊在功能上完全等同于TMS320F2812的12位A/D轉(zhuǎn)換模塊,可以選擇合適的模擬輸入通道。C28X PWM模塊在功能上完全等同于TMS320F2812事件管理器中帶死區(qū)的全比較單元模塊,同樣可以選擇定時(shí)器、PWM輸出單元、PWM引腳極性以及設(shè)置死區(qū)時(shí)間。
圖3 Matlab下DSP應(yīng)用模塊仿真及下載示意圖
編程下載之前,先要對(duì)F2812 eZdsp模塊進(jìn)行編譯屬性、目標(biāo)板和仿真器的選擇設(shè)置,以及Real-Time Workshop的屬性設(shè)置,具體步驟如下:
1. 打開(kāi)CCS2.20,選擇合適的硬件仿真器,此處選擇F2812 XDS510 Emulator,打開(kāi)DSP軟件集成開(kāi)發(fā)環(huán)境。
2.在Matlab下輸入ccsboardinfo命令顯示出來(lái),查看Embedded Target for TI C2000 DSP所支持的板卡及驅(qū)動(dòng),如用戶升級(jí)仿真器或更換板卡,則需安裝相應(yīng)的驅(qū)動(dòng)程序,才能支持對(duì)應(yīng)的物理設(shè)備。
3. 右鍵點(diǎn)擊F2812 eZDSP,對(duì)評(píng)估板硬件鏈接模塊進(jìn)行編譯、鏈接和運(yùn)行等選項(xiàng)的設(shè)置。注意,在設(shè)置BuildOptions屬性時(shí),若沒(méi)有連接目標(biāo)板或仿真器,則BuildAction只選擇Build,可編譯生成C代碼;若有目標(biāo)板及仿真器,則可選擇Build_and_execute,實(shí)現(xiàn)C代碼的編譯下載及實(shí)時(shí)運(yùn)行。
4. 在DSPBoard選項(xiàng)中選擇與目標(biāo)板一致的DSP芯片類型,并更改DSP板標(biāo)號(hào),如F2812 PP Emulator等,本文改為F2812 XDS510 Emulator。
5. 設(shè)置Real-Time Workshop的相關(guān)屬性,可以根據(jù)個(gè)人的習(xí)慣進(jìn)行定制。
經(jīng)過(guò)上述設(shè)置步驟之后,可以選擇工具菜單內(nèi)的Real-Time Workshop下的Build Model生成仿真模型對(duì)應(yīng)的C語(yǔ)言代碼,Matlab的Command窗口會(huì)顯示后臺(tái)處理的詳細(xì)過(guò)程,代碼的編譯及鏈接
/* CAN 郵箱發(fā)送子程序*/
{
ECanaMboxes.MBOX1.MDL.word. LOW_WORD=F2812_SPWM_B.R eadMsgADValueDutyCycle;
ECanaMboxes.MBOX1.MSGC TRL.bit.DLC = 2;
ECanaRegs.CANTRS.bit.TRS1 = 1; // set eCAN Transmit Request Set register
while(ECanaRegs.CANTA.bit.TA1 != 1 ) {} // check eCAN Transmit Acknowledge register
ECanaRegs.CANTA.bit.TA1 = 1; // clear eCAN Transmit Acknowledge register
}
圖4 CCS中自動(dòng)生成的
另外,用Embedded Target for TI C2000 DSP所提供的Build/Reload/Run模塊,可以一步到位地將Matlab生成的C語(yǔ)言代碼直接轉(zhuǎn)為COFF文件下載到DSP逆變控制器的目標(biāo)板中,不需作兩個(gè)開(kāi)發(fā)平臺(tái)下的程序移植。如有特殊需求,還可以自行增加一些代碼。這樣就可以避開(kāi)繁瑣的編程步驟,直接進(jìn)行在線算法驗(yàn)證,最終獲取最優(yōu)的控制程序?qū)崿F(xiàn)。
結(jié)語(yǔ)
本文所介紹的DSP結(jié)合Matlab的應(yīng)用實(shí)例較為典型。利用Matlab提供的Embedded Target for TI C2000 DSP 模塊,還可完成對(duì)基于DSP的三相逆變控制器、電機(jī)控制或機(jī)器人等其他一些更為復(fù)雜的控制系統(tǒng)的仿真、直接編程下載和算法設(shè)計(jì)驗(yàn)證,實(shí)現(xiàn)DSP系統(tǒng)開(kāi)發(fā)的一步到位。該方法簡(jiǎn)單有效、性價(jià)比高、開(kāi)發(fā)周期短、適用范圍廣,有一定的參考價(jià)值和通用性。