FPGA智能小車設計[共42頁]

上傳人:1528****253 文檔編號:40981903 上傳時間:2021-11-18 格式:DOC 頁數(shù):41 大小:1.43MB
收藏 版權申訴 舉報 下載
FPGA智能小車設計[共42頁]_第1頁
第1頁 / 共41頁
FPGA智能小車設計[共42頁]_第2頁
第2頁 / 共41頁
FPGA智能小車設計[共42頁]_第3頁
第3頁 / 共41頁

下載文檔到電腦,查找使用更方便

12 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《FPGA智能小車設計[共42頁]》由會員分享,可在線閱讀,更多相關《FPGA智能小車設計[共42頁](41頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 天水師范學院 《基于EDA的小車控制器的設計》 實踐報告 學院: 物理與信息科學學院 專業(yè): 電子信息科學與技術 班級: 11 級電信二班 姓名: 尹天林 倪波波 學號: 20111060235 20111060219 2013年12月30日 目 錄 摘要 1 1 引言 1 1.1 選題背景 1 1.1.1 智能小車簡介 1 1.1.2 FPGA在控制方面的應用 2 1.2 本課題研

2、究目的及意義 3 1.2.1 研究目的 3 1.2.2 研究意義 3 2 總體方案說明 3 2.1 設計目標 3 2.2方案概述 4 3 軟件設計 5 3.1 VHDL語言介紹 5 3.2 Quartus II軟件介紹 6 3.3 分頻器模塊 7 3.3.1 分頻器的功能 7 3.3.2 分頻器的設計 7 3.4 周期運行控制模塊 8 3.4.1 周期運行控制模塊實現(xiàn)的功能 8 3.4.2 狀態(tài)機簡介 8 3.4.3 周期運行控制模塊的設計 9 3.5 避障模塊 11 3.5.1避障模塊實現(xiàn)的的功能 11 3.5.2 避障模塊的設計 11 3.6 遙控模塊

3、 12 3.6.1 遙控模塊的功能 12 3.6.2 遙控模塊的設計 12 3.7循跡模塊 12 3.8驅動模塊 15 3.8.1 驅動模塊的功能 15 3.8.2 脈沖寬度調(diào)制調(diào)速基本原理 15 3.8.3驅動模塊的設計 15 3.9模式選擇模塊 16 3.10頂層圖設計 17 4 硬件設計 18 4.2 檢測電路 18 4.3 遙控接收電路 20 4.4 驅動電路 21 4.4.1 直流電機驅動原理 21 4.4.2 L298N電機驅動芯片及驅動電路 22 4.5 模式選擇電路 23 5 設計結果 23 5.1 硬件組裝 23 5.2 軟硬件聯(lián)合測試

4、24 5.2.1 測試準備 24 6 總結與展望 25 附錄A 27 III 摘 要:現(xiàn)場可編程邏輯陣列(FPGA)具有可在線反復編程,開發(fā)周期短,并行處理,運算速度快,集成度高,可靠性高等特點,廣泛應用于數(shù)字信號處理,工業(yè)控制,通信等各個領域?;贔PGA設計控制器,可以把一些外設和邏輯器件集成起來,從而縮小體積,減少電路的走線,降低功耗,提高可靠性,同時能夠通過在線編程來修改和擴充控制器功能,縮短了開發(fā)周期,也使系統(tǒng)的使用變的靈活,擴展方便。由于FPGA可以實現(xiàn)真正的并行處理,并且運算速度快,用它實現(xiàn)復雜的控制算法可以提高算法運算速度,滿足實時控制要求。 本設計是典型

5、的軟件和硬件結合的設計產(chǎn)品,基于EPM570T100C5型FPGA芯片設計了一個較為通用的小車控制器。通過數(shù)字量輸入/輸出通道連接了障礙檢測模塊無線接收模塊;電機驅動模塊;模式選擇模塊等。采用硬件描述語言(Verilog HDL)實現(xiàn)了對各個功能模塊的編程、仿真、編程下載、功能測試。并在Quartus II開發(fā)環(huán)境下搭建了一個基于FPGA的小車控制器研究平臺,用Verilog HDL語言實現(xiàn)了整個系統(tǒng)的設計和仿真,使小車控制器系統(tǒng)實現(xiàn)了周期運行、避障、循跡、遙控等功能。通過此方法可在軟件中嵌入不同的控制算法,擴展多種控制性能,實現(xiàn)各種硬件功能,這種基于FPGA的電子設計的開發(fā)方法可根據(jù)需要隨時

6、增加擴展用戶需要的功能,具有很大的開發(fā)潛力,在工業(yè)控制中有一定的推廣應用價值。 1引言 1.1選題背景 1.1.1智能小車簡介 工業(yè)的發(fā)展對生產(chǎn)的自動化程度和產(chǎn)品精度要求越來越高,傳統(tǒng)的人工很難適應產(chǎn)業(yè)升級帶來的挑戰(zhàn);科技的進步使得人類的探索范圍越來越大,亟需一種能夠在惡劣的環(huán)境替代人類完成任務的智能裝置。智能機器人控制系統(tǒng)應運而生。工業(yè)機器人和探測機器人的發(fā)展成為了當下機器人發(fā)展的主要方向,智能小車是機器人的一種,又稱輪式機器人,在工業(yè)和探測兩個領域均有廣泛應用。 智能小車控制器的設計具有極強的可移植性和易擴展性,可應用于替代一些單調(diào)枯燥簡單重復的崗位。同時,配合傳感器等數(shù)據(jù)采集裝

7、置,小車可以作為一個獨立運動單元自主執(zhí)行一些要求更高的任務。在軍事上,現(xiàn)代戰(zhàn)爭的復雜程度越來越高,需要在復雜惡劣的環(huán)境中完成各種偵察或作戰(zhàn)任務,增加了作戰(zhàn)人員的危險性;在工業(yè)、民用、社會公共設施等諸多領域上,比如在惡劣環(huán)境下進行的科學研究、在危險地段作業(yè)、危險品排除等諸多場合需要人們冒著巨大的風險;在影視劇拍攝、家庭服務、智能化家居、康復醫(yī)療等多種應用領域,為了確保工作人員的安全性,提高舒適性,都急需一種能夠替代人完成這些任務的機器人。 智能小車控制系統(tǒng)為人類突破這些限制提供了條件。這種智能小車可以適應不同環(huán)境,不受溫度、大氣、重力、強輻射等外界條件的影響,在人類不適宜的工作環(huán)境或者技術含量

8、較低的高強度任務中有效地替代人類完成工作,提高效率。從機器人誕生至今,隨著科學技術的不斷發(fā)展,機器人應用已經(jīng)從制造領域向非制造領域發(fā)展,原先只是在航空軍事領域中才使用的機器人也開始走進人們的日常生活。 機器人的發(fā)展經(jīng)歷了三代,第一代機器人屬于示教再現(xiàn)型,第二代則具備了一定的環(huán)境感知能力,第三代機器人是智能型機器人,它除了具有感覺能力之外,還具備獨立辨別和自主運動能力。它上面裝有多種環(huán)境感應設備,是人工智能技術發(fā)展到高級階段的產(chǎn)物。隨著計算機、網(wǎng)絡、微電子等領域迅速發(fā)展,人類活動領域的不斷擴大,智能小車的應用領域也不斷擴大,有了客觀的發(fā)展理由: a. 智能小車系統(tǒng)可以把人從有毒有害、缺氧、高

9、壓、高溫等危險的環(huán)境中解放出來。比如,發(fā)電廠的高溫環(huán)境的設備檢修,煤氣管道的修復,易燃易爆危險品排除裝置等。 b. 智能小車系統(tǒng)可以進入到人類無法生存或無法進入的區(qū)域代替人類工作,例如可以把智能小車送入太空,探測火星;或者潛入海底,勘探資源等。 c. 隨著經(jīng)濟的不斷增長及互聯(lián)網(wǎng)的迅速普及,人們的生活水平和質量不斷提高,智能化家居生活開始推廣開來,人們可以通過網(wǎng)絡遠程控制家中的智能小車完成特定的任務,比如整理房間、遠程監(jiān)控等。 1.1.2FPGA在控制方面的應用 FPGA是英文Field Programmable GateArray的縮寫,即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPL

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

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

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

13、系統(tǒng),意義如下: a. 基于FPGA開發(fā)的控制器具有運算速度快,體積小,修改方便,集成度高,可靠性高,易擴展等優(yōu)點。 b. 用FPGA實現(xiàn)智能算法可以提高算法的運算速度,滿足實時控制的要求。本文在基于FPGA實現(xiàn)復雜的智能算法方面作了一些探索性的工作,為以后進一步嵌入其它復雜算法打下了基礎。 c. 搭建了智能小車控制系統(tǒng)的實驗平臺,為將來進一步研究和開發(fā)智能小車控制器做了基礎性工作。 d. 對這學期所學的專業(yè)知識進行系統(tǒng)梳理、綜合運用。 2總體方案說明 2.1 設計目標 本課題基于EDA技術,使用Altera公司的的EDA軟件開發(fā)工具Quartus II進行設計準備、設計輸入、功

14、能仿真、設計處理、時序仿真和器件編程及測試,以可編輯邏輯器件FPGA為核心部件,基于FPGA核心開發(fā)板進行擴展做出硬件,主要包括以下各項: a. 掌握利用Verilog HDL設計智能小車控制器的原理、方法; b. 利用芯片內(nèi)部時鐘進行分段定時周期直線運動; c. 小車外接光電傳感器檢測障礙物并做出相應反應; d. 人工干預遙控運行; e. 在FPGA開發(fā)板上,針對FPGA芯片的特點進行系統(tǒng)配置并驗證功能的實現(xiàn),并做出擴展硬件; 2.2 方案概述 本設計是基于FPGA芯片,采用Verilog HDL語言進行的EDA設計,是軟硬件協(xié)同設計,分為軟件和硬件設計兩部分。首先進行軟件的

15、設計輸入、功能仿真、設計處理,然后下載到FPGA芯片內(nèi)配合外圍電路進行硬件測試。 圖2.1 小車控制器原理框圖 其具體功能是實現(xiàn)自主的周期運行,通過光電傳感器檢測障礙物進行避障運動,除此之外又加入了遙控功能,其原理框圖如圖2.1所示。 光電傳感器模塊是芯片外接的三個光電傳感器,當傳感器檢測到障礙時其輸出電平信號發(fā)生變化,輸入電平信號經(jīng)程序處理后發(fā)送到FPGA芯片,向驅動模塊發(fā)出相應的信號,使小車做出適當?shù)囊?guī)避動作。 遙控模塊是實現(xiàn)遙控運行功能的模塊,包括硬件的信號接收裝置和軟件處理模塊。遙控器以無線信號的形式從發(fā)射端發(fā)出不同的指令信號,經(jīng)無線接收電路處理之后輸出并行信號,F(xiàn)PGA

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

