,
(1.廣東工業(yè)大學(xué) 信息工程學(xué)院,廣州 510006;2.廣東工業(yè)大學(xué) 實驗教學(xué)部)
隨著數(shù)字信息化時代的迅速發(fā)展,微計算機和數(shù)字控制處理芯片的計算以及處理數(shù)據(jù)能力得到大大提高,全數(shù)字化控制系統(tǒng)逐漸成為主流。數(shù)字信號處理(DSP)是一門涉及廣泛領(lǐng)域的科學(xué),基于各種數(shù)字信號處理理論提供各種算法,DSP芯片完成其所需要的各種運算,以完成對數(shù)字信號進(jìn)行處理的目標(biāo)。DSP芯片無論是在性能上還是在價格上,都具有很明顯的優(yōu)勢。且擁有快速、靈活、可編程、易于操作連接、功耗低等特點,在圖像處理、音頻處理、測量分析控制中都發(fā)揮著重要作用。
TI實現(xiàn)信號處理技術(shù)的快速發(fā)展,提供了創(chuàng)新的DSP芯片。主要有三大系列的DSP芯片,分別是C2000、C5000、C6000。其中C2000系列主要在自動控制中使用較多,在電機、數(shù)字電源、無人機實時控制等相關(guān)領(lǐng)域中應(yīng)用。C5000系列多用于語音、音頻、數(shù)字蜂窩電話、指紋識別以及調(diào)制解調(diào)器等相關(guān)的領(lǐng)域。C6000系列主要用于測試與測量、醫(yī)療、軍事以及更高級的成像處理中。
本文介紹一種新型TMS320F28069M微控制器開發(fā)平臺,即微控制器開發(fā)板LAUNCHXL-F28069M,它體積小、便于攜帶、操作簡單、可編程性強,能夠提供友好的學(xué)習(xí)平臺,有利于初學(xué)者進(jìn)行嵌入式開發(fā)。
圖1 開發(fā)平臺實物圖
開發(fā)平臺實物圖如圖1所示。開發(fā)板的微控制器是高效的32位CPU即TMS320F28069M,具有浮點運算單元,256 KB內(nèi)存,90 MHz工作頻率,96 KB隨機存儲器。其滿足多種標(biāo)準(zhǔn)的通信外設(shè),如SCI、UART、SPI、I2C、CAN、LIN等。板間帶有控制律加速器(CLA),能加快系統(tǒng)間數(shù)據(jù)運算。更重要的是其本身內(nèi)嵌XDS100V2仿真器,能夠在編程、評估、調(diào)試、仿真的時候提高工作效率,還可以避免常規(guī)仿真器與PC端,以及仿真器與板間的連接帶來的問題。
TMS320F28069M是具有電機解決方案的微處理器,是LAUNCHXL-F28069M開發(fā)平臺的主控制器,該微控制器(MCU)由C28x內(nèi)核和控制律加速器(CLA)供電,其單電源通過內(nèi)部穩(wěn)壓器實現(xiàn)軌運行。內(nèi)部有強大的脈沖寬度調(diào)制器模塊(PWM),在頻率調(diào)制的時候可進(jìn)行雙邊沿控制,且擁有10位基準(zhǔn)的模擬比較器,以控制ePWM的輸出。MCU中ADC模塊在固定量程范圍內(nèi)可實現(xiàn)0~3 V的電壓轉(zhuǎn)換,并且ADC模塊的接口也對延遲進(jìn)行了優(yōu)化處理。
XDS100V2仿真器用于對以微控制器、微處理器、DSP為中心的系統(tǒng)進(jìn)行調(diào)試和控制,該仿真器內(nèi)嵌于開發(fā)板中,具有較好的穩(wěn)定性。它支持IEEE.1149.1標(biāo)準(zhǔn)的測試訪問端口,且I/O端口電壓在1.8~3.6 V之間。XDS100V2還支持端口外設(shè)的擴展,可增強系統(tǒng)的功能性,主要包括:GPIO、UART、I2C、SCI、CAN、ADC、定時器的輸入等。
PC端通過USB數(shù)據(jù)線與仿真器完成連接通信,仿真器的電源來自于USB VBUS(+5V)模塊,再通過電壓轉(zhuǎn)換器,將+5 V電壓轉(zhuǎn)換為+3.3 V電壓,然后連接到目標(biāo)系統(tǒng)或者設(shè)備中。XDS100仿真器系統(tǒng)框圖如圖2所示。
圖2 XDS100仿真器框圖
TMS320F28069M芯片采用3.3 V單電源供電,能滿足板間的仿真器XDS100V2的需電條件,且該種供電方式的功耗低。在LAUNCHXL-F28069M中有不同的電源域,它可以通過JTAG來啟用電氣隔離模塊。跳針和電源域的配置如表1所列。
表1 跳針與電源域的配置說明
C28x控制律加速器是一個單精度32位的浮點運算單元,通過添加并行處理來拓展C28x CPU的處理數(shù)據(jù)的能力??刂坡杉铀倨?CLA)是一個自身帶有總線結(jié)構(gòu)、能獲取機制和通道的獨立處理器,且可以指定8個獨立的CLA任務(wù)或者例程。每項任務(wù)都是通過軟件或者外圍設(shè)備進(jìn)行啟動,比如ADC、ePWM、eCAP、eQEP和CPU的定時器等。CLA執(zhí)行完一項任務(wù)的時候馬上進(jìn)入下一執(zhí)行任務(wù)。當(dāng)一個任務(wù)執(zhí)行完之后,CPU會收到一個中斷信號,但是CLA依然會馬上開始下一個最高優(yōu)先級的等待任務(wù)。而且CLA可以直接訪問ADC結(jié)果寄存器、eQEP、ePWM+HRPWM和eCAP寄存器,并且在CPU和CLA之間還可以傳遞額外的隨機存儲數(shù)據(jù)。
開發(fā)平臺主要使用Code Composer studio(CCS)集成開發(fā)環(huán)境(IDE)。該軟件具有向下兼容的特點,可以兼容舊版本下的工程,并且可以使用C/C++、匯編語言單獨編程或者聯(lián)合編程,有利于開發(fā)者方便使用。軟件的開發(fā)主要有以下步驟:在工程中編寫/添加源文件、編譯、匯編、鏈接,形成可執(zhí)行的目標(biāo)文件,最后在CCS集成開發(fā)環(huán)境中對可執(zhí)行目標(biāo)文件進(jìn)行調(diào)試(Debug),將工程下載至目標(biāo)板。流程圖如圖3所示。
圖3 軟件開發(fā)流程圖
編譯器對源文件進(jìn)行編譯,編譯通過之后在匯編器中形成匯編語言,然后通過鏈接器在鏈接過程中將對象文件組合成一個靜態(tài)可執(zhí)行文件或動態(tài)對象文件。
鏈接步驟是可選的,因此可以獨立編譯和匯編多個模塊,最后將它們鏈接起來。在匯編過程中會執(zhí)行多個優(yōu)化項以對程序進(jìn)行優(yōu)化,來提高執(zhí)行速度。優(yōu)化項主要通過簡化循環(huán)、重新安排語句和表達(dá)式,將變量分配到寄存器,從而減小C/C ++程序或者匯編程序的大小。
在CCS的C/C++編譯器和匯編語言工具中提供兩種鏈接程序的方法:一種是當(dāng)有多個源文件的時候,將模塊進(jìn)行編譯、鏈接;另一種是當(dāng)有單個源模塊的時候,可以在單步中進(jìn)行編譯、鏈接。
當(dāng)利用PC端進(jìn)行開發(fā)板程序下載時,主要有以下步驟:
① 下載安裝CCS7.2集成開發(fā)環(huán)境,在安裝過程中注意選擇仿真器驅(qū)動的下載。安裝完成之后,通電進(jìn)行目標(biāo)板的Demo演示,看板子是否可以正常運行,在PC端設(shè)備管理器中看驅(qū)動是否安裝成功。
② 建立新工程選擇目標(biāo)板的型號,如2806x piccolo、TMS320F28069,然后選擇正確的仿真器型號XDS100V2,對工程進(jìn)行命名,添加源文件(.c)。此過程中可將向下兼容版本的工程導(dǎo)入。如果使用開發(fā)輔助工具Control_SUITE,可在Control_SUITE中直接導(dǎo)入例程的工程。
③ 編寫主程序源代碼,在新建工程中添加主程序中使用的相關(guān)文件,如頭文件(.h)和鏈接器命令文件(.cmd)等。
④ 工程建立完成之后,進(jìn)行編譯,生成可執(zhí)行目標(biāo)文件(.out),此文件用于調(diào)試下載中。
⑤ 對過程進(jìn)行調(diào)試下載(Debug),可在主程序中設(shè)置斷點,進(jìn)行單步運行,觀察存儲器中數(shù)據(jù)的變化。
注意事項:開發(fā)前必須進(jìn)行板間通電演示,確定開發(fā)板、仿真器驅(qū)動正常工作。選擇正確的器件型號、仿真器型號。進(jìn)行Debug的時候,將開發(fā)板上s1三個撥鍵,從左至右調(diào)至上→上→下,撥鍵功能主要確定使用仿真器連接主控制器,而且燒寫過程中不能斷開電源,否則芯片容易出現(xiàn)鎖死情況。
系統(tǒng)具有基于電路內(nèi)部調(diào)試的JTAG標(biāo)準(zhǔn)IEEE1149.1接口,它還支持實時操作模式,允許在處理器運行、代碼執(zhí)行和服務(wù)中斷時修改內(nèi)存、外圍設(shè)備以及寄存器內(nèi)容。開發(fā)者還可以在非時域的代碼中進(jìn)行單步操作,同時還能在不受外界干擾的情況下實現(xiàn)臨界時間中斷服務(wù)。該設(shè)備實現(xiàn)了CPU內(nèi)部硬件的實時模式,不需要軟件監(jiān)視器。此外,還為分析提供了特殊的硬件,允許設(shè)置硬件斷點或數(shù)據(jù)、地點的監(jiān)視點,并在匹配時生成用戶想要使用的中斷事件。
基于TMS320F28069M設(shè)計了一個控制LED燈的基礎(chǔ)實驗來展示開發(fā)板的功能。利用CPU定時器的配置來控制一個LED燈,燈亮占空比為0.5。建立新工程,在工程中添加需要的文件,進(jìn)行源代碼的設(shè)計。部分主程序如下:
#include "DSP28x_Project.h"
interrupt void cpu_timer0_isr(void);
void main(void){
InitSysCtrl();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
EALLOW;
PieVectTable.TINT0 = &cpu_timer0_isr;
EDIS;
InitCpuTimers();
ConfigCpuTimer(&CpuTimer0, 40, 500000);
CpuTimer0Regs.TCR.all = 0x4001;
EALLOW;
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0;
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;
EDIS;
IER |= M_INT1;
PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
EINT;
ERTM;
for(;;);
}
interrupt void cpu_timer0_isr(void){
CpuTimer0.InterruptCount++;
GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}
對控制系統(tǒng)和GPIO端口進(jìn)行初始化設(shè)置,配置CPU定時器,將GPIO端口配置為輸出端口。在本設(shè)計中使用切換寄存器(GPBTOGGLE),其是一個只寫寄存器,讀為0。由于程序較小,復(fù)雜度低,使用28069m_RAM_lnk.cmd鏈接器命令文件,使主程序在RAM中運行而不在Flash中運行,這樣可減少程序的讀寫時間。在CCS調(diào)試界面中可在反匯編窗口查看源代碼與匯編代碼混合模式、寄存器變量,如圖4所示。
圖4 查看匯編語言
[1] H Nene ,T Zaitsu. Bi-directional PSFB DC-DC converter with unique PWMcontrol schemes and seamless mode transitions using enhanced digital control[C]//2017 IEEE Applied Power Electronics Conference and Exposition (APEC), Tampa, FL:2017:3229-3233.
[2] C Cambini, L Giuseppi, M Calzolai, et al. Multichannel airborne ultrasonic ranging system based on the Piccolo C2000 MCU[C]. 2014 6th European Embedded Design in Education and Research Conference (EDERC), 2014, Milano:80-84.
[3] Texas Instruments.TMS320F28069MInstaSPINTM-MOTION Software,2014.
[4] Texas Instruments. LAUNCHXL-F28069M Overview User's Guide,2015.
[5] Texas Instruments. TMS320C28x Optimizing C/C++ Compilerv17.6.0.STS Reference Guide ,2017.
[6] 楊濤, 梁東, 楊金鵬. 基于TMS320F28-069的無人機舵系統(tǒng)控制器設(shè)計與實現(xiàn)[J]. 航空精密制造技術(shù), 2017, 53(1):16-20.
[7] 呂紅濤, 王國勝, 呂強,等. 基于TMS3-20F28069的自平衡機器人控制系統(tǒng)設(shè)計[J]. 單片機與嵌入式系統(tǒng)應(yīng)用, 2012, 12(9):42-45.
[8] 于廣, 孫漢青, 王志平,等. C2000系列DSP在線程序更新研究[J]. 單片機與嵌入式系統(tǒng)應(yīng)用, 2013, 13(3):78-79.
[9] 武奇生,黃鶴,白璘.TMS320C55x DSP應(yīng)用及實踐[M].西安:西安電子科技大學(xué)出版社,2015.
[10] 任潤柏,姜建民.TMS320F2802xDSC原理及源碼解讀——基于TI Piccolo系列[M].北京:北京航空航天大學(xué)出版社,2013.
李威、彭端(教授),主要研究方向為寬帶移動通信系統(tǒng)。