基于DSP的交通燈控制的設(shè)計(jì)_第1頁
基于DSP的交通燈控制的設(shè)計(jì)_第2頁
基于DSP的交通燈控制的設(shè)計(jì)_第3頁
基于DSP的交通燈控制的設(shè)計(jì)_第4頁
基于DSP的交通燈控制的設(shè)計(jì)_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、XXXXX電子信息工程學(xué)院課程設(shè)計(jì)報(bào)告交通燈綜合控制設(shè)計(jì)人:XXX專業(yè):電子信息工程班級:電子班學(xué)號:指導(dǎo)教師:二零一 X年X月1設(shè)計(jì)目的及要求41.1設(shè)計(jì)目的41.2 設(shè)計(jì)要求41.2.1 交通燈控制41.2.2 計(jì)時(shí)51.2.3 緊急情況51.2.4 程序設(shè)計(jì)52設(shè)計(jì)原理及方案 72.1 課程設(shè)計(jì)總體方案72.1.1 設(shè)計(jì)思路72.2 課程設(shè)計(jì)原理 72.2.1 系統(tǒng)工作原理 72.2.2 系統(tǒng)工作狀態(tài) 83硬件設(shè)計(jì)103.1 硬件總體設(shè)計(jì) 103.2 交通燈顯示模塊 113.3 計(jì)數(shù)顯示模塊123.4 開關(guān)模塊134軟件設(shè)計(jì)144.1 程序流程144.2 交通燈模擬顯示 154.3 定時(shí)

2、器及中斷設(shè)計(jì) 154.4 外中斷設(shè)計(jì)165系統(tǒng)調(diào)試185.1 硬件調(diào)試185.1.1電源調(diào)試185.1.2 Emulator 調(diào)試185.2 軟件調(diào)試215.2.1軟件設(shè)計(jì)215.2.2 程序運(yùn)行235.3 系統(tǒng)下載246結(jié)論分析及體會(huì)257參考文獻(xiàn)261設(shè)計(jì)目的及要求1.1設(shè)計(jì)目的(1)熟悉使用ICETEI- F2812-AE評估板控制ICETEK-CTRt交通 燈的方法。練習(xí)自主獨(dú)立的設(shè)計(jì),實(shí)現(xiàn)理論和實(shí)踐的統(tǒng)一,提高 自我動(dòng)手能力。掌握TMS320F2812DS定時(shí)器的使用和編程。掌握TMS320F2812DS外中斷的使用和編程。(4)學(xué)習(xí)復(fù)雜控制程序設(shè)計(jì)思路。利用DSF開發(fā)環(huán)境CCSC2

3、000對源程序文件進(jìn)行編譯、鏈接、裝載調(diào)試,以完成基本的 DSP項(xiàng)目文件設(shè)計(jì)。 通過此次課程設(shè)計(jì),學(xué)習(xí)DSPF2812芯片的I/O端口控制方法, 熟悉字模的簡單構(gòu)建和使用,熟悉掌握在DSP軟硬件環(huán)境下的程 序開發(fā)流程,達(dá)到學(xué)以致用的目的。1.2設(shè)計(jì)要求1.2.1交通燈控制要求:利用ICETEK-EDU實(shí)驗(yàn)箱提供的設(shè)備,設(shè)計(jì)模擬實(shí)際生活中十字 路口交通燈控制的程序。要求如下:交通燈分紅黃綠三色,東、南、西、北各一組,用燈光信號實(shí)現(xiàn) 對交通的控制:綠燈信號表示通行,黃燈表示警告,紅燈禁止通行,燈光閃爍表示信號即將改變。 計(jì)時(shí)顯示:8X8點(diǎn)陣顯示兩 位計(jì)數(shù),為倒計(jì)時(shí),每秒改變計(jì)數(shù)顯示。正常交通控制信

4、號順序:正常交通燈信號自動(dòng)變換(1)南北方向綠燈,東西紅燈(20秒)。(2)南北方向綠燈閃爍3次,東西紅燈(6秒)。(3)南北方向黃燈,東西紅燈(4秒)。(4)南北方向紅燈,東西方向綠燈(20秒)。(5)南北方向紅燈,東西方向綠燈閃 3次(6秒)。南北方向紅燈,東西方向黃燈(4秒)。返回循環(huán)控制緊急情況處理:模仿緊急情況(重要車隊(duì)通過、急救車通過等)發(fā) 生時(shí),交通警察手動(dòng)控制(1)當(dāng)任意方向通行剩余時(shí)間多于10秒,將時(shí)間改成10秒。正常變換到四面紅燈(20秒)。(3)直接返回正常信號順序的下一個(gè)通行信號 (跳過閃爍綠燈、 黃燈狀態(tài))。1.2.2 計(jì)時(shí)要求:使用TMS320VC5416DS片上定