17、程序設計采用Verilog HDL語言,利用Altera公司的EDA開發(fā)軟件QuartusII進行設計。軟件部分由原理圖和模塊程序兩部分組成,包括模式選擇模塊、分頻器模塊、電機驅動模塊、周期控制模塊、障礙檢測模塊遙控模塊。以及下文將詳細介紹介紹各個功能塊的功能及實現(xiàn)方法,并給出仿真波形。 3.1VHDL語言介紹 VHDL 的英文全名是Very High Speed Integrated Circuit Hardware Description Language,即超高速集成電路硬件描述語言,被認為是標準的硬件描述語言,有專家認為,在新世紀中,VHDL與Verilog HDL語言將承擔起幾乎

18、全部的數(shù)字系統(tǒng)設計任務。 VHDL 主要用于描述數(shù)字系統(tǒng)的結構、行為、功能和接口。除了含有許多具有硬件特征的語句外,VHDL 的語言形式和描述風格與句法十分類似于一般的計算機高級語言。VHDL的程序結構特點是將一項工程設計,或稱設計實體(可以是一個元件、一個電路模塊或一個系統(tǒng))分成外部(或稱可視部分,即端口)和內(nèi)部(或稱不可視部分),即設計實體的內(nèi)部功能和算法完成部分。在對一個設計實體定義了外部界面后,一旦內(nèi)部開發(fā)完成后,其他的設計可以直接調(diào)用這個實體。這種將設計實體分成內(nèi)外部分的概念是VHDL 系統(tǒng)設計的基本點。 VHDL具有功能強大的語言結構,可以用簡潔明確的源代碼來描述復雜的邏輯控制

