版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、word基于DSPf2812的交通燈設(shè)計 學(xué)院:電子信息學(xué)院 班級:電氣三班 小組成員:郭浩飛 41303040305 韓謀 41303040306 鄧倬進 41303040304目錄51、工程設(shè)計目的262、工程設(shè)計正文22.1硬件設(shè)計2總體方案設(shè)計22.1.2 數(shù)碼管驅(qū)動顯示電路設(shè)計3交通燈亮滅控制電路設(shè)計32.2工程軟件設(shè)計6軟件系統(tǒng)分析62.2.2 軟件系統(tǒng)設(shè)計72.2.3 軟件系統(tǒng)實施7軟件開發(fā)環(huán)境的使用83、工程設(shè)計總結(jié)104、參考文獻105、附錄:111、工程設(shè)計目的本學(xué)期我們主要學(xué)習(xí)了DSP硬件方面的一些根本原理,對于如何通過軟件來控制DSP從而實現(xiàn)我們最終的需求,還不是很了解
2、。本次設(shè)計的目的就是基于TMS320CF2812平臺的進行C語言編程,了解軟件編程開發(fā)的根本流程,以及軟硬件是如何共同協(xié)調(diào)工作從而實現(xiàn)最終的控制的。熟練掌握TMS320F2812控制交通燈方法,樹立正確的設(shè)計思想提高分析問題與解決具體問題的能力。并通過此次工程設(shè)計熟練軟件CCS的操作和使用,能夠?qū)崿F(xiàn)程序的編譯、運行以及燒寫。2、工程設(shè)計正文2.1硬件設(shè)計總體方案設(shè)計DSP GPIOA最小系 GPIOB統(tǒng)數(shù)碼管驅(qū)動電路發(fā)光二極管顯示電路數(shù)碼管顯示電路本次設(shè)計過程中主要利用了F2812的通用I/O來實現(xiàn)對東西南北方向紅綠黃燈亮滅的控制,以及數(shù)碼管顯示的控制。而實現(xiàn)定時的操作主要通過通用定時器0的中
3、斷調(diào)用來實現(xiàn)。硬件設(shè)計的總體框圖如圖1所示。圖1 硬件設(shè)計總體框圖 F2812 GPIO介紹TMS320F2812 DSP有多達56個通用數(shù)字量輸入輸出端口GPIO,其中絕大局部是通用I/O和專用功能復(fù)用引腳。數(shù)字量I/O端口模塊采用一種靈活配置的方法控制服用引腳功能,GPIOMUX存放器用來選擇F2812的引腳操作模式,可以通過該存放器獨立設(shè)置每個引腳的功能。如果選擇數(shù)字量I/O模式,可以通過GPxDIR存放器配置數(shù)字量I/O的方向,并通過GPxQUAL進一步消除數(shù)字量I/O引腳的噪聲信號。此外,處理器提供GPxSET和GPxCLEAR存放器對數(shù)字量進行置位和清零,還可以通過G
4、PxDAT存放器獨立讀/寫I/O信號。.2 定時器0及其中斷介紹F2812器件上有3個32位的CPU定時器TIMER0/1/2。定時器1和2留給實時操作系統(tǒng)DSP/BIOS使用,只有定時器0可以在應(yīng)用程序中使用。假設(shè)處理器采用30MHz的外部時鐘經(jīng)過鎖相環(huán)10/2倍頻之后,系統(tǒng)時鐘工作在150MHz,一旦定時器被使能,定時器時鐘經(jīng)過與預(yù)定標(biāo)計數(shù)器遞減計數(shù),預(yù)訂標(biāo)計數(shù)器產(chǎn)生下溢之后向定時器的32位計數(shù)器借位。最后定時器產(chǎn)生溢出使定時器想CPU發(fā)出中斷。每次預(yù)訂標(biāo)計數(shù)器產(chǎn)生溢出后使用分頻存放器中的值重新裝載,同樣32位的周期存放器為32位的計數(shù)器提供重新裝載值。.3 基于F2812構(gòu)成的最小系統(tǒng)F
5、2812構(gòu)成的最小系統(tǒng)如圖2所示。圖2 F2812最小系統(tǒng)原理圖F2812芯片的最小系統(tǒng),由11、12號引腳接外部時鐘電路,用30MHz的晶振提供時鐘周期。用1117電平轉(zhuǎn)換芯片將外部存放的電平+5V轉(zhuǎn)換為F2812能支持的電平+3.3V,接到15號引腳VDD給F2812提供電源。F2812芯片的復(fù)位電路由14號引腳接入。2.1.2 數(shù)碼管驅(qū)動顯示電路設(shè)計本次設(shè)計為了節(jié)省F2812的端口的使用采用芯片CD4511來實現(xiàn)數(shù)碼管的驅(qū)動以及顯示。CD4511是一個用于驅(qū)動共陰極 LED 數(shù)碼管顯示器的 BCD 碼七段碼譯碼器,特點如下:具有BCD轉(zhuǎn)換、消隱和鎖存控制、七段譯碼及驅(qū)動功能的CMOS電路
6、能提供較大的拉電流??芍苯域?qū)動LED顯示器。其引腳圖如圖3所示。圖3 CD4511引腳電路圖CD4511引腳功能介紹如下: BI:4腳是消隱輸入控制端,當(dāng)BI=0 時,不管其它輸入端狀態(tài)如何,七段數(shù)碼管均處于熄滅消隱狀態(tài),不顯示數(shù)字。LT:3腳是測試輸入端,當(dāng)BI=1,LT=0 時,譯碼輸出全為1,不管輸入 DCBA 狀態(tài)如何,七段均發(fā)亮,顯示“8”。它主要用來檢測數(shù)碼管是否損壞。 LE:鎖定控制端,當(dāng)LE=0時,允許譯碼輸出。 LE=1時譯碼器是鎖定保持狀態(tài),譯碼器輸出被保持在LE=0時的數(shù)值。A1、A2、A3、A4為8421BCD碼輸入端。 a、b、c、d、e、f、g為譯碼輸出端,輸出為高
7、電平1有效。為了讓數(shù)碼管正常顯示,進行引腳的焊接時BI與LT引腳接電源VCC,LE那么連接地。CD4511正常顯示時用的真值表如表一:表一 CD4511真值表輸 入輸 出LEBILIA3A2A1A4abcdefg顯示011000011111100011000101100001011001011011012011001111110013011010001100114011010110110115011011000111116011011111100007011100011111118011100111100119電路進行連接時CD4511輸出引腳a、c、d、e、f、g依次數(shù)碼管的a、c、d、e、
8、f、g引腳上即可。另外由于數(shù)碼管采用共陰的因此本次設(shè)計過程中即那個數(shù)碼管的3腳與8腳接地,從而使數(shù)碼管正常工作。數(shù)碼管的內(nèi)部原理圖以及其封裝引腳如圖4和圖5所示。圖4 數(shù)碼管內(nèi)部原理圖 圖5 數(shù)碼管封裝引腳圖數(shù)碼管驅(qū)動現(xiàn)實的電路圖如圖6所示。圖6 數(shù)碼管驅(qū)動電路圖為了編寫程序時與上述真值表相對應(yīng),將CD4511與DSP F2812的B口進行連接時,應(yīng)將其中,芯片CD4511引腳A4接芯片F(xiàn)2812的第13號引腳GPIOB0/PWM7、引腳A1接芯片F(xiàn)2812的第14號引腳GPIOB1/PWM8、引腳A2接芯片F(xiàn)2812的第15號引腳GPIOB2/PWM9、引腳A3接芯片F(xiàn)2812的第16號引腳
9、GPIOB3/PWM10。2.1.3交通燈亮滅控制電路設(shè)計由于F2812的通用I/O口引腳輸出高電平時,引腳的電壓為3.3V,而開發(fā)板上所提供的電源電壓為5V,因此,發(fā)光二極管進行連接時只能采用共陰極。因為當(dāng)采用共陽極進行連接時,二極管陽極所接的電壓為5V,當(dāng)通用I/O口輸出低電平時,發(fā)光二極管點亮。但是,當(dāng)通用I/O口輸出高電平時,電壓為3.3V,3.3V與5V存在1.7V的壓降,足以使發(fā)光二極管點亮。這樣就會造成,無論通用I/O口輸出低電平時,還是高電平時,發(fā)光二極管都點亮。采用共陰極那么不存在這個問題。此次設(shè)計中為了簡化地那路的連接,只將東西方向以及南北方向各一邊的燈進行了設(shè)計連接。共利
10、用了6個通用I/O口。進行連接時,連接在了TMS320F2812 DSP的GPIOA的前六個引腳,即GPIOA0/PWM1- GPIOA5/PWM6。總體硬件電路圖如圖7所示。圖7 總體硬件電路圖實物圖調(diào)試如圖8所示。圖8 硬件實物圖2.2工程軟件設(shè)計2.2.1軟件系統(tǒng)分析軟件的設(shè)計主要是通過利用C語言的編程來實現(xiàn)交通燈亮滅的控制,程序的設(shè)計包括初始化局部,對系統(tǒng)時鐘的初始化、PIE控制存放器的初始化、中斷向量表的初始化、GPIO的初始化、定時器0的初始化。接著就是對定時器0以及其中斷周期進行配置。最后進行中斷程序的設(shè)計,中斷程序的設(shè)計以及定時器中斷周期的設(shè)置是本次軟件設(shè)計的兩塊重要局部。2.
11、2.2 軟件系統(tǒng)設(shè)計程序的總體流程圖以及中斷程序流程圖如圖9和圖10所示。開始系統(tǒng)時鐘、GPIO、定時器0、中斷等的初始化。配置中斷響應(yīng)周期,實現(xiàn)計時功能循環(huán)語句等待中斷開始中斷 zhongduanFlag=1GPADAT =0x0024東紅燈南綠燈亮GPBDAT.all=LEDi顯示倒計時的值i>3?flag=0i=10GPADAT=0x0012東西南北黃燈亮GPADAT=0x0009東綠燈南紅燈亮i-i=0結(jié)束中斷NNNYYY圖9 程序總體流程圖圖10 中斷程序流程圖2.2.3 軟件系統(tǒng)實施主程序里面主要實現(xiàn)了對定時器0中斷周期的設(shè)置,以為計時以秒為單位進行計時的,所以在進行配置時,
12、將定時器的周期配置為1s,在主程序的while1語句中每間隔1s響應(yīng)一次中斷。進行配置的函數(shù)為ConfigCpuTimer(&CpuTimer0,150,1000000),此函數(shù)的具體定義在文件DSP281x_CpuTimers.c中進行了具體定義。中斷程序的設(shè)計主要是根據(jù)i的遞減來實現(xiàn)對中斷的計數(shù)從而進一步實現(xiàn)計時,i的初值為9,當(dāng)i>2時東西方向的紅燈亮,南北方向的綠燈亮反之也可,保持時間為7s。但當(dāng)?shù)褂嫊r的值為2時東西南北的黃燈都亮,保持時間為2s,之后東西方向與南北方向紅燈與綠燈相互轉(zhuǎn)換。程序中區(qū)分東西方向與南北方向采用flag的值進行判斷。通用I/O口輸出的值不同,各方
13、向燈亮的就不同。本次軟件的實施過程中對通用I/O(GPIO)的操作都是在定時器中斷中進行操作的,并且通過實際調(diào)試驗證此種方法可行。軟件調(diào)試環(huán)境軟件開發(fā)環(huán)境的使用在本次設(shè)計中程序的編寫是在CCS2.0的環(huán)境中用C語言實現(xiàn)其功能的代碼,因開始編寫程序時沒有硬件調(diào)試,所以是在該開發(fā)環(huán)境中的Simulator方式下進行調(diào)試的,如圖10紅色箭頭標(biāo)記處,最終下載到最小系統(tǒng)上需要在Emulator方式下進行下載。下列圖為CCS2.0界面的相關(guān)介紹,如下列圖所示:圖11 軟件設(shè)置為Simulator方式單擊圖11的“Save and Quit,系統(tǒng)將進入程序新建編寫界面,如下列圖12所示圖12軟件開發(fā)界面單擊
14、圖12菜單欄中的“Project,選擇“Open,選擇time.pjt得到如下列圖13的界面圖13翻開工程界面最終需要將呈程序下載到最小系統(tǒng)上去,選擇菜單欄“File下的“Load Program,如下列圖14紅色標(biāo)記所示。選擇DEBUG文件夾里面的后綴名為.out文件,最終按“F5運行程序。圖14 下載程序界面3、工程設(shè)計總結(jié)本學(xué)期學(xué)習(xí)了 DSP原理及其應(yīng)用 這門課程,但只是從宏觀上對DSP的各局部的結(jié)構(gòu)以及原理有了一個根本的認(rèn)識,并沒有深入而又具體的對其進行了解。當(dāng)涉及到一些具體的應(yīng)用時,還是感到有些力不從心,而且不知道如何具體通過軟件來操作DSP實現(xiàn)具體的功能。但是通過此次基于DSP交通
15、燈工程的設(shè)計和實現(xiàn),我深入了解了TM320SF2812 GPIO和定時器及其中斷的具體操作,對其結(jié)構(gòu)和相關(guān)存放器,有了較好的掌握。同時對與C語言在DSP上進行編程的特點進行了了解,同時鍛煉自己的邏輯思維能力。在此次設(shè)計過程中,遇到了許多實際當(dāng)中沒有遇到過的問題,例如進行發(fā)光二極管的焊接時,由于沒有考慮到DSP GPIO輸出的高電平僅為3.3V而不是5V導(dǎo)致焊接完成進行測試時,發(fā)光二極管總是亮的,后來在老師的指點下對電路進行了改良,將發(fā)光二極管改成了共陰極,才實現(xiàn)了最終的測試結(jié)果。另外由于本次設(shè)計是以小組為單位的,而且每個小組都是七個人左右,在設(shè)計的過程中大家團結(jié)協(xié)作,共同應(yīng)對困難,并且積極交流
16、,最終使得本次CDIO工程設(shè)計取得圓滿的成功。在這期間,我學(xué)會了如何融入到一個團隊中,如何與團隊中其他的成員進行有效地溝通,使得自己在人際交往和為人處事方面也有了一定得提高,變得更善于溝通和交流。DSP作為一種比擬超前的科技知識,在此次CDIO工程設(shè)計中讓我對其產(chǎn)生了濃厚的興趣,并且自己在完成小組任務(wù)的情況下,積極的尋找其他的變成實現(xiàn)方法,并且最終通過自己的努力以及在指導(dǎo)老師的幫助下,自己有利用的新的方法實現(xiàn)了此次設(shè)計的任務(wù)。極大的豐富了自己的專業(yè)知識,也為以后的工作和進一步學(xué)習(xí)打下了堅實的根底。4、參考文獻1 蘇奎峰. TMS320X281xDSP原理及C語言編程.M 北京航空航天大學(xué)出版社
17、.20222 蘇奎峰、呂強. TMS320F2812原理與開發(fā).M 電子工業(yè)出版社.20093 清源科技.TMS320C28xDSP應(yīng)用程序設(shè)計教程M.機械工業(yè)出版社,2004.1.4 戴明楨.TMS320C54xDSP結(jié)構(gòu)、原理及應(yīng)用M.北京航空航天大學(xué)出版社,2001.8.5、附錄:#include "DSP281x_Device.h" #include "DSP281x_Examples.h" interrupt void cpu_timer0_isr(void);/定時器0中斷效勞程序生聲明unsigned int LED10=0x00,0x01
18、,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09;int i=9;int flag=1;void main(void) / 該函數(shù)在后面的 DSP281x_SysCtrl.c 文件中查找 InitSysCtrl();/ 初始化 GPIO: 該函數(shù)在 DSP281x_Gpio.c 文件中聲明,將A,B口初始化位輸出狀態(tài) InitGpio(); / 去除所有終中斷并初始化PIE向量表,禁止所有cpu中斷 DINT;/ 初始化PIE控制存放器為其默認(rèn)狀態(tài)所有PIE中斷被禁止并且標(biāo)志被去除/ 該函數(shù)在 DSP281x_PieCtrl.c 文件中聲明 InitPieCtr
19、l();/ 禁止所有cpu中斷并去除所有中斷標(biāo)志 IER = 0x0000; IFR = 0x0000; /初始化中斷向量表 該函數(shù)在 DSP281x_PieVect.c文件中聲明 InitPieVectTable();/將本程序中用到的中斷向量重新映射,使其指向中斷效勞相應(yīng)的程序 EALLOW; PieVectTable.TINT0 = &cpu_timer0_isr; EDIS; InitCpuTimers(); /初始化cpu定時器/配置CPU-timer0周期為1s,150M cpu頻率,1s的中斷周期 ConfigCpuTimer(&CpuTimer0,150,100
20、0000); StartCpuTimer0(); /使能連接到CPU_Timer 0的 CPU INT1 IER|=M_INT1;/ 使能PIE內(nèi)的 TINT0:Group 1 interrupt 7 PieCtrlRegs.PIEIER1.bit.INTx7 = 1; EINT; / 全局中斷使能 ERTM; / 使能實施調(diào)試中斷 DBGM / CpuTimer0Regs.TCR.bit.TSS=0; while(1) interrupt void cpu_timer0_isr(void) / 響應(yīng)中斷并允許系統(tǒng)接收更多的中斷 PieCtrlRegs.PIEACK.all = PIEACK_
21、GROUP1; /CpuTimer0.InterruptCount+; CpuTimer0Regs.TCR.bit.TIF = 1; CpuTimer0Regs.TCR.bit.TRB = 1; if(i<10) GpioDataRegs.GPBDAT.all=LEDi; if(i>=3) if(flag=1) GpioDataRegs.GPADAT.all=0x0024;/南北方向紅燈亮,東西方向綠燈亮 else GpioDataRegs.GPADAT.all=0x0009;/南北方向綠燈亮,東西方向紅燈亮 else GpioDataRegs.GPADAT.all=0x0012;
22、/東西南北方向黃燈都亮 if(i=0) flag=0; i=10; i-; 文件名:DSP281x_CpuTimers.c/功能描述:DSP281x CPU 32位定時器初始化及其相關(guān)函數(shù)#include "DSP281x_Device.h" / DSP281x Headerfile Include File#include "DSP281x_Examples.h" / DSP281x Examples Include Filestruct CPUTIMER_VARS CpuTimer0;/*InitCpuTimers:*/將定時器初始化為一個確定狀態(tài)v
23、oid InitCpuTimers(void) / CPU Timer 0/ 初始化各自定時器的存放器指向相應(yīng)的地址CpuTimer0.RegsAddr = &CpuTimer0Regs;/ 初始化定是周期為最大值CpuTimer0Regs.PRD.all = 0xFFFFFFFF;/ 初始化預(yù)定標(biāo)計數(shù)器,分頻系數(shù)為1時鐘:SYSCLKOUTCpuTimer0Regs.TPR.all = 0;CpuTimer0Regs.TPRH.all = 0;/確認(rèn)計數(shù)器處于停止計數(shù)狀態(tài)CpuTimer0Regs.TCR.bit.TSS = 1;/ 使用周期存放器的值裝載定時器計數(shù)存放器CpuTimer0Regs.TCR.bit.TRB = 1;CpuTimer0Regs.TIM.all = 0;/ 復(fù)位中斷計數(shù)標(biāo)量CpuTimer0.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東理工學(xué)院《街舞》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東科技學(xué)院《薪酬管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東江門幼兒師范高等??茖W(xué)校《景觀設(shè)計基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東機電職業(yè)技術(shù)學(xué)院《精確農(nóng)業(yè)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東行政職業(yè)學(xué)院《移動通信技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工業(yè)大學(xué)《特種材料連接》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工程職業(yè)技術(shù)學(xué)院《互聯(lián)網(wǎng)金融產(chǎn)品規(guī)劃與設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東第二師范學(xué)院《公司理財雙語》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東財貿(mào)職業(yè)學(xué)院《傳統(tǒng)造像(圓雕)》2023-2024學(xué)年第一學(xué)期期末試卷
- 小班安全找媽媽課件
- 普外科醫(yī)療組長競聘演講
- 北京市朝陽區(qū)2022-2023學(xué)年三年級上學(xué)期英語期末試卷
- GB/T 9755-2024合成樹脂乳液墻面涂料
- 嗶哩嗶哩MATES人群資產(chǎn)經(jīng)營白皮書【嗶哩嗶哩】
- 【歷史】第一、二單元測試題2024~2025學(xué)年統(tǒng)編版七年級歷史上冊
- 婚姻家庭規(guī)劃
- 認(rèn)識實習(xí)報告(10篇)
- 【MOOC】內(nèi)科護理學(xué)-中山大學(xué) 中國大學(xué)慕課MOOC答案
- 2024年商業(yè)地產(chǎn)買賣合同樣本
- 家族族譜模板
- 家譜修編倡議書范文
評論
0/150
提交評論