FPGA智能小車設(shè)計(jì)_第1頁
FPGA智能小車設(shè)計(jì)_第2頁
FPGA智能小車設(shè)計(jì)_第3頁
FPGA智能小車設(shè)計(jì)_第4頁
FPGA智能小車設(shè)計(jì)_第5頁
已閱讀5頁,還剩73頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、天水師范學(xué)院基于EDA的小車控制器的設(shè)計(jì)實(shí)踐報(bào)告學(xué)院:物理與信息科學(xué)學(xué)院專業(yè):電子信息科學(xué)與技術(shù)班級: 11 級電信二班姓名:尹天林 倪波波學(xué)號:235 2192013年 12月 30日3 軟件設(shè)計(jì) . 錯(cuò)誤 !未定義書簽?zāi)夸浾? 錯(cuò)誤!未定義書簽11錯(cuò)誤!未定義書簽。FPGA在控制方面的應(yīng)用 錯(cuò)誤!未定義書簽本課題研究目的及意義 錯(cuò)誤!未定義書簽1 引言 . 選題背景 . 智能小車簡介 . 錯(cuò)誤!未定義書簽錯(cuò)誤!未定義書簽錯(cuò)誤!未定義書簽研究目的 . 研究意義 . 2 總體方案說明 .設(shè)計(jì)目標(biāo) . 錯(cuò)誤!未定義書簽方案概述 . 錯(cuò)誤!未定義書簽VHDL語言介紹 錯(cuò)誤!未定義書簽Quartu

2、s II 軟件介紹 錯(cuò)誤!未定義書簽分頻器模塊 . 錯(cuò)誤!未定義書簽分頻器的功能 . 錯(cuò)誤!未定義書簽分頻器的設(shè)計(jì) . 錯(cuò)誤!未定義書簽周期運(yùn)行控制模塊 . 錯(cuò)誤!未定義書簽周期運(yùn)行控制模塊實(shí)現(xiàn)的功能 錯(cuò)誤!未定義書簽狀態(tài)機(jī)簡介 . 錯(cuò)誤 ! 未定義書簽周期運(yùn)行控制模塊的設(shè)計(jì) 錯(cuò)誤!未定義書簽避障模塊 . 錯(cuò)誤!未定義書簽避障模塊實(shí)現(xiàn)的的功能 錯(cuò)誤!未定義書簽避障模塊的設(shè)計(jì) . 錯(cuò)誤!未定義書簽遙控模塊 . 錯(cuò)誤!未定義書簽遙控模塊的功能 . 錯(cuò)誤 ! 未定義書簽遙控模塊的設(shè)計(jì) . 錯(cuò)誤!未定義書簽循跡模塊 . 錯(cuò)誤!未定義書簽驅(qū)動(dòng)模塊 . 錯(cuò)誤!未定義書簽驅(qū)動(dòng)模塊的功能 . 錯(cuò)誤!未定義書簽

3、脈沖寬度調(diào)制調(diào)速基本原理 錯(cuò)誤 !未定義書簽驅(qū)動(dòng)模塊的設(shè)計(jì) . 錯(cuò)誤!未定義書簽?zāi)J竭x擇模塊 . 錯(cuò)誤 !未定義書簽頂層圖設(shè)計(jì) . 錯(cuò)誤!未定義書簽4 硬件設(shè)計(jì) . 錯(cuò)誤 !未定義書簽檢測電路 . 錯(cuò)誤!未定義書簽遙控接收電路 . 錯(cuò)誤!未定義書簽驅(qū)動(dòng)電路 . 錯(cuò)誤!未定義書簽直流電機(jī)驅(qū)動(dòng)原理 . 錯(cuò)誤!未定義書簽L298N 電機(jī)驅(qū)動(dòng)芯片及驅(qū)動(dòng)電路 錯(cuò)誤 !未定義書簽?zāi)J竭x擇電路 . 錯(cuò)誤!未定義書簽5 設(shè)計(jì)結(jié)果 . 錯(cuò)誤 !未定義書簽硬件組裝 . 錯(cuò)誤!未定義書簽軟硬件聯(lián)合測試 . 錯(cuò)誤!未定義書簽測試準(zhǔn)備 . 錯(cuò)誤!未定義書簽附錄 A 276 總結(jié)與展望 . 錯(cuò)誤!未定義書簽摘 要:現(xiàn)場可

4、編程邏輯陣列(FPGA具有可在線反復(fù)編程,開發(fā)周期短, 并行處理,運(yùn)算速度快,集成度高,可靠性高等特點(diǎn),廣泛應(yīng)用于數(shù)字信 號處理,工業(yè)控制,通信等各個(gè)領(lǐng)域?;?FPGA設(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ì)是典型的軟件和硬件結(jié)合的設(shè)計(jì)產(chǎn)品,基于EPM570T100C型FPGA芯片設(shè)計(jì)了一個(gè)較為通用的小車控制器。

5、 通過數(shù)字量輸入/輸出通道連 接了障礙檢測模塊無線接收模塊;電機(jī)驅(qū)動(dòng)模塊;模式選擇模塊等。采用 硬件描述語言( Verilog HDL )實(shí)現(xiàn)了對各個(gè)功能模塊的編程、仿真、編程 下載、功能測試。并在Quartus II開發(fā)環(huán)境下搭建了一個(gè)基于 FPGA的小 車控制器研究平臺,用 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í)增加擴(kuò)展用戶需 要的功能,具有很大的開發(fā)潛力,在工業(yè)控制中有一定的推廣應(yīng)用價(jià)

6、值。1 引言選題背景1.1.1 智能小車簡介工業(yè)的發(fā)展對生產(chǎn)的自動(dòng)化程度和產(chǎn)品精度要求越來越高, 傳統(tǒng)的人工 很難適應(yīng)產(chǎn)業(yè)升級帶來的挑戰(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ù)采集裝置,小車 可以作為一個(gè)獨(dú)立運(yùn)動(dòng)單元自主執(zhí)行一些要求更高的任務(wù)。在軍事上,現(xiàn) 代戰(zhàn)

7、爭的復(fù)雜程度越來越高,需要在復(fù)雜惡劣的環(huán)境中完成各種偵察或作 戰(zhàn)任務(wù),增加了作戰(zhàn)人員的危險(xiǎn)性;在工業(yè)、民用、社會公共設(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ù)含量較低的高強(qiáng)度任務(wù)中有效地替代人類完 成工作,提高效率。從機(jī)器人誕