19、。它具有多層次的設計描述功能,層層細化,最后可直接生成電路級描述。VHDL支持同步電路、異步電路和隨機電路的設計,這是其他硬件描述語言所不能比擬的。VHDL還支持各種設計方法,既支持自底向上的設計,又支持自頂向下的設計;既支持模塊化設計,又支持層次化設計。 VHDL具有多層次的設計描述功能,既可以描述系統(tǒng)級電路,又可以描述門級電路。而描述既可以采用行為描述、寄存器傳輸描述或結構描述,也可以采用三者混合的混合級描述。另外,VHDL支持慣性延遲和傳輸延遲,還可以準確地建立硬件電路模型。VHDL支持預定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來較大的自由度,使設計人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。

20、 設計人員用VHDL進行設計時,不需要首先考慮選擇完成設計的器件,就可以集中精力進行設計的優(yōu)化。當設計描述完成后,可以用多種不同的器件結構來實現(xiàn)其功能。VHDL是一種標準化的硬件描述語言,同一個設計描述可以被不同的工具所支持,使得設計描述的移植成為可能。 基于以上種種優(yōu)點,VHDL作為IEEE的工業(yè)標準硬件描述語言,得到眾多EDA公司支持,在電子工程領域,已成為事實上的通用硬件描述語言。 3.2QuartusII軟件介紹 Max+plus II作為Altera的上一代PLD設計軟件,由于其出色的易用性而得到了廣泛的應用。目前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版本,該軟件有如下幾個顯著的特點: 該軟件界面友好,使用便捷,功能強大,是一個完全集成化的可編程邏輯設計環(huán)境,是先進的EDA工具軟件。該軟件具有開放性、與結構無關、多平臺、完全集成化、豐富的設計庫、模塊化工具等特點,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設計輸入形式,內(nèi)嵌有綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整PL

22、D、FPGA設計流程。 Quartus II可以在Windows、Linux以及Unix上使用,除了可以使用TCL腳本完成設計流程外,提供了完善的用戶圖形界面設計方式。具有運行速度快,界面統(tǒng)一,功能集中,易學易用等特點。 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宏功能模塊庫,用戶可以充分利用成熟的模塊,簡化了設計的復雜性、加快了設計速度。此外,Quartus II 通過和DSP Builder工具與Matlab/Simulink相結合,可以方便地實現(xiàn)各種DSP應用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設計、嵌入式軟件開發(fā)、可編程邏輯設計于一體,是一種綜合性的開發(fā)平臺。 3.3 分頻器模塊 3.3.1 分頻器的功能 在接口電路中,時鐘信號的作用至關重要。一般的FPGA開發(fā)板或最小系統(tǒng)板附帶的晶振頻率過高,達到20MHz甚至50MHz,但是這種時鐘脈沖不

24、適合直接接入程序工作,所以需要引入時鐘分頻電路,即分頻器,將晶振輸出的脈沖分頻。分頻之后的時鐘信號適合接入電路工作。分頻器模塊就是用軟件方法實現(xiàn)分頻器的功能。 時鐘信號一般有兩種功能,計數(shù)和選通。對于周期運行控制模塊來說,每個狀態(tài)都需要進行計時,所以需要接入較低頻率的時鐘脈沖,便于對計時器賦值。驅動模塊需要進行調(diào)速,而小直流電機需要通過調(diào)節(jié)驅動脈沖的占空比進行調(diào)速,在調(diào)節(jié)占空比時就需要進行計數(shù)運算,也就需要一個合適的時鐘信號。 障礙檢測模塊和遙控模塊輸入的是并行電平信號,在電平突然改變時,由于電平躍變或信號傳輸?shù)难舆t產(chǎn)生競爭冒險現(xiàn)象,在輸出端產(chǎn)生尖脈沖的毛刺,從而產(chǎn)生誤操作。為了解決這一問