5、時(shí)器,定時(shí)產(chǎn)生時(shí)鐘計(jì)數(shù),再利用此計(jì)數(shù)對應(yīng)具體時(shí)間。1.2.3 緊急情況要求:利用ICETEK-CTR上鍵盤產(chǎn)生外中斷,中斷正常信號順序,模擬 突發(fā)情況。1.2.4 程序設(shè)計(jì)要求根據(jù)設(shè)計(jì)要求,由于控制是由不同的各種狀態(tài)按順序發(fā)生的,我們可以采用狀態(tài)機(jī)制控制方法來解決此問題。這種方法是:首先列舉所有可能發(fā)生的狀態(tài);然后將這些狀 態(tài)編號,按順序產(chǎn)生這些狀態(tài);狀態(tài)延續(xù)的時(shí)間用程序控制。對 于突發(fā)情況,可采用在正常順序的控制中插入特殊控制序列的方 式完成。時(shí)鐘計(jì)數(shù):采用250ms 次中斷進(jìn)行累加計(jì)數(shù)。表格1狀態(tài)編號信號燈狀態(tài)狀態(tài)定義保持時(shí)間(計(jì)數(shù) 值,起始時(shí)間,結(jié) 束時(shí)間)計(jì) 數(shù) 顯 示1南北綠燈,東西

6、紅燈statusNSGree nEWR ed20 秒(160,0, 159)20-02南北綠燈閃爍,東西紅燈statusNSFIashEWR ed6 秒(24,160, 183)03南北黃燈,東西紅燈statusNSYellowEW Red4 秒(16,184, 199)204南北紅燈,東西黃燈statusNSRedEWYel low4 秒(16,200,215)205南北紅燈,東西綠燈statusNSRedEWGre en20 秒(160 , 216,375)20-16南北紅燈,東西綠燈 閃爍statusNSRedEWFla sh6 秒(24,376,399)07南北紅燈,東西黃燈statu

7、sNSRedEWYel low4 秒(16,400,415)208南北黃燈,東西紅燈statusNSYellowEWRed4 秒(16,416,431)20*南北紅燈,東西紅燈StatusHold20 秒(160,0, 159)20-1其中,正常順序每112秒(計(jì)數(shù)值448)為一個(gè)循環(huán),狀態(tài) 為非順序狀態(tài)。這樣,只要根據(jù)計(jì)數(shù)值就可確定當(dāng)前狀態(tài),根據(jù)狀態(tài)再分情 況處理。對于計(jì)數(shù)顯示,當(dāng)處于狀態(tài)1、5、*中時(shí)需要進(jìn)行倒計(jì)時(shí), 需要計(jì)算在此狀態(tài)中的計(jì)數(shù)值增量, 根據(jù)增量判斷是否更新計(jì)數(shù) 顯示。2設(shè)計(jì)原理及方案2.1設(shè)計(jì)總體方案2.1.1設(shè)計(jì)思路根據(jù)DSP的硬件中斷、定時(shí)器、I/O訪問的原理。用定時(shí)器

8、 定時(shí),用I/O 口控制紅綠黃燈的開關(guān),用硬件外部中斷模擬急救 車的到達(dá)。有急救車到達(dá)時(shí),兩向?yàn)槿t,以便讓急救車通過。 急救車通過后,交通燈恢復(fù)硬件中斷前的狀態(tài)。觸發(fā)開關(guān)(紅色按紐)為中斷申請,表示有急救車通過。在實(shí)驗(yàn)箱上交通燈模塊 由高8位數(shù)據(jù)線控制:南北紅燈D9 D11為高,南北黃燈D9 D11、 D13 D15為高,南北綠燈 D13 D15為高,東西紅燈 D8 D10為 高,東西黃燈由 D8 D10 D12 D14為高,東西綠燈 D12 D14 為高。交通燈模塊的I/O地址:0x5008h2.2課程設(shè)計(jì)原理2.2.1 系統(tǒng)工作原理本設(shè)計(jì)硬件由定時(shí)模塊、發(fā)光二極管模塊、數(shù)碼管顯示模塊 和

9、緊急中斷模塊組成。信號燈受芯片中輸出高低電平的控制。當(dāng) 鎖存器I/O 口輸出為高電平時(shí),他所驅(qū)動(dòng)的信號燈即發(fā)光二極管 就會(huì)亮起來。定時(shí)模塊采用硬件定時(shí)和軟件定時(shí)相結(jié)合的方法, 用DSP定時(shí)/計(jì)數(shù)器定時(shí)100ms再用軟件計(jì)時(shí)實(shí)現(xiàn)所需的定時(shí)。 發(fā)光二極管模塊由DSPB制發(fā)光二極管來實(shí)現(xiàn)。數(shù)碼管顯示模塊 由實(shí)驗(yàn)平臺(tái)上的LED顯示模塊實(shí)現(xiàn)。緊急中斷模塊是由單脈沖發(fā) 生單元和DSP中斷控制器組成。本次設(shè)計(jì)中東西南北路口的紅燈均亮1秒,信號燈開始工作,東西紅燈亮 20秒,在東西紅燈亮 的同時(shí),南北綠燈亮20秒。到20秒時(shí),東西綠燈閃亮,綠燈閃 亮的周期為2秒(亮1秒,滅1秒)。綠燈閃亮3次后滅,東西黃 燈

