




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
CCS_DSP開發環境和實例2023/11/27CCSDSP開發環境和實例基于DSP的數據采集設計專題1DSP集成開發環境CCS3.3使用方法2基于DSP的數據采集實例CCSDSP開發環境和實例1CCS集成開發環境簡介1.1CCS安裝及設置1.2CCS的窗口、菜單和工具條1.3CCS工程管理1.4CCS源文件管理CCSDSP開發環境和實例概述CCS工作在Windows操作系統下,類似于VC++的集成開發環境,采用圖形接口界面,有編輯工具和工程管理工具。它將匯編器、鏈接器、C/C++編譯器、建庫工具等集成在一個統一的開發平臺中。CCS所集成的代碼調試工具具有各種調試功能,能對TMS320系列DSP進行指令級的仿真和可視化的實時數據分析。此外,還提供了豐富的輸入/輸出庫函數和信號處理的庫函數,極大地方便了TMS320系列DSP軟件開發過程。
利用CCS的軟件開發流程如圖1.1所示。
CCSDSP開發環境和實例1.1CCS安裝及設置1CCS3.3系統的安裝運行setup.exe應用程序,彈出一個安裝界面,然后選擇CodeComposerStudio項,就可以開始CCS2.0的安裝,按照屏幕提示可完成系統的安裝。當CCS軟件安裝在計算機上之后,將在顯示器桌面上出現如圖1.2所示的兩個圖標。
CCSDSP開發環境和實例2.系統配置為使CCSIDE能工作在不同的硬件或仿真目標上,必須首先為它配置相應的配置文件。具體步驟如下:(1)雙擊桌面上的SetupCCS3.3圖標,啟動CCS設置。(2)在彈出對話框中單擊“Clear”按鈕,清除以前定義的配置。(3)從彈出的對話框中,單擊“Yes”按鈕,確認清除命令。(4)從列出的可供選擇的配置文件中,選擇能與使用的目標系統相匹配的配置文件。
CCSDSP開發環境和實例(5)單擊加入系統配置按鈕,將所選中的配置文件輸入到CCS設置窗口當前正在創建的系統配置中,所選擇的配置顯示在設置窗的系統配置欄目的MySystem目錄下,如圖1.3所示。(6)單擊“FileSave(保存)”按鈕,將配置保存在系統寄存器中。(7)當完成CCS配置后,單擊“Save&Quit”按鈕,系統自動打開CCS3.3CCSDSP開發環境和實例3.系統啟動當CCS的設值完成之后,如果下次啟動CCS所使用的模擬調試環境未變,可以直接雙擊桌面上的“CCStudiov3.3”來啟動系統。CCSDSP開發環境和實例1.2CCS的窗口、菜單和工具條CCS應用窗口一個典型的CCS集成開發環境窗口如圖1.4所示,整個窗口由主菜單、工具條、工程窗口、編輯窗口、圖形顯示窗口、內存單元顯示窗口和寄存器顯示窗口等構成。CCSDSP開發環境和實例工程窗口用來組織用戶的若干程序并由此構成一個項目,用戶可以從工程列表中選中需要編輯和調試的特定程序。在源程序編輯窗口中,用戶既可以編輯程序,又可以設置斷點和探針,并調試程序。反匯編窗口可以幫助用戶查看機器指令,查找錯誤。內存和寄存器顯示窗口可以查看、編輯內存單元和寄存器。圖形顯示窗口可以根據用戶需要顯示數據。用戶可以通過主菜單條目來管理各窗口。
CCSDSP開發環境和實例2.工具欄CCS集成開發環境提供5種工具欄,以便執行各種菜單上相應的命令。這5種工具欄可在View菜單下選擇是否顯示。(1)StandardToolbar(標準工具欄),如圖1.5所示,包括新建、打開、保存、剪切、復制、粘貼、取消、恢復、查找、打印和幫助等常用工具。(2)ProjectToolbar(工程工具欄),如圖1.6所示,包括選擇當前工程、編譯文件、設置和移去斷點、設置和移去ProbePoint等功能。
CCSDSP開發環境和實例(3)EditToolbar,提供了一些常用的查找和設置標簽命令,如圖1.7所示。(4)GELToolbar,提供了執行GEL函數的一種快捷方法,如圖1.8所示。在工具欄左側的文本輸入框中鍵入GEL函數,再單擊右側的執行按鈕即可執行相應的函數。如果不使用GEL工具欄,也可以使用Edit菜單下的EditCommandLine命令執行GEL函數。(5)ASM/SourceSteppingToolbar,提供了單步調試C或匯編源程序的方法,如圖1.9所示。
CCSDSP開發環境和實例(6)TargetControlToolbar,提供了目標程序控制的一些工具,如圖1.10所示。(7)DebugWindowToolbar,提供了調試窗口工具,如圖1.11所示。CCSDSP開發環境和實例1.3CCS工程管理1.工程的創建、打開和關閉(1)創建一個工程選擇“Project→New(工程→新工程)”,如圖1.12所示,在Project欄中輸入工程名字,其他欄目可根據習慣設置。工程文件的擴展名是*.pjt。若要創建多個工程,每個工程的文件名必須是唯一的。但可以同時打開多個工程。
CCSDSP開發環境和實例(2)打開已有的工程選擇“ProjectOpen(工程打開)”,彈出如圖1.13所示工程打開對話框。雙擊需要打開的文件(*.pjt)即可。(3)關閉工程選擇“ProjectClose(工程關閉)”,即可當前關閉工程。
CCSDSP開發環境和實例2.使用工程觀察窗口工程窗口圖形顯示工程的內容。當打開工程時,工程觀察窗口自動打開如圖1.14所示。要展開或壓縮工程清單,單擊工程文件夾、工程名(*.pjt)和各個文件夾上的“+/-”號即可。
CCSDSP開發環境和實例3.加文件到工程可按以下步驟將與該工程有關的源代碼、目標文件、庫文件等加入到工程清單中去。加文件到工程(1)選擇“Project→AddFilestoProject(工程→加文件到工程)”,出現AddFilestoProject對話框。(2)在AddFilestoProject對話框,指定要加入的文件。如果文件不在當前目錄中,瀏覽并找到該文件。(3)單擊“打開”按鈕,將指定的文件加到工程中去。當文件加入時,工程觀察窗口將自動的更新。從工程中刪除文件
(1)按需要展開工程清單。(2)右擊要刪除的文件名。(3)從上下文菜單,選擇“RemovefromProject(從工程中刪除)”。在操作過程中,注意文件擴展名,因為文件通過其擴展名來辨識CCSDSP開發環境和實例1.4CCS源文件管理1.創建新的源文件可按照以下步驟創建新的源文件:(1)選擇“File→New→SourceFile(文件→新文件→源文件)”,將打開一個新的源文件編輯窗口。如下圖1.15所示。
(2)在新的源代碼編輯窗口輸入代碼。(3)選擇“File→Save(文件→保存)”或“File→SaveAs(文件→另存為)”,保存文件。
CCSDSP開發環境和實例2.打開文件可以在編輯窗口打開任何ASCII文件。(1)選擇“File→Open(文件→打開)”,將出現如圖5.17所示打開文件對話框。
(2)在打開文件對話框中雙擊需要打開的文件,或者選擇需要打開的文件,并單擊“打開”按鈕。CCSDSP開發環境和實例3.保存文件(1)單擊編輯窗口,激活需要保存的文件。(2)選擇“File→Save(文件→保存)”,輸入要求保存的文件名。(3)在保存類型欄中,選擇需要的文件類型,如圖5.18所示。(4)單擊“保存”按鈕。
CCSDSP開發環境和實例2基于DSP的數據采集設計實例1.CCS3.3配置及相關驅動安裝2.建立一個AD數據采集工程CCSDSP開發環境和實例1.1相關驅動安裝1.安裝仿真器驅動程序連接仿真器、DSP開發板,將仿真器經USB接口連上電腦之后系統提示“使用找到新硬件向導”,選擇驅動文件“XDS510USBDriver”,完成之后系統提示新硬件可用。CCSDSP開發環境和實例2.安裝仿真器的CCS驅動找到驅動文件“XDS510CCSDriver”,運行,安裝到CCS3.3軟件所在的文件夾里面,具體如下圖所示。CCSDSP開發環境和實例1.2啟動CCS前的設置1.打開“SetupCCStudioV3.3”,在“AvailableFactoryBoards”下選擇“F2812XDS510Emulator”2.在“systemconfiguration”下的“F2812XDS510Emulator”右鍵選擇“properties”,對其進項設置,具體設置如下圖。3.點擊“SaveandQuit”完成芯片設置,系統自動啟動CCS3.3操作界面。CCSDSP開發環境和實例2.建立AD數據采集工程2.1創建一個工程(1)選擇“Project→New(工程→新建)”,彈出工程建立對話框。(2)在Project欄輸入文件名adshujucaiji。工作目錄是D:\ccstudio_v3.3\myprojects\,其他兩項也選默認即可。(3)單擊完成按鈕,將在工程窗口的Project下面創建adshujucaiji工程。CCSDSP開發環境和實例2.2向工程中添加源文件(1)將從ti官方網站上下載的源文件復制到D:\ccstudio_v3.3\myprojects\adshujucaiji文件夾內。(2)在“projects”下右鍵點擊工程名“adshujucaiji”選擇“addFiletoproject…”,將復制到文件夾“adshujucaiji”中的源文件全部加載進來。如下圖所示。CCSDSP開發環境和實例2.3程序編寫2.3.1程序編寫思路(1)一個DSP程序的構成。一個完整的DSP程序主要由庫文件,.c源文件,.h頭文件以及.cmd連接命令文件組成。(2)DSP程序的編寫思路一個DSP程序要完成設想的功能,需要完成系統初始化,所使用的外設的初始化,中斷初始化,已經終端服務程序的編寫。其中系統,外設初始化只需要對相應的寄存器進行設置即可以完成。中斷服務程序根據我們所需要的處理算法進行編寫。(3)現在總結起來DSP2812其實可以分為以下幾個部分:時鐘(DSP工作的動力)、外設(DSP實現相應的功能都是有對應的外設來實現的)、中斷和中斷服務程序。只要把這四個部分弄懂了,DSP的使用應該就沒多大問題。DSP的不同功能主要有對應的外設實現,實際上只要掌握了一種外設的使用方(寄存器、中斷、時鐘的設置)其他的都可以用同樣的步驟使用。CCSDSP開發環境和實例首先將程序分成:系統初始化、所使用的外設的初始化、三級中斷設置、中斷服務程序、鏈接命令文件(.cmd文件)和頭文件幾個部分。在系統初始化程序中了解系統時鐘、外設端口、看門狗的設置方法以及相關寄存器的使用,在外設初始化程序中,對應該外設的使用原理,了解“這個寄存器起什么作用,這樣設置起什么作用”,掌握該外設設備(聯想到所有的外設)初始化時必須設置的內容有哪些,需要特殊設施的寄存器有哪些。之后了解外設級、PIE級和CPU級中斷初始化、開中斷、關中斷的設置方法、順序和原因。中斷服務程序完成特殊的數據處理,按照自己的算法編寫就可以,但要注意在所有的中斷服務程序中都要對三級中斷進行相應的設置,以保證中斷服務程序能夠連續不斷地運行下去。在.CMD文件中完成對內部存儲器外擴存儲器的分配,了解相關指令的作用和使用方法。CCSDSP開發環境和實例2.3.2程序工作流程在進行軟件設計之前,首先明確系統的工作流程,簡單介紹如下:(1)DSP上電,等待采集開始命令。(2)使用事件管理器EVA的通用定時器周期中斷來觸發ADC的采集動作。(3)進行數據的校正和融合處理。(4)將融合后的數據經eCAN總線傳送到上位機。本系統使用EVA的通用定時器1的周期中斷來觸發AD的轉換,當ADC完成SEQ1中定義的端口的數據采集轉換時,觸發中斷,進入中斷服務程序。DSPF2812的AD為12位精度,由于各種因素的影響,測量值存在誤差,需進行校正。校正完成之后對該次測量獲得的兩個數值進行聯合kalman濾波器數據融合,完成融合操作后將得到的數據存入eCAN總線的發送郵箱,將數據發送到上位機,一次操作完成。之后退出中斷程序,等待下一次中斷觸發信號的到來。本系統就按照怎樣的順序完成真空度的數據采集、校正、融合和傳輸操作。CCSDSP開發環境和實例整個軟件系統可以分為如下幾個部分:系統初始化,用來完成DSP寄存器的設置,各級中斷的清零,系統時鐘、外設時鐘的設置,踢除看門狗、初始化AD、EVA等操作;終端服務程序的設置,用來完成采樣結果的移位操作、校正,聯合kalman濾波器數據融合以及eCAN總線的數據傳輸;鏈接命令文件的編寫,由于使用了外擴存儲器,為保證程序執行的速度,將程序空間分配到片內存儲器,程序執行過程中產生的數據存儲到片外存儲器中。CCSDSP開發環境和實例2.3.3系統初始化sysctrl()(1)系統時鐘設置,通過高速時鐘預訂標志寄存器(HISPCP)、低速時鐘預訂標志寄存器(LOSPCP)和鎖相環寄存器設置,獲得高、第速時鐘,使能相關外設時鐘。如下圖所示CCSDSP開發環境和實例(2)中斷初始化首先關閉全局中斷,關閉外設中斷,并清除所左右的中斷標志位。DINT; //關閉總中斷IER=0x0000; //關閉外設中斷IFR=0x0000; //清中斷標志
其次初始化PIE控制寄存器,由函數InitPiectrl()實現。將所有的PIE級中斷標志位和中斷使能位清零。并將AD中斷所在組對應的中斷應答寄存器中的相應位置零。最后使能PIE向量表,由函數InitPieVectable()實現。CCSDSP開發環境和實例2.3.4端口設置數據采集使用同步轉換模式,對通道ADCINA0和ADCINB0同時采樣8次。所以將這兩個端口設置成普通輸入輸出端口且為輸入模式。voidInitGpio(void){EALLOW;GpioMuxRegs.GPAMUX.bit.PWM3_GPIOA2=0;GpioMuxRegs.GPADIR.bit.GPIOA0=0;GpioMuxRegs.GPBMUX.bit.PWM7_GPIOB0=0;GpioMuxRegs.GPBDIR.bit.GPIOB0=0;GpioMuxRegs.GPFMUX.bit.SCITXDA_GPIOF4=1;GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6=1;GpioMuxRegs.GPFMUX.bit.CANRXA_GPIOF7=1;GpioMuxRegs.GPFMUX.bit.CANRXA_GPIOF7=1;GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6=1;EDIS;}
CCSDSP開發環境和實例2.3.5.數據采集外設AD的設置F2812的ADC模塊有16個通道,排序器SEQ1和SEQ2可以作為兩個獨立的8通道模塊,也可以級聯成一個16通道的模塊。AD模塊的內部結構如圖3.5所示。雖然有兩組輸入通道和兩個排序器,但是ADC模塊中只有一個轉換器,同一時刻只能對1路輸入信號進行轉換,當有多路信號需要進行轉換時,ADC模塊通過前端模擬多路復用器的控制,在同一時刻,只允許1路信號輸入到ADC的轉換器中。在這兩種工作方式下,AD能夠通過對相關寄存器的設置對需要轉換的通道進行排序,通過模擬多路轉換器每次轉換的通道。每個排序器轉換完成,將所轉換通道的值存儲在其各自的轉換結果寄存器中。我們可以通過設置排序寄存器,達到對一個通道進行多次轉換的目的,這就是所說的過采樣算法,對比單次采樣轉換,能夠有效提高結果的精度CCSDSP開發環境和實例2812的ADC可以工作在順序采樣和同步采樣兩種工作模式。順序采樣也就是按照順序對每個通道依次進行采樣。而同步采樣,是同時采樣一對通道,即ADCINA0和ADCINB0同時采樣,ADCINA1和ADCINB1同時采樣。我們使用級聯排序器的同時采樣模式。此時排序器SEQ1和SEQ2級聯成最多16個通道的排序器。ADC模塊只有接收到轉換觸發信號才可開始轉換,如下表所示,我們采用事件管理器A的周期中斷觸發ADSEQ1SEQ2級聯SEQ軟件觸發(軟件SOC)軟件觸發(軟件SOC)軟件觸發(軟件SOC)事件管理器A(EVASOC)事件管理器B(EVBSOC)事件管理器A(EVASOC)事件管理器B(EVBSOC)外部SOC引腳外部SOC引腳CCSDSP開發環境和實例2812AD的16個通道是可以通過編程來進行選擇在某一時刻究竟是哪一個通道被選通進行采樣的。這個功能就需要通過ADC輸入通道選擇序列控制寄存器ADCCHSELSEQx(x=1,2,3,4)來實現。每一個輸入通道選擇序列控制寄存器都是16位的,被分成了4個功能位CONVxx,每一個功能位占據寄存器的4位,在AD轉換的過程中,當前CONVxx位定義了要進行采樣和轉換的引腳。CCSDSP開發環境和實例為了能夠對端口進行連續不斷的采樣,通用定時器1產生的AD采集觸發信號頻率應高于AD采集頻率。我們采用的ADCLK為1.875M,每次觸發共采集16次,加上采樣窗口時間為6個ADCLK,轉換頻率約為13K。EVA使用低速時鐘HISPCP,它的的通用定時器1的時鐘為60M,周期為300,為連續增計數模式,它的周期匹配頻率為0.2M,能夠使ADC連續不斷地采集數據。
CCSDSP開發環境和實例具體程序如下voidInitADC(void){unsignedinti;AdcRegs.ADCTRL1.bit.RESET=1;//復位整個ADC模塊AdcRegs.ADCTRL1.bit.SUSMOD=3;//仿真掛起時,序列發生器和其他程序邏輯立即停止AdcRegs.ADCTRL1.bit.ACQ_PS=5;//采集窗口的大小,控制SOC的脈寬,為6個ADCLK的長度,SOC確定采樣開關關閉的時間段SOC的脈寬為ACO_PS+1乘以ADCLKAdcRegs.ADCTRL1.bit.CPS=1;//內核時鐘分頻器AdcRegs.ADCTRL1.bit.CONT_RUN=0;//連續轉換模式,一次SEQ1轉換完成,序列發生器SEQ1指針指向CONV))AdcRegs.ADCTRL1.bit.SEQ_OVRD=0;//AdcRegs.ADCTRL1.bit.SEQ_CASC=1;//級聯模式,SEQ1/2作為一個16通道排序器工作AdcRegs.ADCTRL2.bit.EVB_SOC_SEQ=0;AdcRegs.ADCTRL2.bit.RST_SEQ1=0;AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1;//啟用INT_SEQ1的中斷請求
AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1=0;//每個SEQ1序列結束時設置INT_SEQ1AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1=1;//允許由EVA觸發啟動SEQ1AdcRegs.ADCTRL2.bit.RST_SEQ2=0;//無操作AdcRegs.ADCTRL2.bit.INT_ENA_SEQ2=0;//禁用INT_SEQ2對CPU的中斷請求AdcRegs.ADCTRL3.bit.ADCBGRFDN=3;//帶隙和參考電路上電for(i=0;i<10000;i++);AdcRegs.ADCTRL3.bit.ADCPWDN=1;//除帶隙參考電路意外的內核模擬電路上電for(i=0;i<10000;i++);AdcRegs.ADCTRL3.bit.ADCCLKPS=8;//ADC內核分頻器AdcRegs.ADCTRL3.bit.SMODE_SEL=0;//同步采樣模式AdcRegs.ADCMAXCONV.bit.MAX_CONV1=15;//每次轉換的最大轉換次數為8次AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x0;…………;AdcRegs.ADCCHSELSEQ4.bit.CONV14=0x0;AdcRegs.ADCCHSELSEQ4.bit.CONV15=0x8;AdcRegs.ADCST.bit.INT_SEQ1_CLR=1;AdcRegs.ADCST.bit.INT_SEQ2_CLR=1;//清除SEQ1和SEQ2的中斷標志位AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;CCSDSP開發環境和實例2.3.6.EVA的初始化使用EVA通用定時器1的周期中斷觸發信號,EVA使用低速時鐘HISPCP,它的的通用定時器1的時鐘為60M,周期為300,為連續增計數模式,它的周期匹配頻率為0.2M,能夠使ADC連續不斷地采集數據。EVA的初始化程序如下voidInitEVA(void){EALLOW;EvaRegs.T1CMPR=0x0080;EvaRegs.T1PR=0x012C;EvaRegs.GPTCONA.bit.T1TOADC=1;EvaRegs.T1CON.all=0x1042;EvaRegs.T1CNT=0x0000;EDIS;}
CCSDSP開發環境和實例2.3.7.中斷設置(1)DSP的中斷分為外設級、PIE級和CPU級,為了是CPU能夠響應有中斷出發時間引發的中斷,需要將三級中斷全部打開。(2)我們使用的是ADC采集完成中斷,當AD模塊完成8次同步采集之后觸發外設計中斷,對應的中斷標志位ADCIFR自動置位,如果此時ADC中斷使能位ADCIER為1.并且ADC中斷所在的中斷組對應的中斷應答寄存器PIEACK的相應位為0,則將外設級中斷傳送到PIE級。之后將PIE級雖在組對應的中斷標志位置一,檢查該組對應的中斷使能位是否為1,如果是一,則將該終端傳送到CPU級,直后執行對應的中斷服務程序。(3)為使得中斷事件發生后CPU能夠找到相應的中斷服務程序,需要將中斷服務程序的地址賦值給觸發中斷的外設事件在中斷矢量列表(pievect)中對應的指針。CCSDSP開發環境和實例中斷矢量列表中adc中斷對應的指針如下圖在本實例中我們通過一下語句實現,其中“ad”使我們自己編寫的中斷服務程序的名字。EALLOW;PieVectTable.ADCINT=&ad;EDIS;CCSDSP開發環境和實例(3)為是外設級中斷傳
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論