25、題,需要接入一個選通控制信號。競爭冒險一般發(fā)生在輸入信號變化瞬間,若選通信號在這期間將輸出關閉,等到輸入信號穩(wěn)定后再將輸出開啟,就可以消除競爭險象。選通信號也是由分頻器輸出的時鐘信號。 3.3.2 分頻器的設計 分頻器是將較高的頻率進行分頻,從而得到較低的頻率。需要用到計數(shù)器,高頻率輸入之后,觸發(fā)計數(shù)器進行計數(shù)運算同時輸出電平保持不變,當計數(shù)器到達一個限值時輸出電平翻轉。分頻系數(shù)是輸入頻率和輸出頻率之比,計數(shù)上限就等于分頻系數(shù)除以2再減去1。 本設計輸入晶振頻率是50MHz,為了方便計數(shù)和選通,輸出頻率設定為100Hz,計數(shù)上限為249999。 分頻器模塊如圖3.1所示,CLK是50M

26、Hz晶振頻率輸入,CLK100是100Hz時鐘頻率輸出。 圖3.1 模塊設計完成之后,對程序進行功能仿真,設置CLK輸入接口的頻率為50MHz,得到如圖3.2所示的仿真波形圖。由于Quartus II軟件只不適合長時間的仿真,在此截止時間設置40ms,此圖只截取了一個完整周期。 圖3.2分頻器仿真波形 因為50MHz的頻率太高導致上升下降沿過密,所以在圖中顯示為一條黑色粗線,但是從時間上看波形還是正確的,在10ms時,輸出端CLK_OUT100完成1個周期輸出。 3.4 周期運行控制模塊 3.4.1 周期運行控制模塊實現(xiàn)的功能 周期運行控制模塊用于實現(xiàn)小車的周期運行

27、功能,通過計時器加狀態(tài)機進行狀態(tài)設置和狀態(tài)轉換。在本設計中周期運行控制模塊將完成如下周期運行的控制,功能塊使能之后進行周期運動。一個運動周期包括高速前進4S,停止2S,低速前進4S,停止2S,高速后退4S,停止2S,低速后退4S。之后進入下一周期再次高速前進4S。 3.4.2 狀態(tài)機簡介 本設計使用了狀態(tài)機進行設計,在此先對狀態(tài)機進行簡要的介紹。有限狀態(tài)機簡稱狀態(tài)機,是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉移和動作等行為的數(shù)學模型。狀態(tài)機及其設計技術是使用數(shù)字邏輯設計的重要組成部分,狀態(tài)機是實現(xiàn)高效率、高可靠性的控制邏輯的重要途徑。利用狀態(tài)機進行邏輯系統(tǒng)設計無論是與基于VHDL的其他設計方法

28、相比還是與完成相似功能的CPU相比,都有其獨到的優(yōu)點。 狀態(tài)機克服了純硬件數(shù)字系統(tǒng)控制不靈活的缺點,能夠按照輸入信號的控制和預先設定的執(zhí)行程序在各個狀態(tài)之間順序地執(zhí)行切換,能夠很好地執(zhí)行順序邏輯。狀態(tài)機實現(xiàn)方式簡單,設計方案相對固定。采用狀態(tài)機設計易于構成良好的同步時序邏輯,有利于消除大規(guī)模邏輯電路中常見的競爭冒險現(xiàn)象。狀態(tài)機與VHDL其他描述方法相比,層次分明、結構清晰、易懂好讀,在模塊化修改、優(yōu)化、移植方面有優(yōu)勢。 在VHDL語言中,狀態(tài)機有多種實現(xiàn)方式。從輸出方式上分為Mealy(米里)型和Moore(莫爾)型狀態(tài)機。Mealy型狀態(tài)機屬于同步時鐘狀態(tài)機,他的輸出是當前狀態(tài)和所有輸入

29、信號的函數(shù),其輸出是在輸入變化后立即發(fā)生的,不依賴時鐘同步。Moore型狀態(tài)機屬于異步輸出狀態(tài)機,他的輸出僅為當前狀態(tài)的函數(shù),在輸入發(fā)生變化后,還必須等待時鐘上升沿的到來,才能導致輸出的改變。 3.4.3 周期運行控制模塊的設計 為了實現(xiàn)周期運行控制的功能,在該模塊使用狀態(tài)機進行設計。首先將周期中各個運行狀態(tài)在狀態(tài)機中進行定義,高速前進4S、停止2S、低速前進4S、停止2S、高速后退4S、停止2S、低速后退4S分別定義為s0、s5、s1、s2 、s3、s6,S4。由此可以得到狀態(tài)轉換圖,如圖3.3所示。 圖3.3 周期運行狀態(tài)轉換圖 很明顯,該狀態(tài)機屬于Moore型狀態(tài)機,沒有其他

30、外部輸入口,在使能之后進行順序狀態(tài)裝換。每個狀態(tài)在計數(shù)的同時像驅動模塊發(fā)出使能信號、方向和速度控制信號。各狀態(tài)對應的輸出控制信號見表3.1。 表3.1 運行狀態(tài)信號輸出對照 運行狀態(tài) 電機使能 轉動速度 轉動方向 S0 高 高速 正向 S5 低 停止 停止 S1 中 低速 正向 S2 低 停止 停止 S3 高 高速 反向 s6 S4 低 中 停止 低速 停止 反向 程序編譯完成之后創(chuàng)建如圖3.4所示的模塊文件。 圖3.4周期運行控制模塊圖 在該模塊中,ENB輸入端是模塊的使能信號,CLK輸入端是從分頻器接入的1