10、亮并維持4秒。到4秒時(shí),東西黃燈滅,東西紅燈亮,同時(shí)南 北紅燈滅,南北綠燈亮。東西紅燈亮維持 20秒,南北綠燈亮維 持20秒,到20秒時(shí),南北綠燈閃亮3次后滅,南北黃燈亮,并 維持4秒。到4秒時(shí),南北黃燈滅,南北紅燈亮,同時(shí)東西紅燈 滅,東西綠燈亮。緊接著開始第二周期的動(dòng)作,以后周而復(fù)始的 循環(huán)。2.2.2 系統(tǒng)工作狀態(tài)系統(tǒng)工作狀態(tài)狀態(tài)一:南北綠燈、東西紅燈,延時(shí) 20秒,20秒后南北綠燈閃3次,東西紅燈延時(shí)6秒;如圖所示圖2.1狀態(tài)一狀態(tài)二:南北黃燈、東西紅燈,持續(xù) 6秒;000000圖2.2 狀態(tài)二狀態(tài)三:東西綠燈、南北紅燈,延時(shí) 20秒,20秒后東西綠燈閃3次,南北紅燈持續(xù)6秒;00&#

11、187; 00圖2.3狀態(tài)三狀態(tài)四:東西黃燈、南北紅燈,持續(xù) 6秒;I 00»L' 0 0圖2.4狀態(tài)四狀態(tài)五:緊急狀態(tài)下東西南北均亮紅燈;oot 00圖2.5 狀態(tài)五3硬件設(shè)計(jì)3.1硬件總體設(shè)計(jì)1 根據(jù)設(shè)計(jì)要求,由于控制是由不同的各種狀態(tài)按順序發(fā)生的,我可以采用狀態(tài)機(jī)制控制方法來解決此問題。 這種方法是:首 先列舉所有可能發(fā)生的狀態(tài);然后將這些狀態(tài)編號 ,按順序產(chǎn)生 這些狀態(tài);狀態(tài)延續(xù)的時(shí)間用程序控制,對于突發(fā)情況 ,可采用 在正常順序的控制中插入特殊控制序列的方式完成。2 突發(fā)事件設(shè)置,在實(shí)際交通過程中會(huì)出現(xiàn)突發(fā)狀況,比如說有救護(hù)車或者110緊急車要通過,此時(shí)就可以通過小

