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