31、00Hz的時鐘脈沖。EN是電機驅動模塊的使能控制信號輸出端,ZF是電機正反轉的控制信號輸出端,SP是小車速度控制信號輸出端。 當ENB為 低電平時該模塊使能,當ENB為高電平時模塊不工作。在模塊使能之后,狀態(tài)機直接進入s0狀態(tài),計數(shù)器在時鐘脈沖上升沿時進行0到399的累加計數(shù),同時EN端輸出高電平使能信號,ZF端輸出高電平正轉信號,SP端輸出高電平高速信號,此時小車前進。當計數(shù)器計數(shù)到399時,4S計數(shù)器清零,狀態(tài)機跳轉到下一狀態(tài)s5。在狀態(tài)s5中,計數(shù)器從0到199計數(shù),計數(shù)周期為2S,在此期間EN端輸出低電平非使能信號,ZF端輸出低電平反轉信號,SP端輸出低電平低速運行信號,此時小車停止

32、。當計數(shù)器計數(shù)到199時,2S計數(shù)器清零,狀態(tài)機跳轉到下一狀態(tài)s1.當s1狀態(tài)時計數(shù)器在此進行和s0相同的計數(shù),同時EN端繼續(xù)輸出高電平使能信號,ZF端繼續(xù)輸出高電平正轉信號,SP端輸出低電平低速運動信號,此時小車低速前進。當計數(shù)器再次計數(shù)到399時,4S計數(shù)器再次清零,狀態(tài)機跳轉到下一狀態(tài)s2。在狀態(tài)s2中,計數(shù)器從0到199計數(shù),計數(shù)周期為2S,在此期間EN端輸出低電平非使能信號,ZF端輸出低電平反轉信號,SP端輸出低電平低速運行信號,此時小車停止。當計數(shù)器計數(shù)到199時,2S計數(shù)器清零,狀態(tài)機跳轉到下一狀態(tài)s3.在s3狀態(tài),除了ZF端輸出低電平反方向運行信號之外其余輸入輸出量與s0相同。

33、此狀態(tài)下,小車高速反方向運行4S。當計數(shù)器再次計數(shù)至399時,又一次清零跳轉到s6狀態(tài)。在s6狀態(tài)下,停止2S,又一次清零轉到S4,此時ZF輸出低電平反方向運行信號,其余輸出同s1,此時小車低速反向運動。4S計數(shù)周期結束之后,計數(shù)器清零,狀態(tài)機跳轉到狀態(tài)s0,開始下一周期的運行。如圖3.5所示,在使能信號輸入低電平之后,EN、SP、ZF端輸出相應值,并且計數(shù)周期正確。在使能信號高電平時,全部輸出端口復位到低電平,待到使能端低電平時繼續(xù)周期循環(huán)。 圖3.5周期運行控制模塊仿真波形 3.5 避障模塊 3.5.1避障模塊實現(xiàn)的的功能 避障模塊接收外圍電路4個光電傳感器所發(fā)出的4位并行

34、數(shù)字信號,經(jīng)處理之后向驅動模塊輸出使能信號、正反方向信號,實現(xiàn)小車的障礙檢測和規(guī)避障礙的功能。 3.5.2 避障模塊的設計 由于光電傳感器在沒有障礙物阻擋的情況下輸入的是高電平1,當傳感器前方檢測到障礙物時輸入的是低電平0。由此可以列出小車規(guī)避障礙動作與傳感器輸入到FPGA芯片的電平狀態(tài)對照表,見表3.2。在表中列出了傳感器輸入狀態(tài)的所有可能情況,并給出小車對應的規(guī)避動作。 表3.2 傳感器輸入狀態(tài)與小車規(guī)避動作對照表 傳感器輸入狀態(tài) 小車動作 傳感器輸入狀態(tài) 小車動作 0000 停止 0100 左轉 0001 直行 0101 直行 0010 右轉 0110

35、 右轉 0011 1000 1001 1010 1011 直行 后退 直行 右轉 直行 0111 1100 1101 1110 1111 直行 左轉 直行 右轉 直行 根據(jù)以上分析設計出避障模塊的程序,編譯仿真之后創(chuàng)建模塊文件。如 圖3.6避障模塊圖 圖3.6所示。 DIN2[0],DIN2[1],DIN2[2],DIN2[3]分別為小車前方中、右、左,后四個光電傳感器的輸入信號,ENE端為模塊使能信號輸入。Zuo1,zuo2為左輪的兩路輸入,you1,you2為右輪的兩路輸入,en1,en2分別為左輪和右輪的使能。當ENE輸入信號為

36、低電平時,避障模塊使能,此時輸入的傳感器信號經(jīng)模塊處理之后,輸出端輸出相應信號,實現(xiàn)對障礙的規(guī)避。 編譯之后進行模塊的功能仿真,得到如圖3.7所示的波形。從波形上可以看出,以上設計功能全部實現(xiàn)。 圖3.7避障模塊仿真波形 3.6 遙控模塊 3.6.1 遙控模塊的功能 遙控模塊是實現(xiàn)遙控功能的一個功能模塊,遙控器發(fā)出的指令信號經(jīng)接收電路處理之后輸入到FPGA芯片中,遙控模塊接收到信號之后向驅動模塊輸出控制信號,實現(xiàn)與遙控信號對應的動作。 3.6.2 遙控模塊的設計 遙控器發(fā)射的信號經(jīng)接收電路處理之后,輸入到FPGA芯片中的是四位并行信號。遙控器按鍵對應的并行信號與小車動

