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

下載本文檔

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

文檔簡介

1、 XXXXXX電子信息工程學(xué)院課程設(shè)計(jì)報(bào)告交通燈綜合控制 設(shè) 計(jì) 人:XXX專 業(yè):電子信息工程班 級:電子班學(xué) 號:指導(dǎo)教師:二零一X年X月 目 錄1 設(shè)計(jì)目的及要求.4 1.1設(shè)計(jì)目的.4 1.2設(shè)計(jì)要求.4 1.2.1 交通燈控制.4 1.2.2 計(jì)時(shí).5 1.2.3 緊急情況.5 1.2.4 程序設(shè)計(jì).5 2 設(shè)計(jì)原理及方案.7 2.1 課程設(shè)計(jì)總體方案.7 2.1.1 設(shè)計(jì)思路 .7 2.2課程設(shè)計(jì)原理.7 2.2.1 系統(tǒng)工作原理.72.2.2 系統(tǒng)工作狀態(tài) .8 3 硬件設(shè)計(jì).10 3.1 硬件總體設(shè)計(jì).10 3.2 交通燈顯示模塊 .11

2、 3.3 計(jì)數(shù)顯示模塊.12 3.4 開關(guān)模塊.134 軟件設(shè)計(jì).14 4.1 程序流程.14 4.2 交通燈模擬顯示.15 4.3 定時(shí)器及中斷設(shè)計(jì).15 4.4 外中斷設(shè)計(jì).165 系統(tǒng)調(diào)試.18 5.1 硬件調(diào)試.18 5.1.1 電源調(diào)試.185.1.2 Emulator調(diào)試.18 5.2軟件調(diào)試.215.2.1軟件設(shè)計(jì).215.2.2程序運(yùn)行.23 5.3系統(tǒng)下載.246 結(jié)論分析及體會.257參考文獻(xiàn).261 設(shè)計(jì)目的及要求 1.1 設(shè)計(jì)目的(1) 熟悉使用ICETEKF2812-AE評估板控制ICETEK-CTR上交通燈的方法。練習(xí)自主獨(dú)立的設(shè)計(jì),實(shí)現(xiàn)理論和實(shí)踐的統(tǒng)一,提高自我動

3、手能力。 (2) 掌握TMS320F2812DSP定時(shí)器的使用和編程。 (3) 掌握TMS320F2812DSP外中斷的使用和編程。 (4)學(xué)習(xí)復(fù)雜控制程序設(shè)計(jì)思路。 (5)利用DSP開發(fā)環(huán)境CCS  C2000對源程序文件進(jìn)行編譯、鏈接、裝載調(diào)試,以完成基本的DSP項(xiàng)目文件設(shè)計(jì)。 (6)通過此次課程設(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è)備

4、,設(shè)計(jì)模擬實(shí)際生活中十字路口交通燈控制的程序。要求如下: 交通燈分紅黃綠三色,東、南、西、北各一組,用燈光信號實(shí)現(xiàn)對交通的控制:綠燈信號表示通行,黃燈表示警告,紅燈禁止通行,燈光閃爍表示信號即將改變。 計(jì)時(shí)顯示:8×8點(diǎn)陣顯示兩位計(jì)數(shù),為倒計(jì)時(shí),每秒改變計(jì)數(shù)顯示。 正常交通控制信號順序:正常交通燈信號自動變換 (1) 南北方向綠燈,東西紅燈(20秒)。 (2) 南北方向綠燈閃爍3次,東西紅燈(6秒)。 (3) 南北方向黃燈,東西紅燈(4秒)。 (4) 南北方向紅燈,東西方向綠燈(20秒)。 (5) 南北方

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

