FPGA智能小車設(shè)計(jì)[共42頁]
《FPGA智能小車設(shè)計(jì)[共42頁]》由會(huì)員分享,可在線閱讀,更多相關(guān)《FPGA智能小車設(shè)計(jì)[共42頁](41頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 天水師范學(xué)院 《基于EDA的小車控制器的設(shè)計(jì)》 實(shí)踐報(bào)告 學(xué)院: 物理與信息科學(xué)學(xué)院 專業(yè): 電子信息科學(xué)與技術(shù) 班級(jí): 11 級(jí)電信二班 姓名: 尹天林 倪波波 學(xué)號(hào): 20111060235 20111060219 2013年12月30日 目 錄 摘要 1 1 引言 1 1.1 選題背景 1 1.1.1 智能小車簡介 1 1.1.2 FPGA在控制方面的應(yīng)用 2 1.2 本課題研
2、究目的及意義 3 1.2.1 研究目的 3 1.2.2 研究意義 3 2 總體方案說明 3 2.1 設(shè)計(jì)目標(biāo) 3 2.2方案概述 4 3 軟件設(shè)計(jì) 5 3.1 VHDL語言介紹 5 3.2 Quartus II軟件介紹 6 3.3 分頻器模塊 7 3.3.1 分頻器的功能 7 3.3.2 分頻器的設(shè)計(jì) 7 3.4 周期運(yùn)行控制模塊 8 3.4.1 周期運(yùn)行控制模塊實(shí)現(xiàn)的功能 8 3.4.2 狀態(tài)機(jī)簡介 8 3.4.3 周期運(yùn)行控制模塊的設(shè)計(jì) 9 3.5 避障模塊 11 3.5.1避障模塊實(shí)現(xiàn)的的功能 11 3.5.2 避障模塊的設(shè)計(jì) 11 3.6 遙控模塊
3、 12 3.6.1 遙控模塊的功能 12 3.6.2 遙控模塊的設(shè)計(jì) 12 3.7循跡模塊 12 3.8驅(qū)動(dòng)模塊 15 3.8.1 驅(qū)動(dòng)模塊的功能 15 3.8.2 脈沖寬度調(diào)制調(diào)速基本原理 15 3.8.3驅(qū)動(dòng)模塊的設(shè)計(jì) 15 3.9模式選擇模塊 16 3.10頂層圖設(shè)計(jì) 17 4 硬件設(shè)計(jì) 18 4.2 檢測電路 18 4.3 遙控接收電路 20 4.4 驅(qū)動(dòng)電路 21 4.4.1 直流電機(jī)驅(qū)動(dòng)原理 21 4.4.2 L298N電機(jī)驅(qū)動(dòng)芯片及驅(qū)動(dòng)電路 22 4.5 模式選擇電路 23 5 設(shè)計(jì)結(jié)果 23 5.1 硬件組裝 23 5.2 軟硬件聯(lián)合測試
4、24 5.2.1 測試準(zhǔn)備 24 6 總結(jié)與展望 25 附錄A 27 III 摘 要:現(xiàn)場可編程邏輯陣列(FPGA)具有可在線反復(fù)編程,開發(fā)周期短,并行處理,運(yùn)算速度快,集成度高,可靠性高等特點(diǎn),廣泛應(yīng)用于數(shù)字信號(hào)處理,工業(yè)控制,通信等各個(gè)領(lǐng)域?;贔PGA設(shè)計(jì)控制器,可以把一些外設(shè)和邏輯器件集成起來,從而縮小體積,減少電路的走線,降低功耗,提高可靠性,同時(shí)能夠通過在線編程來修改和擴(kuò)充控制器功能,縮短了開發(fā)周期,也使系統(tǒng)的使用變的靈活,擴(kuò)展方便。由于FPGA可以實(shí)現(xiàn)真正的并行處理,并且運(yùn)算速度快,用它實(shí)現(xiàn)復(fù)雜的控制算法可以提高算法運(yùn)算速度,滿足實(shí)時(shí)控制要求。 本設(shè)計(jì)是典型
5、的軟件和硬件結(jié)合的設(shè)計(jì)產(chǎn)品,基于EPM570T100C5型FPGA芯片設(shè)計(jì)了一個(gè)較為通用的小車控制器。通過數(shù)字量輸入/輸出通道連接了障礙檢測模塊無線接收模塊;電機(jī)驅(qū)動(dòng)模塊;模式選擇模塊等。采用硬件描述語言(Verilog HDL)實(shí)現(xiàn)了對(duì)各個(gè)功能模塊的編程、仿真、編程下載、功能測試。并在Quartus II開發(fā)環(huán)境下搭建了一個(gè)基于FPGA的小車控制器研究平臺(tái),用Verilog HDL語言實(shí)現(xiàn)了整個(gè)系統(tǒng)的設(shè)計(jì)和仿真,使小車控制器系統(tǒng)實(shí)現(xiàn)了周期運(yùn)行、避障、循跡、遙控等功能。通過此方法可在軟件中嵌入不同的控制算法,擴(kuò)展多種控制性能,實(shí)現(xiàn)各種硬件功能,這種基于FPGA的電子設(shè)計(jì)的開發(fā)方法可根據(jù)需要隨時(shí)
6、增加擴(kuò)展用戶需要的功能,具有很大的開發(fā)潛力,在工業(yè)控制中有一定的推廣應(yīng)用價(jià)值。 1引言 1.1選題背景 1.1.1智能小車簡介 工業(yè)的發(fā)展對(duì)生產(chǎn)的自動(dòng)化程度和產(chǎn)品精度要求越來越高,傳統(tǒng)的人工很難適應(yīng)產(chǎn)業(yè)升級(jí)帶來的挑戰(zhàn);科技的進(jìn)步使得人類的探索范圍越來越大,亟需一種能夠在惡劣的環(huán)境替代人類完成任務(wù)的智能裝置。智能機(jī)器人控制系統(tǒng)應(yīng)運(yùn)而生。工業(yè)機(jī)器人和探測機(jī)器人的發(fā)展成為了當(dāng)下機(jī)器人發(fā)展的主要方向,智能小車是機(jī)器人的一種,又稱輪式機(jī)器人,在工業(yè)和探測兩個(gè)領(lǐng)域均有廣泛應(yīng)用。 智能小車控制器的設(shè)計(jì)具有極強(qiáng)的可移植性和易擴(kuò)展性,可應(yīng)用于替代一些單調(diào)枯燥簡單重復(fù)的崗位。同時(shí),配合傳感器等數(shù)據(jù)采集裝
7、置,小車可以作為一個(gè)獨(dú)立運(yùn)動(dòng)單元自主執(zhí)行一些要求更高的任務(wù)。在軍事上,現(xiàn)代戰(zhàn)爭的復(fù)雜程度越來越高,需要在復(fù)雜惡劣的環(huán)境中完成各種偵察或作戰(zhàn)任務(wù),增加了作戰(zhàn)人員的危險(xiǎn)性;在工業(yè)、民用、社會(huì)公共設(shè)施等諸多領(lǐng)域上,比如在惡劣環(huán)境下進(jìn)行的科學(xué)研究、在危險(xiǎn)地段作業(yè)、危險(xiǎn)品排除等諸多場合需要人們冒著巨大的風(fēng)險(xiǎn);在影視劇拍攝、家庭服務(wù)、智能化家居、康復(fù)醫(yī)療等多種應(yīng)用領(lǐng)域,為了確保工作人員的安全性,提高舒適性,都急需一種能夠替代人完成這些任務(wù)的機(jī)器人。 智能小車控制系統(tǒng)為人類突破這些限制提供了條件。這種智能小車可以適應(yīng)不同環(huán)境,不受溫度、大氣、重力、強(qiáng)輻射等外界條件的影響,在人類不適宜的工作環(huán)境或者技術(shù)含量
8、較低的高強(qiáng)度任務(wù)中有效地替代人類完成工作,提高效率。從機(jī)器人誕生至今,隨著科學(xué)技術(shù)的不斷發(fā)展,機(jī)器人應(yīng)用已經(jīng)從制造領(lǐng)域向非制造領(lǐng)域發(fā)展,原先只是在航空軍事領(lǐng)域中才使用的機(jī)器人也開始走進(jìn)人們的日常生活。 機(jī)器人的發(fā)展經(jīng)歷了三代,第一代機(jī)器人屬于示教再現(xiàn)型,第二代則具備了一定的環(huán)境感知能力,第三代機(jī)器人是智能型機(jī)器人,它除了具有感覺能力之外,還具備獨(dú)立辨別和自主運(yùn)動(dòng)能力。它上面裝有多種環(huán)境感應(yīng)設(shè)備,是人工智能技術(shù)發(fā)展到高級(jí)階段的產(chǎn)物。隨著計(jì)算機(jī)、網(wǎng)絡(luò)、微電子等領(lǐng)域迅速發(fā)展,人類活動(dòng)領(lǐng)域的不斷擴(kuò)大,智能小車的應(yīng)用領(lǐng)域也不斷擴(kuò)大,有了客觀的發(fā)展理由: a. 智能小車系統(tǒng)可以把人從有毒有害、缺氧、高
9、壓、高溫等危險(xiǎn)的環(huán)境中解放出來。比如,發(fā)電廠的高溫環(huán)境的設(shè)備檢修,煤氣管道的修復(fù),易燃易爆危險(xiǎn)品排除裝置等。 b. 智能小車系統(tǒng)可以進(jìn)入到人類無法生存或無法進(jìn)入的區(qū)域代替人類工作,例如可以把智能小車送入太空,探測火星;或者潛入海底,勘探資源等。 c. 隨著經(jīng)濟(jì)的不斷增長及互聯(lián)網(wǎng)的迅速普及,人們的生活水平和質(zhì)量不斷提高,智能化家居生活開始推廣開來,人們可以通過網(wǎng)絡(luò)遠(yuǎn)程控制家中的智能小車完成特定的任務(wù),比如整理房間、遠(yuǎn)程監(jiān)控等。 1.1.2FPGA在控制方面的應(yīng)用 FPGA是英文Field Programmable GateArray的縮寫,即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPL
10、D等可編程器件的基礎(chǔ)上經(jīng)過進(jìn)一步發(fā)展的產(chǎn)物。出現(xiàn)至今歷經(jīng)30年的發(fā)展,F(xiàn)PGA已由當(dāng)初的1200門發(fā)展成為今天的百萬門級(jí)。FPGA一般是基于SRAM工藝,基本結(jié)構(gòu)是基于查找表加寄存器結(jié)構(gòu)。FPGA采用了邏輯單元陣列LCA(LogicCell Array),內(nèi)部包括可配置邏輯模塊CLB(ConfigurableLogicBlock)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(InterConnect)三個(gè)部分。FPGA是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的,因此,在其工作時(shí)需要對(duì)片內(nèi)的RAM進(jìn)行編程。用戶可以根據(jù)不同的模式進(jìn)行配置,并可以采用不同的方式進(jìn)行編程
11、。 FPGA芯片在控制方面可實(shí)現(xiàn)的優(yōu)點(diǎn): a. 采用FPGA芯片設(shè)計(jì)ASIC電路,不需要大量生產(chǎn),就能得到適用的芯片; b. FPGA芯片可做其它全定制或半定制ASIC電路的中試樣片; c. FPGA芯片內(nèi)部有豐富的觸發(fā)器和I/O引腳; d. FPGA芯片設(shè)計(jì)周期最短、開發(fā)費(fèi)用低、風(fēng)險(xiǎn)??; e. FPGA芯片采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。 基于以上特點(diǎn),可以說FPGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性是實(shí)現(xiàn)小車控制的最佳選擇之一。 1.2本課題研究目的及意義 1.2.1研究目的 為了適應(yīng)工業(yè)和科技的快速發(fā)展產(chǎn)生的新要求,使生產(chǎn)達(dá)到較高的
12、自動(dòng)化水平和效率及實(shí)現(xiàn)產(chǎn)品精度的提高,基于FPGA的小車控制系統(tǒng)應(yīng)運(yùn)而生。本設(shè)計(jì)意在設(shè)計(jì)一種設(shè)計(jì)具有較強(qiáng)可移植性的小車控制器,經(jīng)改進(jìn)可應(yīng)用于替代一些單調(diào)枯燥簡單重復(fù)的崗位,如流水線、倉儲(chǔ)物流等。設(shè)計(jì)功能包括周期運(yùn)行、自動(dòng)避障、循跡、遙控運(yùn)行,這些功能具有很強(qiáng)的使用意義,正常狀態(tài)下小車能夠自主周期運(yùn)行完成設(shè)定的任務(wù),遇到障礙物能夠自行躲避,在一些突發(fā)情況下能夠人工干預(yù)小車的運(yùn)行。 本次設(shè)計(jì)旨在用來檢查這學(xué)期專業(yè)知識(shí)的學(xué)習(xí)情況,通過綜合知識(shí)運(yùn)用鍛煉解決問題的能力,通過軟硬件設(shè)計(jì)鍛煉實(shí)踐能力,通過對(duì)設(shè)計(jì)全局的把握培育系統(tǒng)觀念。 1.2.2研究意義 本課題以FPGA芯片為控制器設(shè)計(jì)了智能小車控制
13、系統(tǒng),意義如下: a. 基于FPGA開發(fā)的控制器具有運(yùn)算速度快,體積小,修改方便,集成度高,可靠性高,易擴(kuò)展等優(yōu)點(diǎn)。 b. 用FPGA實(shí)現(xiàn)智能算法可以提高算法的運(yùn)算速度,滿足實(shí)時(shí)控制的要求。本文在基于FPGA實(shí)現(xiàn)復(fù)雜的智能算法方面作了一些探索性的工作,為以后進(jìn)一步嵌入其它復(fù)雜算法打下了基礎(chǔ)。 c. 搭建了智能小車控制系統(tǒng)的實(shí)驗(yàn)平臺(tái),為將來進(jìn)一步研究和開發(fā)智能小車控制器做了基礎(chǔ)性工作。 d. 對(duì)這學(xué)期所學(xué)的專業(yè)知識(shí)進(jìn)行系統(tǒng)梳理、綜合運(yùn)用。 2總體方案說明 2.1 設(shè)計(jì)目標(biāo) 本課題基于EDA技術(shù),使用Altera公司的的EDA軟件開發(fā)工具Quartus II進(jìn)行設(shè)計(jì)準(zhǔn)備、設(shè)計(jì)輸入、功
14、能仿真、設(shè)計(jì)處理、時(shí)序仿真和器件編程及測試,以可編輯邏輯器件FPGA為核心部件,基于FPGA核心開發(fā)板進(jìn)行擴(kuò)展做出硬件,主要包括以下各項(xiàng): a. 掌握利用Verilog HDL設(shè)計(jì)智能小車控制器的原理、方法; b. 利用芯片內(nèi)部時(shí)鐘進(jìn)行分段定時(shí)周期直線運(yùn)動(dòng); c. 小車外接光電傳感器檢測障礙物并做出相應(yīng)反應(yīng); d. 人工干預(yù)遙控運(yùn)行; e. 在FPGA開發(fā)板上,針對(duì)FPGA芯片的特點(diǎn)進(jìn)行系統(tǒng)配置并驗(yàn)證功能的實(shí)現(xiàn),并做出擴(kuò)展硬件; 2.2 方案概述 本設(shè)計(jì)是基于FPGA芯片,采用Verilog HDL語言進(jìn)行的EDA設(shè)計(jì),是軟硬件協(xié)同設(shè)計(jì),分為軟件和硬件設(shè)計(jì)兩部分。首先進(jìn)行軟件的
15、設(shè)計(jì)輸入、功能仿真、設(shè)計(jì)處理,然后下載到FPGA芯片內(nèi)配合外圍電路進(jìn)行硬件測試。 圖2.1 小車控制器原理框圖 其具體功能是實(shí)現(xiàn)自主的周期運(yùn)行,通過光電傳感器檢測障礙物進(jìn)行避障運(yùn)動(dòng),除此之外又加入了遙控功能,其原理框圖如圖2.1所示。 光電傳感器模塊是芯片外接的三個(gè)光電傳感器,當(dāng)傳感器檢測到障礙時(shí)其輸出電平信號(hào)發(fā)生變化,輸入電平信號(hào)經(jīng)程序處理后發(fā)送到FPGA芯片,向驅(qū)動(dòng)模塊發(fā)出相應(yīng)的信號(hào),使小車做出適當(dāng)?shù)囊?guī)避動(dòng)作。 遙控模塊是實(shí)現(xiàn)遙控運(yùn)行功能的模塊,包括硬件的信號(hào)接收裝置和軟件處理模塊。遙控器以無線信號(hào)的形式從發(fā)射端發(fā)出不同的指令信號(hào),經(jīng)無線接收電路處理之后輸出并行信號(hào),F(xiàn)PGA
16、芯片根據(jù)程序設(shè)定向驅(qū)動(dòng)模塊發(fā)出信號(hào),小車做出相應(yīng)的動(dòng)作。 周期運(yùn)行控制程序存儲(chǔ)在FPGA芯片中,使用狀態(tài)機(jī)進(jìn)行狀態(tài)循環(huán),并在不同狀態(tài)下向驅(qū)動(dòng)模塊發(fā)送不同的驅(qū)動(dòng)信號(hào),使小車實(shí)現(xiàn)周期運(yùn)行。 驅(qū)動(dòng)模塊是接收FPGA芯片輸出信號(hào)進(jìn)行電機(jī)驅(qū)動(dòng)的模塊,由驅(qū)動(dòng)程序和外圍的驅(qū)動(dòng)芯片兩部分構(gòu)成,在接收以上各模塊的輸出信號(hào)之后,進(jìn)行處理之后輸出控制信號(hào)驅(qū)動(dòng)直流電機(jī)的運(yùn)行。 以上各模塊綜合起來實(shí)現(xiàn)智能小車控制器的全部功能,其流程圖如圖2.2所示。程序按照此流程設(shè)計(jì)完成之后下載進(jìn)FPGA芯片中,完成外設(shè)電路之后再軟硬件聯(lián)合測試,以實(shí)現(xiàn)設(shè)計(jì)要求。 圖2.2 小車控制器流程圖 3軟件設(shè)計(jì) 小車控制器的軟件
17、程序設(shè)計(jì)采用Verilog HDL語言,利用Altera公司的EDA開發(fā)軟件QuartusII進(jìn)行設(shè)計(jì)。軟件部分由原理圖和模塊程序兩部分組成,包括模式選擇模塊、分頻器模塊、電機(jī)驅(qū)動(dòng)模塊、周期控制模塊、障礙檢測模塊遙控模塊。以及下文將詳細(xì)介紹介紹各個(gè)功能塊的功能及實(shí)現(xiàn)方法,并給出仿真波形。 3.1VHDL語言介紹 VHDL 的英文全名是Very High Speed Integrated Circuit Hardware Description Language,即超高速集成電路硬件描述語言,被認(rèn)為是標(biāo)準(zhǔn)的硬件描述語言,有專家認(rèn)為,在新世紀(jì)中,VHDL與Verilog HDL語言將承擔(dān)起幾乎
18、全部的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。 VHDL 主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。除了含有許多具有硬件特征的語句外,VHDL 的語言形式和描述風(fēng)格與句法十分類似于一般的計(jì)算機(jī)高級(jí)語言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件、一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分,即端口)和內(nèi)部(或稱不可視部分),即設(shè)計(jì)實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL 系統(tǒng)設(shè)計(jì)的基本點(diǎn)。 VHDL具有功能強(qiáng)大的語言結(jié)構(gòu),可以用簡潔明確的源代碼來描述復(fù)雜的邏輯控制
19、。它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后可直接生成電路級(jí)描述。VHDL支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他硬件描述語言所不能比擬的。VHDL還支持各種設(shè)計(jì)方法,既支持自底向上的設(shè)計(jì),又支持自頂向下的設(shè)計(jì);既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì)。 VHDL具有多層次的設(shè)計(jì)描述功能,既可以描述系統(tǒng)級(jí)電路,又可以描述門級(jí)電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級(jí)描述。另外,VHDL支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型。VHDL支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來較大的自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。
20、 設(shè)計(jì)人員用VHDL進(jìn)行設(shè)計(jì)時(shí),不需要首先考慮選擇完成設(shè)計(jì)的器件,就可以集中精力進(jìn)行設(shè)計(jì)的優(yōu)化。當(dāng)設(shè)計(jì)描述完成后,可以用多種不同的器件結(jié)構(gòu)來實(shí)現(xiàn)其功能。VHDL是一種標(biāo)準(zhǔn)化的硬件描述語言,同一個(gè)設(shè)計(jì)描述可以被不同的工具所支持,使得設(shè)計(jì)描述的移植成為可能。 基于以上種種優(yōu)點(diǎn),VHDL作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言,得到眾多EDA公司支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語言。 3.2QuartusII軟件介紹 Max+plus II作為Altera的上一代PLD設(shè)計(jì)軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前Altera已經(jīng)停止了對(duì)Max+plus II的更新支持。Qua
21、rtus II是Altera公司繼Max+plus II之后開發(fā)的一種針對(duì)其公司生產(chǎn)的系列CPLD/FPGA器件的綜合性開發(fā)軟件,它的版本不斷升級(jí),目前已經(jīng)發(fā)布了13.0版本,該軟件有如下幾個(gè)顯著的特點(diǎn): 該軟件界面友好,使用便捷,功能強(qiáng)大,是一個(gè)完全集成化的可編程邏輯設(shè)計(jì)環(huán)境,是先進(jìn)的EDA工具軟件。該軟件具有開放性、與結(jié)構(gòu)無關(guān)、多平臺(tái)、完全集成化、豐富的設(shè)計(jì)庫、模塊化工具等特點(diǎn),支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌有綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PL
22、D、FPGA設(shè)計(jì)流程。 Quartus II可以在Windows、Linux以及Unix上使用,除了可以使用TCL腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。 Quartus II支持Altera公司的MAX 3000A系列、MAX 7000系列、MAX 9000系列、ACEX 1K系列、APEX 20K系列、APEX II系列、FLEX 6000系列、FLEX 10K系列,支持MAX7000/MAX3000等乘積項(xiàng)器件。支持MAX II CPLD系列、Cyclone系列、Cyclone II、Stratix II系列、Stra
23、tix GX系列等。支持IP核,包含了LPM/MegaFunction宏功能模塊庫,用戶可以充分利用成熟的模塊,簡化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。此外,Quartus II 通過和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺(tái)。 3.3 分頻器模塊 3.3.1 分頻器的功能 在接口電路中,時(shí)鐘信號(hào)的作用至關(guān)重要。一般的FPGA開發(fā)板或最小系統(tǒng)板附帶的晶振頻率過高,達(dá)到20MHz甚至50MHz,但是這種時(shí)鐘脈沖不
24、適合直接接入程序工作,所以需要引入時(shí)鐘分頻電路,即分頻器,將晶振輸出的脈沖分頻。分頻之后的時(shí)鐘信號(hào)適合接入電路工作。分頻器模塊就是用軟件方法實(shí)現(xiàn)分頻器的功能。 時(shí)鐘信號(hào)一般有兩種功能,計(jì)數(shù)和選通。對(duì)于周期運(yùn)行控制模塊來說,每個(gè)狀態(tài)都需要進(jìn)行計(jì)時(shí),所以需要接入較低頻率的時(shí)鐘脈沖,便于對(duì)計(jì)時(shí)器賦值。驅(qū)動(dòng)模塊需要進(jìn)行調(diào)速,而小直流電機(jī)需要通過調(diào)節(jié)驅(qū)動(dòng)脈沖的占空比進(jìn)行調(diào)速,在調(diào)節(jié)占空比時(shí)就需要進(jìn)行計(jì)數(shù)運(yùn)算,也就需要一個(gè)合適的時(shí)鐘信號(hào)。 障礙檢測模塊和遙控模塊輸入的是并行電平信號(hào),在電平突然改變時(shí),由于電平躍變或信號(hào)傳輸?shù)难舆t產(chǎn)生競爭冒險(xiǎn)現(xiàn)象,在輸出端產(chǎn)生尖脈沖的毛刺,從而產(chǎn)生誤操作。為了解決這一問
25、題,需要接入一個(gè)選通控制信號(hào)。競爭冒險(xiǎn)一般發(fā)生在輸入信號(hào)變化瞬間,若選通信號(hào)在這期間將輸出關(guān)閉,等到輸入信號(hào)穩(wěn)定后再將輸出開啟,就可以消除競爭險(xiǎn)象。選通信號(hào)也是由分頻器輸出的時(shí)鐘信號(hào)。 3.3.2 分頻器的設(shè)計(jì) 分頻器是將較高的頻率進(jìn)行分頻,從而得到較低的頻率。需要用到計(jì)數(shù)器,高頻率輸入之后,觸發(fā)計(jì)數(shù)器進(jìn)行計(jì)數(shù)運(yùn)算同時(shí)輸出電平保持不變,當(dāng)計(jì)數(shù)器到達(dá)一個(gè)限值時(shí)輸出電平翻轉(zhuǎn)。分頻系數(shù)是輸入頻率和輸出頻率之比,計(jì)數(shù)上限就等于分頻系數(shù)除以2再減去1。 本設(shè)計(jì)輸入晶振頻率是50MHz,為了方便計(jì)數(shù)和選通,輸出頻率設(shè)定為100Hz,計(jì)數(shù)上限為249999。 分頻器模塊如圖3.1所示,CLK是50M
26、Hz晶振頻率輸入,CLK100是100Hz時(shí)鐘頻率輸出。 圖3.1 模塊設(shè)計(jì)完成之后,對(duì)程序進(jìn)行功能仿真,設(shè)置CLK輸入接口的頻率為50MHz,得到如圖3.2所示的仿真波形圖。由于Quartus II軟件只不適合長時(shí)間的仿真,在此截止時(shí)間設(shè)置40ms,此圖只截取了一個(gè)完整周期。 圖3.2分頻器仿真波形 因?yàn)?0MHz的頻率太高導(dǎo)致上升下降沿過密,所以在圖中顯示為一條黑色粗線,但是從時(shí)間上看波形還是正確的,在10ms時(shí),輸出端CLK_OUT100完成1個(gè)周期輸出。 3.4 周期運(yùn)行控制模塊 3.4.1 周期運(yùn)行控制模塊實(shí)現(xiàn)的功能 周期運(yùn)行控制模塊用于實(shí)現(xiàn)小車的周期運(yùn)行
27、功能,通過計(jì)時(shí)器加狀態(tài)機(jī)進(jìn)行狀態(tài)設(shè)置和狀態(tài)轉(zhuǎn)換。在本設(shè)計(jì)中周期運(yùn)行控制模塊將完成如下周期運(yùn)行的控制,功能塊使能之后進(jìn)行周期運(yùn)動(dòng)。一個(gè)運(yùn)動(dòng)周期包括高速前進(jìn)4S,停止2S,低速前進(jìn)4S,停止2S,高速后退4S,停止2S,低速后退4S。之后進(jìn)入下一周期再次高速前進(jìn)4S。 3.4.2 狀態(tài)機(jī)簡介 本設(shè)計(jì)使用了狀態(tài)機(jī)進(jìn)行設(shè)計(jì),在此先對(duì)狀態(tài)機(jī)進(jìn)行簡要的介紹。有限狀態(tài)機(jī)簡稱狀態(tài)機(jī),是表示有限個(gè)狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)模型。狀態(tài)機(jī)及其設(shè)計(jì)技術(shù)是使用數(shù)字邏輯設(shè)計(jì)的重要組成部分,狀態(tài)機(jī)是實(shí)現(xiàn)高效率、高可靠性的控制邏輯的重要途徑。利用狀態(tài)機(jī)進(jìn)行邏輯系統(tǒng)設(shè)計(jì)無論是與基于VHDL的其他設(shè)計(jì)方法
28、相比還是與完成相似功能的CPU相比,都有其獨(dú)到的優(yōu)點(diǎn)。 狀態(tài)機(jī)克服了純硬件數(shù)字系統(tǒng)控制不靈活的缺點(diǎn),能夠按照輸入信號(hào)的控制和預(yù)先設(shè)定的執(zhí)行程序在各個(gè)狀態(tài)之間順序地執(zhí)行切換,能夠很好地執(zhí)行順序邏輯。狀態(tài)機(jī)實(shí)現(xiàn)方式簡單,設(shè)計(jì)方案相對(duì)固定。采用狀態(tài)機(jī)設(shè)計(jì)易于構(gòu)成良好的同步時(shí)序邏輯,有利于消除大規(guī)模邏輯電路中常見的競爭冒險(xiǎn)現(xiàn)象。狀態(tài)機(jī)與VHDL其他描述方法相比,層次分明、結(jié)構(gòu)清晰、易懂好讀,在模塊化修改、優(yōu)化、移植方面有優(yōu)勢。 在VHDL語言中,狀態(tài)機(jī)有多種實(shí)現(xiàn)方式。從輸出方式上分為Mealy(米里)型和Moore(莫爾)型狀態(tài)機(jī)。Mealy型狀態(tài)機(jī)屬于同步時(shí)鐘狀態(tài)機(jī),他的輸出是當(dāng)前狀態(tài)和所有輸入
29、信號(hào)的函數(shù),其輸出是在輸入變化后立即發(fā)生的,不依賴時(shí)鐘同步。Moore型狀態(tài)機(jī)屬于異步輸出狀態(tài)機(jī),他的輸出僅為當(dāng)前狀態(tài)的函數(shù),在輸入發(fā)生變化后,還必須等待時(shí)鐘上升沿的到來,才能導(dǎo)致輸出的改變。 3.4.3 周期運(yùn)行控制模塊的設(shè)計(jì) 為了實(shí)現(xiàn)周期運(yùn)行控制的功能,在該模塊使用狀態(tài)機(jī)進(jìn)行設(shè)計(jì)。首先將周期中各個(gè)運(yùn)行狀態(tài)在狀態(tài)機(jī)中進(jìn)行定義,高速前進(jìn)4S、停止2S、低速前進(jìn)4S、停止2S、高速后退4S、停止2S、低速后退4S分別定義為s0、s5、s1、s2 、s3、s6,S4。由此可以得到狀態(tài)轉(zhuǎn)換圖,如圖3.3所示。 圖3.3 周期運(yùn)行狀態(tài)轉(zhuǎn)換圖 很明顯,該狀態(tài)機(jī)屬于Moore型狀態(tài)機(jī),沒有其他
30、外部輸入口,在使能之后進(jìn)行順序狀態(tài)裝換。每個(gè)狀態(tài)在計(jì)數(shù)的同時(shí)像驅(qū)動(dòng)模塊發(fā)出使能信號(hào)、方向和速度控制信號(hào)。各狀態(tài)對(duì)應(yīng)的輸出控制信號(hào)見表3.1。 表3.1 運(yùn)行狀態(tài)信號(hào)輸出對(duì)照 運(yùn)行狀態(tài) 電機(jī)使能 轉(zhuǎn)動(dòng)速度 轉(zhuǎn)動(dòng)方向 S0 高 高速 正向 S5 低 停止 停止 S1 中 低速 正向 S2 低 停止 停止 S3 高 高速 反向 s6 S4 低 中 停止 低速 停止 反向 程序編譯完成之后創(chuàng)建如圖3.4所示的模塊文件。 圖3.4周期運(yùn)行控制模塊圖 在該模塊中,ENB輸入端是模塊的使能信號(hào),CLK輸入端是從分頻器接入的1
31、00Hz的時(shí)鐘脈沖。EN是電機(jī)驅(qū)動(dòng)模塊的使能控制信號(hào)輸出端,ZF是電機(jī)正反轉(zhuǎn)的控制信號(hào)輸出端,SP是小車速度控制信號(hào)輸出端。 當(dāng)ENB為 低電平時(shí)該模塊使能,當(dāng)ENB為高電平時(shí)模塊不工作。在模塊使能之后,狀態(tài)機(jī)直接進(jìn)入s0狀態(tài),計(jì)數(shù)器在時(shí)鐘脈沖上升沿時(shí)進(jìn)行0到399的累加計(jì)數(shù),同時(shí)EN端輸出高電平使能信號(hào),ZF端輸出高電平正轉(zhuǎn)信號(hào),SP端輸出高電平高速信號(hào),此時(shí)小車前進(jìn)。當(dāng)計(jì)數(shù)器計(jì)數(shù)到399時(shí),4S計(jì)數(shù)器清零,狀態(tài)機(jī)跳轉(zhuǎn)到下一狀態(tài)s5。在狀態(tài)s5中,計(jì)數(shù)器從0到199計(jì)數(shù),計(jì)數(shù)周期為2S,在此期間EN端輸出低電平非使能信號(hào),ZF端輸出低電平反轉(zhuǎn)信號(hào),SP端輸出低電平低速運(yùn)行信號(hào),此時(shí)小車停止
32、。當(dāng)計(jì)數(shù)器計(jì)數(shù)到199時(shí),2S計(jì)數(shù)器清零,狀態(tài)機(jī)跳轉(zhuǎn)到下一狀態(tài)s1.當(dāng)s1狀態(tài)時(shí)計(jì)數(shù)器在此進(jìn)行和s0相同的計(jì)數(shù),同時(shí)EN端繼續(xù)輸出高電平使能信號(hào),ZF端繼續(xù)輸出高電平正轉(zhuǎn)信號(hào),SP端輸出低電平低速運(yùn)動(dòng)信號(hào),此時(shí)小車低速前進(jìn)。當(dāng)計(jì)數(shù)器再次計(jì)數(shù)到399時(shí),4S計(jì)數(shù)器再次清零,狀態(tài)機(jī)跳轉(zhuǎn)到下一狀態(tài)s2。在狀態(tài)s2中,計(jì)數(shù)器從0到199計(jì)數(shù),計(jì)數(shù)周期為2S,在此期間EN端輸出低電平非使能信號(hào),ZF端輸出低電平反轉(zhuǎn)信號(hào),SP端輸出低電平低速運(yùn)行信號(hào),此時(shí)小車停止。當(dāng)計(jì)數(shù)器計(jì)數(shù)到199時(shí),2S計(jì)數(shù)器清零,狀態(tài)機(jī)跳轉(zhuǎn)到下一狀態(tài)s3.在s3狀態(tài),除了ZF端輸出低電平反方向運(yùn)行信號(hào)之外其余輸入輸出量與s0相同。
33、此狀態(tài)下,小車高速反方向運(yùn)行4S。當(dāng)計(jì)數(shù)器再次計(jì)數(shù)至399時(shí),又一次清零跳轉(zhuǎn)到s6狀態(tài)。在s6狀態(tài)下,停止2S,又一次清零轉(zhuǎn)到S4,此時(shí)ZF輸出低電平反方向運(yùn)行信號(hào),其余輸出同s1,此時(shí)小車低速反向運(yùn)動(dòng)。4S計(jì)數(shù)周期結(jié)束之后,計(jì)數(shù)器清零,狀態(tài)機(jī)跳轉(zhuǎn)到狀態(tài)s0,開始下一周期的運(yùn)行。如圖3.5所示,在使能信號(hào)輸入低電平之后,EN、SP、ZF端輸出相應(yīng)值,并且計(jì)數(shù)周期正確。在使能信號(hào)高電平時(shí),全部輸出端口復(fù)位到低電平,待到使能端低電平時(shí)繼續(xù)周期循環(huán)。 圖3.5周期運(yùn)行控制模塊仿真波形 3.5 避障模塊 3.5.1避障模塊實(shí)現(xiàn)的的功能 避障模塊接收外圍電路4個(gè)光電傳感器所發(fā)出的4位并行
34、數(shù)字信號(hào),經(jīng)處理之后向驅(qū)動(dòng)模塊輸出使能信號(hào)、正反方向信號(hào),實(shí)現(xiàn)小車的障礙檢測和規(guī)避障礙的功能。 3.5.2 避障模塊的設(shè)計(jì) 由于光電傳感器在沒有障礙物阻擋的情況下輸入的是高電平1,當(dāng)傳感器前方檢測到障礙物時(shí)輸入的是低電平0。由此可以列出小車規(guī)避障礙動(dòng)作與傳感器輸入到FPGA芯片的電平狀態(tài)對(duì)照表,見表3.2。在表中列出了傳感器輸入狀態(tài)的所有可能情況,并給出小車對(duì)應(yīng)的規(guī)避動(dòng)作。 表3.2 傳感器輸入狀態(tài)與小車規(guī)避動(dòng)作對(duì)照表 傳感器輸入狀態(tài) 小車動(dòng)作 傳感器輸入狀態(tài) 小車動(dòng)作 0000 停止 0100 左轉(zhuǎn) 0001 直行 0101 直行 0010 右轉(zhuǎn) 0110
35、 右轉(zhuǎn) 0011 1000 1001 1010 1011 直行 后退 直行 右轉(zhuǎn) 直行 0111 1100 1101 1110 1111 直行 左轉(zhuǎn) 直行 右轉(zhuǎn) 直行 根據(jù)以上分析設(shè)計(jì)出避障模塊的程序,編譯仿真之后創(chuàng)建模塊文件。如 圖3.6避障模塊圖 圖3.6所示。 DIN2[0],DIN2[1],DIN2[2],DIN2[3]分別為小車前方中、右、左,后四個(gè)光電傳感器的輸入信號(hào),ENE端為模塊使能信號(hào)輸入。Zuo1,zuo2為左輪的兩路輸入,you1,you2為右輪的兩路輸入,en1,en2分別為左輪和右輪的使能。當(dāng)ENE輸入信號(hào)為
36、低電平時(shí),避障模塊使能,此時(shí)輸入的傳感器信號(hào)經(jīng)模塊處理之后,輸出端輸出相應(yīng)信號(hào),實(shí)現(xiàn)對(duì)障礙的規(guī)避。 編譯之后進(jìn)行模塊的功能仿真,得到如圖3.7所示的波形。從波形上可以看出,以上設(shè)計(jì)功能全部實(shí)現(xiàn)。 圖3.7避障模塊仿真波形 3.6 遙控模塊 3.6.1 遙控模塊的功能 遙控模塊是實(shí)現(xiàn)遙控功能的一個(gè)功能模塊,遙控器發(fā)出的指令信號(hào)經(jīng)接收電路處理之后輸入到FPGA芯片中,遙控模塊接收到信號(hào)之后向驅(qū)動(dòng)模塊輸出控制信號(hào),實(shí)現(xiàn)與遙控信號(hào)對(duì)應(yīng)的動(dòng)作。 3.6.2 遙控模塊的設(shè)計(jì) 遙控器發(fā)射的信號(hào)經(jīng)接收電路處理之后,輸入到FPGA芯片中的是四位并行信號(hào)。遙控器按鍵對(duì)應(yīng)的并行信號(hào)與小車動(dòng)
37、作見表3.3。本次設(shè)計(jì)的是模擬消防車滅火,小車是兩前輪驅(qū)動(dòng),依靠車輪反向轉(zhuǎn)動(dòng)進(jìn)行轉(zhuǎn)向,并同時(shí)發(fā)出警報(bào)和七彩LED指示燈閃,所以設(shè)定遙控器上的四個(gè)按鍵組合進(jìn)行操作。 表3.3 遙控器按鍵與小車動(dòng)作對(duì)照表 遙控器按鍵 并行輸入信號(hào) 小車動(dòng)作 A 0001 右轉(zhuǎn) B 0010 后退 C 0100 前進(jìn) D A和B 1000 0011 左轉(zhuǎn) 停止并開啟風(fēng)扇 其他按鍵組合 — 停止 根據(jù)以上設(shè)定編寫模塊程序,編譯之后生成模塊文件,如圖3.8所示。 CLK接入系統(tǒng)時(shí)鐘信號(hào),key[4..1]是經(jīng)遙控接收電路處理之后的四位并行信號(hào),ENA是模塊使能信號(hào)輸入端。
38、Zuo1,zuo2為左輪的兩路輸入,you1,you2為右輪的兩路輸入,en1,en2分別為左輪和右輪的使能。Feng是控制風(fēng)扇的輸入端,beep是控制蜂鳴器,led1是七彩LED指示燈的控制端。 當(dāng)ENA輸入信號(hào)為低電平時(shí),遙控模塊使能,此時(shí)輸入的4位并行信號(hào)經(jīng)模塊處理之后,輸出端輸出相應(yīng)信號(hào),實(shí)現(xiàn)遙控運(yùn)行。 圖3.8遙控模塊圖 程序編寫完成之后驗(yàn)證其是否實(shí)現(xiàn)了設(shè)計(jì)功能,編譯之后進(jìn)行功能仿真,得到如圖3.9所示波形。 圖3.9 遙控模塊仿真波形 從圖上可以看出,該模塊完全達(dá)到設(shè)計(jì)要求。 3.7 循跡模塊 循跡模塊接收外圍電路4個(gè)光電傳感器所發(fā)出的4位并行數(shù)字信號(hào)
39、,經(jīng)處理之后向驅(qū)動(dòng)模塊輸出使能信號(hào)、正反方向信號(hào),實(shí)現(xiàn)小車的尋黑線的功能。 由于光電傳感器屬于紅外線反射探測,因此目標(biāo)的反射率和形狀是探測距離的關(guān)鍵。其中黑色探測距離最小,白色最大;在沒有障礙物阻擋的情況下輸入的是高電平1,相當(dāng)于前面擋了張黑紙,當(dāng)傳感器前方檢測到障礙物時(shí)輸入的是低電平0,相當(dāng)于前面擋了張白紙。由此可以列出小車循跡動(dòng)作與傳感器輸入到FPGA芯片的電平狀態(tài)對(duì)照表,見表3.4。在表中列出了傳感器輸入狀態(tài)的所有可能情況,并給出小車對(duì)應(yīng)的規(guī)避動(dòng)作。 表3.4 傳感器輸入狀態(tài)與小車規(guī)避動(dòng)作對(duì)照表 傳感器輸入狀態(tài) 小車動(dòng)作 傳感器輸入狀態(tài) 小車動(dòng)作 0000 直行 010
40、0 右轉(zhuǎn) 0001 左轉(zhuǎn) 0101 停止 0010 左轉(zhuǎn) 0110 直行 0011 1000 1001 1010 1011 左轉(zhuǎn) 右轉(zhuǎn) 停止 停止 停止 0111 1100 1101 1110 1111 左轉(zhuǎn) 右轉(zhuǎn) 停止 右轉(zhuǎn) 直行 根據(jù)以上分析設(shè)計(jì)出避障模塊的程序,編譯仿真之后創(chuàng)建模塊文件。如 圖3.10循跡模塊圖 圖3.10所示。 Clk2是系統(tǒng)時(shí)鐘脈沖,DIN [0],DIN [1],DIN [2],DIN [3]分別為小車左,中,中,右四個(gè)光電傳感器的輸入信號(hào),ENC端為模塊使能信號(hào)輸入。Zuo1,zuo2為左
41、輪的兩路輸入,you1,you2為右輪的兩路輸入,en1,en2分別為左輪和右輪的使能,由于循跡速度太快,現(xiàn)象不明顯,這里給使能進(jìn)行了PWM調(diào)速,速度減慢,效果才好。當(dāng)ENC輸入信號(hào)為低電平時(shí),循跡模塊使能,此時(shí)輸入的傳感器信號(hào)經(jīng)模塊處理之后,輸出端輸出相應(yīng)信號(hào),實(shí)現(xiàn)對(duì)黑線的循跡。 編譯之后進(jìn)行模塊的功能仿真,得到如圖3.11所示的波形。從波形上可以看出,以上設(shè)計(jì)功能全部實(shí)現(xiàn)。 圖3.11循跡模塊仿真波形 3.8驅(qū)動(dòng)模塊 3.8.1驅(qū)動(dòng)模塊的功能 驅(qū)動(dòng)模塊是本設(shè)計(jì)的基本模塊之一,是將以上各模塊的邏輯操作轉(zhuǎn)化到實(shí)際運(yùn)動(dòng)的一個(gè)模塊。該模塊輸入上述幾個(gè)功能模塊輸出的使能、正反和速
42、度控制信號(hào),再將其轉(zhuǎn)化為直流電機(jī)驅(qū)動(dòng)信號(hào)輸出到外圍驅(qū)動(dòng)電路中,控制小車車輪的運(yùn)行。由于本設(shè)計(jì)中出現(xiàn)了速度的變化,且使用的是直流電機(jī),需要引入脈沖寬度調(diào)制(PWM)進(jìn)行調(diào)速。 3.8.2脈沖寬度調(diào)制調(diào)速基本原理 脈沖寬度調(diào)制,英文是“Pulse Width Modulation”,縮寫PWM,簡稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù)。PWM是常用的一種調(diào)速方法,其基本原理是用改變電機(jī)接通和斷開的時(shí)間比(占空比)來控制電機(jī)的速度,在脈寬凋速系統(tǒng)中,當(dāng)電機(jī)通電時(shí),其速度增加;電機(jī)斷電時(shí),其速度減低。只要按照一定的規(guī)律改變通、斷電的時(shí)間,即可調(diào)整電機(jī)的速度。在
43、傳統(tǒng)的PWM調(diào)速系統(tǒng)中一般采用硬件作為脈沖發(fā)生器的方式,應(yīng)用的元器件較多,同樣會(huì)增加電路的復(fù)雜程度,隨著電子技術(shù)和大規(guī)??删幊踢壿嬈骷陌l(fā)展,PWM采用軟件的方法來實(shí)現(xiàn)調(diào)速過程,具有更大的靈活性,實(shí)現(xiàn)了硬件設(shè)計(jì)軟件化。 3.8.3驅(qū)動(dòng)模塊的設(shè)計(jì) 周期運(yùn)行模塊向驅(qū)動(dòng)模塊輸出使能信號(hào)、正反方向信號(hào)、速度信號(hào)。速度控制是本模塊在程序結(jié)構(gòu)上區(qū)別于其他模塊的地方。分為高速擋和低速擋,將高速模式設(shè)置為將直流電直接接到直流電機(jī)上,低速檔使用PWM調(diào)速脈沖驅(qū)動(dòng)。由于本設(shè)計(jì)沒有精確的速度要求,將低速檔位的速度能與高速擋位的速度區(qū)別開即可。按此要求完成程序設(shè)計(jì),編譯之后創(chuàng)建塊文件,如圖3.12所示。 圖
44、3.12 驅(qū)動(dòng)模塊圖 Clk1為系統(tǒng)時(shí)鐘脈沖,EN為模塊使能信號(hào)輸入端,ZF輸入端連接的是周期模塊輸出的正反方向控制信號(hào),SP輸入端是周期模塊輸入的速度控制信號(hào)。Zuo1,zuo2為左輪的兩路輸入,you1,you2為右輪的兩路輸入,en1,en2分別為左輪和右輪的使能。 使能信號(hào)為高電平時(shí),電機(jī)驅(qū)動(dòng)模塊開始工作。ZF輸入為高電平時(shí),電機(jī)正向轉(zhuǎn)動(dòng);ZF輸入為低電平時(shí),電機(jī)反向轉(zhuǎn)動(dòng)。SP輸入為高電平時(shí),電機(jī)加速轉(zhuǎn)動(dòng);SP輸入為低電平時(shí),電機(jī)低速轉(zhuǎn)動(dòng)。計(jì)數(shù)器在clk1時(shí)鐘脈沖上升沿的觸發(fā)下進(jìn)行0到200的循環(huán)加法計(jì)數(shù)。在計(jì)數(shù)值在0到80區(qū)間中時(shí),en1,en2輸出低電平;計(jì)數(shù)值大于80時(shí),
45、en1,en2輸出高電平。 對(duì)程序進(jìn)行功能仿真之后得到圖3.13所示波形,從圖上可以看出,輸 圖3.13 驅(qū)動(dòng)模塊仿真波形 入輸出波形完全達(dá)到設(shè)計(jì)要求。 3.9 模式選擇模塊 由于本設(shè)計(jì)之中包含周期運(yùn)行、自主避障運(yùn)行、遙控運(yùn)行、魔手運(yùn)行、循跡運(yùn)行五種功能,功能之間的切換依靠五個(gè)自鎖開關(guān)進(jìn)行切換。模式選擇模塊的作用是為了防止自鎖開關(guān)的誤操作,保證當(dāng)且僅當(dāng)只有一個(gè)自鎖開關(guān)使接通狀態(tài)時(shí)向?qū)? 圖3.14 模式選擇模塊圖 應(yīng)模塊輸出使能信號(hào)。程序設(shè)計(jì)完成,編譯之后創(chuàng)建塊文件,如圖3.14所示。 EN_BIZHANG1,EN_YAOKONG,EN_CYCLE,EN_XUNJ
46、I,EN_BIZHANG分別對(duì)應(yīng)五個(gè)自鎖開關(guān),當(dāng)其中只有一個(gè)輸入低電平時(shí)對(duì)應(yīng)的輸出端向?qū)?yīng)能塊輸出低電平使能信號(hào),并在數(shù)碼管上顯示數(shù)字指示第幾個(gè)開關(guān)打開,其功能仿真波形如圖3.15所示。 圖3.15 模式選擇模塊仿真波形 3.10頂層圖設(shè)計(jì) 以上各個(gè)功能模塊設(shè)計(jì)完成之后需要建立一個(gè)頂層原理圖文件,將以上模 塊綜合起來,并按照邏輯功能連接模塊之間的接線。這些工作完成之后就得到圖3.16所示的頂層圖文件。 圖3.16 小車控制器程序頂層圖 資源占用情況: 該程序運(yùn)行周期過長,而QuartusII軟件提供的仿真環(huán)境不適合長時(shí)間的功能仿真,故在此不進(jìn)行全局仿真。 4
47、.硬件設(shè)計(jì) 硬件設(shè)計(jì)的目的完成軟件程序設(shè)計(jì)功能的硬件載體。包括FPGA芯片選取,電源模塊設(shè)計(jì),模式選擇開關(guān)電路的設(shè)計(jì),輸入信號(hào)采集的光電傳感器障礙檢測電路、無線信號(hào)接收電路和輸出信號(hào)控制的驅(qū)動(dòng)電路的實(shí)現(xiàn)。 4.2檢測電路 檢測電路包括3個(gè)光電傳感器進(jìn)行障礙檢測,和一個(gè)以LM339四電壓比較器為核心的中控電路。 本設(shè)計(jì)選用的光電傳感器是NPN型光電開關(guān)。外接3條引線,分別是電源、接地、信號(hào)輸出。正常狀態(tài)下發(fā)射端發(fā)出紅外信號(hào),接收端沒有接到發(fā)射回來的紅外信號(hào),此時(shí)感應(yīng)信號(hào)輸出高電平。當(dāng)檢測到障礙物時(shí),發(fā)射端發(fā)出的紅外信號(hào)經(jīng)障礙物反射,接收端接收到紅外信號(hào),此時(shí)感應(yīng)信號(hào)輸出低電平。光電傳感器
48、有效探測距離3至80cm可調(diào),本次設(shè)計(jì)通過調(diào)節(jié)滑動(dòng)變阻器將探測距離設(shè)置為30cm。是NPN型光電開關(guān)是NPN型光電開關(guān)是NPN型光電開關(guān) 中控板以LM339為核心,對(duì)傳感器集中供電,并接收傳感器的反饋信號(hào),經(jīng)處理輸出到FPGA芯片。LM339內(nèi)部包括有四個(gè)獨(dú)立的電壓比較器,在很寬的電源電壓范圍內(nèi)適用于雙電源工作模式,也適用于單電源工作模式。在方波發(fā)生器、時(shí)間延時(shí)器、脈沖發(fā)生器、A/D轉(zhuǎn)換器等廣泛應(yīng)用。光電傳感器信號(hào)輸入到LM339中經(jīng)電壓比較器圖4.7 一路光電傳感器與電壓比較器原理圖 處理之后,向FPGA芯片輸入端發(fā)送數(shù)字信號(hào)。當(dāng)傳感器未檢測到障礙時(shí),中控電路對(duì)應(yīng)的發(fā)光二極管常亮,向芯片
49、發(fā)送低電平;當(dāng)檢測到障礙時(shí),對(duì)應(yīng)發(fā)光二極管熄滅,向芯片發(fā)送高電平。一路光電傳感器和原理如圖4.7所示。將三路信號(hào)輸出端接入FPGA芯片,作為避障模塊的輸入。 圖4.9 感應(yīng)電路中控板 圖4.8光電傳感器 圖4.8和圖4.9所示為光電傳感器和中控板實(shí)物。 4.3 遙控接收電路 圖4.10 SC2272無線接收模塊原理圖 遙控接收電路采用SC2272-M4解碼電路,又名5V高頻超再生四路解碼接收模塊。工作電壓為DC5V;靜態(tài)電流為4.5mA;調(diào)幅調(diào)制;接收靈敏度為-105dB;工作頻率315~433.92MHz;編碼方式是焊盤編碼(固定碼);工作方式為點(diǎn)動(dòng),按住不放輸出,放開停
50、止輸出。超再生接收模塊采用LC振蕩電路,內(nèi)含放大整形,輸出的數(shù)據(jù)信號(hào)為解碼后的高電平信號(hào),使用極為方便,并且價(jià)格低廉,所以被廣泛使用。遙控接收電路原理如圖4.10所示,VT是無線接收狀態(tài)輸出端,D3至D1是四位并行信號(hào)輸出[17]。 圖4.12 無線信號(hào)發(fā)送模塊 圖4.11 SC2272無線信號(hào)接收模塊 圖4.11和圖4.12所示為無線信號(hào)收發(fā)模塊。 4.4 驅(qū)動(dòng)電路 4.4.1直流電機(jī)驅(qū)動(dòng)原理 直流電機(jī)的驅(qū)動(dòng)方法是H橋驅(qū)動(dòng),電路得名 “H橋驅(qū)動(dòng)電路”是因?yàn)樗嗡谱帜窰。圖4.13中所示為一個(gè)典型的直流電機(jī)驅(qū)動(dòng)電路。如圖所示,H橋式電機(jī)驅(qū)動(dòng)電路包括4個(gè)三極管和一個(gè)直流電機(jī)。
51、要使得直流電機(jī)運(yùn)轉(zhuǎn),須導(dǎo)通對(duì)角線上的一對(duì)三極管,形成電勢差。根據(jù)不同三極管對(duì)的導(dǎo)通情況,電流可能會(huì)從兩條線路流過直流電機(jī)。左上方至右下方流過直流電機(jī)或從右上至左下流過直流電機(jī)。通過電流不同的流向控制直流電機(jī)的轉(zhuǎn)動(dòng)方向。例如,當(dāng)三極管Q1和三極管Q4導(dǎo)通,這時(shí)電流就從電源正極經(jīng)Q1從左上方至右下方穿過直流電機(jī),然后從Q4發(fā)射極重新流回到電源的負(fù)極。該流向的電流將會(huì)驅(qū)動(dòng)直流電機(jī)做順時(shí)針轉(zhuǎn)動(dòng)。當(dāng)另一對(duì)三極管Q2和Q3導(dǎo)通時(shí),電流將從右上至左下流過直流電機(jī),電流將從右至左流過直流電機(jī),此時(shí)驅(qū)動(dòng)直流電機(jī)做逆時(shí)針轉(zhuǎn)動(dòng)。 圖4.15 L298N 驅(qū)動(dòng)電路 圖4.13 H橋驅(qū)動(dòng)電路 然而在實(shí)際使用的時(shí)候
52、,用分立元件制作H橋是很麻煩的,好在現(xiàn)在市面上有很多封裝好的H橋集成電路,接上電源、電機(jī)和控制信號(hào)就可以使用了,在額定的電壓和電流內(nèi)使用非常方便可靠。比如常用的L293D、L298N、ULN2003等。 4.4.2L298N電機(jī)驅(qū)動(dòng)芯片及驅(qū)動(dòng)電路 圖4.14 L298N芯片內(nèi)部原理圖 L298N是ST公司生產(chǎn)的一種高電壓、大電流電機(jī)驅(qū)動(dòng)芯片。該芯片采用15腳封裝。主要特點(diǎn)是:工作電壓高,最高工作電壓可達(dá)46V;輸出電流大,瞬間峰值電流可達(dá)3A,持續(xù)工作電流為2A;額定功率25W。內(nèi)含兩個(gè)由四個(gè)大功率晶體管組成的H橋電路構(gòu)成的H橋高電壓大電流全橋式驅(qū)動(dòng)器(如圖4.14所示),可以用來驅(qū)動(dòng)直
53、流電動(dòng)機(jī)和步進(jìn)電動(dòng)機(jī)、繼電器線圈等感性負(fù)載;采用標(biāo)準(zhǔn)邏輯電平信號(hào)控制;具有兩個(gè)使能控制端,在不受輸入信號(hào)影響的情況下允許或禁止器件工作有一個(gè)邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。使用L298N芯片驅(qū)動(dòng)電機(jī),可以驅(qū)動(dòng)一臺(tái)兩相步進(jìn)電機(jī)或四相步進(jìn)電機(jī),也可以驅(qū)動(dòng)兩臺(tái)直流電機(jī)。本次設(shè)計(jì)使用該芯片驅(qū)動(dòng)兩臺(tái)直流電機(jī)。 圖4.15所示是L298N的電機(jī)驅(qū)動(dòng)原理,表4.1是L298N其中一組輸入信號(hào)與對(duì)應(yīng)直流電機(jī)轉(zhuǎn)動(dòng)狀態(tài)的對(duì)照。IN3與IN4的輸入與直流電機(jī)轉(zhuǎn)動(dòng)方向與此相同。這樣將四路輸入組合起來,通過電平信號(hào)的組合就能控制兩直流電機(jī)的轉(zhuǎn)動(dòng)狀態(tài),實(shí)現(xiàn)小車
54、的直行轉(zhuǎn)彎。 表4.1輸入電平信號(hào)與電機(jī)轉(zhuǎn)動(dòng)狀態(tài)對(duì)照 ENA IN1 IN2 電機(jī)轉(zhuǎn)動(dòng)狀態(tài) 1 1 0 正向轉(zhuǎn)動(dòng) 1 0 1 反向轉(zhuǎn)動(dòng) 0 1 0 停止 0 0 1 停止 L298N也給出了電機(jī)速度控制的解決辦法,當(dāng)驅(qū)動(dòng)電路使能端為高電平時(shí)直流電機(jī)轉(zhuǎn)動(dòng),當(dāng)使能端為低電平時(shí)直流電機(jī)停止轉(zhuǎn)動(dòng)。那么給使能端接入FPGA芯片輸出的的PWM控制信號(hào)就能實(shí)現(xiàn)對(duì)直流電機(jī)轉(zhuǎn)動(dòng)速度的控 圖4.16 L298N驅(qū)動(dòng)模塊 制。L298N驅(qū)動(dòng)模塊實(shí)物如圖4.16。 4.5模式選擇電路 模式選擇電路采用三路開關(guān)向FPGA芯片輸出低電平信號(hào),實(shí)現(xiàn)不同功能之間的切
55、換。電路原理如圖4.17所示。 圖4.17 開關(guān)電路原理圖 5設(shè)計(jì)結(jié)果 5.1硬件組裝 將以上硬件組裝起來,并用杜邦線將各輸入輸出端口相連接,得到小車的硬件成品,如圖5.1所示。 圖5.1 小車硬件實(shí)物圖 5.2 軟硬件聯(lián)合測試 軟件程序和硬件電路全部完成之后進(jìn)行軟硬件的聯(lián)合調(diào)試。首先對(duì)程序進(jìn)行引腳鎖定,編譯之后,將生成的.sof文件下載到FPGA芯片中去,然后進(jìn)行各功能實(shí)現(xiàn)情況的測試。 5.2.1測試準(zhǔn)備 測試之前先要進(jìn)行引腳鎖定,將原理圖中德輸入輸出端與FPGA芯片管腳進(jìn)行映射,然后外圍電路才能與軟件程序配合運(yùn)行。在實(shí)現(xiàn)功能的前提下,盡可能的將引腳設(shè)置的易于連
56、接,得到各端口與芯片管腳對(duì)應(yīng)關(guān)系見表5.1。 表5.1程序端口與FPGA芯片管腳對(duì)應(yīng)關(guān)系 端口種類 原理圖端口名稱 FPGA對(duì)應(yīng)管腳 輸入端口 EN_BIZHANG PIN34 EN_BIZHANG1 PIN20 EN_CYCLE PIN38 EN_XUNJI PIN36 EN_YAOKONG PIN35 clk PIN12 Key[1] PIN53 Key[2] PIN52 Key[3] PIN51 Key[4] PIN50 DIN[0] DIN[1] DIN[2] DIN[3] DIN1 DIN2[0] D
57、IN2[1] DIN2[2] DIN2[3] PIN1 PIN100 PIN5 PIN4 PIN15 PIN44 PIN47 PIN42 PIN43 輸出端口 DIG PIN84 SEG[0] SEG[1] SEG[2] SEG[3] SEG[4] SEG[5] SEG[6] SEG[7] Feng Led1 Beef En1 En2 Zuo1 Zuo2 You1 You2 PIN76 PIN83 PIN81 PIN75 PIN74 PIN78 PIN82 PIN77 PIN8 PIN16 PIN73 PIN
58、71 PIN70 PIN66 PIN67 PIN58 PIN61 引腳鎖定完成之后,將未使用引腳設(shè)置為三態(tài),除自帶的電平信號(hào)引腳之外其余引腳在未使用時(shí)為高阻態(tài)。在此進(jìn)行編譯,編譯完成之后.sof文件更新到最新狀態(tài)。這時(shí)連接USBBlaster下載線,接通核心板電源,將.sof文件下載到EPM570T100C5芯片中,接下來就可進(jìn)行功能測試。 6 總結(jié)與展望 基于FPGA的小車控制器的設(shè)計(jì)綜合了數(shù)字電子技術(shù)、EDA技術(shù)、直流電機(jī)電機(jī)驅(qū)動(dòng)及自動(dòng)控制等多種技術(shù)。本文主要結(jié)合當(dāng)前FPGA技術(shù)的可在線反復(fù)編程,并行處理,運(yùn)算速度快,集成度高,可靠性高,功耗低等特點(diǎn),針對(duì)小車控制中實(shí)時(shí)性,
59、智能化等要求,以Altera公司的EPM570T100C5型FPGA為基礎(chǔ),在FPGA應(yīng)用于控制領(lǐng)域方面作了一些探索性的工作,并取得了一些成果。 本設(shè)計(jì)以EPM570T100C5型FPGA為核心,設(shè)計(jì)了一個(gè)較為通用的控制系統(tǒng)。首先進(jìn)行了軟件程序的設(shè)計(jì),在QuartusII開發(fā)環(huán)境下用Verilog HDL語言完成了對(duì)各個(gè)部分的控制。各部分具有一定的通用性,可以針對(duì)不同的應(yīng)用適當(dāng)組合,完成具體的功能。然后選擇了了核心板進(jìn)行調(diào)試和擴(kuò)展,在此基礎(chǔ)上擴(kuò)展了19路數(shù)字信號(hào)的輸入通道,18路數(shù)字信號(hào)的輸出通道。為了測試小車控制器的功能搭建了一個(gè)智能小車的框架。 隨著電子技術(shù)的不斷發(fā)展,智能小車系統(tǒng)處于
60、不斷完善創(chuàng)新的過程,然而由于條件限制,課題中還有一些地方值得繼續(xù)研究和改進(jìn)。 例如在驅(qū)動(dòng)模塊的設(shè)計(jì)中,本設(shè)計(jì)沒有精確的速度要求,將低速檔位的速度能與高速擋位的速度區(qū)別開即可。所以只是簡單的將驅(qū)動(dòng)脈沖占空比設(shè)置為一定值。今后可以在控制器中加入閉環(huán)轉(zhuǎn)速控制功能,對(duì)小車的速度進(jìn)行精確的控制。 在避障功能中,由于小車傳感器數(shù)量的限制,無法進(jìn)行全方位的識(shí)別,僅適用于對(duì)壁障的識(shí)別和躲避,有時(shí)還會(huì)存在死角。后期可以加入更高級(jí)的算法,通過對(duì)傳感器信號(hào)序列的檢測進(jìn)行控制。也可以增加傳感器數(shù)量或者添加距離感應(yīng)器、溫度傳感器等實(shí)現(xiàn)更加高級(jí)的避障功能。 基于FPGA的小車控制器的功能有待日后進(jìn)一步的擴(kuò)展,本次設(shè)
61、計(jì)搭建的智能小車平臺(tái)在今后的設(shè)計(jì)中可以在軟件中嵌入不同的控制算法,擴(kuò)展多種控制性能,以實(shí)現(xiàn)更多的功能,替代人工完成生產(chǎn)、探測、服務(wù)等工作。 附錄A 程序: switch_.v: module switch_(EN_BIZHANG1,EN_YAOKONG,EN_CYCLE,EN_XUNJI,EN_BIZHANG,ENA,ENB,ENC,END,ENE,DIG,SEG); input EN_YAOKONG,EN_CYCLE,EN_XUNJI,EN_BIZHANG,EN_BIZHANG1; output ENA,ENB,
62、ENC,END,ENE,DIG; output [7:0] SEG; reg [7:0] SEG; reg ENA,ENB,ENC,END,ENE; assign DIG=0; always @(EN_YAOKONG or EN_CYCLE or EN_XUNJI or EN_BIZHANG or EN_BIZHANG1) begin if (!EN_BIZHANG1) begin if (!EN_YAOKONG) begin if(!EN_CYCLE) begin if(!EN_XUNJI) beg
63、in if(!EN_BIZHANG) begin ENA<=1;ENB<=1;ENC<=1;END<=1;ENE<=1;SEG=8'HC0;end else begin ENA<=1;ENB<=1;ENC<=1;END<=1;ENE<=1;SEG=8'HC0; end end else begin if(!EN_BIZHANG) begin ENA<=1;ENB
64、<=1;ENC<=1;END<=1;ENE<=1;SEG=8'HC0;end else begin ENA<=1;ENB<=1;ENC<=1;END<=1;ENE<=1;SEG=8'HC0; end end end else begin if(!EN_XUNJI) begin if(!EN_BIZHANG) begin ENA<=1;ENB<=
65、1;ENC<=1;END<=1;ENE<=1;SEG=8'HC0;end else begin ENA<=1;ENB<=1;ENC<=1;END<=1;ENE<=1;SEG=8'HC0; end end else begin if(!EN_BIZHANG) begin ENA<=1;ENB<=1;ENC<=1;END<=1;ENE<=1;SEG=8'HC0;end
66、 else begin ENA<=1;ENB<=1;ENC<=1;END<=1;ENE<=1;SEG=8'HC0; end end end end else begin if(!EN_CYCLE) begin if(!EN_XUNJI) begin if(!EN_BIZHANG) begin ENA<=1;ENB<=1;ENC<=1;END<=1;ENE<=1;
67、SEG=8'HC0;end else begin ENA<=1;ENB<=1;ENC<=1;END<=1;ENE<=1;SEG=8'HC0; end end else begin if(!EN_BIZHANG) begin ENA<=1;ENB<=1;ENC<=1;END<=1;ENE<=1;SEG=8'HC0;end else begin ENA<=1;ENB<=1;ENC<=1;END<=1;ENE<=1;SEG=8'HC0; end end end else begin
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 六級(jí)上冊(cè)科學(xué)ppt課件-誰選擇了它們-教科版
- 護(hù)理核心制度培訓(xùn)一_圖文課件
- 部編《池子與河流》課件
- SWOT分析法(非常全面)課件
- 主題班會(huì)我的成長目標(biāo)課件
- 城市交通擁堵及治理總結(jié)課件
- 輸血相關(guān)性急性肺損傷課件
- 議論文的謀篇布局與論點(diǎn)的提出ppt課件
- 六級(jí)上冊(cè)科學(xué)ppt課件-地球的近鄰——月球-冀人版
- 疾病預(yù)防、冬季保暖-課件
- 中考英語語法復(fù)習(xí)之狀語從句ppt課件集4
- 《百分?jǐn)?shù)的意義和讀寫》參考ppt課件
- 主題班會(huì)堅(jiān)持就是勝利課件
- 第二章--用人單位對(duì)大學(xué)生的要求概況ppt課件
- 教科版六年級(jí)科學(xué)上冊(cè)第三單元檢測卷(含答案)課件