8、生至今,隨著科學(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ā)展到高級階段的產(chǎn)物。隨著計(jì)算機(jī)、網(wǎng)絡(luò)、微電 子等領(lǐng)域迅速發(fā)展,人類活動(dòng)領(lǐng)域的不斷擴(kuò)大,智能小車的應(yīng)用領(lǐng)域也不 斷擴(kuò)大,有了客觀的發(fā)展理由:a. 智能小車系統(tǒng)可以把人從有毒有害、缺氧、高壓、高溫等危險(xiǎn)的環(huán) 境中解放出來。比如,發(fā)電廠的高溫

9、環(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 CPLD等可編程器件的基礎(chǔ)上經(jīng)過進(jìn)一步發(fā)展的產(chǎn) 物。出現(xiàn)至今

10、歷經(jīng)30年的發(fā)展,F(xiàn)PGA已由當(dāng)初的1200門發(fā)展成為今天的 百萬門級。FPGA一般是基于SRAMC藝,基本結(jié)構(gòu)是基于查找表加寄存器結(jié) 構(gòu)。FPGA采用了邏輯單元陣列 LCA(LogicCell Array ),內(nèi)部包括可配置 邏輯模塊 CL(B ConfigurableLogicBlock ) 輸出輸入模塊 IOB(Input Output Block)和內(nèi)部連線(InterConnect )三個(gè)部分。FPGA是由存放在片內(nèi) RAM 中的程序來設(shè)置其工作狀態(tài)的,因此,在其工作時(shí)需要對片內(nèi)的RAM進(jìn)行編程。用戶可以根據(jù)不同的模式進(jìn)行配置,并可以采用不同的方式進(jìn)行編 程。FPGA芯片在控制方面可

11、實(shí)現(xiàn)的優(yōu)點(diǎn):a. 采用FPGA芯片設(shè)計(jì)ASIC電路,不需要大量生產(chǎn),就能得到適用的-l-R LK芯片;b. FPGA芯片可做其它全定制或半定制 ASIC電路的中試樣片;c. FPGA芯片內(nèi)部有豐富的觸發(fā)器和I/O引腳;d. FPGA芯片設(shè)計(jì)周期最短、開發(fā)費(fèi)用低、風(fēng)險(xiǎn)??;e. FPGA芯片采用高速CHMO工藝,功耗低,可以與 CMOS TTL電平兼 容?;谝陨咸攸c(diǎn),可以說FPGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性是實(shí)現(xiàn)小車控制的最佳選擇之一。本課題研究目的及意義1.2.1 研究目的為了適應(yīng)工業(yè)和科技的快速發(fā)展產(chǎn)生的新要求, 使生產(chǎn)達(dá)到較高的自動(dòng) 化水平和效率及實(shí)現(xiàn)產(chǎn)品精度的提高,基于FPG

12、A勺小車控制系統(tǒng)應(yīng)運(yùn)而生。 本設(shè)計(jì)意在設(shè)計(jì)一種設(shè)計(jì)具有較強(qiáng)可移植性的小車控制器,經(jīng)改進(jìn)可應(yīng)用 于替代一些單調(diào)枯燥簡單重復(fù)的崗位,如流水線、倉儲物流等。設(shè)計(jì)功能 包括周期運(yùn)行、自動(dòng)避障、循跡、遙控運(yùn)行,這些功能具有很強(qiáng)的使用意 義,正常狀態(tài)下小車能夠自主周期運(yùn)行完成設(shè)定的任務(wù),遇到障礙物能夠 自行躲避,在一些突發(fā)情況下能夠人工干預(yù)小車的運(yùn)行。本次設(shè)計(jì)旨在用來檢查這學(xué)期專業(yè)知識的學(xué)習(xí)情況, 通過綜合知識運(yùn)用 鍛煉解決問題的能力,通過軟硬件設(shè)計(jì)鍛煉實(shí)踐能力,通過對設(shè)計(jì)全局的 把握培育系統(tǒng)觀念。1.2.2 研究意義本課題以FPGA芯片為控制器設(shè)計(jì)了智能小車控制系統(tǒng),意義如下:a. 基于FPGAf發(fā)的控

13、制器具有運(yùn)算速度快,體積小,修改方便,集成 度高,可靠性高,易擴(kuò)展等優(yōu)點(diǎn)。b. 用FPGA現(xiàn)智能算法可以提高算法的運(yùn)算速度, 滿足實(shí)時(shí)控制的要 求。本文在基于FPGA實(shí)現(xiàn)復(fù)雜的智能算法方面作了一些探索性的工作,為 以后進(jìn)一步嵌入其它復(fù)雜算法打下了基礎(chǔ)。c. 搭建了智能小車控制系統(tǒng)的實(shí)驗(yàn)平臺,為將來進(jìn)一步研究和開發(fā)智 能小車控制器做了基礎(chǔ)性工作。d. 對這學(xué)期所學(xué)的專業(yè)知識進(jìn)行系統(tǒng)梳理、綜合運(yùn)用。2 總體方案說明設(shè)計(jì)目標(biāo)本課題基于EDA技術(shù),使用Altera公司的的EDA軟件開發(fā)工具QuartusII 進(jìn)行設(shè)計(jì)準(zhǔn)備、設(shè)計(jì)輸入、功能仿真、設(shè)計(jì)處理、時(shí)序仿真和器件編程 及測試,以可編輯邏輯器件 FP

14、GA為核心部件,基于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ā)板上,針對FPGA芯片的特點(diǎn)進(jìn)行系統(tǒng)配置并驗(yàn)證功能的實(shí)現(xiàn),并做出擴(kuò)展硬件;方案概述本設(shè)計(jì)是基于FPGA芯片,采用Verilog HDL語言進(jìn)行的EDA設(shè)計(jì),是 軟硬件協(xié)同設(shè)計(jì),分為軟件和硬件設(shè)計(jì)兩部分。首先進(jìn)行軟件的設(shè)計(jì)輸入、 功能仿真、設(shè)計(jì)處理,然后下載到FPGA芯片內(nèi)配合外圍電路進(jìn)行硬件測試。其具體功能是