6、生外中斷,中斷正常信號順序,模擬突發(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南北綠燈,東西紅燈statusNSGreenEWRed20秒(160,0,159)20-02南北綠燈閃爍,東西紅燈statusNSFla

7、shEWRed6秒(24,160,183)03南北黃燈,東西紅燈statusNSYellowEWRed4秒(16,184,199)204南北紅燈,東西黃燈statusNSRedEWYellow4秒(16,200,215)205南北紅燈,東西綠燈statusNSRedEWGreen20秒(160,216,375)20-16南北紅燈,東西綠燈閃爍statusNSRedEWFlash6秒(24,376,399)07南北紅燈,東西黃燈statusNSRedEWYellow4秒(16,400,415)208南北黃燈,東西紅燈statusNSYellowEWRed4秒(16,416,431)20*南北紅燈

8、,東西紅燈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í)器定時(shí),用I/O口控制紅綠黃燈的開關(guān),用硬件外部中斷模擬急救車的到達(dá)。有急救車到達(dá)時(shí),兩向?yàn)槿t,以便讓急救車通過。急救車通過后,交通燈恢復(fù)硬件中斷前的狀態(tài)。觸發(fā)開關(guān)

9、(紅色按紐)為中斷申請,表示有急救車通過。在實(shí)驗(yàn)箱上交通燈模塊由高8位數(shù)據(jù)線控制:南北紅燈D9、D11為高,南北黃燈D9、D11、D13、D15為高,南北綠燈D13、D15為高,東西紅燈D8、D10為高,東西黃燈由D8、D10、D12、D14為高,東西綠燈D12、D14為高。交通燈模塊的I/O地址:0x5008h 圖 01設(shè)計(jì)總流程圖 2.2 課程設(shè)計(jì)原理 2.2.1 系統(tǒng)工作原理本設(shè)計(jì)硬件由定時(shí)模塊、發(fā)光二極管模塊、數(shù)碼管顯示模塊和緊急中斷模塊組成。信號燈受芯片中輸出高低電平的控制。當(dāng)鎖存器I/O口輸出為高電平時(shí),他所驅(qū)動的信號燈即發(fā)光二極管就會亮起來。定時(shí)模塊采用硬件定時(shí)和軟件定時(shí)相結(jié)合的

10、方法,用DSP定時(shí)/計(jì)數(shù)器定時(shí)100ms,再用軟件計(jì)時(shí)實(shí)現(xiàn)所需的定時(shí)。發(fā)光二極管模塊由DSP控制發(fā)光二極管來實(shí)現(xiàn)。數(shù)碼管顯示模塊由實(shí)驗(yàn)平臺上的LED顯示模塊實(shí)現(xiàn)。緊急中斷模塊是由單脈沖發(fā)生單元和DSP中斷控制器組成。本次設(shè)計(jì)中東西南北路口的紅燈均亮1秒,信號燈開始工作,東西紅燈亮20秒,在東西紅燈亮的同時(shí),南北綠燈亮20秒。到20秒時(shí),東西綠燈閃亮,綠燈閃亮的周期為2秒(亮1秒,滅1秒)。綠燈閃亮3次后滅,東西黃燈亮并維持4秒。到4秒時(shí),東西黃燈滅,東西紅燈亮,同時(shí)南北紅燈滅,南北綠燈亮。東西紅燈亮維持20秒,南北綠燈亮維持20秒,到20秒時(shí),南北綠燈閃亮3次后滅,南北黃燈亮,并維持4秒。到4