37、作見表3.3。本次設計的是模擬消防車滅火,小車是兩前輪驅動,依靠車輪反向轉動進行轉向,并同時發(fā)出警報和七彩LED指示燈閃,所以設定遙控器上的四個按鍵組合進行操作。 表3.3 遙控器按鍵與小車動作對照表 遙控器按鍵 并行輸入信號 小車動作 A 0001 右轉 B 0010 后退 C 0100 前進 D A和B 1000 0011 左轉 停止并開啟風扇 其他按鍵組合 — 停止 根據(jù)以上設定編寫模塊程序,編譯之后生成模塊文件,如圖3.8所示。 CLK接入系統(tǒng)時鐘信號,key[4..1]是經(jīng)遙控接收電路處理之后的四位并行信號,ENA是模塊使能信號輸入端。

38、Zuo1,zuo2為左輪的兩路輸入,you1,you2為右輪的兩路輸入,en1,en2分別為左輪和右輪的使能。Feng是控制風扇的輸入端,beep是控制蜂鳴器,led1是七彩LED指示燈的控制端。 當ENA輸入信號為低電平時,遙控模塊使能,此時輸入的4位并行信號經(jīng)模塊處理之后,輸出端輸出相應信號,實現(xiàn)遙控運行。 圖3.8遙控模塊圖 程序編寫完成之后驗證其是否實現(xiàn)了設計功能,編譯之后進行功能仿真,得到如圖3.9所示波形。 圖3.9 遙控模塊仿真波形 從圖上可以看出,該模塊完全達到設計要求。 3.7 循跡模塊 循跡模塊接收外圍電路4個光電傳感器所發(fā)出的4位并行數(shù)字信號

39、,經(jīng)處理之后向驅動模塊輸出使能信號、正反方向信號,實現(xiàn)小車的尋黑線的功能。 由于光電傳感器屬于紅外線反射探測,因此目標的反射率和形狀是探測距離的關鍵。其中黑色探測距離最小,白色最大;在沒有障礙物阻擋的情況下輸入的是高電平1,相當于前面擋了張黑紙,當傳感器前方檢測到障礙物時輸入的是低電平0,相當于前面擋了張白紙。由此可以列出小車循跡動作與傳感器輸入到FPGA芯片的電平狀態(tài)對照表,見表3.4。在表中列出了傳感器輸入狀態(tài)的所有可能情況,并給出小車對應的規(guī)避動作。 表3.4 傳感器輸入狀態(tài)與小車規(guī)避動作對照表 傳感器輸入狀態(tài) 小車動作 傳感器輸入狀態(tài) 小車動作 0000 直行 010

40、0 右轉 0001 左轉 0101 停止 0010 左轉 0110 直行 0011 1000 1001 1010 1011 左轉 右轉 停止 停止 停止 0111 1100 1101 1110 1111 左轉 右轉 停止 右轉 直行 根據(jù)以上分析設計出避障模塊的程序,編譯仿真之后創(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)速,速度減慢,效果才好。當ENC輸入信號為低電平時,循跡模塊使能,此時輸入的傳感器信號經(jīng)模塊處理之后,輸出端輸出相應信號,實現(xiàn)對黑線的循跡。 編譯之后進行模塊的功能仿真,得到如圖3.11所示的波形。從波形上可以看出,以上設計功能全部實現(xiàn)。 圖3.11循跡模塊仿真波形 3.8驅動模塊 3.8.1驅動模塊的功能 驅動模塊是本設計的基本模塊之一,是將以上各模塊的邏輯操作轉化到實際運動的一個模塊。該模塊輸入上述幾個功能模塊輸出的使能、正反和速

42、度控制信號,再將其轉化為直流電機驅動信號輸出到外圍驅動電路中,控制小車車輪的運行。由于本設計中出現(xiàn)了速度的變化,且使用的是直流電機,需要引入脈沖寬度調(diào)制(PWM)進行調(diào)速。 3.8.2脈沖寬度調(diào)制調(diào)速基本原理 脈沖寬度調(diào)制,英文是“Pulse Width Modulation”,縮寫PWM,簡稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術。PWM是常用的一種調(diào)速方法,其基本原理是用改變電機接通和斷開的時間比(占空比)來控制電機的速度,在脈寬凋速系統(tǒng)中,當電機通電時,其速度增加;電機斷電時,其速度減低。只要按照一定的規(guī)律改變通、斷電的時間,即可調(diào)整電機的速度。在

43、傳統(tǒng)的PWM調(diào)速系統(tǒng)中一般采用硬件作為脈沖發(fā)生器的方式,應用的元器件較多,同樣會增加電路的復雜程度,隨著電子技術和大規(guī)??删幊踢壿嬈骷陌l(fā)展,PWM采用軟件的方法來實現(xiàn)調(diào)速過程,具有更大的靈活性,實現(xiàn)了硬件設計軟件化。 3.8.3驅動模塊的設計 周期運行模塊向驅動模塊輸出使能信號、正反方向信號、速度信號。速度控制是本模塊在程序結構上區(qū)別于其他模塊的地方。分為高速擋和低速擋,將高速模式設置為將直流電直接接到直流電機上,低速檔使用PWM調(diào)速脈沖驅動。由于本設計沒有精確的速度要求,將低速檔位的速度能與高速擋位的速度區(qū)別開即可。按此要求完成程序設計,編譯之后創(chuàng)建塊文件,如圖3.12所示。 圖