15、實(shí)現(xiàn)自主的周期運(yùn)行,通過光電傳感器檢測障礙物進(jìn)光電傳感器 模塊行避障運(yùn)動(dòng),除此之外又加入了遙控功能,其原理框圖如圖所示FPGA 核心板驅(qū)動(dòng)模塊遙控接收模塊遙控運(yùn)行 周期運(yùn)行 循跡運(yùn)行 魔手運(yùn)行 避障運(yùn)行光電傳感器模塊是芯片外接的三個(gè)光電傳感器,當(dāng)傳感器檢測到障礙時(shí)其輸出電平信號發(fā)生變化,輸入電平信號經(jīng)程序處理后發(fā)送到FPGA芯片,向驅(qū)動(dòng)模塊發(fā)出相應(yīng)的信號,使小車做出適當(dāng)?shù)囊?guī)避動(dòng)作。遙控模塊是實(shí)現(xiàn)遙控運(yùn)行功能的模塊,包括硬件的信號接收裝置和軟件 處理模塊。遙控器以無線信號的形式從發(fā)射端發(fā)出不同的指令信號,經(jīng)無 線接收電路處理之后輸出并行信號,F(xiàn)PGA芯片根據(jù)程序設(shè)定向驅(qū)動(dòng)模塊發(fā) 出信號,小車做出

16、相應(yīng)的動(dòng)作。周期運(yùn)行控制程序存儲在 FPGA芯片中,使用狀態(tài)機(jī)進(jìn)行狀態(tài)循環(huán),并 在不同狀態(tài)下向驅(qū)動(dòng)模塊發(fā)送不同的驅(qū)動(dòng)信號,使小車實(shí)現(xiàn)周期運(yùn)行。驅(qū)動(dòng)模塊是接收FPGA芯片輸出信號進(jìn)行電機(jī)驅(qū)動(dòng)的模塊,由驅(qū)動(dòng)程序 和外圍的驅(qū)動(dòng)芯片兩部分構(gòu)成,在接收以上各模塊的輸出信號之后,進(jìn)行 處理之后輸出控制信號驅(qū)動(dòng)直流電機(jī)的運(yùn)行。以上各模塊綜合起來實(shí)現(xiàn)智能小車控制器的全部功能,其流程圖如圖所 示。程序按照此流程設(shè)計(jì)完成之后下載進(jìn) FPGA芯片中,完成外設(shè)電路之后 再軟硬件聯(lián)合測試,以實(shí)現(xiàn)設(shè)計(jì)要求。圖小車控制器流程圖3軟件設(shè)計(jì)小車控制器的軟件程序設(shè)計(jì)采用 Verilog HDL語言,利用Altera公司的EDA開

17、發(fā)軟件Quartusll進(jìn)行設(shè)計(jì)。軟件部分由原理圖和模塊程序兩部分組成,包括模式選擇模塊、分頻器模塊、電機(jī)驅(qū)動(dòng)模塊、周期控制模塊、障礙檢測模塊遙控模塊。以及下文將詳細(xì)介紹介紹各個(gè)功能塊的功能及實(shí) 現(xiàn)方法,并給出仿真波形。語言介紹VHDL 的英文全名是 Very High Speed In tegrated Circuit HardwareDescription Language ,即超高速集成電路硬件描述語言,被認(rèn)為是標(biāo)準(zhǔn) 的硬件描述語言,有專家認(rèn)為,在新世紀(jì)中,VHDL與Verilog HDL語言將承擔(dān)起幾乎全部的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。除了含

18、有許 多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法十分類似于 一般的計(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)部功能和算 法完成部分。在對一個(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ù)雜 的邏輯控制。它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后可直接生成 電路級描述。VHDL支持

19、同步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他 硬件描述語言所不能比擬的。VHDL還支持各種設(shè)計(jì)方法,既支持自底向上 的設(shè)計(jì),又支持自頂向下的設(shè)計(jì);既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì)。VHDL具有多層次的設(shè)計(jì)描述功能,既可以描述系統(tǒng)級電路,又可以描 述門級電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級描述。 另外,VHDL支持慣性延遲和傳輸延遲, 還可以準(zhǔn)確地建立硬件電路模型。VHDL支持預(yù)定義的和自定義的數(shù)據(jù)類型, 給硬件描述帶來較大的自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系統(tǒng) 模型。設(shè)計(jì)人員用VHDL行設(shè)計(jì)時(shí),不需要首先考慮選擇完成設(shè)計(jì)的器件, 就可以

20、集中精力進(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í)上的通用硬件描述語言。軟件介紹Max+plus II作為Altera的上一代PLD設(shè)計(jì)軟件,由于其出色的易用 性而得到了廣泛的應(yīng)用。目前 Altera 已經(jīng)停止了對 Max+plus II 的更新支 持。 Quartus II 是 Altera 公司繼 Max+plus II 之后開發(fā)的一種針對其公

21、司 生產(chǎn)的系列CPLD/FPGA件的綜合性開發(fā)軟件,它的版本不斷升級,目前 已經(jīng)發(fā)布了版本,該軟件有如下幾個(gè)顯著的特點(diǎn):該軟件界面友好,使用便捷,功能強(qiáng)大,是一個(gè)完全集成化的可編程邏 輯設(shè)計(jì)環(huán)境,是先進(jìn)的 EDA工具軟件。該軟件具有開放性、與結(jié)構(gòu)無關(guān)、多平臺、完全集成化、豐富的設(shè)計(jì)庫、模塊化工具等特點(diǎn),支持原理圖、 VHDL、VerilogHDL 以及 AHDL( Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌有綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到 硬件配置的完整PLD FPGA設(shè)計(jì)流程。Quartus II 可以在 Windows、 Li

22、nux 以及 Unix 上使用,除了可以使用 TCL腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。 具有運(yùn)行 速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。Quartus II 支持 Altera 公司的 MAX3000A系列、MAX7000系列、MAX9000 系列、ACEX1K系列、APEX20K系列、APEXI 系列、FLEX6000 系列、FLEX 10K系列,支持MAX7000/MAX30C等乘積項(xiàng)器件。支持 MAX II CPLD系列、 Cyclone 系列、 Cyclone II 、 Stratix II 系列、 Stratix GX 系列等。支持 IP核,包含了 LPM/

23、MegaFunction宏功能模塊庫,用戶可以充分利用成熟的 模塊,簡化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。此外, Quartus II 通過和 DSPBuilder工具與Matlab/Simulink 相結(jié)合,可以方便地實(shí)現(xiàn)各種 DSP應(yīng) 用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC開發(fā),集系統(tǒng)級設(shè)計(jì)、嵌 入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺。分頻器模塊分頻器的功能在接口電路中,時(shí)鐘信號的作用至關(guān)重要。一般的 FPGA開發(fā)板或最小 系統(tǒng)板附帶的晶振頻率過高,達(dá)到20MH甚至50MHz但是這種時(shí)鐘脈沖不 適合直接接入程序工作,所以需要引入時(shí)鐘分頻電路,即分頻器,將晶振輸

24、出的脈沖分頻。分頻之后的時(shí)鐘信號適合接入電路工作。分頻器模塊就 是用軟件方法實(shí)現(xiàn)分頻器的功能。時(shí)鐘信號一般有兩種功能,計(jì)數(shù)和選通。對于周期運(yùn)行控制模塊來說, 每個(gè)狀態(tài)都需要進(jìn)行計(jì)時(shí),所以需要接入較低頻率的時(shí)鐘脈沖,便于對計(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í)鐘信號。障礙檢測模塊和遙控模塊輸入的是并行電平信號,在電平突然改變時(shí), 由于電平躍變或信號傳輸?shù)难舆t產(chǎn)生競爭冒險(xiǎn)現(xiàn)象,在輸出端產(chǎn)生尖脈沖 的毛刺,從而產(chǎn)生誤操作。為了解決這一問題,需要接入一個(gè)選通控制信 號。競爭冒險(xiǎn)一般發(fā)生在輸入信號變