11、秒時(shí),南北黃燈滅,南北紅燈亮,同時(shí)東西紅燈滅,東西綠燈亮。緊接著開始第二周期的動作,以后周而復(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秒;圖2.2 狀態(tài)二狀態(tài)三:東西綠燈、南北紅燈,延時(shí)20秒,20秒后東西綠燈閃3次,南北紅燈持續(xù)6秒;圖2.3狀態(tài)三狀態(tài)四:東西黃燈、南北紅燈,持續(xù)6秒;圖2.4狀態(tài)四狀態(tài)五:緊急狀態(tài)下東西南北均亮紅燈;圖2.5 狀態(tài)五3 硬件設(shè)計(jì) 3.1硬件總體設(shè)計(jì) 1根據(jù)設(shè)計(jì)要求,由于控制是由不同的各種狀態(tài)按順序發(fā)生的,我可

12、以采用狀態(tài)機(jī)制控制方法來解決此問題。這種方法是:首先列舉所有可能發(fā)生的狀態(tài);然后將這些狀態(tài)編號,按順序產(chǎn)生這些狀態(tài);狀態(tài)延續(xù)的時(shí)間用程序控制,對于突發(fā)情況,可采用在正常順序的控制中插入特殊控制序列的方式完成。  2突發(fā)事件設(shè)置, 在實(shí)際交通過程中會出現(xiàn)突發(fā)狀況, 比如說有救護(hù)車或者110 緊急車要通過, 此時(shí)就可以通過小鍵盤進(jìn)行突發(fā)狀況模擬。通過按鍵進(jìn)入到中斷服務(wù)子程序, 相當(dāng)于原來先要通過的車輛在突發(fā)狀況來了以后就要先讓緊急車輛通過。原理框圖如圖3.1所示。       &

13、#160;圖3.1 ICETEK-F2812-AE原理框圖 3.2 交通燈顯示模塊  利用ICETEK-CTR上的一組發(fā)光二極管(共12只,分為東西南北四組、紅黃綠三色)的亮滅實(shí)現(xiàn)交通信號的模擬。TMS320F2812 DSP有最多56個(gè)專門的通用輸入輸出管腳。這些通用輸入輸出管腳通過專用寄存器可以由軟件控制,比如指定輸入、輸出以及輸出值等。通過ICETEK-F2812-AE評估板的插座,擴(kuò)展板(通用輸出/控制模塊ICETEK-CTR)將板上的一個(gè)指示燈和DSP的一個(gè)通用輸入/輸出管腳直接相連。這個(gè)管腳為PWM12,可以設(shè)置成通用輸入/輸出管腳

14、使用。擴(kuò)展原理如圖3.2所示。 圖3.2發(fā)光二極管設(shè)計(jì)原理 3.3計(jì)數(shù)顯示模塊 計(jì)數(shù)顯示采用放光二極管顯示陣列顯示。TMS320F2812 DSP的存儲器擴(kuò)展接口(EMIF)用來與大多數(shù)外圍設(shè)備進(jìn)行連接,典型應(yīng)用如連接片外擴(kuò)展存儲器等。這一接口提供地址線、數(shù)據(jù)線和一組控制線,ICETEK-F2812-A評估板已將這些擴(kuò)展線引到了板上的擴(kuò)展插座上,供擴(kuò)展使用。發(fā)光二極管顯示陣列由擴(kuò)展端口控制,EMIF接口的兩個(gè)寄存器提供具體控制。原理圖如圖3.3所示。 圖3.3 計(jì)數(shù)顯示原理3.4開關(guān)模塊 開關(guān)模塊采用外部外部存儲器擴(kuò)展接口(EMIF)上的PS2

15、接口鍵盤,通過掃描碼判斷輸入鍵值。TMS320F2812 DSP的擴(kuò)展存儲器接口(EMIF)用來與大多數(shù)外圍設(shè)備進(jìn)行連接,典型應(yīng)用如連接片外擴(kuò)展存儲器等。這一接口提供地址線、數(shù)據(jù)線和一組控制線,ICETEK-F2812-A評估板已將這些擴(kuò)展線引到了板上的擴(kuò)展插座上。鍵盤的掃描碼由DSP的擴(kuò)展地址0x108001給出,當(dāng)有鍵盤輸入時(shí),讀此端口得到掃描碼,當(dāng)無鍵被按下時(shí)讀此端口的結(jié)果為0。開關(guān)設(shè)計(jì)原理如圖3.4所示。 圖3.4 開關(guān)設(shè)計(jì)原理 4 軟件設(shè)計(jì) 4.1程序流程該設(shè)計(jì)實(shí)現(xiàn)的功能是南北方向綠燈,東西紅10秒,南北方向綠燈閃爍3次,東西紅燈4秒,南北方向黃燈,東西

16、紅燈2秒,南北方向紅燈,東西方向綠燈10秒,南北方向紅燈,東西方向綠燈閃3次4秒,南北方向紅燈,東西方向黃燈(2秒)。在緊急情況下,當(dāng)任意方向通行剩余時(shí)間多于10秒,將時(shí)間改成10秒,正常變換到四面紅燈20秒,然后直接返回正常信號順序的下一個(gè)通行信號(跳過閃爍綠燈、黃燈狀態(tài))。程序流程圖如圖4.1所示。開始初始化: CPU頻率、ICETEK-CTR、定時(shí)器、中斷控制寄存器、工作變量根據(jù)定時(shí)器計(jì)數(shù)確定當(dāng)前狀態(tài)根據(jù)當(dāng)前狀態(tài)設(shè)置指示燈狀態(tài)根據(jù)當(dāng)前狀態(tài)設(shè)置發(fā)光二極管顯示陣列狀態(tài)讀取鍵盤輸入結(jié)束?是否結(jié)束定時(shí)器中斷服務(wù)程序入口計(jì)數(shù)工作變量值在原基礎(chǔ)上加1退出定時(shí)器中斷服務(wù)程序鍵盤中斷服務(wù)程序入口設(shè)置突發(fā)

17、事件標(biāo)志退出鍵盤中斷服務(wù)程序 圖4.1 程序流程圖4.2交通燈模擬顯示 顯示/控制模塊上的發(fā)光二極管是由連接在2812DSP擴(kuò)展地址接口上的寄存器EWR和SNR控制的。這兩個(gè)寄存器均為6位寄存器,其位定義見表4.1表4.2。兩個(gè)寄存器的地址均映射到2812DSP的擴(kuò)展空間,CTRLR地址為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位將寫入EWR寄存器;當(dāng)高兩位的值為01時(shí),寫入SNR寄存器bit5bit4bit3bit2bit1bit0東-紅 東

18、-黃 東-綠 西-紅 西-黃 西-綠表4.1 寄存器EWRbit5bit4bit3bit2bit1bit0南-紅 南-黃 南-綠 北-紅 北-黃 北-綠表4.2 寄存器SNR4.3定時(shí)器及中斷設(shè)計(jì)TMS320F2812A內(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)中斷請求。如果中斷是可屏蔽的,則必須滿足一定的條件,按照一定的

19、順序去執(zhí)行。而對于非可屏蔽中斷和軟件中斷,會立即作出響應(yīng)。c準(zhǔn)備執(zhí)行中斷服務(wù)程序并保存寄存器的值。d執(zhí)行中斷服務(wù)子程序。調(diào)用相應(yīng)得中斷服務(wù)程序ISR,進(jìn)入預(yù)先規(guī)定的向量地址,并且執(zhí)行已寫好的ISR。定時(shí)器及中斷的流程如圖4.2。開始初始化DSP時(shí)鐘初始化中斷向量等待中斷產(chǎn)生初始化定時(shí)器改變指示燈狀態(tài)中斷服務(wù)開始中斷服務(wù)結(jié)束 圖4.2 定時(shí)器及中斷流程圖4.4外中斷設(shè)計(jì) 緊急情況時(shí),利用ICETEK-CTR上鍵盤產(chǎn)生外中斷,中斷正常信號順序,模擬突發(fā)情況。顯示/控制模塊ICETEK-CTR通過接口P8連接小鍵盤,接收小鍵盤傳送的掃描碼,并在每個(gè)掃描碼結(jié)束后保存,同時(shí)向DSP的XINT2發(fā)送中斷信

20、號;當(dāng)DSP讀鍵盤時(shí)將掃描碼送到數(shù)據(jù)總線上。小鍵盤上每次按下一個(gè)鍵將產(chǎn)生2個(gè)掃描碼、2次中斷。外中斷的程序流程圖如圖4.3所示。開始初始化:DSP時(shí)鐘、ICETEK-CTR初始化中斷控制寄存器等待中斷產(chǎn)生改變指示燈狀態(tài)中斷服務(wù)開始中斷服務(wù)結(jié)束 圖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使用電源連接線(如右圖,插頭是帶孔的)連接各模

21、塊電源:確認(rèn)實(shí)驗(yàn)箱總電源斷開。連接ICETEK-CTR 板上邊插座到實(shí)驗(yàn)箱底板上+12V電源 插座;ICETEK-CTR 板下邊插座到實(shí)驗(yàn)箱底板上+5V 電源插座;如使用PP(并口)型仿真器,則連接仿真器上插座到實(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)箱上的電源總

22、開關(guān)(位于實(shí)驗(yàn)箱底板左上角),使開關(guān)位于“開”的位置,電源開關(guān)右側(cè)的指示燈亮。 5.1.2 Emulator調(diào)試 1啟動Simulator 方式 雙擊桌面上圖標(biāo): 2啟動Emulator 方式 (1)首先將實(shí)驗(yàn)箱電源關(guān)閉。連接實(shí)驗(yàn)箱的外接電源線。 (2)檢查ICETEK-5100USB 仿真器的黑色JTAG 插頭是否正確接到ICETEK-VC5416-A 板的J3 插頭上。注:仿真器的插頭中有個(gè)孔加入了封針與J3 插頭上的缺針位置應(yīng)重合,保證不會插錯(cuò)。 (3)檢查是否已經(jīng)用電源連接線連接了ICETEK-VC5416-A 板的POW1 插座和實(shí)驗(yàn)箱底板上+5V 電源插座。 (4)檢查其他連線是否

23、符合實(shí)驗(yàn)要求。檢查實(shí)驗(yàn)箱上三個(gè)撥動開關(guān)位置是否符合實(shí)驗(yàn)要求。 (5)打開實(shí)驗(yàn)箱上電源開關(guān)(位于實(shí)驗(yàn)箱底板左上角),注意開關(guān) 邊上紅色指示燈點(diǎn)亮。ICETEK-VC5416-A 板上指示燈D1 和D2 點(diǎn) 亮。如果打開了ICETEK-CTR 的電源開關(guān),ICETEK-CTR 板上指示 燈L1、L2 和L3 點(diǎn)亮。如果打開了信號源電源開關(guān),相應(yīng)開關(guān)邊的指示燈點(diǎn)亮。(6) 用實(shí)驗(yàn)箱附帶的USB 信號線連接ICETEK-5100USB 仿真器和PC 機(jī)后面的USB 插座,注意ICETEK-5100USB 仿真器上指示燈Power 和Run 燈點(diǎn)亮。(7) (7)雙擊桌面上仿真器初始化圖標(biāo):如果出現(xiàn)下面

24、圖5.1提示窗口,表示初始化成功,按一下空格鍵進(jìn)入下一步操作。圖5.1 初始化圖 如果窗口中沒有出現(xiàn)“按任意鍵繼續(xù)”,請關(guān)閉窗口,關(guān)閉實(shí)驗(yàn)箱電源,再將USB 電纜從仿真器上拔出,返回第(2)步重試。 如果窗口中出現(xiàn)“The adapter returned an error.”,并提示“按任意鍵繼續(xù)”表示初始瑞泰創(chuàng)新ICETEK-VC5416-A-USB-EDU 教學(xué)實(shí)驗(yàn)系統(tǒng)軟件實(shí)驗(yàn)指導(dǎo)III7化失敗,請關(guān)閉窗口重試兩三次,如果仍然不能初始化則關(guān)閉實(shí)驗(yàn)箱電源,再將USB 電纜從仿真器上拔出,返回第(2)步重試。雙擊桌面上圖標(biāo):啟動CCS2.21。如果進(jìn)入CCS 提示錯(cuò)誤,先選“Abort”,然

25、后用“初始化ICETEK-5100USB2.0 仿真器”初始化仿真器,如提示出錯(cuò),可多做幾次。如仍然出錯(cuò),拔掉仿真器上USB 接頭(白色方形),按一下ICETEK-VC5416-A 板上S1 復(fù)位按鈕,連接USB 接頭再做“初始化ICETEK-5100 USB2.0 仿真器”。如果遇到反復(fù)不能連接或復(fù)位仿真器、進(jìn)入CCS 報(bào)錯(cuò),請打開Windows 的“任務(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)行程序。

26、但一般軟件無法構(gòu)造DSP 中的外設(shè),所以軟件仿真通常用于調(diào)試純軟件的算法和進(jìn)行效率分析等。在使用軟件仿真方式工作時(shí),無需連接板卡和仿真器等硬件。(1) 單擊桌面上圖標(biāo):進(jìn)入CCS 設(shè)置窗口。(2) 在出現(xiàn)的窗口中按標(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ā)。(1)單擊桌面上圖標(biāo):進(jìn)入

27、CCS 設(shè)置窗口(2)在出現(xiàn)的窗口中按標(biāo)號順序進(jìn)行如下圖5.3設(shè)置:圖5.3 CSS2設(shè)置圖(3)接著在下面的窗口中按標(biāo)號順序進(jìn)行如下圖5.4選擇:圖5.4 CSS2設(shè)置圖在出現(xiàn)的窗口按標(biāo)號順序進(jìn)行如下圖5.5設(shè)置:圖5.5 CSS2設(shè)置圖(5) 在出現(xiàn)的窗口按標(biāo)號順序進(jìn)行如下圖5.6設(shè)置:圖5.6 CSS2設(shè)置圖以上設(shè)置完成后,CCS 已經(jīng)被設(shè)置成Emulator 的方式(用仿真器連接硬件板卡的方式),并且指定通過ICETEK-5100USB 仿真器連接ICETEK-VC5416-A 評估板。如果您需要一直使用這一方式就不需要重新進(jìn)行以上設(shè)置操作了。5.2.2程序運(yùn)行選擇菜單“Project

28、”的“New”項(xiàng)。如圖5.7所示。圖5.7 CSS2設(shè)置圖如下圖,按編號順序操作建立Trafficlight.pjt 工程文件:展開主窗口左側(cè)工程管理窗口中“Projects”下新建立的“Trafficlight.pjt”,其中各項(xiàng)均為空。(2) 在工程文件中添加程序文件:選擇菜單“Project”的“Add Files to Project”項(xiàng);在“Add Files to Project”對話框中選擇文件目錄為C:ICETEK-VC5416-EDULabLab0601-UseCCS,改變文件類型為“C SourceFiles(*.c;*.ccc)”,選擇顯示出來的文件“Trafficlig

29、ht.c”;重復(fù)上述各步驟,添加Trafficlight.cmd 文件,到volume 工程中;添加 C:tiC5400cgtoolslibrts.lib。(3) 編譯連接工程:選擇菜單“Project”的“Rebuild All”項(xiàng),或單擊工具條中的按鈕;注意編譯過程中CCS 主窗口下部的“Build”提示窗中顯示編譯信息,最后將給出錯(cuò)誤和警告的統(tǒng)計(jì)數(shù)。5.3系統(tǒng)下載(1) 下載程序:執(zhí)行FileLoad Program ,在隨后打開的對話框中選擇剛剛建立的C:ICETEK-VC5416-EDULabLab0601-UseCCSDebugTrafficlight.out 文件。(2) 設(shè)置軟

30、件調(diào)試斷點(diǎn):在項(xiàng)目瀏覽窗口中,雙擊Trafficlight.c 激活這個(gè)文件,移動光標(biāo)到main()行上,單擊鼠標(biāo)右鍵選擇Toggle Breakpoint 或按F9 設(shè)置斷點(diǎn)(另外,雙擊此行左邊的灰色控制條也可以設(shè)置或刪除斷點(diǎn)標(biāo)記)。(3) 利用斷點(diǎn)調(diào)試程序:選擇DebugRun 或按F5 運(yùn)行程序,程序會自動停在main()函數(shù)上。(4)在ICETEK-CTR 附帶的小鍵盤上按下按鍵,觀察信號是否滿足要求。6 設(shè)計(jì)心得與體會 此次課程設(shè)計(jì),通過學(xué)習(xí),我進(jìn)一步熟悉了CCS軟件,鞏固了以前所學(xué)過的知識。通過對書本上的理論知識與實(shí)際的操作相結(jié)合,對所學(xué)的理論知識也有了更深層次的理解。本次設(shè)計(jì)中主

31、要用到了DSP的硬件中斷、定時(shí)器以及I/O訪問等方面的相關(guān)的知識。對于這幾方面知識我并不陌生,在以前的的課程設(shè)計(jì)中,這些內(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é)出版社,20062 寧改娣等. DSP控制器原理及應(yīng)用M北

32、京:科學(xué)出版社,2002.3 仿真系統(tǒng)使用說明書,北京瑞泰創(chuàng)新有限公司。4 清源科技.TMS320C54xDSP應(yīng)用程序設(shè)計(jì)教程M.機(jī)械工業(yè)出版社,2004.1.5 清源科技.TMS320C54x硬件開發(fā)教程M.機(jī)械工業(yè)出版社,2003.1.附錄一控制源程序#include "scancode.h"#define SPSA0 *(unsigned int *)0x38#define SPSD0 *(unsigned int *)0x39#define REGISTERCLKMD (*(unsigned int *)0x58)#defineTIM*(int *)0x24#de

33、finePRD *(int *)0x25#defineTCR*(int *)0x26#defineIMR*(int *)0x0#defineIFR*(int *)0x1#definePMST*(int *)0x1d#define nStatusNSGreenEWRed 160#define nStatusNSFlashEWRed 184#define nStatusNSYellowEWRed 200#define nStatusNSRedEWYellow 216#define nStatusNSRedEWGreen 376#define nStatusNSRedEWFlash 400#defi

34、ne nStatusNSRedEWYellow1 416#define nStatusNSYellowEWRed1 432#define nTotalTime 448#define nStatusHold 160#define statusNSGreenEWRed 0#define statusNSFlashEWRed 1#define statusNSYellowEWRed 2#define statusNSRedEWYellow 3#define statusNSRedEWGreen 4#define statusNSRedEWFlash 5#define statusHold 6iopo

35、rt unsigned int port3004;/ CTR擴(kuò)展寄存器定義ioport unsigned int port8000;ioport unsigned int port8001;ioport unsigned int port8002;ioport unsigned int port8003;ioport unsigned int port8004;ioport unsigned int port8005;ioport unsigned int port8007;#define CTRGR port8000#define CTRLCDCMDR port8001#define CTR

36、KEY port8001#define CTRCLKEY port8002#define CTRLCDCR port8002#define CTRLCDLCR port8003#define CTRLCDRCR port8004#define CTRLA port8005#define CTRLR port8007void InitDSP();void InitTimer();void InitICETEKCTR();void interrupt time(void);void interrupt xint2(void);/ XINT2中斷服務(wù)程序void SetLEDArray(int nN

37、umber);/ 修改顯示內(nèi)容void RefreshLEDArray();/ 刷新顯示void EndICETEKCTR();unsigned int uWork,nTimeCount;unsigned int uLightStatusEW,uLightStatusSN;unsigned int bHold;unsigned char ledbuf8,ledx8;unsigned char led40=0x7E,0x81,0x81,0x7E,0x00,0x02,0xFF,0x00,0xE2,0x91,0x91,0x8E,0x42,0x89,0x89,0x76,0x38,0x24,0x22,0