44、3.12 驅動模塊圖 Clk1為系統(tǒng)時鐘脈沖,EN為模塊使能信號輸入端,ZF輸入端連接的是周期模塊輸出的正反方向控制信號,SP輸入端是周期模塊輸入的速度控制信號。Zuo1,zuo2為左輪的兩路輸入,you1,you2為右輪的兩路輸入,en1,en2分別為左輪和右輪的使能。 使能信號為高電平時,電機驅動模塊開始工作。ZF輸入為高電平時,電機正向轉動;ZF輸入為低電平時,電機反向轉動。SP輸入為高電平時,電機加速轉動;SP輸入為低電平時,電機低速轉動。計數(shù)器在clk1時鐘脈沖上升沿的觸發(fā)下進行0到200的循環(huán)加法計數(shù)。在計數(shù)值在0到80區(qū)間中時,en1,en2輸出低電平;計數(shù)值大于80時,

45、en1,en2輸出高電平。 對程序進行功能仿真之后得到圖3.13所示波形,從圖上可以看出,輸 圖3.13 驅動模塊仿真波形 入輸出波形完全達到設計要求。 3.9 模式選擇模塊 由于本設計之中包含周期運行、自主避障運行、遙控運行、魔手運行、循跡運行五種功能,功能之間的切換依靠五個自鎖開關進行切換。模式選擇模塊的作用是為了防止自鎖開關的誤操作,保證當且僅當只有一個自鎖開關使接通狀態(tài)時向對 圖3.14 模式選擇模塊圖 應模塊輸出使能信號。程序設計完成,編譯之后創(chuàng)建塊文件,如圖3.14所示。 EN_BIZHANG1,EN_YAOKONG,EN_CYCLE,EN_XUNJ

46、I,EN_BIZHANG分別對應五個自鎖開關,當其中只有一個輸入低電平時對應的輸出端向對應能塊輸出低電平使能信號,并在數(shù)碼管上顯示數(shù)字指示第幾個開關打開,其功能仿真波形如圖3.15所示。 圖3.15 模式選擇模塊仿真波形 3.10頂層圖設計 以上各個功能模塊設計完成之后需要建立一個頂層原理圖文件,將以上模 塊綜合起來,并按照邏輯功能連接模塊之間的接線。這些工作完成之后就得到圖3.16所示的頂層圖文件。 圖3.16 小車控制器程序頂層圖 資源占用情況: 該程序運行周期過長,而QuartusII軟件提供的仿真環(huán)境不適合長時間的功能仿真,故在此不進行全局仿真。 4

47、.硬件設計 硬件設計的目的完成軟件程序設計功能的硬件載體。包括FPGA芯片選取,電源模塊設計,模式選擇開關電路的設計,輸入信號采集的光電傳感器障礙檢測電路、無線信號接收電路和輸出信號控制的驅動電路的實現(xiàn)。 4.2檢測電路 檢測電路包括3個光電傳感器進行障礙檢測,和一個以LM339四電壓比較器為核心的中控電路。 本設計選用的光電傳感器是NPN型光電開關。外接3條引線,分別是電源、接地、信號輸出。正常狀態(tài)下發(fā)射端發(fā)出紅外信號,接收端沒有接到發(fā)射回來的紅外信號,此時感應信號輸出高電平。當檢測到障礙物時,發(fā)射端發(fā)出的紅外信號經(jīng)障礙物反射,接收端接收到紅外信號,此時感應信號輸出低電平。光電傳感器

48、有效探測距離3至80cm可調(diào),本次設計通過調(diào)節(jié)滑動變阻器將探測距離設置為30cm。是NPN型光電開關是NPN型光電開關是NPN型光電開關 中控板以LM339為核心,對傳感器集中供電,并接收傳感器的反饋信號,經(jīng)處理輸出到FPGA芯片。LM339內(nèi)部包括有四個獨立的電壓比較器,在很寬的電源電壓范圍內(nèi)適用于雙電源工作模式,也適用于單電源工作模式。在方波發(fā)生器、時間延時器、脈沖發(fā)生器、A/D轉換器等廣泛應用。光電傳感器信號輸入到LM339中經(jīng)電壓比較器圖4.7 一路光電傳感器與電壓比較器原理圖 處理之后,向FPGA芯片輸入端發(fā)送數(shù)字信號。當傳感器未檢測到障礙時,中控電路對應的發(fā)光二極管常亮,向芯片

49、發(fā)送低電平;當檢測到障礙時,對應發(fā)光二極管熄滅,向芯片發(fā)送高電平。一路光電傳感器和原理如圖4.7所示。將三路信號輸出端接入FPGA芯片,作為避障模塊的輸入。 圖4.9 感應電路中控板 圖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 驅動電路 4.4.1直流電機驅動原理 直流電機的驅動方法是H橋驅動,電路得名 “H橋驅動電路”是因為它形似字母H。圖4.13中所示為一個典型的直流電機驅動電路。如圖所示,H橋式電機驅動電路包括4個三極管和一個直流電機。

51、要使得直流電機運轉,須導通對角線上的一對三極管,形成電勢差。根據(jù)不同三極管對的導通情況,電流可能會從兩條線路流過直流電機。左上方至右下方流過直流電機或從右上至左下流過直流電機。通過電流不同的流向控制直流電機的轉動方向。例如,當三極管Q1和三極管Q4導通,這時電流就從電源正極經(jīng)Q1從左上方至右下方穿過直流電機,然后從Q4發(fā)射極重新流回到電源的負極。該流向的電流將會驅動直流電機做順時針轉動。當另一對三極管Q2和Q3導通時,電流將從右上至左下流過直流電機,電流將從右至左流過直流電機,此時驅動直流電機做逆時針轉動。 圖4.15 L298N 驅動電路 圖4.13 H橋驅動電路 然而在實際使用的時候