25、化瞬間,若選通信號在這期間將輸出 關(guān)閉,等到輸入信號穩(wěn)定后再將輸出開啟,就可以消除競爭險(xiǎn)象。選通信 號也是由分頻器輸出的時(shí)鐘信號。分頻器的設(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。分頻器模塊如圖所示,CLK是 50MHz晶振頻率輸入,CLK10Q是100Hz時(shí) 鐘頻率輸出模塊設(shè)計(jì)完成之后,

26、對程序進(jìn)行功能仿真,設(shè)置CLK輸入接口的頻率為 50MHz得到如圖所示的仿真波形圖。由于 Quartus II軟件只不適合長時(shí) 間的仿真,在此截止時(shí)間設(shè)置40ms此圖只截取了一個(gè)完整周期。圖分頻器仿真波形因?yàn)?0MHZ的頻率太高導(dǎo)致上升下降沿過密,所以在圖中顯示為一條黑 色粗線,但是從時(shí)間上看波形還是正確的,在 10ms時(shí),輸出端CLK_0UT100 完成1個(gè)周期輸出。周期運(yùn)行控制模塊周期運(yùn)行控制模塊實(shí)現(xiàn)的功能周期運(yùn)行控制模塊用于實(shí)現(xiàn)小車的周期運(yùn)行功能,通過計(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)周期包括

27、高速前進(jìn)4S,停止2S,低速前進(jìn)4S,停止2S,高速后退4S,停止2S,低速后退4S。 之后進(jìn)入下一周期再次高速前進(jìn) 4S。狀態(tài)機(jī)簡介本設(shè)計(jì)使用了狀態(tài)機(jī)進(jìn)行設(shè)計(jì), 在此先對狀態(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ì)無論是與基于 VHD啲其他設(shè)計(jì)方法相比還是與完成相 似功能的CPU!比,都有其獨(dú)到的優(yōu)點(diǎn)。狀態(tài)機(jī)克服了純硬件數(shù)字系統(tǒng)控制不靈活的缺點(diǎn), 能夠按照輸入信號的 控制和預(yù)先設(shè)定的執(zhí)行程序在

28、各個(gè)狀態(tài)之間順序地執(zhí)行切換,能夠很好地 執(zhí)行順序邏輯。狀態(tài)機(jī)實(shí)現(xiàn)方式簡單,設(shè)計(jì)方案相對固定。采用狀態(tài)機(jī)設(shè) 計(jì)易于構(gòu)成良好的同步時(shí)序邏輯,有利于消除大規(guī)模邏輯電路中常見的競 爭冒險(xiǎn)現(xiàn)象。狀態(tài)機(jī)與VHDI其他描述方法相比,層次分明、結(jié)構(gòu)清晰、易 懂好讀,在模塊化修改、優(yōu)化、移植方面有優(yōu)勢。在VHDI語言中,狀態(tài)機(jī)有多種實(shí)現(xiàn)方式。從輸出方式上分為Mealy (米 里)型和Moore (莫爾)型狀態(tài)機(jī)。Mealy型狀態(tài)機(jī)屬于同步時(shí)鐘狀態(tài)機(jī), 他的輸出是當(dāng)前狀態(tài)和所有輸入信號的函數(shù),其輸出是在輸入變化后立即 發(fā)生的,不依賴時(shí)鐘同步。Moore型狀態(tài)機(jī)屬于異步輸出狀態(tài)機(jī),他的輸出 僅為當(dāng)前狀態(tài)的函數(shù),在輸