38、xFF,0x4F,0x89,0x89,0x71,0x7E,0x89,0x89,0x72,0x01,0xF1,0x09,0x07,0x76,0x89,0x89,0x76,0x4E,0x91,0x91,0x7E;main()int nWork1,nWork2,nWork3,nWork4;int nNowStatus,nOldStatus,nOldTimeCount,nSaveTimeCount,nSaveStatus;unsigned int nScanCode;nTimeCount=0; bHold=0;uLightStatusEW=uLightStatusSN=0;nNowStatus=0;

39、nOldStatus=1; nOldTimeCount=0;InitDSP();/ 初始化DSP,設(shè)置運(yùn)行速度InitICETEKCTR();/ 初始化顯示/控制模塊InitTimer();/ 設(shè)置定時(shí)器中斷/ 根據(jù)計(jì)時(shí)器計(jì)數(shù)切換狀態(tài)/ 根據(jù)狀態(tài)設(shè)置計(jì)數(shù)和交通燈狀態(tài)while ( 1 )if ( bHold && nNowStatus=statusHold )if ( nTimeCount>=nStatusHold )nNowStatus=nSaveStatus;nTimeCount=nSaveTimeCount;bHold=0;else if ( nTimeCount&

40、lt;nStatusNSGreenEWRed )nNowStatus=statusNSGreenEWRed;else if ( nTimeCount<nStatusNSFlashEWRed )nNowStatus=statusNSFlashEWRed;else if ( nTimeCount<nStatusNSYellowEWRed )nNowStatus=statusNSYellowEWRed;else if ( nTimeCount<nStatusNSRedEWYellow )nNowStatus=statusNSRedEWYellow;else if ( nTimeCo

41、unt<nStatusNSRedEWGreen )nNowStatus=statusNSRedEWGreen;else if ( nTimeCount<nStatusNSRedEWFlash )nNowStatus=statusNSRedEWFlash;else if ( nTimeCount<nStatusNSRedEWYellow1 )nNowStatus=statusNSRedEWYellow;else if ( nTimeCount<nStatusNSYellowEWRed1 )nNowStatus=statusNSYellowEWRed;if ( nNowSt

42、atus=nOldStatus )switch ( nNowStatus )case statusNSFlashEWRed:nWork1=nTimeCount-nStatusNSGreenEWRed;nWork2=nStatusNSYellowEWRed-nStatusNSFlashEWRed;nWork3=nWork2/3;nWork4=nWork3/2;if ( nWork1>=0 && nWork2>0 && nWork3>0 && nWork4>0 )uLightStatusSN=( (nWork1%nWork3)

43、<=nWork4 )?(0x49):(0x40);break;case statusNSRedEWFlash:nWork1=nTimeCount-nStatusNSRedEWGreen;nWork2=nStatusNSRedEWYellow1-nStatusNSRedEWFlash;nWork3=nWork2/3;nWork4=nWork3/2;if ( nWork1>=0 && nWork2>0 && nWork3>0 && nWork4>0 )uLightStatusEW=( (nWork1%nWork3)<

44、;=nWork4 )?(0x09):(0x00);break;case statusNSGreenEWRed:nWork1=nStatusNSGreenEWRed/30;if ( nWork1>0 )nWork2=30-nTimeCount/nWork1;if ( bHold )if ( nWork2>10 )nTimeCount=nWork1*10;nWork2=10;if ( nOldTimeCount!=nWork2 )nOldTimeCount=nWork2;SetLEDArray(nWork2);break;case statusNSRedEWGreen:nWork1=(

45、nStatusNSRedEWGreen-nStatusNSRedEWYellow)/30;if ( nWork1>0 )nWork2=30-(nTimeCount-nStatusNSRedEWYellow)/nWork1;if ( bHold )if ( nWork2>10 )nTimeCount=nStatusNSRedEWYellow+nWork1*10;nWork2=10;if ( nOldTimeCount!=nWork2 )nOldTimeCount=nWork2;SetLEDArray(nWork2);break;case statusHold:nWork1=nStat