12、鍵 盤進(jìn)行突發(fā)狀況模擬。通過按鍵進(jìn)入到中斷服務(wù)子程序,相當(dāng)于原來先要通過的車輛在突發(fā)狀況來了以后就要先讓緊急車輛 通過。原理框圖如圖3.1所示。圖 3.1 ICETEK-F2812-AE原理框圖3.2 交通燈顯示模塊利用ICETEK-CTF上的一組發(fā)光二極管(共12只,分為東西 南北四組、紅黃綠三色)的亮滅實(shí)現(xiàn)交通信號的模擬。 TMS320F2812 DSP有最多56個(gè)專門的通用輸入輸出管腳。這些 通用輸入輸出管腳通過專用寄存器可以由軟件控制,比如指定輸入、輸出以及輸出值等。通過ICETEK-F2812-AE評估板的插座, 擴(kuò)展板(通用輸出/控制模塊ICETEK-CTR將板上的一個(gè)指示燈 和D

13、SP勺一個(gè)通用輸入/輸出管腳直接相連。這個(gè)管腳為 PWM1,2 可以設(shè)置成通用輸入/輸出管腳使用。擴(kuò)展原理如圖3.2所示。UGHOIC?IO25J'DSP圖3.2發(fā)光二極管設(shè)計(jì)原理3.3計(jì)數(shù)顯示模塊計(jì)數(shù)顯示采用放光二極管顯示陣列顯示。TMS320F2812 DSP 的存儲(chǔ)器擴(kuò)展接口( EMIF)用來與大多數(shù)外圍設(shè)備進(jìn)行連接,典 型應(yīng)用如連接片外擴(kuò)展存儲(chǔ)器等。這一接口提供地址線、數(shù)據(jù)線和一組控制線,ICETEK-F2812-A評估板已將這些擴(kuò)展線引到了板 上的擴(kuò)展插座上,供擴(kuò)展使用。發(fā)光二極管顯示陣列由擴(kuò)展端口 控制,EMIF接口的兩個(gè)寄存器提供具體控制。原理圖如圖3.3所示。址it3-

14、31孔Hi皿i. F陽做和LnRR 了 lapllwlag一 nnnnnR ff.i * r_圖3.3計(jì)數(shù)顯示原理3.4開關(guān)模塊開關(guān)模塊采用外部外部存儲(chǔ)器擴(kuò)展接口( EMIF)上的PS2接 口鍵盤,通過掃描碼判斷輸入鍵值。TMS320F2812 DSP的擴(kuò)展存 儲(chǔ)器接口( EMIF用來與大多數(shù)外圍設(shè)備進(jìn)行連接,典型應(yīng)用如 連接片外擴(kuò)展存儲(chǔ)器等。這一接口提供地址線、數(shù)據(jù)線和一組控 制線,ICETEK-F2812-A評估板已將這些擴(kuò)展線引到了板上的擴(kuò)展 插座上。鍵盤的掃描碼由 DSP的擴(kuò)展地址0x108001給出,當(dāng)有 鍵盤輸入時(shí),讀此端口得到掃描碼,當(dāng)無鍵被按下時(shí)讀此端口的 結(jié)果為0。開關(guān)設(shè)計(jì)原

15、理如圖3.4所示。Dbg"ADORES鄧期口圖3.4 開關(guān)設(shè)計(jì)原理4軟件設(shè)計(jì)4.1程序流程該設(shè)計(jì)實(shí)現(xiàn)的功能是南北方向綠燈,東西紅10秒,南北方向綠燈閃爍3次,東西紅燈4秒,南北方向黃燈,東西紅燈2秒, 南北方向紅燈,東西方向綠燈 10秒,南北方向紅燈,東西方向 綠燈閃3次4秒,南北方向紅燈,東西方向黃燈(2秒)。在緊 急情況下,當(dāng)任意方向通行剩余時(shí)間多于 10秒,將時(shí)間改成10 秒,正常變換到四面紅燈 20秒,然后直接返回正常信號順序的下一個(gè)通行信號(跳過閃爍綠燈、黃燈狀態(tài))。程序流程圖如圖4.1結(jié)束圖4.1程序流程圖4.2交通燈模擬顯示顯示/控制模塊上的發(fā)光二極管是由連接在 281

16、2DSP擴(kuò)展地 址接口上的寄存器EW!和SNF控制的。這兩個(gè)寄存器均為6位寄 存器,其位定義見表 4.1表4.2。兩個(gè)寄存器的地址均映射到 2812DSP的擴(kuò)展空間,CTRLF地址為0x108007, DSP通過對該地 址的寫操作來修改兩個(gè)寄存器上各位的狀態(tài),當(dāng)寄存器某位取1值時(shí),相應(yīng)指示燈被點(diǎn)亮,取0'值則熄滅。當(dāng)寫入CTRLR 的數(shù)據(jù)(8位有效值)的高兩位為 00'時(shí),數(shù)據(jù)的低6位將寫入 EWF寄存器;當(dāng)高兩位的值為 01'時(shí),寫入SNR寄存器bit5bit4bit3bit2bit1bit0東-紅東-黃東-綠西-紅西-黃西-綠表4.1 寄存器EWRbit5bit4b

17、it3bit2bit1bit0南-紅南-黃南-綠北-紅北-黃北-綠表4.2 寄存器SNR4.3定時(shí)器及中斷設(shè)計(jì)TMS320F2812內(nèi)部有三個(gè)32位通用定時(shí)器(TIMER0/1/2), 定時(shí) 器1和2被保留給實(shí)時(shí)操作系統(tǒng)(DSPBIOS用,只有定時(shí) 器0可以提供給用戶使用。定時(shí)器采用中斷方式,中斷過程如下: a .接受中斷請求。必須由軟件中斷(從程序代碼)或硬件中斷(從一個(gè)引腳或一個(gè)基于芯片的設(shè)備)提出請求去暫停當(dāng)前主程 序的執(zhí)行。b.響應(yīng)中斷。必須能夠響應(yīng)中斷請求。如果中斷是可屏蔽的,則必須滿足一定的條件,按照一定的順序去執(zhí)行。而 對于非可屏蔽中斷和軟件中斷,會(huì)立即作出響應(yīng)。C 準(zhǔn)備執(zhí)行中斷

18、服務(wù)程序并保存寄存器的值。d.執(zhí)行中斷服務(wù)子程序。調(diào) 用相應(yīng)得中斷服務(wù)程序ISR,進(jìn)入預(yù)先規(guī)定的向量地址,并且執(zhí) 行已寫好的ISR。定時(shí)器及中斷的流程如圖4.2 。圖4.2 定時(shí)器及中斷流程圖4.4外中斷設(shè)計(jì)緊急情況時(shí),利用ICETEK-CTR上鍵盤產(chǎn)生外中斷,中斷正 常信號順序,模擬突發(fā)情況。顯示/控制模塊ICETEK-CTR1過接 口 P8連接小鍵盤,接收小鍵盤傳送的掃描碼,并在每個(gè)掃描碼 結(jié)束后保存,同時(shí)向DSP的XINT2發(fā)送中斷信號;當(dāng)DSP賣鍵盤時(shí)將掃描碼送到數(shù)據(jù)總線上。小鍵盤上每次按下一個(gè)鍵將產(chǎn)生2個(gè)掃描碼、2次中斷。外中斷的程序流程圖如圖 4.3所示開始初始化:DSP時(shí)鐘、IC

19、ETEK-CTR初始化中斷控制寄存器等待中斷產(chǎn)生圖4.3外中斷程序流程圖5系統(tǒng)調(diào)試5.1硬件調(diào)試5.1.1電源調(diào)試1 連接電源:打開實(shí)驗(yàn)箱,取出三相電源連接線 (如右圖),將電源線的一端插入實(shí)驗(yàn)箱外部左側(cè)箱壁上的電源插孔中。確認(rèn)實(shí)驗(yàn)箱面板上電源總開關(guān)(位于實(shí)驗(yàn)箱底板左上角)處于“關(guān)”的位 置,連接電源線的另一端至220V交流供電插座上,保證穩(wěn)固連 接。2 使用電源連接線(如右圖,插頭是帶孔的)連接各模塊電源: 確認(rèn)實(shí)驗(yàn)箱總電源斷開。連接ICETEK-CTR板上邊插座到實(shí)驗(yàn)箱 底板上+12V電源 插座;ICETEK-CTR板下邊插座到實(shí)驗(yàn)箱底板上 +5V電源插座;如使用PP(并口)型仿真器,則連

20、接仿真器上插座 到實(shí)驗(yàn)箱底板上+5V電源插座;連接DSP評估板模塊電源插座到 實(shí)驗(yàn)箱底板上+5V電源插座。注意各插頭要插到底,防止虛接或 接觸不良。3 連接DSP評估板信號線:當(dāng)需要連接信號源輸出到 A/D輸入 插座時(shí),使用信號連接線(如右圖)分別連接相應(yīng)插座。4 .接通電源:檢查實(shí)驗(yàn)箱上220V電源插座(箱體左側(cè))中保險(xiǎn) 管是否完好,在連接電源線以后,檢查各模塊供電連線是否正確 連接,打開實(shí)驗(yàn)箱上的電源總開關(guān)(位于實(shí)驗(yàn)箱底板左上角),使 開關(guān)位于“開”的位置,電源開關(guān)右側(cè)的指示燈亮。5.1.2 Emulator 調(diào)試1 .啟動(dòng)Simulator 方式CC5Z雙擊桌面上圖標(biāo):2 .啟動(dòng)Emul

21、ator 方式(1) 首先將實(shí)驗(yàn)箱電源關(guān)閉。連接實(shí)驗(yàn)箱的外接電源線。(2) 檢查ICETEK-5100USB仿真器的黑色JTAG插頭是否正確接 到ICETEK-VC5416-A板的J3插頭上。注:仿真器的插頭中有個(gè) 孔加入了封針與J3插頭上的缺針位置應(yīng)重合,保證不會(huì)插錯(cuò)。(3) 檢查是否已經(jīng)用電源連接線連接了ICETEK-VC5416-A板的P0W1插座和實(shí)驗(yàn)箱底板上+5V電源插座。(4) 檢查其他連線是否符合實(shí)驗(yàn)要求。檢查實(shí)驗(yàn)箱上三個(gè)撥動(dòng)開 關(guān)位置是否符合實(shí)驗(yàn)要求。(5) 打開實(shí)驗(yàn)箱上電源開關(guān)(位于實(shí)驗(yàn)箱底板左上角),注意開關(guān) 邊上紅色指示燈點(diǎn)亮。ICETEK-VC5416-A板上指示燈D1

22、和D2點(diǎn) 亮。如果打開了 ICETEK-CTR的電源開關(guān),ICETEK-CTR板上指示 燈L1、L2和L3點(diǎn)亮。如果打開了信號源電源開關(guān),相應(yīng)開關(guān)邊的指示燈點(diǎn)亮。 用實(shí)驗(yàn)箱附帶的USB信號線連接ICETEK-5100USB仿真器和 PC機(jī)后面的USB插座,注意ICETEK-5100USB仿真器上指示燈 Power和Run燈點(diǎn)亮。雙擊桌面上仿真器初始化圖標(biāo):H如果出現(xiàn)下面圖5.1提示窗口,表示初始化成功,按一下空格鍵進(jìn)入下一步操作圖5.1初始化圖如果窗口中沒有出現(xiàn)“按任意鍵繼續(xù)”,請關(guān)閉窗口,關(guān)閉實(shí)驗(yàn)箱電源,再將USB電纜從仿真器上拔出,返回第(2)步重試。女口果窗口中出現(xiàn)“ The adapt

23、er returned an error.”,并提示“按任意鍵繼續(xù)”表示初始瑞泰創(chuàng)新 ICETEK-VC5416-A-USB-EDU教學(xué)實(shí)驗(yàn)系統(tǒng)軟件實(shí)驗(yàn)指導(dǎo)III - 7化失敗,請關(guān)閉窗口重試兩三次,如果仍然不能初始化則 關(guān)閉實(shí)驗(yàn)箱電源,再將USB電纜從仿真器上拔出,返回第(2)步 重試。 雙擊桌面上圖標(biāo):CCS 2啟動(dòng)CCS2.21:匚丄 如果進(jìn)入CCS提示錯(cuò)誤,先選“ Abort ”,然后用“初始化 ICETEK-5100USB2.0仿真器”初始化仿真器,如提示出錯(cuò),可多 做幾次。如仍然出錯(cuò),拔掉仿真器上USB接頭(白色方形),按一 下ICETEK-VC5416-A板上S1復(fù)位按鈕,連接U

24、SB接頭再做“初 始化 ICETEK-5100 USB2.0 仿真器”。 如果遇到反復(fù)不能連接或復(fù)位仿真器、進(jìn)入 CCS報(bào)錯(cuò),請打開 Win dows的“任務(wù)管理器”,在“進(jìn)程”卡片上的“映像名稱” 欄中查找是否有“ cc_app.exe ”,將它結(jié)束再試。5.2軟件調(diào)試5.2.1軟件設(shè)計(jì)CCS可以工作在純軟件仿真環(huán)境中,就是由軟件在 PC機(jī)內(nèi)存 中構(gòu)造一個(gè)虛擬的DSP環(huán)境,可以調(diào)試、運(yùn)行程序。但一般軟件 無法構(gòu)造DSP中的外設(shè),所以軟件仿真通常用于調(diào)試純軟件的算 法和進(jìn)行效率分析等。在使用軟件仿真方式工作時(shí),無需連接板卡和仿真器等硬件。 單擊桌面上圖標(biāo):進(jìn)入CCS設(shè)置窗口。 在出現(xiàn)的窗口中按

25、標(biāo)號順序進(jìn)行如下圖5.2設(shè)置:圖5.2仿真設(shè)置圖接著在下面出現(xiàn)的窗口中選擇“否(N) ”。此時(shí)CCS已經(jīng)被設(shè)置成Simulator 方式(軟件仿真TMS320VC5416器件的方式),如果一直使用這一方式就不需要重新進(jìn)行以上設(shè)置操作了。2.設(shè)置CCS通過ICETEK-5100USB仿真器連接 ICETEK-VC5416-A硬件環(huán)境進(jìn)行軟件調(diào)試和開發(fā)。在出現(xiàn)的窗口按標(biāo)號順序進(jìn)行如下圖5.5設(shè)置:(1)單擊桌面上圖標(biāo):Setup CC5 2:進(jìn)入CCS設(shè)置窗口 在出現(xiàn)的窗口中按標(biāo)號順序進(jìn)行如下圖5.3設(shè)置:t f i ar AI ,i. >»fi單J思押工恥山請向I CITE K

26、USB EF-al<t«r fwr 55<k ¥T54(K EE5L01EB litul 譏址TOWS J1E5IDU5B氐心祕盯VC541D HS5L01EB 險(xiǎn)心譏蚯單由輸人Fkllvlrl.Fl<t fmiiurnOjh TI?3£OC54in CFVE* m IClTEK-5iO(l UKBtirui 甘 l«t I A- X/*" P-nrl 0z iTSrn圖5.3 CSS2設(shè)置圖(3)接著在下面的窗口中按標(biāo)號順序進(jìn)行如下圖5.4選擇:C«4t Cmpostcr Studi St tv#-Sysfenn

27、Confcgurartion用鼠標(biāo)右 舉單擊此殺roDB5?or TypesXK5LO ZkhIaI丿此項(xiàng)圖5.4 CSS2設(shè)置圖圖5.5 CSS2設(shè)置圖 在出現(xiàn)的窗口按標(biāo)號順序進(jìn)行如下圖 5.6設(shè)置:-J°J *SysieiH Conrlii| orir ( fiiTtoporiijrT VudMi Srtiiq>_斗噩團(tuán)B <£Save changes Co sytiEefn corfiguriiibDn?RMta Adda rwwto ishs 卉歟價(jià) con聞ir 駄冊,JJf就擊此孩H1選幵 ,tv&'單擊此、9 股屮匚皿 Gp !hd

28、a m M*f.'.';C<SJ圖5.6 CSS2設(shè)置圖以上設(shè)置完成后,CCS已經(jīng)被設(shè)置成Emulator的方式(用仿真器 連接硬件板卡的方式),并且指定通過ICETEK-5100USB仿真器連 接ICETEK-VC5416-A評估板。如果您需要一直使用這一方式就不 需要重新進(jìn)行以上設(shè)置操作了。5.2.2程序運(yùn)行選擇菜單“ Project ”的“ New”項(xiàng)。如圖5.7所示。Clip曲燈Erojtct. 好gEL nEile Edit yiw窗目口 11OpiKD.圖5.7 CSS2設(shè)置圖如下圖,按編號順序操作建立 Trafficlight.pjt工程文件:展開主窗口左側(cè)

29、工程管理窗口中“ Projects ”下新建立的“ Trafficlight.pjt”,其中各項(xiàng)均為空。(2) 在工程文件中添加程序文件:選擇菜單“ Project ”的“Add Files to Project ”項(xiàng);在“ Add Files to Project”對話框中選擇文件目錄為 C:ICETEK-VC5416-EDULabLab0601-UseCC,改 變文件類型為“ C SourceFiles(*c;*ccc) ” ,選擇顯示出來的文件 “Trafficlight.c ” ; 重復(fù)上述各步驟,添加 Trafficlight.cmd 文件,到volume工程 中;添加 C:tiC5

30、400cgtoolslibrts.lib。編譯連接工程:選擇菜單“ Project ”的“Rebuild All ”項(xiàng), 或單擊工具條中的按鈕;注意編譯過程中CCS主窗口下部的“Build ”提示窗中顯示編譯信息,最后將給出錯(cuò)誤和警告的統(tǒng) 計(jì)數(shù)。5.3系統(tǒng)下載(1)下載程序:執(zhí)行File f Load Program ,在隨后打開的對話框中選擇剛剛建立的C:ICETEK-VC5416-EDULabLab0601-UseCCSDebugTrafficlig ht.out 文件。 設(shè)置軟件調(diào)試斷點(diǎn):在項(xiàng)目瀏覽窗口中,雙擊 Trafficlight.c激活這個(gè)文件,移動(dòng)光標(biāo)到 main()行上,單擊

31、鼠標(biāo)右鍵選擇Toggle Breakpoint或按F9設(shè)置斷點(diǎn)(另外,雙擊 此行左邊的灰色控制條也可以設(shè)置或刪除斷點(diǎn)標(biāo)記 )。 利用斷點(diǎn)調(diào)試程序:選擇Debugs Run或按F5運(yùn)行程序,程 序會(huì)自動(dòng)停在main()函數(shù)上。 在ICETEK-CTR附帶的小鍵盤上按下按鍵,觀察信號是否滿足 要求。6設(shè)計(jì)心得與體會(huì)此次課程設(shè)計(jì),通過學(xué)習(xí),我進(jìn)一步熟悉了CCS軟件,鞏固了以前所學(xué)過的知識。通過對書本上的理論知識與實(shí)際的操作 相結(jié)合,對所學(xué)的理論知識也有了更深層次的理解。本次設(shè)計(jì)中主要用到了 DSP的硬件中斷、定時(shí)器以及I/O訪 問等方面的相關(guān)的知識。對于這幾方面知識我并不陌生,在以前 的的課程設(shè)計(jì)中

32、,這些內(nèi)容都曾涉及,再加上曾經(jīng)DSP課程的學(xué)習(xí)。因此在本次的功能實(shí)現(xiàn)方面遇到的問題并不是太多。不過畢 竟DSP勺相關(guān)知識有別于單片機(jī),因此對編程的理解上還是出現(xiàn) 了一些問題,通過對課本以及相關(guān)資料的查詢,這些問題也及時(shí) 的得到了解決。通過對問題的發(fā)現(xiàn)與解決,使我更加了解DSP的原理及其編 程的相關(guān)注意事項(xiàng),加深了對課本理論知識的理解。7參考文獻(xiàn)1 劉和平等.DSP原理及電機(jī)控制應(yīng)用一基于 TMS320LF2407X 系列M.北京航空航天大學(xué)出版社,2006.2 寧改娣等.DSP控制器原理及應(yīng)用M.北京:科學(xué)出版社,2002.3 仿真系統(tǒng)使用說明書,北京瑞泰創(chuàng)新有限公司。4 清源科技.TMS32

33、0C54XDSP應(yīng)用程序設(shè)計(jì)教程M.機(jī)械工業(yè) 出版社,2004.1. 清源科技.TMS320C54X硬件開發(fā)教程M.機(jī)械工業(yè)出版社,2003.1.附錄一控制源程序#in elude "sea ncode.h"#defi ne SPSAO *(u nsig ned int *)0x38#defi ne SPSDO *(u nsig ned int *)0x39#defi ne REGISTERCLKMD (*(u nsig ned int *)0x58)#defi neTIM*(i nt *)0x24#defi nePRD*(i nt *)0x25#defi neTCR*(i

34、 nt *)0x26#defi neIMR*(i nt *)0x0#defi neIFR*(i nt *)0x1#defi nePMST*(i nt *)0x1d#defi ne n StatusNSGree nEWRed 160#defi ne n StatusNSFIashEWRed 184#defi ne n StatusNSYellowEWRed 200#defi ne n StatusNSRedEWYellow 216#defi ne n StatusNSRedEWGreen 376#defi ne n StatusNSRedEWFlash 400#defi ne n StatusN

35、SRedEWYellowl 416#defi ne n StatusNSYellowEWRed1 432#defi ne n TotalTime 448#defi ne n StatusHold 160#defi ne statusNSGree nEWRed 0#defi ne statusNSFlashEWRed 1#defi ne statusNSYellowEWRed 2#defi ne statusNSRedEWYellow 3#defi ne statusNSRedEWGreen 4#defi ne statusNSRedEWFIash 5#defi ne statusHold 6i

36、oport un sig ned int port3004;/ CTR擴(kuò)展寄存器定義ioport un sig ned int port8000;ioport un sig ned int port8001;ioport un sig ned int port8002;ioport un sig ned int port8003;ioport un sig ned int port8004;ioport un sig ned int port8005;ioport un sig ned int port8007;#defi ne CTRGRport8000#defi ne CTRLCDCMDR

37、 port8001#defi ne CTRKEYport8001#defi ne CTRCLKEY port8002#defi ne CTRLCDCR port8002#defi ne CTRLCDLCR port8003#defi ne CTRLCDRCR port8004#defi ne CTRLAport8005#defi ne CTRLRport8007void In itDSP();void In itTimer();void In itlCETEKCTR();void in terrupt time(void);void in terrupt xin t2(void); / XIN

38、T2中斷服務(wù)程序void SetLEDArray(i nt nNumber);/修改顯示內(nèi)容void RefreshLEDArray();/刷新顯示void En dICETEKCTR();un sig ned int uWork ,n TimeCo unt;un sig ned int uLightStatusEW,uLightStatusSN;un sig ned int bHold;un sig ned char ledbuf8,ledx8;un sig ned char led40=0x7E,0x81,0x81,0x7E,0x00,0x02,0xFF,0x00,0xE2,0x91,0x

39、91,0x8E,0x42,0x89,0x89,0x76,0x38,0x24,0x22,0xFF,0x4F,0x89,0x89,0x71,0x7E,0x89,0x89,0x72,0x01,0xF1,0x09,0x07,0x76,0x89,0x89,0x76,0x4E,0x91,0x91,0x7E;mai n()int n Work1, nWork2, nWork3, nWork4;intnN owStatus ,n OldStatus ,n OldTimeCo un t, nSaveTimeCo un t, nSaveStatus;un sig ned int n Sea nCode;nTime

40、Cou nt=O; bHold=0;uLightStatusEW=uLightStatusSN=O;nN owStatus=0; n OldStatus=1; n OldTimeCou nt=0;InitDSP();/初始化DSP設(shè)置運(yùn)行速度InitlCETEKCTR();/初始化顯示/控制模塊Ini tTimer();/設(shè)置定時(shí)器中斷/根據(jù)計(jì)時(shí)器計(jì)數(shù)切換狀態(tài)/根據(jù)狀態(tài)設(shè)置計(jì)數(shù)和交通燈狀態(tài)while ( 1 )if ( bHold && nN owStatus=statusHold )if ( nTimeCou nt>=nStatusHold )nN owStatus=n

41、 SaveStatus;n TimeCou nt=n SaveTimeCo unt;bHold=0;elseif(n TimeCou nt<n StatusNSGree nEWRed )nN owStatus=statusNSGree nEWRed;elseif(nTimeCount<nStatusNSFIashEWRed )nN owStatus=statusNSFIashEWRed;elseif( nTimeCount<nStatusNSYellowEWRed )nN owStatus=statusNSYellowEWRed;elseif( nTimeCount<n

42、StatusNSRedEWYellow )nN owStatus=statusNSRedEWYellow;elseif(n TimeCou nt<n StatusNSRedEWGreen )nN owStatus=statusNSRedEWGree n;elseif(nTimeCount<nStatusNSRedEWFIash )nN owStatus=statusNSRedEWFIash;elseif( n TimeCou nt< nStatusNSRedEWYellow1 )nN owStatus=statusNSRedEWYellow;elseif( n TimeCou

43、 nt<n StatusNSYellowEWRed1 )nN owStatus=statusNSYellowEWRed;if (nN owStatus=nOldStatus )switch ( nN owStatus )case statusNSFlashEWRed:n Work 仁n TimeCou nt-n StatusNSGree nEWRed;n Work2=nStatusNSYellowEWRed-nStatusNSFIashEWRed;n Work3=nWork2/3;n Work4=nWork3/2;if ( nWork1>=0&&nWork2>

44、0&&nWork3>0&& nWork4>0 )uLightStatusSN=( (n Workl% nWork3)<=nWork4 )?(0x49):(0 x40);break;case statusNSRedEWFIash:n Work 仁n TimeCou nt-n StatusNSRedEWGree n;n Work2=nStatusNSRedEWYellow1- nStatusNSRedEWFIash;n Work3=nWork2/3;n Work4=nWork3/2;if ( nWork1>=0&&nWork2

45、>0&&nWork3>0&& nWork4>0 )uLightStatusEW=( (n Work1% nWork3)<=nWork4 )?(0x09):(0x00);break;case statusNSGree nEWRed:n Work 仁n StatusNSGree nEWRed/30;if ( n Work1>0 )n Work2=30-nTimeCou nt/nWork1;if ( bHold )if ( nWork2>10 )nTimeCou nt=nWork1*10;n Work2=10;if ( n OldT

46、imeCou nt!=nWork2 )n OldTimeCou nt=nWork2;SetLEDArray( nWork2);break;case statusNSRedEWGree n:n Work 1=(n StatusNSRedEWGree n-n StatusNSRedEWYellow)/30if ( n Work1>0 )n Work2=30-( nTimeCou nt-n StatusNSRedEWYellow)/nWork1;if ( bHold )if ( nWork2>10 )nTimeCou nt=nStatusNSRedEWYellow+nWork1*10;n

47、 Work2=10;if ( n OldTimeCou nt!=nWork2 )n OldTimeCou nt=nWork2;SetLEDArray( nWork2);break;case statusHold:n Work 仁n StatusHold/30;if ( n Work1>0 )n Work2=30-nTimeCou nt/nWork1;if ( n OldTimeCou nt!=nWork2 )n OldTimeCou nt=nWork2;SetLEDArray( nWork2);break; elseif ( bHold )n SaveStatus=nN owStatus

48、;n SaveTimeCou nt=n TimeCo unt;nN owStatus=statusHold;n TimeCo un t=0;if ( nSaveStatus=statusNSFIashEWRed |n SaveStatus=statusNSYellowEWRed )n SaveStatus=statusNSRedEWGree n;n SaveTimeCou nt=nStatusNSRedEWYellow;else if ( n SaveStatus=statusNSRedEWFlash| nSaveStatus=statusNSRedEWYellow )n SaveStatus

49、=statusNSGree nEWRed;n SaveTimeCo un t=0;n OldStatus=nN owStatus;switch ( nN owStatus )case statusNSGree nEWRed:uLightStatusEW=0x25;uLightStatusSN=0x49;SetLEDArray(18);break;case statusNSFIashEWRed:uLightStatusEW=0x24;uLightStatusSN=0x49;SetLEDArray(0);break;case statusNSYellowEWRed:uLightStatusEW=0x24; uLightStatusSN=0x52;SetLEDArray(20);break;case statusNSRedEWYellow:uLightStatusEW=0x12; uLightStatusSN=0x64;SetLEDArray(20);bre

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論