52、,用分立元件制作H橋是很麻煩的,好在現(xiàn)在市面上有很多封裝好的H橋集成電路,接上電源、電機和控制信號就可以使用了,在額定的電壓和電流內(nèi)使用非常方便可靠。比如常用的L293D、L298N、ULN2003等。 4.4.2L298N電機驅動芯片及驅動電路 圖4.14 L298N芯片內(nèi)部原理圖 L298N是ST公司生產(chǎn)的一種高電壓、大電流電機驅動芯片。該芯片采用15腳封裝。主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續(xù)工作電流為2A;額定功率25W。內(nèi)含兩個由四個大功率晶體管組成的H橋電路構成的H橋高電壓大電流全橋式驅動器(如圖4.14所示),可以用來驅動直

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

54、的直行轉彎。 表4.1輸入電平信號與電機轉動狀態(tài)對照 ENA IN1 IN2 電機轉動狀態(tài) 1 1 0 正向轉動 1 0 1 反向轉動 0 1 0 停止 0 0 1 停止 L298N也給出了電機速度控制的解決辦法,當驅動電路使能端為高電平時直流電機轉動,當使能端為低電平時直流電機停止轉動。那么給使能端接入FPGA芯片輸出的的PWM控制信號就能實現(xiàn)對直流電機轉動速度的控 圖4.16 L298N驅動模塊 制。L298N驅動模塊實物如圖4.16。 4.5模式選擇電路 模式選擇電路采用三路開關向FPGA芯片輸出低電平信號,實現(xiàn)不同功能之間的切

55、換。電路原理如圖4.17所示。 圖4.17 開關電路原理圖 5設計結果 5.1硬件組裝 將以上硬件組裝起來,并用杜邦線將各輸入輸出端口相連接,得到小車的硬件成品,如圖5.1所示。 圖5.1 小車硬件實物圖 5.2 軟硬件聯(lián)合測試 軟件程序和硬件電路全部完成之后進行軟硬件的聯(lián)合調(diào)試。首先對程序進行引腳鎖定,編譯之后,將生成的.sof文件下載到FPGA芯片中去,然后進行各功能實現(xiàn)情況的測試。 5.2.1測試準備 測試之前先要進行引腳鎖定,將原理圖中德輸入輸出端與FPGA芯片管腳進行映射,然后外圍電路才能與軟件程序配合運行。在實現(xiàn)功能的前提下,盡可能的將引腳設置的易于連

56、接,得到各端口與芯片管腳對應關系見表5.1。 表5.1程序端口與FPGA芯片管腳對應關系 端口種類 原理圖端口名稱 FPGA對應管腳 輸入端口 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 引腳鎖定完成之后,將未使用引腳設置為三態(tài),除自帶的電平信號引腳之外其余引腳在未使用時為高阻態(tài)。在此進行編譯,編譯完成之后.sof文件更新到最新狀態(tài)。這時連接USBBlaster下載線,接通核心板電源,將.sof文件下載到EPM570T100C5芯片中,接下來就可進行功能測試。 6 總結與展望 基于FPGA的小車控制器的設計綜合了數(shù)字電子技術、EDA技術、直流電機電機驅動及自動控制等多種技術。本文主要結合當前FPGA技術的可在線反復編程,并行處理,運算速度快,集成度高,可靠性高,功耗低等特點,針對小車控制中實時性,

59、智能化等要求,以Altera公司的EPM570T100C5型FPGA為基礎,在FPGA應用于控制領域方面作了一些探索性的工作,并取得了一些成果。 本設計以EPM570T100C5型FPGA為核心,設計了一個較為通用的控制系統(tǒng)。首先進行了軟件程序的設計,在QuartusII開發(fā)環(huán)境下用Verilog HDL語言完成了對各個部分的控制。各部分具有一定的通用性,可以針對不同的應用適當組合,完成具體的功能。然后選擇了了核心板進行調(diào)試和擴展,在此基礎上擴展了19路數(shù)字信號的輸入通道,18路數(shù)字信號的輸出通道。為了測試小車控制器的功能搭建了一個智能小車的框架。 隨著電子技術的不斷發(fā)展,智能小車系統(tǒng)處于

60、不斷完善創(chuàng)新的過程,然而由于條件限制,課題中還有一些地方值得繼續(xù)研究和改進。 例如在驅動模塊的設計中,本設計沒有精確的速度要求,將低速檔位的速度能與高速擋位的速度區(qū)別開即可。所以只是簡單的將驅動脈沖占空比設置為一定值。今后可以在控制器中加入閉環(huán)轉速控制功能,對小車的速度進行精確的控制。 在避障功能中,由于小車傳感器數(shù)量的限制,無法進行全方位的識別,僅適用于對壁障的識別和躲避,有時還會存在死角。后期可以加入更高級的算法,通過對傳感器信號序列的檢測進行控制。也可以增加傳感器數(shù)量或者添加距離感應器、溫度傳感器等實現(xiàn)更加高級的避障功能。 基于FPGA的小車控制器的功能有待日后進一步的擴展,本次設

61、計搭建的智能小車平臺在今后的設計中可以在軟件中嵌入不同的控制算法,擴展多種控制性能,以實現(xiàn)更多的功能,替代人工完成生產(chǎn)、探測、服務等工作。 附錄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)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!