29、入發(fā)生變化后,還必須等待時(shí)鐘上升沿的到來, 才能導(dǎo)致輸出的改變。周期運(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、 si、s2、s3、s6, S4。由此可以得到狀態(tài)轉(zhuǎn)換圖,如圖所示。圖周期運(yùn)行狀態(tài)轉(zhuǎn)換圖很明顯,該狀態(tài)機(jī)屬于 Moore型狀態(tài)機(jī),沒有其他外部輸入口,在使能 之后進(jìn)行順序狀態(tài)裝換。每個(gè)狀態(tài)在計(jì)數(shù)的同時(shí)像驅(qū)動(dòng)模塊發(fā)出使能信號、 方向和速度控制信號。各狀態(tài)對應(yīng)的輸出控制信號見表。表運(yùn)行狀態(tài)信號輸出對照運(yùn)行狀態(tài)電

30、機(jī)使能轉(zhuǎn)動(dòng)速度轉(zhuǎn)動(dòng)方向S0高高速正向S5低停止停止S1中低速正向S2低停止停止s6低停止停止S4中低速反向S3高速反向程序編譯完成之后創(chuàng)建如圖所示的模塊文件芒p:IB 1; Ur zhouqi4ENBZFk11iICLKSPi i i4 i i, aEN:instS圖周期運(yùn)行控制模塊圖在該模塊中,ENB輸入端是模塊的使能信號,CLK輸入端是從分頻器接 入的100Hz的時(shí)鐘脈沖。EN是電機(jī)驅(qū)動(dòng)模塊的使能控制信號輸出端,ZF是 電機(jī)正反轉(zhuǎn)的控制信號輸出端,SP是小車速度控制信號輸出端。當(dāng)ENB為低電平時(shí)該模塊使能,當(dāng) ENB為高電平時(shí)模塊不工作。在模 塊使能之后,狀態(tài)機(jī)直接進(jìn)入 s0狀態(tài),計(jì)數(shù)器在

31、時(shí)鐘脈沖上升沿時(shí)進(jìn)行 0 到399的累加計(jì)數(shù),同時(shí)EN端輸出高電平使能信號,ZF端輸出高電平正轉(zhuǎn) 信號,SP端輸出高電平高速信號,此時(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端輸出低電平非使能信號,ZF端輸 出低電平反轉(zhuǎn)信號,SP端輸出低電平低速運(yùn)行信號,此時(shí)小車停止。當(dāng)計(jì) 數(shù)器計(jì)數(shù)到199時(shí),2S計(jì)數(shù)器清零,狀態(tài)機(jī)跳轉(zhuǎn)到下一狀態(tài) s1.當(dāng)si狀態(tài) 時(shí)計(jì)數(shù)器在此進(jìn)行和s0相同的計(jì)數(shù),同時(shí)EN端繼續(xù)輸出高電平使能信號, ZF端繼續(xù)輸出高電平正轉(zhuǎn)信號,SP端輸出低電平低速運(yùn)動(dòng)信號,此時(shí)小車 低

32、速前進(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端輸出低電平非使能信號,ZF端輸出低電平反轉(zhuǎn)信號,SP端 輸出低電平低速運(yùn)行信號,此時(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)行信號之外其余輸入輸出量與 s0相同。此狀態(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)行信 號,其余輸出同s1,此時(shí)小車低速反

33、向運(yùn)動(dòng)。4S計(jì)數(shù)周期結(jié)束之后,計(jì)數(shù) 器清零,狀態(tài)機(jī)跳轉(zhuǎn)到狀態(tài) s0,開始下一周期的運(yùn)行。如圖所示,在使能 信號輸入低電平之后,EN SP ZF端輸出相應(yīng)值,并且計(jì)數(shù)周期正確。在 使能信號高電平時(shí),全部輸出端口復(fù)位到低電平,待到使能端低電平時(shí)繼 續(xù)周期循環(huán)。圖周期運(yùn)行控制模塊仿真波形避障模塊避障模塊實(shí)現(xiàn)的的功能避障模塊接收外圍電路4個(gè)光電傳感器所發(fā)出的4位并行數(shù)字信號,經(jīng) 處理之后向驅(qū)動(dòng)模塊輸出使能信號、正反方向信號,實(shí)現(xiàn)小車的障礙檢測 和規(guī)避障礙的功能。避障模塊的設(shè)計(jì)由于光電傳感器在沒有障礙物阻擋的情況下輸入的是高電平1,當(dāng)傳感器前方檢測到障礙物時(shí)輸入的是低電平 0。由此可以列出小車規(guī)避障礙動(dòng)

34、作 與傳感器輸入到FPGA芯片的電平狀態(tài)對照表,見表。在表中列出了傳感器 輸入狀態(tài)的所有可能情況,并給出小車對應(yīng)的規(guī)避動(dòng)作。表傳感器輸入狀態(tài)與小車規(guī)避動(dòng)作對照表傳感器輸入狀態(tài)小車動(dòng)作傳感器輸入狀態(tài)小車動(dòng)作0000停止0100左轉(zhuǎn)0001直行0101直行0010右轉(zhuǎn)0110右轉(zhuǎn)0011直行0111直行1000后退1100左轉(zhuǎn)1001直行1101直行1010右轉(zhuǎn)1110右轉(zhuǎn)1011直行1111直行根據(jù)以上分析設(shè)計(jì)出避障模塊的程序,編譯仿真之后創(chuàng)建模塊文件。如圖避障模塊圖圖所示。DIN20,DIN21,DIN22,DIN23分別為小車前方中、右、左,后四個(gè)光電傳感器的輸入信號,ENE端為模塊使能信號

35、輸入。Zuo1,zuo2為左輪 的兩路輸入,you1,you2為右輪的兩路輸入,en 1,en2分別為左輪和右輪的使 能。當(dāng)ENE輸入信號為低電平時(shí),避障模塊使能,此時(shí)輸入的傳感器信號 經(jīng)模塊處理之后,輸出端輸出相應(yīng)信號,實(shí)現(xiàn)對障礙的規(guī)避。編譯之后進(jìn)行模塊的功能仿真,得到如圖所示的波形。從波形上可以看出,以上設(shè)計(jì)功能全部實(shí)現(xiàn)圖避障模塊仿真波形遙控模塊遙控模塊的功能遙控模塊是實(shí)現(xiàn)遙控功能的一個(gè)功能模塊,遙控器發(fā)出的指令信號經(jīng)接 收電路處理之后輸入到FPGA芯片中,遙控模塊接收到信號之后向驅(qū)動(dòng)模塊 輸出控制信號,實(shí)現(xiàn)與遙控信號對應(yīng)的動(dòng)作。遙控模塊的設(shè)計(jì)遙控器發(fā)射的信號經(jīng)接收電路處理之后,輸入到 F

36、PGA芯片中的是四位 并行信號。遙控器按鍵對應(yīng)的并行信號與小車動(dòng)作見表。本次設(shè)計(jì)的是模 擬消防車滅火,小車是兩前輪驅(qū)動(dòng),依靠車輪反向轉(zhuǎn)動(dòng)進(jìn)行轉(zhuǎn)向,并同時(shí) 發(fā)出警報(bào)和七彩LED指示燈閃,所以設(shè)定遙控器上的四個(gè)按鍵組合進(jìn)行操 作。表遙控器按鍵與小車動(dòng)作對照表遙控器按鍵并行輸入信號小車動(dòng)作A0001右轉(zhuǎn)B0010后退C0100前進(jìn)D1000左轉(zhuǎn)A和B0011停止并開啟風(fēng)扇其他按鍵組合停止根據(jù)以上設(shè)定編寫模塊程序,編譯之后生成模塊文件,如圖所示。CLK接入系統(tǒng)時(shí)鐘信號,key4.1是經(jīng)遙控接收電路處理之后的四位 并行信號,ENA是模塊使能信號輸入端。Zuo1,zuo2為左輪的兩路輸入,you1,you

37、2為右輪的兩路輸入,en 1,en2分別為左輪和右輪的使能。Feng 是控制風(fēng)扇的輸入端,beep是控制蜂鳴器,ledl是七彩LED指示燈的控制當(dāng)ENA輸入信號為低電平時(shí),遙控模塊使能,此時(shí)輸入的4位并行信號 經(jīng)模塊處理之后,輸出端輸出相應(yīng)信號,實(shí)現(xiàn)遙控運(yùn)行圖遙控模塊圖程序編寫完成之后驗(yàn)證其是否實(shí)現(xiàn)了設(shè)計(jì)功能,編譯之后進(jìn)行功能仿真,得到如圖所示波形圖遙控模塊仿真波形從圖上可以看出,該模塊完全達(dá)到設(shè)計(jì)要求循跡模塊循跡模塊接收外圍電路4個(gè)光電傳感器所發(fā)出的4位并行數(shù)字信號,經(jīng) 處理之后向驅(qū)動(dòng)模塊輸出使能信號、正反方向信號,實(shí)現(xiàn)小車的尋黑線的 功能。由于光電傳感器屬于紅外線反射探測,因此目標(biāo)的反射率

38、和形狀是探測距 離的關(guān)鍵。其中黑色探測距離最小,白色最大;在沒有障礙物阻擋的情況下 輸入的是高電平1,相當(dāng)于前面擋了張黑紙,當(dāng)傳感器前方檢測到障礙物時(shí) 輸入的是低電平0,相當(dāng)于前面擋了張白紙。由此可以列出小車循跡動(dòng)作與 傳感器輸入到FPG芯片的電平狀態(tài)對照表,見表。在表中列出了傳感器輸 入狀態(tài)的所有可能情況,并給出小車對應(yīng)的規(guī)避動(dòng)作。表傳感器輸入狀態(tài)與小車規(guī)避動(dòng)作對照表傳感器輸入狀態(tài)小車動(dòng)作傳感器輸入狀態(tài)小車動(dòng)作0000直行0100右轉(zhuǎn)0001左轉(zhuǎn)0101停止0010左轉(zhuǎn)0110直行0011左轉(zhuǎn)0111左轉(zhuǎn)1000右轉(zhuǎn)1100右轉(zhuǎn)1001停止1101停止1010停止1110右轉(zhuǎn)1011停止11

39、11直行根據(jù)以上分析設(shè)計(jì)出避障模塊的程序,編譯仿真之后創(chuàng)建模塊文件。如圖循跡模塊圖圖所示。Clk2是系統(tǒng)時(shí)鐘脈沖,DIN O,DIN 1,DIN 2,DIN 3分別為小車左,中,中,右四個(gè)光電傳感器的輸入信號,ENC端為模塊使能信號輸入。Zuo1,zuo2為左輪的兩路輸入,you1,you2為右輪的兩路輸入,en 1,en2分別 為左輪和右輪的使能,由于循跡速度太快,現(xiàn)象不明顯,這里給使能進(jìn)行 了 PWM調(diào)速,速度減慢,效果才好。當(dāng) ENC輸入信號為低電平時(shí),循跡模 塊使能,此時(shí)輸入的傳感器信號經(jīng)模塊處理之后,輸出端輸出相應(yīng)信號, 實(shí)現(xiàn)對黑線的循跡。編譯之后進(jìn)行模塊的功能仿真,得到如圖所示的波

40、形。從波形上可以看 出,以上設(shè)計(jì)功能全部實(shí)現(xiàn)圖循跡模塊仿真波形驅(qū)動(dòng)模塊驅(qū)動(dòng)模塊的功能驅(qū)動(dòng)模塊是本設(shè)計(jì)的基本模塊之一,是將以上各模塊的邏輯操作轉(zhuǎn)化到 實(shí)際運(yùn)動(dòng)的一個(gè)模塊。該模塊輸入上述幾個(gè)功能模塊輸出的使能、正反和 速度控制信號,再將其轉(zhuǎn)化為直流電機(jī)驅(qū)動(dòng)信號輸出到外圍驅(qū)動(dòng)電路中, 控制小車車輪的運(yùn)行。由于本設(shè)計(jì)中出現(xiàn)了速度的變化,且使用的是直流 電機(jī),需要引入脈沖寬度調(diào)制(pwm進(jìn)行調(diào)速。脈沖寬度調(diào)制調(diào)速基本原理脈沖寬度調(diào)制,英文是“ Pulse Width Modulation ”,縮寫PWM簡稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來對模擬電路進(jìn)行控制的一種非常 有效的技術(shù)。PWI是常用的一種調(diào)

41、速方法,其基本原理是用改變電機(jī)接通和 斷開的時(shí)間比(占空比)來控制電機(jī)的速度,在脈寬凋速系統(tǒng)中,當(dāng)電機(jī)通電時(shí),其速度增加;電機(jī)斷電時(shí),其速度減低。只要按照一定的規(guī)律改變通、斷電的時(shí)間,即可調(diào)整電機(jī)的速度。在傳統(tǒng)的PWM調(diào)速系統(tǒng)中一般采用硬件作為脈沖發(fā)生器的方式,應(yīng)用的元器件較多,同樣會增加電路的 復(fù)雜程度,隨著電子技術(shù)和大規(guī)??删幊踢壿嬈骷陌l(fā)展,PWM采用軟件的方法來實(shí)現(xiàn)調(diào)速過程,具有更大的靈活性,實(shí)現(xiàn)了硬件設(shè)計(jì)軟件化。驅(qū)動(dòng)模塊的設(shè)計(jì)周期運(yùn)行模塊向驅(qū)動(dòng)模塊輸出使能信號、正反方向信號、速度信號。速 度控制是本模塊在程序結(jié)構(gòu)上區(qū)別于其他模塊的地方。分為高速擋和低速 擋,將高速模式設(shè)置為將直流電直

42、接接到直流電機(jī)上,低速檔使用PWM調(diào)速脈沖驅(qū)動(dòng)。由于本設(shè)計(jì)沒有精確的速度要求,將低速檔位的速度能與高 速擋位的速度區(qū)別開即可。按此要求完成程序設(shè)計(jì),編譯之后創(chuàng)建塊文件, 如圖所示。圖 驅(qū)動(dòng)模塊圖Clkl為系統(tǒng)時(shí)鐘脈沖,EN為模塊使能信號輸入端,ZF輸入端連接的是 周期模塊輸出的正反方向控制信號,SP輸入端是周期模塊輸入的速度控制 信號Zuo1,zuo2為左輪的兩路輸入,you1,you2為右輪的兩路輸入,en 1,en2 分別為左輪和右輪的使能。使能信號為高電平時(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輸

43、入為低電平時(shí),電機(jī)低速轉(zhuǎn)動(dòng)。計(jì)數(shù)器在clkl時(shí)鐘脈 沖上升沿的觸發(fā)下進(jìn)行0到200的循環(huán)加法計(jì)數(shù)。在計(jì)數(shù)值在0到80區(qū)間 中時(shí),en 1,en2輸出低電平;計(jì)數(shù)值大于80時(shí),en 1,en2輸出高電平。對程序進(jìn)行功能仿真之后得到圖所示波形,從圖上可以看出,輸圖驅(qū)動(dòng)模塊仿真波形入輸出波形完全達(dá)到設(shè)計(jì)要求。模式選擇模塊由于本設(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ū)D模式選擇模塊圖應(yīng)模塊輸出使能信號。程序設(shè)計(jì)完成,編譯之后創(chuàng)建塊文件

44、,如圖所示EN_BIZHANG1 EN_YAOKONG,EN_C YCLE,EN_XUNJI,EN_BIZ 分別對應(yīng) 五個(gè)自鎖開關(guān),當(dāng)其中只有一個(gè)輸入低電平時(shí)對應(yīng)的輸出端向?qū)?yīng)能塊輸 出低電平使能信號,并在數(shù)碼管上顯示數(shù)字指示第幾個(gè)開關(guān)打開,其功能 仿真波形如圖所示。LT廠* 1口*孑asJTl 溉 nE-lsj侔If I -EESJrto冋a陽 TJ1_JLJIL1Lq11111r1i1ii.1I Ir Ii1_1 鳥約剛 期口;1gintpq.ariKiy:!nnrIBLFWIEdK m-圖模式選擇模塊仿真波形頂層圖設(shè)計(jì) 以上各個(gè)功能模塊設(shè)計(jì)完成之后需要建立一個(gè)頂層原理圖文件,將以上模塊綜

45、合起來,并按照邏輯功能連接模塊之間的接線。這些工作完成之后就Flow StttUEQuurtus II VersionRevi si om HameTop_leifel Inti ty MameF :an 1 lyDevi ceTimi口岸 modelstiming rtq.uiirtnntsTotal lgi c Lfi-nantsTckt&l pansTotal virluaJ. pinsTotal memory bitsDS? klock 9_bi t elemecitsTotal PLLsTotal DlXsUFM llocks得到圖所示的頂層圖文件圖小車控制器程序頂層圖Suceess

46、fil - Thu Jan 02 12.02.2014ft. 0 Btili 215 05/29/2008 SJ Full rslofi zorghtzongtie冏11EFM5T0T1ODC5F t DalI5202 / 570 ( 3E 篤;l32 / 16 ( 4 2 )D0D000 / 1 ( o % )資源占用情況:該程序運(yùn)行周期過長,而Quartusll軟件提供的仿真環(huán)境不適合長時(shí)間的功能仿真,故在此不進(jìn)行全局仿真。4. 硬件設(shè)計(jì)硬件設(shè)計(jì)的目的完成軟件程序設(shè)計(jì)功能的硬件載體。包括FPGA芯片選取,電源模塊設(shè)計(jì),模式選擇開關(guān)電路的設(shè)計(jì),輸入信號采集的光電傳感 器障礙檢測電路、無線信號

47、接收電路和輸出信號控制的驅(qū)動(dòng)電路的實(shí)現(xiàn)。檢測電路檢測電路包括3個(gè)光電傳感器進(jìn)行障礙檢測,和一個(gè)以LM339四電壓比 較器為核心的中控電路。本設(shè)計(jì)選用的光電傳感器是 NPN型光電開關(guān)。外接3條引線,分別是電源、接地、信號輸出。正常狀態(tài)下發(fā)射端發(fā)出紅外信號,接收端沒有接到 發(fā)射回來的紅外信號,此時(shí)感應(yīng)信號輸出高電平。當(dāng)檢測到障礙物時(shí),發(fā) 射端發(fā)出的紅外信號經(jīng)障礙物反射,接收端接收到紅外信號,此時(shí)感應(yīng)信 號輸出低電平。光電傳感器有效探測距離 3至80cm可調(diào),本次設(shè)計(jì)通過調(diào) 節(jié)滑動(dòng)變阻器將探測距離設(shè)置為 30cm。VCC VCCVCC單圖自源工作模式。中控板以LM339為核心,對傳感器集中供電,并接

48、收傳感器的反饋信號經(jīng)處理輸出到FPGA芯片。LM339內(nèi)部包括有四個(gè)獨(dú)立的電壓比較器,在很寬的電源電壓范圍內(nèi)適一路光電傳感器與電壓比較器原在方波發(fā)生器、時(shí)間延時(shí)器、脈沖發(fā)生器、A/D轉(zhuǎn)換器等廣泛應(yīng)用。光電傳感器信號輸入到LM339中經(jīng)電壓比較器處理之后,向FPGA芯片輸入端發(fā)送 數(shù)字信號。當(dāng)傳感器未檢測到障礙時(shí),中控電路對應(yīng)的發(fā)光二極管常亮, 向芯片發(fā)送低電平;當(dāng)檢測到障礙時(shí),對應(yīng)發(fā)光二極管熄滅,向芯片發(fā)送 高電平。一路光電傳感器和原理如圖所示。將三路信號輸出端接入FPGA芯 片,作為避障模塊的輸入圖光電傳感器圖感應(yīng)電路中控板圖和圖所示為光電傳感器和中控板實(shí)物四路銓跡模塊遙控接收電路遙控接收電

49、路采用SC2272-M4解碼電路,又名5V高頻超再生四路解碼 接收模塊。工作電壓為DC5V靜態(tài)電流為;調(diào)幅調(diào)制;接收靈敏度為-105dB; 工作頻率315;編碼方式是焊盤編碼(固定碼);工作方式為點(diǎn)動(dòng),按住不放輸出,放開停止輸出。超再生接收模塊采用LC振蕩電路,內(nèi)含放大整形, 輸出的數(shù)據(jù)信號為解碼后的高電平信號,使用極為方便,并且價(jià)格低廉, 所以被廣泛使用。遙控接收電路原理如圖所示,VT是無線接收狀態(tài)輸出端, D3至D1是四位并行信號輸出17。圖和圖所示為無線信號收發(fā)模塊驅(qū)動(dòng)電路直流電機(jī)驅(qū)動(dòng)原理直流電機(jī)的驅(qū)動(dòng)方法是 H橋驅(qū)動(dòng),電路得名 “H橋驅(qū)動(dòng)電路”是因?yàn)樗嗡谱帜窰。圖中所示為一個(gè)典型的直

50、流電機(jī)驅(qū)動(dòng)電路。如圖所示,H橋圖SC2272無線信號接收模式電機(jī)驅(qū)動(dòng)電路包括4個(gè)三極管和一個(gè)直流電機(jī)。要使得直流電機(jī)運(yùn)轉(zhuǎn), 須導(dǎo)通對角線上的一對三極管,形成電勢差。根據(jù)不同三極管對的導(dǎo)通情 況,電流可能會從兩條線路流過直流電機(jī)。左上方至右下方流過直流電機(jī)圖無線信號發(fā)送模或從右上至左下流過直流電機(jī)。通過電流不同的流向控制直流電機(jī)的轉(zhuǎn)動(dòng)方向。例如,當(dāng)三極管 Q1和三極管Q4導(dǎo)通,這時(shí)電流就從電源正極經(jīng) Q1從左上方至右下方穿過直流電機(jī),然后從Q4發(fā)射極重新流回到電源的負(fù)極。該流向的電流將會驅(qū)動(dòng)直流電機(jī)做順時(shí)針轉(zhuǎn)動(dòng)。當(dāng)另一對三極管Q2和Q3導(dǎo)通時(shí),電流將從右上至左下流過直流電機(jī),電流將從右至左流過直

51、流電機(jī),此時(shí)驅(qū)動(dòng)直流電機(jī)做逆時(shí)針轉(zhuǎn)動(dòng)圖H橋驅(qū)動(dòng)電路圖L298N驅(qū)動(dòng)電路好在現(xiàn)在市然而在實(shí)際使用的時(shí)候,用分立元件制作H橋是很麻煩的, 面上有很多封裝好的H橋集成電路,接上電源、電機(jī)和控制信號就可以使 用了,在額定的電壓和電流內(nèi)使用非常方便可靠。 比如常用的L293D L298NULN2003等。電機(jī)驅(qū)動(dòng)芯片及驅(qū)動(dòng)電路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)器(如圖所

52、示),可以用來驅(qū)動(dòng)直流電動(dòng)機(jī)和步進(jìn)電動(dòng)機(jī)、繼電器線圈等圖L298N芯片內(nèi)部原理圖感性負(fù)載;采用標(biāo)準(zhǔn)邏輯電平信號控制;具有兩個(gè)使能控制端,在不受輸 入信號影響的情況下允許或禁止器件工作有一個(gè)邏輯電源輸入端,使內(nèi)部 邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制 電路。使用L298N芯片驅(qū)動(dòng)電機(jī),可以驅(qū)動(dòng)一臺兩相步進(jìn)電機(jī)或四相步進(jìn) 電機(jī),也可以驅(qū)動(dòng)兩臺直流電機(jī)。本次設(shè)計(jì)使用該芯片驅(qū)動(dòng)兩臺直流電機(jī)。圖所示是L298N的電機(jī)驅(qū)動(dòng)原理,表是L298N其中一組輸入信號與對應(yīng) 直流電機(jī)轉(zhuǎn)動(dòng)狀態(tài)的對照。IN3與IN4的輸入與直流電機(jī)轉(zhuǎn)動(dòng)方向與此相同。 這樣將四路輸入組合起來,通過電平信號的組

53、合就能控制兩直流電機(jī)的轉(zhuǎn)動(dòng)狀態(tài),實(shí)現(xiàn)小車的直行轉(zhuǎn)彎。表輸入電平信號與電機(jī)轉(zhuǎn)動(dòng)狀態(tài)對照ENAIN1IN2電機(jī)轉(zhuǎn)動(dòng)狀態(tài)110正向轉(zhuǎn)動(dòng)101反向轉(zhuǎn)動(dòng)010停止001停止L298N也給出了電機(jī)速度控制的解決辦法,當(dāng)驅(qū)動(dòng)電路使能端為高電平 時(shí)直流電機(jī)轉(zhuǎn)動(dòng),當(dāng)使能端為低電平時(shí)直流電機(jī)停止轉(zhuǎn)動(dòng)。那么給使能端 接入FPGA芯片輸出的的PWM控制信號就能實(shí)現(xiàn)對直流電機(jī)轉(zhuǎn)動(dòng)速度的控汙啖-丄 zrre-uLJ IL圖L298N驅(qū)動(dòng)模塊制。L298N驅(qū)動(dòng)模塊實(shí)物如圖模式選擇電路模式選擇電路采用三路開關(guān)向FPGA芯片輸出低電平信號,實(shí)現(xiàn)不同功能之間的切換電路原理如圖所示。GO&PIN35PIN38PIN36PIN34P

54、IN20圖開關(guān)電路原理圖5設(shè)計(jì)結(jié)果 硬件組裝將以上硬件組裝起來,并用杜邦線將各輸入輸出端口相連接, 得到小車 的硬件成品,如圖所示圖小車硬件實(shí)物圖軟硬件聯(lián)合測試軟件程序和硬件電路全部完成之后進(jìn)行軟硬件的聯(lián)合調(diào)試。 首先對程序 進(jìn)行引腳鎖定,編譯之后,將生成的.sof文件下載到FPGA芯片中去,然后 進(jìn)行各功能實(shí)現(xiàn)情況的測試。測試準(zhǔn)備測試之前先要進(jìn)行引腳鎖定,將原理圖中德輸入輸出端與FPGA芯片管腳進(jìn)行映射,然后外圍電路才能與軟件程序配合運(yùn)行。在實(shí)現(xiàn)功能的前提 下,盡可能的將引腳設(shè)置的易于連接,得到各端口與芯片管腳對應(yīng)關(guān)系見表程序端口與FPGA芯片管腳對應(yīng)關(guān)系端口種類原理圖端口名稱FPGA寸應(yīng)管腳EN_BIZHANGPIN34EN_BIZHANG1PIN20EN_

溫馨提示

  • 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

提交評論