46、usHold/30;if ( nWork1>0 )nWork2=30-nTimeCount/nWork1;if ( nOldTimeCount!=nWork2 )nOldTimeCount=nWork2;SetLEDArray(nWork2);break;elseif ( bHold )nSaveStatus=nNowStatus;nSaveTimeCount=nTimeCount;nNowStatus=statusHold;nTimeCount=0;if ( nSaveStatus=statusNSFlashEWRed | nSaveStatus=statusNSYellowEWRed

47、 )nSaveStatus=statusNSRedEWGreen;nSaveTimeCount=nStatusNSRedEWYellow;else if ( nSaveStatus=statusNSRedEWFlash | nSaveStatus=statusNSRedEWYellow )nSaveStatus=statusNSGreenEWRed;nSaveTimeCount=0;nOldStatus=nNowStatus;switch ( nNowStatus )case statusNSGreenEWRed:uLightStatusEW=0x24; uLightStatusSN=0x49;SetLEDArray(18);break;case statusNSFlashEWRed:uLightStatusEW=0x24; uLightStatusSN=0x49;SetLEDArray(0);break;case statusNSYellowEWRed:uLightStatusEW=0x24; uLightStatusSN=0x52;SetLEDArray(20);break;case statusNSRedEWYellow:uLightStatusEW=0x12; uL

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論