基于DSP的 交通燈
《基于DSP的 交通燈》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于DSP的 交通燈(32頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、目 錄 第1章 設(shè)計(jì)目的及要求 - 1 - 1.1 設(shè)計(jì)目的 - 1 - 1.2 設(shè)計(jì)要求 - 1 - 1.2.1 設(shè)計(jì)任務(wù) - 1 - 1.2.2 設(shè)計(jì)要求 - 2 - 第2章 設(shè)計(jì)原理和方案 - 3 - 2.1 設(shè)計(jì)思路 - 3 - 2.2 設(shè)計(jì)原理 - 3 - 2.3 設(shè)計(jì)方案 - 4 - 2.4 工作狀態(tài)設(shè)計(jì) - 5 - 第3章 硬件設(shè)計(jì) - 7 - 3.1 總體設(shè)計(jì) - 7 - 3.2 單元電路設(shè)計(jì) - 8 - 第4章 軟件調(diào)試 - 11 - 4.1 總體設(shè)計(jì) - 11 - 4.2 源程序 - 14 - 第5章 系統(tǒng)調(diào)試 - 14 - 5.1 硬件
2、調(diào)試 - 14 - 5.1.1 電源調(diào)試 - 14 - 5.1.2 Emulator調(diào)試 - 15 - 5.2 軟件調(diào)試 - 17 - 5.2.1 軟件設(shè)置 - 17 - 5.2.2程序運(yùn)行 - 19 - 5.3 系統(tǒng)聯(lián)調(diào) - 21 - 第6章 結(jié)論分析及體會(huì) - 22 - 參考文獻(xiàn) - 24 - 附 錄 - 25 - 第1章 設(shè)計(jì)目的及要求 1.1 設(shè)計(jì)目的 (1)練習(xí)自主獨(dú)立的設(shè)計(jì),實(shí)現(xiàn)理論和實(shí)踐的統(tǒng)一,提高自我動(dòng)手能力。 (2)通過(guò)交通燈的設(shè)計(jì),進(jìn)一步加深、鞏固學(xué)生所學(xué)專業(yè)課程DSP控制器及其應(yīng)用的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)學(xué)生綜合分
3、析問(wèn)題和解決問(wèn)題的能力。 (3)熟悉使用TMS320F2812控制交通燈的方法。 (4)利用DSP開(kāi)發(fā)環(huán)境CCS C2000對(duì)源程序文件進(jìn)行編譯、鏈接、裝載調(diào)試,以完成基本的DSP項(xiàng)目文件設(shè)計(jì)。 (5)通過(guò)此次課程設(shè)計(jì),學(xué)習(xí)DSPf2812芯片的I/O端口控制方法,熟悉字模的簡(jiǎn)單構(gòu)建和使用,熟悉Emulator方式下的程序調(diào)試規(guī)程,并能最終熟悉掌握在DSP軟硬件環(huán)境下的程序開(kāi)發(fā)流程,達(dá)到學(xué)以致用的目。 1.2 設(shè)計(jì)要求 1.2.1 設(shè)計(jì)任務(wù) ⑴設(shè)計(jì)一個(gè)十字路口交通燈(帶一個(gè)倒計(jì)時(shí)數(shù)碼管),每個(gè)方向有三色(紅、黃、綠); ⑵實(shí)現(xiàn)交通燈雙向車道紅綠燈切換功能、交通燈全亮功能、數(shù)碼管
4、全亮功能; ⑶保證每次切換倒計(jì)時(shí)20秒,且綠燈變紅燈前2秒黃燈閃爍1次,并在此時(shí)熄滅綠燈。 ⑶完成緊急狀態(tài)的情況的手動(dòng)設(shè)置。 1.2.2 設(shè)計(jì)要求 利用ICETEK-EDU 實(shí)驗(yàn)箱提供的設(shè)備,設(shè)計(jì)模擬實(shí)際生活中十字路口交通燈控制的程 序。要求如下: 交通燈分紅黃綠三色,東、南、西、北各一組,用燈光信號(hào)實(shí)現(xiàn)對(duì)交通的控制:綠燈信號(hào) 表示通行,黃燈表示警告,紅燈禁止通行,燈光閃爍表示信號(hào)即將改變。 計(jì)時(shí)顯示:8×8 點(diǎn)陣顯示兩位計(jì)數(shù),為倒計(jì)時(shí),每秒改變計(jì)數(shù)顯示。 正常交通控制信號(hào)順序:正常交通燈信號(hào)自動(dòng)變換: ⑴南北方向綠燈,東西紅燈(20
5、 秒)。 ⑵南北方向綠燈閃爍。 ⑶南北方向黃燈。 ⑷南北方向紅燈,東西方向黃燈 ⑸東西方向綠燈(20 秒)。 ⑹東西方向綠燈閃爍。 ⑺東西方向黃燈。 ⑻返回⑴循環(huán)控制。 緊急情況處理:模仿緊急情況(重要車隊(duì)通過(guò)、急救車通過(guò)等)發(fā)生時(shí),交通警察手動(dòng)控制 ⑴當(dāng)任意方向通行剩余時(shí)間多于10 秒,將時(shí)間改成10 秒。 ⑵正常變換到四面紅燈(20 秒)。 ⑶直接返回正常信號(hào)順序的下一個(gè)通行信號(hào)(跳過(guò)閃爍綠燈、黃燈狀態(tài))。 第2章 設(shè)計(jì)原理和方案 2.1 設(shè)計(jì)思路 根據(jù)DSP的硬件中斷、定時(shí)
6、器、I/O訪問(wèn)的原理。用定時(shí)器定時(shí),用I/O口控制紅綠黃燈的開(kāi)關(guān),用硬件外部中斷模擬急救車的到達(dá)。有急救車到達(dá)時(shí),兩向?yàn)槿t,以便讓急救車通過(guò)。急救車通過(guò)后,交通燈恢復(fù)硬件中斷前的狀態(tài)。觸發(fā)開(kāi)關(guān)(紅色按紐)為中斷申請(qǐng),表示有急救車通過(guò)。在實(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 2.2 設(shè)計(jì)原理 根據(jù)設(shè)計(jì)要求,由于控制是由不同的各種狀態(tài)按順序發(fā)生的,我可
7、以采用狀態(tài)機(jī)制控制方法來(lái)解決此問(wèn)題。這種方法是:首先列舉所有可能發(fā)生的狀態(tài);然后將這些狀態(tài)編號(hào),按順序產(chǎn)生這些狀態(tài);狀態(tài)延續(xù)的時(shí)間用程序控制。對(duì)于突發(fā)情況,可采用在正常順序的控制中插入特殊控制序列的方式完成。時(shí)鐘計(jì)數(shù):采用250ms 一次中斷進(jìn)行累加計(jì)數(shù)。如表2.1所示。 表2.1信號(hào)燈狀態(tài)圖 狀 態(tài) 編號(hào) 信號(hào)燈狀態(tài) 狀態(tài)定義 時(shí)間 計(jì)數(shù) 顯示 1 南北燈綠,東西燈紅 statusNSGreenEWRed 20s 20-0 2 南北綠燈閃,東西紅燈 statusNSFlashEWRed 6s 0 3 南北黃燈,東
8、西紅燈 statusNSYellowEWRed 4s 20 4 南北紅燈,東西黃燈 statusNSRedEWYellow 4s 20 5 南北紅燈,東西綠燈 statusNSRedEWGreen 20s 20-1 6 南北紅燈,東西綠燈閃 statusNSRedEWFlash 6s 0 7 南北紅燈,東西黃燈 statusNSRedEWYellow 4s 20 8 南北黃燈,東西紅燈 statusNSYellowEWRed 4s 20 * 南北紅燈,東西紅燈 statusNSRedEWRed 20s 20-1 其中,
9、正常順序每112 秒(計(jì)數(shù)值448)為一個(gè)循環(huán),狀態(tài)“*”為非順序狀態(tài)。這樣,只要根據(jù)計(jì)數(shù)值就可確定當(dāng)前狀態(tài),根據(jù)狀態(tài)再分情況處理。對(duì)于計(jì)數(shù)顯示,當(dāng)處于狀態(tài)1、5、*中時(shí)需要進(jìn)行倒計(jì)時(shí),需要計(jì)算在此狀態(tài)中的計(jì)數(shù)值增量,根據(jù)增量判斷是否更新計(jì)數(shù)顯示。 2.3 設(shè)計(jì)方案 中斷方案 方案一:軟件中斷 優(yōu)點(diǎn): ① 用一條指令進(jìn)入中斷處理子程序,并且,中斷類型碼由指令提供。 ② 不執(zhí)行中斷響應(yīng)總線周期,也不從數(shù)據(jù)總線讀取中斷類型碼。 ③ 不受中斷允許標(biāo)志IF的影響。 ④ 執(zhí)行過(guò)程中可響應(yīng)外部硬件中斷。 適應(yīng)范圍:軟件中斷:比較典型的是定時(shí)器中斷、串口中
10、斷 方案二:硬件中斷 特點(diǎn):① 硬件中斷時(shí)通過(guò)中斷請(qǐng)求線輸入信號(hào)來(lái)請(qǐng)求處理機(jī) ② 具有隨機(jī)性。 適用范圍:外部中斷(用于按鍵、鍵盤中斷、打印機(jī)中斷、定時(shí)器中) 比較:硬件中斷時(shí)通過(guò)中斷請(qǐng)求線輸入信號(hào)來(lái)請(qǐng)求處理機(jī);軟件中斷是處理機(jī)內(nèi)部識(shí)別并進(jìn)行處理的中斷過(guò)程。硬件中斷一般是由中斷控制器提供中斷碼類型,處理機(jī)自動(dòng)轉(zhuǎn)向中斷處理程序;軟件中斷完全有處理機(jī)內(nèi)部形成中斷處理程序的入口地址并轉(zhuǎn)向中斷處理程序的入口地址,并轉(zhuǎn)向中斷處理程序,不需要外部提供信息。 選擇:對(duì)于突發(fā)情況,采用在正常順序的控制中插入特殊控制序列的方式完成,通過(guò)按鍵進(jìn)入到中斷服務(wù)子程序,即硬件中斷。
11、 2.4 工作狀態(tài)設(shè)計(jì) 狀態(tài)一:南北綠燈、東西紅燈,延時(shí)20秒,20秒后南北綠燈閃3次,東西紅燈延時(shí)6秒;如圖2.1所示 圖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ì) ① 根據(jù)設(shè)計(jì)要求,由于控制是由不同的各種狀態(tài)按順序發(fā)生的, 我
12、可以采用狀態(tài)機(jī)制控制方法來(lái)解決此問(wèn)題。這種方法是: 首先列舉所有可能發(fā)生的狀態(tài); 然后將這些狀態(tài)編號(hào), 按順序產(chǎn)生這些狀態(tài);狀態(tài)延續(xù)的時(shí)間用程序控制,對(duì)于突發(fā)情況, 可采用在正常順序的控制中插入特殊控制序列的方式完成。 ② 突發(fā)事件設(shè)置, 在實(shí)際交通過(guò)程中會(huì)出現(xiàn)突發(fā)狀況, 比如說(shuō)有救護(hù)車或者110 緊急車要通過(guò), 此時(shí)就可以通過(guò)小鍵盤進(jìn)行突發(fā)狀況模擬。通過(guò)按鍵進(jìn)入到中斷服務(wù)子程序, 相當(dāng)于原來(lái)先要通過(guò)的車輛在突發(fā)狀況來(lái)了以后就要先讓緊急車輛通過(guò)。 圖3.1 ICETEK-VC5416-A原理圖 3.2 單元電路設(shè)計(jì) 件位置和撥碼開(kāi)關(guān)設(shè)置 1. POWER: 這個(gè)接口用于接入為整個(gè)
13、板子供電的電源,電源電壓為+5V,標(biāo)準(zhǔn)配置的電源電流為1A,如果不使用隨板提供的電源,請(qǐng)注意電源的正負(fù)極性和電流的大小。因?yàn)榘迳显O(shè)計(jì)了電源管理芯片,所以可以使用一路電源供電。下面是這個(gè)接口的插孔示意圖: 圖3.2 電源插孔示意圖 2. DAOUT1 和DACOUT2: 接頭分別是ICETEK-VC5416-A 評(píng)估板的DA 通道1 和道2的輸出接口,接口輸出0 到 +5V 的電壓。 3.AIN1 和AIN4:模擬輸入(ANOLOG INPUT)通道1 和通道4,采集速率最大為500KHz,輸入模擬電壓為0 到+5V。 4.標(biāo)準(zhǔn)RS-232 接口:ICETEK-VC5416-A 上的
14、串口是通過(guò)一個(gè)串口專用器件TL16C550 和串口的驅(qū)動(dòng)器件共同實(shí)現(xiàn)的。串口的物理設(shè)計(jì)是一個(gè)標(biāo)準(zhǔn)的9 針插頭,具體定義見(jiàn)下圖3.5 DB9:9 針D 型連串口的物理設(shè)計(jì)是一個(gè)標(biāo)準(zhǔn)的9 針插頭,具體定義見(jiàn)下圖DB9:9 針D 型連接器,異步串口連接器,符合RS-232 規(guī)范,輸出電平為正負(fù)12V。下面是9 針連器的管腳定義。 圖3.3 異步串口連接器示意圖 表3.1 DB9 管腳定義表管 管腳號(hào) 管腳定義 說(shuō)明 1 NC 無(wú)連接 2 TxD 數(shù)據(jù)輸出引腳,與對(duì)方輸入腳連接 3 RxD 數(shù)據(jù)輸入引腳,與對(duì)方輸出腳連接 4 NC 無(wú)連接 5 GND 無(wú)連接
15、 6 NC 無(wú)連接 7 NC 無(wú)連接 8 NC 無(wú)連接 9 NC 無(wú)連接 5.POW_LED(D1,D2):電源指示燈,如果評(píng)估板工作正常,此燈常亮。其中指示燈D1為5V 指示,若外接電源工作正常,此燈常亮。指示燈D2 為+3.3V 指示,若評(píng)估板供電芯片工作正常,此燈常亮。USER_LED(D3-D10): 用戶指示燈,在板上有8 個(gè)可編程的指示燈,分別為D3-D10,這8個(gè)指示燈的開(kāi)關(guān)可以由VC5416 編程控制。 6. EXT_RST(J10):外接復(fù)位信號(hào)。J10:如果需要外接控制DSP 的復(fù)位信號(hào),可以在此處連接,當(dāng)兩個(gè)信號(hào)連通時(shí)DSP 處于復(fù)位狀態(tài),當(dāng)兩
16、個(gè)信號(hào)分開(kāi)時(shí),DSP 正常工作。 7.DSP_SW:5416 芯片的配置開(kāi)關(guān)。共有四位,如下表:表3.3 表3.3芯片DIP 配置開(kāi)關(guān)說(shuō)明 信號(hào)名 信號(hào)功能 信號(hào)定義 MP/MC 處理器方式選擇 斷開(kāi)狀態(tài),即OFF,為高電平,選擇MP模式:連接狀態(tài),即ON,為低電平,選擇MC模式 CLKMD1 5416硬件備頻選擇 斷開(kāi)狀態(tài),即OFF,為高電平; 連接狀態(tài),即ON,為低電平, CLKMD2 CLKMD3 8. HPI_SW(J1,J2):HPI 接口方式選擇。這兩個(gè)接口用于控制5416 的HPI16 和HPIENA信號(hào)的狀態(tài)。列表如下(表3.
17、4): 表3.4 HPI 接口方式選擇 跳線名 狀態(tài) 含義 J1:HPI16 1,2,3斷開(kāi) HPI16懸空 1,2短接 HPI16高電平 2,3短接 HPI16低電平 J2:HPIENA 1,2,3斷開(kāi) HPIENA懸空 1,2短接 HPIENA高電平 2,3短接 HPIENA低電平 9. RESET(S1): 手動(dòng)復(fù)位開(kāi)關(guān)。作用是reset鍵是做為冷啟動(dòng)的,就是重新啟動(dòng)試驗(yàn)箱,內(nèi)存數(shù)據(jù)重新自檢。 第4章 軟件調(diào)試 4.1 總體設(shè)計(jì) 開(kāi)始運(yùn)行程序之后: ⑴南北方向綠燈,東西紅燈(20 秒)。 ⑵南北方向綠燈閃爍。 ⑶南北方向黃
18、燈。 ⑷南北方向紅燈,東西方向黃燈。 ⑸東西方向綠燈(20 秒)。 ⑹東西方向綠燈閃爍。 ⑺東西方向黃燈。 ⑻返回⑴循環(huán)控制。 -緊急情況處理:模仿緊急情況(重要車隊(duì)通過(guò)、急救車通過(guò)等)發(fā)生時(shí),交通警察手動(dòng)控制 ⑴當(dāng)任意方向通行剩余時(shí)間多于10 秒,將時(shí)間改成10 秒。 ⑵正常變換到四面紅燈(20 秒)。 ⑶直接返回正常信號(hào)順序的下一個(gè)通行信號(hào)(跳過(guò)閃爍綠燈、黃燈狀態(tài))。 圖4.1 二極管列陣圖 圖4.2 中斷服務(wù)圖 圖4.3 程序流程圖 4.2 源程序 見(jiàn)附錄 第5章 系統(tǒng)調(diào)試 5.1 硬件調(diào)試 5.1.1 電源調(diào)試 1. 連接電
19、源:打開(kāi)實(shí)驗(yàn)箱,取出三相電源連接線(如右圖),將電源線的一端插入實(shí)驗(yàn)箱外部左側(cè)箱壁上的電源插孔中。確認(rèn)實(shí)驗(yàn)箱面板上電源總開(kāi)關(guān)(位于實(shí)驗(yàn)箱底板左上角)處于“關(guān)”的位置,連接電源線的另一端至220V 交流供電插座上,保證穩(wěn)固連接。 2. 使用電源連接線(如右圖,插頭是帶孔的)連接各模塊電源:確認(rèn)實(shí)驗(yàn)箱總電源斷開(kāi)。連接ICETEK-CTR 板上邊插座到實(shí)驗(yàn)箱底板上+12V電源 插座;ICETEK-CTR 板下邊插座到實(shí)驗(yàn)箱底板上+5V 電源插座;如使用PP(并口)型仿真器,則連接仿真器上插座到實(shí)驗(yàn)箱底板上+5V電源插座;連接DSP 評(píng)估板模塊電源插座到實(shí)驗(yàn)箱底板上+5V 電源插座。注意各插頭要插到
20、底,防止虛接或接觸不良。 3. 連接DSP 評(píng)估板信號(hào)線:當(dāng)需要連接信號(hào)源輸出到A/D 輸入插座時(shí),使用信號(hào)連接線(如右圖)分別連接相應(yīng)插座。 4. 接通電源:檢查實(shí)驗(yàn)箱上220V 電源插座(箱體左側(cè))中保險(xiǎn)管是否完好,在連接電源線以后,檢查各模塊供電連線是否正確連接,打開(kāi)實(shí)驗(yàn)箱上的電源總開(kāi)關(guān)(位于實(shí)驗(yàn)箱底板左上角),使開(kāi)關(guān)位于“開(kāi)”的位置,電源開(kāi)關(guān)右側(cè)的指示燈亮。 5.1.2 Emulator調(diào)試 1.啟動(dòng)Simulator 方式 雙擊桌面上圖標(biāo): 2.啟動(dòng)Emulator 方式 (1)首先將實(shí)驗(yàn)箱電源關(guān)閉。連接實(shí)驗(yàn)箱的外接電源線。 (2)檢查ICETEK-5100USB 仿
21、真器的黑色JTAG 插頭是否正確連接到ICETEK-VC5416-A 板的J3 插頭上。注:仿真器的插頭中有一個(gè)孔加入了封針與J3 插頭上的缺針位置應(yīng)重合,保證不會(huì)插錯(cuò)。 (3)檢查是否已經(jīng)用電源連接線連接了ICETEK-VC5416-A 板上的POW1 插座和實(shí)驗(yàn)箱底板上+5V 電源插座。 (4)檢查其他連線是否符合實(shí)驗(yàn)要求。檢查實(shí)驗(yàn)箱上三個(gè)撥動(dòng)開(kāi)關(guān)位置是否符合實(shí)驗(yàn)要求。 (5)打開(kāi)實(shí)驗(yàn)箱上電源開(kāi)關(guān)(位于實(shí)驗(yàn)箱底板左上角),注意開(kāi)關(guān)邊上紅色指示燈點(diǎn)亮。ICETEK-VC5416-A 板上指示燈D1 和D2 點(diǎn)亮。如果打開(kāi)了ICETEK-CTR 的電源開(kāi)關(guān),ICETEK-CTR 板上指示
22、燈L1、L2 和L3 點(diǎn)亮。如果打開(kāi)了信號(hào)源電源開(kāi)關(guān),相應(yīng)開(kāi)關(guān)邊的指示燈點(diǎn)亮。 (6)用實(shí)驗(yàn)箱附帶的USB 信號(hào)線連接ICETEK-5100USB 仿真器和PC 機(jī)后面的USB 插座,注意ICETEK-5100USB 仿真器上指示燈Power 和Run 燈點(diǎn)亮。 (7)雙擊桌面上仿真器初始化圖標(biāo):如果出現(xiàn)下面圖5.6提示窗口,表示初始化成功,按一下空格鍵進(jìn)入下一步操作。 圖5.1 初始化圖 如果窗口中沒(méi)有出現(xiàn)“按任意鍵繼續(xù)…”,請(qǐng)關(guān)閉窗口,關(guān)閉實(shí)驗(yàn)箱電源,再將USB 電纜從仿真器上拔出,返回第(2)步重試。 如果窗口中出現(xiàn)“The adapter returned
23、 an error.”,并提示“按任意鍵繼續(xù)…”表示初始瑞泰創(chuàng)新——ICETEK-VC5416-A-USB-EDU 教學(xué)實(shí)驗(yàn)系統(tǒng)軟件實(shí)驗(yàn)指導(dǎo) III-7化失敗,請(qǐng)關(guān)閉窗口重試兩三次,如果仍然不能初始化則關(guān)閉實(shí)驗(yàn)箱電源,再將USB 電纜從仿真器上拔出,返回第(2)步重試。 ⑧雙擊桌面上圖標(biāo): 啟動(dòng)CCS2.21。 ⑨如果進(jìn)入CCS 提示錯(cuò)誤,先選“Abort”,然后用“初始化ICETEK-5100USB2.0 仿真器”初始化仿真器,如提示出錯(cuò),可多做幾次。如仍然出錯(cuò),拔掉仿真器上USB 接頭(白色方形),按一下ICETEK-VC5416-A 板上S1 復(fù)位按鈕,連接USB 接頭再做“初始
24、化ICETEK-5100 USB2.0 仿真器”。 ⑩如果遇到反復(fù)不能連接或復(fù)位仿真器、進(jìn)入CCS 報(bào)錯(cuò),請(qǐng)打開(kāi)Windows 的“任務(wù)管理器”,在“進(jìn)程”卡片上的“映像名稱”欄中查找是否有“cc_app.exe”,將它結(jié)束再試。 5.2 軟件調(diào)試 5.2.1 軟件設(shè)置 CCS 可以工作在純軟件仿真環(huán)境中,就是由軟件在PC 機(jī)內(nèi)存中構(gòu)造一個(gè)虛擬的DSP 環(huán)境,可以調(diào)試、運(yùn)行程序。但一般軟件無(wú)法構(gòu)造DSP 中的外設(shè),所以軟件仿真通常用于調(diào)試純軟件的算法和進(jìn)行效率分析等。 在使用軟件仿真方式工作時(shí),無(wú)需連接板卡和仿真器等硬件。 (1) 單擊桌面上圖標(biāo):進(jìn)入CCS 設(shè)置窗口。
25、(2) 在出現(xiàn)的窗口中按標(biāo)號(hào)順序進(jìn)行如下圖5.1設(shè)置: 圖5.2 仿真設(shè)置圖 接著在下面出現(xiàn)的窗口中選擇“否(N)”。 此時(shí)CCS 已經(jīng)被設(shè)置成Simulator 方式(軟件仿真TMS320VC5416 器件的方式),如果一直使用這一方式就不需要重新進(jìn)行以上設(shè)置操作了。 2. 設(shè)置CCS 通過(guò)ICETEK-5100USB 仿真器連接ICETEK-VC5416-A 硬件環(huán)境進(jìn)行軟件調(diào)試和開(kāi)發(fā)。 (1)單擊桌面上圖標(biāo):進(jìn)入CCS 設(shè)置窗口 (2)在出現(xiàn)的窗口中按標(biāo)號(hào)順序進(jìn)行如下設(shè)置: 圖5.3 CSS2設(shè)置圖 (3)接著在下面的窗口中按標(biāo)號(hào)順序進(jìn)行如下圖5.3選擇:
26、圖5.4 CSS2設(shè)置圖 在出現(xiàn)的窗口按標(biāo)號(hào)順序進(jìn)行如下圖5.4設(shè)置: 圖5.5 CSS2設(shè)置圖 (5) 在出現(xiàn)的窗口按標(biāo)號(hào)順序進(jìn)行如下圖5.5設(shè)置: 圖5.6 CSS2設(shè)置圖 以上設(shè)置完成后,CCS 已經(jīng)被設(shè)置成Emulator 的方式(用仿真器連接硬件板卡的方式),并且指定通過(guò)ICETEK-5100USB 仿真器連接ICETEK-VC5416-A 評(píng)估板。如果您需要一直使用這一方式就不需要重新進(jìn)行以上設(shè)置操作了。 5.2.2程序運(yùn)行 選擇菜單“Project”的“New…”項(xiàng)。如圖5.7所示。 圖5.7 CSS2設(shè)置圖 如下圖,按編號(hào)順序操作建立Tra
27、fficlight.pjt 工程文件: 展開(kāi)主窗口左側(cè)工程管理窗口中“Projects”下新建立的“Trafficlight.pjt”,其中各項(xiàng)均為空。 (2) 在工程文件中添加程序文件: 選擇菜單“Project”的“Add Files to Project…”項(xiàng);在“Add Files to Project”對(duì)話框中 選擇文件目錄為C:\ICETEK-VC5416-EDULab\Lab0601-UseCCS,改變文件類型為“C Source Files(*.c;*.ccc)”,選擇顯示出來(lái)的文件“Trafficlight.c”;重復(fù)上述各步驟,添加Trafficlight.cmd
28、 文件,到volume 工程中; 添加 C:\ti\C5400\cgtools\lib\rts.lib。 (3) 編譯連接工程:選擇菜單“Project”的“Rebuild All”項(xiàng),或單擊工具條中的按鈕;注意編譯過(guò)程中CCS 主窗口下部的“Build”提示窗中顯示編譯信息,最后將給出錯(cuò)誤和警告的統(tǒng)計(jì)數(shù)。 5.3 系統(tǒng)聯(lián)調(diào) (1) 下載程序:執(zhí)行File→Load Program ,在隨后打開(kāi)的對(duì)話框中選擇剛剛建立的 C:\ICETEK-VC5416-EDULab\Lab0601-UseCCS\Debug\Trafficlight.out 文件。 (2) 設(shè)置軟件調(diào)試斷點(diǎn):在
29、項(xiàng)目瀏覽窗口中,雙擊Trafficlight.c 激活這個(gè)文件,移動(dòng)光標(biāo)到main()行上,單擊鼠標(biāo)右鍵選擇Toggle Breakpoint 或按F9 設(shè)置斷點(diǎn)(另外,雙擊此行左邊的灰色控制條也可以設(shè)置或刪除斷點(diǎn)標(biāo)記)。 (3) 利用斷點(diǎn)調(diào)試程序:選擇Debug→Run 或按F5 運(yùn)行程序,程序會(huì)自動(dòng)停在main()函數(shù)上。 (4)在ICETEK-CTR 附帶的小鍵盤上按下除“9”鍵外的按鍵,觀察信號(hào)是否滿足要求。 第6章 結(jié)論分析及體會(huì) 本次交通燈設(shè)計(jì)實(shí)現(xiàn)了正常交通控制信號(hào)順序,完成了如2.4節(jié)所示的五種狀態(tài)的相互轉(zhuǎn)換。 此
30、次課程設(shè)計(jì),通過(guò)在實(shí)驗(yàn)室學(xué)習(xí),我進(jìn)一步熟悉了CCS軟件,鞏固了以前所學(xué)過(guò)的知識(shí)。通過(guò)對(duì)書本上的理論知識(shí)與實(shí)際的操作相結(jié)合,對(duì)所學(xué)的理論知識(shí)也有了更深層次的理解。 本次設(shè)計(jì)中主要用到了DSP的硬件中斷、定時(shí)器以及I/O訪問(wèn)等方面的相關(guān)的知識(shí)。對(duì)于這幾方面知識(shí)我并不陌生,在2011年的電子設(shè)計(jì)大賽中,這些內(nèi)容都曾涉及,再加上前兩個(gè)周的單片機(jī)課程設(shè)計(jì)也曾應(yīng)用到相關(guān)的知識(shí)。因此在本次的功能實(shí)現(xiàn)方面遇到的問(wèn)題并不是太多。不過(guò)畢竟DSP的相關(guān)知識(shí)有別于61單片機(jī),因此對(duì)編程的理解上還是出現(xiàn)了一些問(wèn)題,通過(guò)對(duì)課本以及相關(guān)資料的查詢,這些問(wèn)題也及時(shí)的得到了解決。 通過(guò)對(duì)問(wèn)題的發(fā)現(xiàn)與解決,使我更加了解DSP
31、的原理及其編程的相關(guān)注意事項(xiàng),加深了對(duì)課本理論知識(shí)的理解。本次DSP課程設(shè)計(jì)對(duì)我們來(lái)說(shuō)很重要,是我們電子信息工程專業(yè)的學(xué)生實(shí)踐中的重要環(huán)節(jié)。 總的來(lái)說(shuō),在這次十字路口交通燈的設(shè)計(jì)中我收獲頗多。趙老師的諄諄教誨端正了我們的學(xué)習(xí)態(tài)度,對(duì)我們未來(lái)的發(fā)展有很大的幫助。最后,對(duì)趙老師的指導(dǎo)和教誨表示忠心的感謝! 參考文獻(xiàn) [1] 鄒彥. DSP原理及應(yīng)用[M]. 北京:電子工業(yè)出版社,2005.1. [2] 戴明楨.TMS320C54xDSP結(jié)構(gòu)、原理及應(yīng)用[M].北京航空航天大學(xué)出版社,2001.8. [3] 胡圣堯. DSP原理及應(yīng)用[M].東南大學(xué)出版社,2008
32、.7. [4] 清源科技.TMS320C54xDSP應(yīng)用程序設(shè)計(jì)教程[M].機(jī)械工業(yè)出版社,2004.1. [5] 清源科技.TMS320C54x硬件開(kāi)發(fā)教程[M].機(jī)械工業(yè)出版社,2003.1. 附 錄 源程序 main() { int nWork1,nWork2,nWork3,nWork4; int nNowStatus,nOldStatus,nOldTimeCount,nSaveTimeCount,nSaveStatus; unsigned int nS
33、canCode; nTimeCount=0; bHold=0; uLightStatusEW=uLightStatusSN=0; nNowStatus=0; 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==st
34、atusHold )
{
if ( nTimeCount>=nStatusHold )
{
nNowStatus=nSaveStatus;
nTimeCount=nSaveTimeCount;
bHold=0;
}
}
else if ( nTimeCount 35、 else if ( nTimeCount 36、dEWFlash;
else if ( nTimeCount 37、sNSGreenEWRed;
nWork2=nStatusNSYellowEWRed-nStatusNSFlashEWRed;
nWork3=nWork2/3;
nWork4=nWork3/2;
if ( nWork1>=0 && nWork2>0 && nWork3>0 && nWork4>0 ) uLightStatusSN=( (nWork1%nWork3)<=nWork4 )?(0x49):(0x40);
break;
case statusNSRedEWFlash:
nWork1=nTimeCou 38、nt-nStatusNSRedEWGreen;
nWork2=nStatusNSRedEWYellow1-nStatusNSRedEWFlash;
nWork3=nWork2/3;
nWork4=nWork3/2;
if ( nWork1>=0 && nWork2>0 && nWork3>0 && nWork4>0 )
uLightStatusEW=( (nWork1%nWork3)<=nWork4 )?(0x09):(0x00);
break;
case statusNSGreenEWRed:
nWork1= 39、nStatusNSGreenEWRed/20;
if ( nWork1>0 )
{
nWork2=20-nTimeCount/nWork1;
if ( bHold )
{
if ( nWork2>10 )
{
nTimeCount=nWork1*10;
nWork2=10;
}
}
if ( nOldTimeCount!=nWork2 )
{
nOldTimeCount=nWork2;
40、 SetLEDArray(nWork2);
}
}
break;
case statusNSRedEWGreen:
nWork1=(nStatusNSRedEWGreen-nStatusNSRedEWYellow)/20;
if ( nWork1>0 )
{
nWork2=20-(nTimeCount-nStatusNSRedEWYellow)/nWork1;
if ( bHold )
{
if ( nWork2>10 )
{
41、 nTimeCount=nStatusNSRedEWYellow+nWork1*10;
nWork2=10;
}
}
if ( nOldTimeCount!=nWork2 )
{
nOldTimeCount=nWork2;
SetLEDArray(nWork2);
}
}
break;
case statusHold:
nWork1=nStatusHold/20;
if ( nWork1>0 )
{
42、 nWork2=20-nTimeCount/nWork1;
if ( nOldTimeCount!=nWork2 )
{
nOldTimeCount=nWork2;
SetLEDArray(nWork2);
}
}
break;
}
}
else
{
if ( bHold )
{
nSaveStatus=nNowStatus;
nSaveTimeCount=nTimeCount;
nNowStatus=statusHo 43、ld;
nTimeCount=0;
if ( nSaveStatus==statusNSFlashEWRed || nSaveStatus==statusNSYellowEWRed )
{
nSaveStatus=statusNSRedEWGreen;
nSaveTimeCount=nStatusNSRedEWYellow;
}
else if ( nSaveStatus==statusNSRedEWFlash || nSaveStatus==statusNSRedEWYellow )
{
nSav 44、eStatus=statusNSGreenEWRed;
nSaveTimeCount=0;
}
}
nOldStatus=nNowStatus;
switch ( nNowStatus )
{
case statusNSGreenEWRed:
uLightStatusEW=0x24; uLightStatusSN=0x49;
SetLEDArray(20);
break;
case statusNSFlashEWRed:
uLightStatusEW=0x24; uLigh 45、tStatusSN=0x49;
SetLEDArray(0);
break;
case statusNSYellowEWRed:
uLightStatusEW=0x24; uLightStatusSN=0x52;
SetLEDArray(20);
break;
case statusNSRedEWYellow:
uLightStatusEW=0x12; uLightStatusSN=0x64;
SetLEDArray(20);
break;
case statusNSR 46、edEWGreen:
uLightStatusEW=0x09; uLightStatusSN=0x64;
SetLEDArray(20);
break;
case statusNSRedEWFlash:
uLightStatusEW=0x09; uLightStatusSN=0x64;
SetLEDArray(0);
break;
case statusHold:
uLightStatusEW=0x24; uLightStatusSN=0x64;
SetLEDArray(20); 47、
break;
}
}
CTRLR=uLightStatusEW; CTRLR=uLightStatusSN; // 設(shè)置交通燈狀態(tài)
RefreshLEDArray(); // 刷新發(fā)光二極管顯示
nScanCode=port8001; // 讀鍵盤掃描碼
nScanCode&=0x0ff;
if ( nScanCode==SCANCODE_Enter ) break;
}
EndICETEKCTR();
exit(0);
}
// 定時(shí)器中斷服務(wù)程序,進(jìn)行時(shí)鐘計(jì)數(shù)
void interrupt time(void 48、)
{
nTimeCount++;
nTimeCount%=nTotalTime;
}
// 設(shè)置發(fā)光二極管顯示內(nèi)容
void SetLEDArray(int nNumber)
{
int i,k,kk,kkk;
kkk=nNumber;
k=kkk/10*4; kk=kkk%10*4;
for ( i=0;i<4;i++ )
{
ledbuf[7-i]=~led[k+i];
ledbuf[3-i]=~led[kk+i];
}
}
// 將緩存中點(diǎn)陣送發(fā)光二極管顯示
void RefreshLEDArray()
{
in 49、t i;
for ( i=0;i<8;i++ )
{
CTRGR=ledx[i];
CTRLA=ledbuf[i];
}
}
// 初始化DSP,設(shè)置運(yùn)行速度=8MHz
void InitDSP()
{
REGISTERCLKMD=0; // 速度設(shè)置=8MHz
}
// 設(shè)置定時(shí)器參數(shù)、允許中斷
void InitTimer()
{
unsigned int k;
asm(" ssbx INTM"); // 關(guān)中斷,進(jìn)行關(guān)鍵設(shè)置時(shí)不許打擾
// 設(shè)置通用定時(shí)器
k=PMST; // 設(shè)置PMST寄存器
PMST =k&0x 50、ff; // 中斷向量表起始地址=80H
IMR = 0x0c; // 使能TINT
TCR = 0x41f; // 預(yù)分頻系數(shù)為16
TIM = 0; // 時(shí)鐘計(jì)數(shù)器清0
PRD = 0x0f423; // 周期寄存器為0ffH
TCR = 0x42f; // 復(fù)位、啟動(dòng)
IFR = 0x0c; // 清中斷標(biāo)志位
port3004=0; // 使能XINT2
asm(" rsbx INTM"); // 開(kāi)中斷
}
// 初始化ICETEK-CTR板上設(shè)備
void InitICETEKCTR()
{
int k;
CTRGR 51、=0; // 初始化ICETEK-CTR
CTRGR=0x80;
CTRGR=0;
CTRLR=0; // 關(guān)閉東西方向的交通燈
CTRLR=0x40; // 關(guān)閉南北方向的交通燈
CTRLR=0x0c1; // 開(kāi)啟發(fā)光二極管顯示陣列
for ( k=0;k<8;k++ )
{
ledbuf[k]=0x0ff; // 顯示為空白
ledx[k]=(k<<4); // 生成顯示列控制字
}
k=CTRCLKEY; // 清除鍵盤緩沖區(qū)
}
void interrupt xint2(void) // XINT2中斷服務(wù)程序
{
bHold=1;
}
void EndICETEKCTR()
{
int k;
CTRLR=0; // 關(guān)閉東西方向的交通燈
CTRLR=0x40; // 關(guān)閉南北方向的交通燈
CTRLR=0x0c0; // 關(guān)閉發(fā)光二極管顯示陣列
k=CTRCLKEY; // 清除鍵盤緩沖區(qū)
}
- 31 -
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案