基于FPGA循跡小車的設(shè)計(jì)_第1頁(yè)
基于FPGA循跡小車的設(shè)計(jì)_第2頁(yè)
基于FPGA循跡小車的設(shè)計(jì)_第3頁(yè)
基于FPGA循跡小車的設(shè)計(jì)_第4頁(yè)
基于FPGA循跡小車的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

[6],不僅能實(shí)現(xiàn)人形行走,還能完成各種復(fù)雜動(dòng)作;德國(guó)Mercedes-Benz公司的S級(jí)轎車配備的自動(dòng)泊車系統(tǒng),充分體現(xiàn)了先進(jìn)的驅(qū)動(dòng)控制技術(shù)。國(guó)外技術(shù)特點(diǎn)在于利用FPGA可重構(gòu)特性深度整合算法硬件化,將卷積神經(jīng)網(wǎng)絡(luò)、卡爾曼濾波等算法映射為硬件邏輯以滿足高實(shí)時(shí)性需求,同時(shí)開(kāi)發(fā)輕量化高剛性結(jié)構(gòu),配合FPGA高精度PWM控制實(shí)現(xiàn)5m/s高速行駛穩(wěn)定性。然而,國(guó)外研究存在高精度傳感器和先進(jìn)制程FPGA工藝應(yīng)用導(dǎo)致系統(tǒng)成本超10萬(wàn)元的商業(yè)化推廣限制,且依賴專業(yè)EDA工具和硬件描述語(yǔ)言,算法硬件化對(duì)軟硬件協(xié)同設(shè)計(jì)能力要求高,開(kāi)發(fā)門檻較為陡峭。2系統(tǒng)總體架構(gòu)和性能指標(biāo)2.1系統(tǒng)總體架構(gòu)循跡小車系統(tǒng)的核心模塊包括紅外傳感器模塊,F(xiàn)PGA主控模塊,電機(jī)驅(qū)動(dòng)模塊,電源模塊,總體框架圖如REF_Ref28688\h圖2-1所示。該系統(tǒng)采用模塊化設(shè)計(jì)架構(gòu),其中電源模塊是為系統(tǒng)提供所需的5V電源信號(hào),同時(shí)利用穩(wěn)壓電路提供3.3V電源信號(hào),5V電壓輸出是為電機(jī)驅(qū)動(dòng)芯片、FPGA芯片及邏輯電路供電,3.3V電壓輸出是為紅外傳感器供電。然后紅外傳感器模塊的5組紅外對(duì)管檢測(cè)黑色軌跡,檢測(cè)出的信號(hào)直接輸出到FPGA主控模塊,主控芯片將接收到的紅外傳感器的軌道信號(hào),通過(guò)內(nèi)部邏輯模塊生成控制PWM信號(hào),輸出到電機(jī)驅(qū)動(dòng)模塊,控制車輪轉(zhuǎn)速,然后傳輸?shù)津?qū)動(dòng)芯片,驅(qū)動(dòng)直流電機(jī)轉(zhuǎn)向,實(shí)現(xiàn)小車的運(yùn)行。圖2-SEQ圖2-\*ARABIC1系統(tǒng)框圖2.2系統(tǒng)性能指標(biāo)設(shè)計(jì)循跡小車控制系統(tǒng),在硬件方面:選擇合適的FPGA芯片和傳感器類型,設(shè)計(jì)并搭建有關(guān)電路的硬件,以實(shí)現(xiàn)對(duì)道路信息的采集。在軟件方面:構(gòu)建控制模塊,實(shí)現(xiàn)對(duì)傳感器信息的處理,提取關(guān)鍵位置信息,設(shè)計(jì)合理的控制算法,調(diào)整小車行駛方向和軌跡。對(duì)系統(tǒng)進(jìn)行整合優(yōu)化和全面測(cè)試分析,不斷完善系統(tǒng),使其能滿足下列系統(tǒng)性能指標(biāo):1.道路識(shí)別:能準(zhǔn)確識(shí)別道路軌跡,有效過(guò)濾環(huán)境干擾。2.方向調(diào)整:面對(duì)道路軌跡變化,小車可快速做出0-60°、0-120°向左或向右的方向調(diào)整。3.循跡行駛:小車在直行與轉(zhuǎn)彎過(guò)程中,能夠穩(wěn)定沿軌跡行駛。3系統(tǒng)硬件設(shè)計(jì)3.1硬件整體設(shè)計(jì)循跡小車采用四輪驅(qū)動(dòng)REF_Ref20007\r\h[7],通過(guò)兩個(gè)L293D芯片驅(qū)動(dòng)四個(gè)輪子的轉(zhuǎn)動(dòng)。將五路紅外循跡探測(cè)器裝在車的前部,紅外對(duì)管對(duì)準(zhǔn)小車正下方檢測(cè)道路信號(hào),5個(gè)傳感器檢測(cè)的信號(hào)經(jīng)過(guò)主控芯片處理后,生成控制信號(hào),這些信號(hào)經(jīng)過(guò)解碼和邏輯操作后,最終輸出到電機(jī)驅(qū)動(dòng)模塊,生成PWM信號(hào)和方向控制信號(hào),實(shí)現(xiàn)對(duì)電機(jī)的精確控制。系統(tǒng)硬件設(shè)計(jì)框圖如REF_Ref29031\h圖3-1所示:圖3-SEQ圖3-\*ARABIC1系統(tǒng)硬件設(shè)計(jì)框圖3.2傳感器模塊傳感器模塊是循跡小車系統(tǒng)中至關(guān)重要的組成部分,決定了小車對(duì)行駛路徑的感知能力,是實(shí)現(xiàn)精確循跡的基礎(chǔ)。本系統(tǒng)采用五路傳感器均勻分布在小車前端的REF_Ref27150\r\h[8],檢測(cè)路徑信息。3.2.1傳感器類型本設(shè)計(jì)采用的傳感器核心部件為TCRT5000紅外對(duì)管,它屬于光電傳感器的一種。這種傳感器利用紅外線的發(fā)射和接收來(lái)檢測(cè)物體,特別適用于檢測(cè)不同顏色(主要是黑色和白色)物體表面對(duì)紅外線的反射差異,以此實(shí)現(xiàn)循跡功能。3.2.2傳感器工作原理TCRT5000紅外對(duì)管包含紅外發(fā)射管和接收管,如REF_Ref3949\h圖3-2所示,接好VCC和GND,模塊電源指示燈會(huì)亮,TCRT5000傳感器的紅外發(fā)射二極管不斷發(fā)射紅外線,當(dāng)發(fā)射出的紅外線沒(méi)有被反射或被反射強(qiáng)度不夠大時(shí),紅外接收管處于截止?fàn)顟B(tài),此時(shí)模塊的輸出端為高電平,指示二極管處于熄滅狀態(tài);當(dāng)被檢測(cè)物體出現(xiàn)在檢測(cè)范圍內(nèi)時(shí),紅外線被反射回來(lái)且強(qiáng)度足夠大,紅外接收管飽和,此時(shí)模塊的輸出端為低電平,指示二極管被點(diǎn)亮REF_Ref27284\r\h[9]。其中電位器VR1能表示調(diào)節(jié)靈敏度。它通過(guò)改變自身阻值,調(diào)整LM393電壓比較器正向輸入端的閾值電壓,進(jìn)而改變傳感器對(duì)反射光的敏感程度,當(dāng)檢測(cè)目標(biāo)的反射率不同時(shí)(如黑色物體反射率低,白色物體反射率高)REF_Ref27366\r\h[10],可通過(guò)電位器微調(diào),適配不同反射率物體或環(huán)境光條件。DO數(shù)字信號(hào)輸出接口用于簡(jiǎn)單場(chǎng)景檢測(cè),A0輸出模擬電壓信號(hào)可精確檢測(cè)距離。傳感器模塊實(shí)物如REF_Ref32577\h圖3-3,本設(shè)計(jì)采用D0引腳輸出,當(dāng)檢測(cè)到黑色輸出為低電平,判斷小車與黑線相對(duì)位置實(shí)現(xiàn)循跡功能。圖3-SEQ圖3-\*ARABIC2紅外傳感器電路圖圖3-SEQ圖3-\*ARABIC3傳感器模塊實(shí)物3.2.3傳感器接口原理如REF_Ref14974\h圖3-4所示,五路傳感器模塊分為左外、左側(cè)、中間、右側(cè)、右外傳感器,對(duì)應(yīng)圖中J29、J30、J31、J33、J35,其中每個(gè)傳感器模塊的SENSOR_VCC接入底板3.3V電源電壓,XUNJI_L、XUNJI_OL、XUNJI_M、XUNJI_R、XUNJI_OR接地,其中IO12、IO11、IO13、IO21、IO37分別為五個(gè)傳感器的數(shù)字信號(hào)輸出,5個(gè)紅外對(duì)管傳感器將檢測(cè)的道路信息通過(guò)對(duì)應(yīng)的輸出引腳傳輸?shù)街骺匦酒?。圖3-SEQ圖3-\*ARABIC4紅外傳感器接口3.3主控模塊FPGA的主控模塊選用EP4CE6E22C8N作為主控芯片,EP4CE6E22C8N是Intel公司CycloneIVE系列的FPGA芯片,采用144引腳QFP封裝,屬于低成本、低功耗的中端可編程邏輯器件,常用于數(shù)字信號(hào)處理、嵌入式系統(tǒng)開(kāi)發(fā)等領(lǐng)域。其作為主控芯片,能有效實(shí)現(xiàn)復(fù)雜控制邏輯。開(kāi)發(fā)時(shí)可使用英特爾提供的Quartus軟件,支持VerilogHDL、VHDL等硬件描述語(yǔ)言,具備多種設(shè)計(jì)、調(diào)試功能。3.3.1EP4CE6E22C8N芯片特性1.資源豐富:含6272個(gè)邏輯單元、276480bit總RAM位數(shù),可構(gòu)建復(fù)雜電路和滿足數(shù)據(jù)存儲(chǔ)需求REF_Ref27421\r\h[11]。2.時(shí)鐘靈活:4個(gè)鎖相環(huán),能調(diào)整時(shí)鐘頻率和相位,為各模塊提供適配時(shí)鐘。3.I/O多樣:91個(gè)I/O引腳,支持多種標(biāo)準(zhǔn),可靈活配置連接外部設(shè)備。4.功耗較低:工作電壓1.15-1.25V,支持多種功耗管理模式。5.配置多元:支持JTAG、AS、PS等配置模式,滿足不同開(kāi)發(fā)和生產(chǎn)需求。6.開(kāi)發(fā)便利:用Quartus軟件,支持多種硬件描述語(yǔ)言。3.3.2EP4CE6E22C8N芯片的管腳使用說(shuō)明在本次設(shè)計(jì)中使用到的EP4CE6E22C8N芯片的管腳如REF_Ref27048\h圖3-5至REF_Ref8246\hREF_Ref27110\h圖3-9所示,EP4CE6系列芯片管腳圖如REF_Ref27185\h圖3-10所示,該芯片所用管腳功能說(shuō)明如REF_Ref32153\h表3-1所示。圖3-SEQ圖3-\*ARABIC5芯片使用管腳圖a圖3-SEQ圖3-\*ARABIC6芯片使用管腳圖b圖3-SEQ圖3-\*ARABIC7芯片使用管腳圖c圖3-SEQ圖3-\*ARABIC8芯片使用管腳圖d圖3-SEQ圖3-\*ARABIC9芯片使用管腳圖e圖3-SEQ圖3-\*ARABIC10EP4CE6/10系列芯片管腳圖表3-SEQ表3-\*ARABIC1所用管腳功能說(shuō)明引腳功能引腳1/3/7/11通用I/O,可配置為輸入輸出雙向模式IO/DIFFIO_L1N/DATA1/ASDO復(fù)用I/O,選擇主動(dòng)串行數(shù)據(jù)輸出(ASDO)IO/VREFB1N0復(fù)用I/OIO/DIFFIO_L2P/FLASH_nCE/nCSO復(fù)用I/O,選擇低電平有效片選信號(hào)(nCSO)IO/DIFFIO_L4P/DQS0L/CQ1L/DPCLK0復(fù)用I/OIO/DIFFIO_L4N復(fù)用I/OIO/DATA0復(fù)用I/O,選擇數(shù)據(jù)通道(DATA0)引腳28/30/31/32/33/34/38/39/復(fù)用I/O引腳42/43/44/46/49/50/53/52/51復(fù)用I/O引腳64/69通用I/O引腳54/555/58/59/60/65/66/67/68/70/71/72復(fù)用I/O引腳88/89/90/91/25/23時(shí)鐘功能/差分時(shí)鐘功能CLK2/DIFFCLK_1P(引腳24)連接的外部時(shí)鐘信號(hào)50MHz3.2.3FPGA下載配置電路FGPA下載配置方式包括基于EPCS4芯片的下載方式和基于JTAG的下載配置方式?;贓PCS4芯片的下載配置接口如REF_Ref32342\h圖3-11所示,其中中EPCS4芯片(U9)用于存儲(chǔ)FPGA配置數(shù)據(jù)。/CS(nCS)引腳低電平選中芯片;DO(DATA)引腳輸出配置數(shù)據(jù)至FPGA;VCC接3.3V供電;/WP引腳高電平時(shí)保護(hù)數(shù)據(jù)不被寫入;GND接地提供參考電位;CLK(DCLK)為操作提供時(shí)鐘;DI(ASDI)用于輸入外部配置數(shù)據(jù)。C1是0.1μF濾波電容,連接電源與地,穩(wěn)定供電,確保芯片可靠工作。使用此方法下載需要提供.pof輸出文件。圖3-SEQ圖3-\*ARABIC11基于EPCS4芯片的下載配置接口基于JTAG的下載配置接口如REF_Ref18578\h圖3-12所示,其中J1為10引腳連接器。TCK是測(cè)試時(shí)鐘引腳,用于同步操作;TDO是測(cè)試數(shù)據(jù)輸出引腳;TMS引腳用于選擇測(cè)試模式;TDI是測(cè)試數(shù)據(jù)輸入引腳。引腳4接3.3V電源,引腳2、10接地,常連接計(jì)算機(jī)與FPGA開(kāi)發(fā)板,用于編程、配置與測(cè)試。使用此方法下載需要提供.sof(靜態(tài)隨機(jī)存取存儲(chǔ)器目標(biāo)文件)輸出文件。圖3-SEQ圖3-\*ARABIC12基于JTAG的下載配置接口JTAG方式常用于開(kāi)發(fā)調(diào)試,快速驗(yàn)證FPGA設(shè)計(jì)功能;而EPCS4芯片方式用于設(shè)計(jì)最終部署,實(shí)現(xiàn)FPGA上電自動(dòng)配置。調(diào)試階段通過(guò)JTAG確定設(shè)計(jì)無(wú)誤后,將配置數(shù)據(jù)生成.pof(編程目標(biāo)文件)文件燒錄到EPCS4芯片,實(shí)現(xiàn)設(shè)計(jì)穩(wěn)定運(yùn)行。3.2.4系統(tǒng)時(shí)鐘電路系統(tǒng)時(shí)鐘電路由50MHz、3.3V晶振Y1構(gòu)成,其引腳3接3.3V電源,引腳2接地,引腳4輸出CLK_50M時(shí)鐘信號(hào)供FPGA芯片使用。電容C19濾波,保障晶振穩(wěn)定工作,為小車FPGA芯片提供精確時(shí)間基準(zhǔn)。具體電路如REF_Ref32456\h圖3-13所示:圖3-SEQ圖3-\*ARABIC13系統(tǒng)時(shí)鐘電路3.4電機(jī)驅(qū)動(dòng)模塊3.4.1L293D芯片工作原理L293D是常用電機(jī)驅(qū)動(dòng)芯片,可同時(shí)驅(qū)動(dòng)兩個(gè)直流電機(jī)或一個(gè)步進(jìn)電機(jī)REF_Ref21581\r\h[12],內(nèi)部集成四個(gè)H橋驅(qū)動(dòng)電路,能實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)控制。H橋式電路是控制直流電機(jī)工作的基礎(chǔ),其電路工作原理:H橋驅(qū)動(dòng)電路因其4個(gè)三極管擺在四個(gè)角落,與電機(jī)一起組成大寫字母“H”而得名REF_Ref27709\r\h[13]。電機(jī)要運(yùn)轉(zhuǎn),對(duì)角線上的一對(duì)三極管必須導(dǎo)通。根據(jù)不同三極管對(duì)有不同的導(dǎo)通情況,電流流過(guò)電機(jī)的方向也不相同,從而便可對(duì)電機(jī)的轉(zhuǎn)向進(jìn)行控制。如REF_Ref315\h表3-2是L293D驅(qū)動(dòng)芯片的邏輯功能表。它本身無(wú)直接調(diào)速功能,但借助PWM技術(shù)可調(diào)節(jié)電機(jī)轉(zhuǎn)速REF_Ref23271\r\h[14]。通過(guò)對(duì)PWM的控制,實(shí)現(xiàn)電機(jī)轉(zhuǎn)速的控制。電機(jī)的電壓越高,其轉(zhuǎn)動(dòng)的速度越大,反之越慢REF_Ref20438\r\h[15]。表3-SEQ表3-\*ARABIC2L293D芯片邏輯功能ENLIN1_LIN2_LOUT1OUT2電機(jī)狀態(tài)高電平高電平低電平VCCGND正轉(zhuǎn)高電平低電平高電平GNDVCC反轉(zhuǎn)低電平XX無(wú)輸出無(wú)輸出停止3.4.2L293D芯片接口原理L293D芯片接口如REF_Ref74\h圖3-14所示,VCC(引腳16)接5V主電源輸入引腳,VCC2(引腳8)接3.3V電機(jī)驅(qū)動(dòng)電源輸入引腳,GND(引腳4、5、12、13)接地引腳,EN1、EN2(引腳1、9)使能引腳,高電平時(shí)相應(yīng)的H橋電路使能,允許驅(qū)動(dòng)電機(jī);低電平時(shí)H橋電路禁用,電機(jī)停止。IN1-IN4(引腳2、3、10、11)輸入引腳,用于接收控制信號(hào),控制電機(jī)的轉(zhuǎn)向,OUT1-OUT4(引腳3、6、11、14)輸出引腳,輸出驅(qū)動(dòng)信號(hào)來(lái)控制電機(jī)運(yùn)轉(zhuǎn)。EN_L(IO22)使能引腳,IN1_L(IO38)、IN2_L(IO39)輸入引腳,主控芯片接受傳感器輸出信號(hào)進(jìn)行邏輯編輯將驅(qū)動(dòng)信號(hào)輸入到IO38和IO39中,OUT1、OUT2電機(jī)驅(qū)動(dòng)輸出引腳,輸出驅(qū)動(dòng)電機(jī)的信號(hào),控制電機(jī)的轉(zhuǎn)動(dòng)。圖3-SEQ圖3-\*ARABIC14L293D芯片接口3.5電源模塊本設(shè)計(jì)將FPGA循跡小車驅(qū)動(dòng)底板與FPGA開(kāi)發(fā)板引腳一一對(duì)應(yīng)連接。電源輸入接口如REF_Ref4221\h圖3-15,負(fù)責(zé)將外部電源引入系統(tǒng)。其引腳1接電源正極,引腳2接地,為各電路、芯片及模塊供電。系統(tǒng)供電后,不僅需要5V電壓輸出為電機(jī)驅(qū)動(dòng)芯片、FPGA芯片及邏輯電路供電,還需要3.3V電壓輸出是為紅外傳感器供電,所以需要穩(wěn)壓電路如REF_Ref6690\h圖3-16所示,5V的輸入電壓從LM1117-1.2芯片的IN引腳輸入,經(jīng)過(guò)芯片內(nèi)部的穩(wěn)壓電路處理后,從OUT引腳輸出穩(wěn)定的3.3V電壓,同時(shí)輸入電容C28和輸出電容C33分別對(duì)輸入和輸出電壓進(jìn)行濾波處理,確保電源的穩(wěn)定性。圖3-SEQ圖3-\*ARABIC15電源輸入接口圖3-SEQ圖3-\*ARABIC16穩(wěn)壓電路4系統(tǒng)軟件設(shè)計(jì)4.1開(kāi)發(fā)環(huán)境4.1.1開(kāi)發(fā)軟件本設(shè)計(jì)采用QuartusⅡ13.1軟件,該軟件由Altera公司(現(xiàn)為Intel公司)開(kāi)發(fā),是一款在FPGA開(kāi)發(fā)領(lǐng)域應(yīng)用極為廣泛的專業(yè)設(shè)計(jì)工具。QuartusⅡ13.1為開(kāi)發(fā)者提供了一套完整且高效的設(shè)計(jì)流程,從設(shè)計(jì)構(gòu)思到硬件實(shí)現(xiàn),涵蓋了設(shè)計(jì)輸入、綜合、布局布線和編程下載等關(guān)鍵環(huán)節(jié),打造了一個(gè)便捷的一站式設(shè)計(jì)環(huán)境。其主要功能特點(diǎn)如下:設(shè)計(jì)輸入:支持文本輸入(如VerilogHDL代碼)、原理圖輸入等多種方式,本設(shè)計(jì)主要用文本輸入。軟件會(huì)檢查代碼語(yǔ)法,錯(cuò)誤會(huì)在編譯信息窗口顯示,便于開(kāi)發(fā)人員定位和修正。2.綜合:能將設(shè)計(jì)代碼轉(zhuǎn)化為門級(jí)網(wǎng)表,內(nèi)置綜合器可優(yōu)化邏輯,減少資源占用、提升電路性能。開(kāi)發(fā)人員可根據(jù)需求設(shè)置速度優(yōu)先或面積優(yōu)先等優(yōu)化目標(biāo)。3.布局布線:依據(jù)目標(biāo)FPGA芯片資源,把綜合后的門級(jí)網(wǎng)表映射到具體硬件資源并布線連接。該軟件工具可自動(dòng)完成,也支持手動(dòng)干預(yù)以滿足特殊設(shè)計(jì)要求。4.編程下載:布局布線完成后,可將配置文件下載到FPGA芯片。它支持JTAG、AS、PS等多種下載方式,方便開(kāi)發(fā)人員按需選擇。4.1.2硬件描述語(yǔ)言本設(shè)計(jì)選用VerilogHDL作為硬件描述語(yǔ)言,它在數(shù)字電路設(shè)計(jì)與仿真領(lǐng)域應(yīng)用廣泛,是設(shè)計(jì)人員的得力工具。VerilogHDL具有諸多突出優(yōu)勢(shì),語(yǔ)法簡(jiǎn)潔明了,易于學(xué)習(xí)和使用,大大降低了開(kāi)發(fā)門檻。其表達(dá)能力強(qiáng)勁,能精準(zhǔn)描述各種復(fù)雜的數(shù)字電路。同時(shí),它抽象層次豐富,涵蓋行為級(jí)、寄存器傳輸級(jí)和門級(jí)等多個(gè)層面,設(shè)計(jì)人員可按需選擇合適的抽象級(jí)別。在基于FPGA的循跡小車設(shè)計(jì)里,VerilogHDL展現(xiàn)出極高的效率。以循跡模塊為例,憑借其條件語(yǔ)句和循環(huán)語(yǔ)句,能夠迅速對(duì)傳感器輸入信號(hào)進(jìn)行分析處理。一旦傳感器檢測(cè)到不同信號(hào),系統(tǒng)就能快速判斷小車的運(yùn)動(dòng)方向,如左轉(zhuǎn)、右轉(zhuǎn)或直行,實(shí)現(xiàn)靈活的邏輯控制。對(duì)于電機(jī)驅(qū)動(dòng)模塊,VerilogHDL可以精確地生成PWM信號(hào)。通過(guò)巧妙調(diào)整PWM信號(hào)的占空比,能夠精準(zhǔn)控制電機(jī)的轉(zhuǎn)速,使小車的運(yùn)動(dòng)速度符合設(shè)計(jì)要求。借助VerilogHDL,設(shè)計(jì)人員能夠從邏輯層面進(jìn)行電路功能描述,擺脫了具體硬件實(shí)現(xiàn)細(xì)節(jié)的束縛,從而顯著提高設(shè)計(jì)效率和可維護(hù)性。4.2整體流程圖如REF_Ref2813\h圖4-1所示,循跡小車控制流程從開(kāi)始后進(jìn)入car_top頂層模塊,經(jīng)實(shí)例化rst_gen模塊上電復(fù)位,實(shí)例化ctrl_moto_pwm模塊控制電機(jī)速度、實(shí)例化track_sensor模塊輸出控制信號(hào),再依據(jù)其輸出信號(hào)狀態(tài)編碼驅(qū)動(dòng)電機(jī),最終實(shí)現(xiàn)小車驅(qū)動(dòng)。圖4-SEQ圖4-\*ARABIC1整體流程圖4.3頂層模塊流程設(shè)計(jì)4.3.1car_top模塊功能概述car_top模塊作為頂層模塊,其主要功能是通過(guò)實(shí)例化整合多個(gè)子模塊,根據(jù)5個(gè)傳感器的輸入信號(hào),控制小車左右電機(jī)的轉(zhuǎn)向和轉(zhuǎn)速,從而實(shí)現(xiàn)小車的循跡運(yùn)動(dòng),例如直行、左轉(zhuǎn)、右轉(zhuǎn)、停車等操作。4.3.2設(shè)計(jì)流程car_top模塊是小車循跡控制的核心,其工作流程如下:模塊接收系統(tǒng)時(shí)鐘和來(lái)自五個(gè)傳感器的輸入信號(hào),以獲取小車周圍環(huán)境信息。接著,實(shí)例化三個(gè)子模塊,分別是rst_gen模塊用于上電復(fù)位并延時(shí)256個(gè)時(shí)鐘周期,ctrl_moto_pwm模塊生成PWM波形信號(hào)來(lái)控制電機(jī)轉(zhuǎn)速,占空比約為10%,track_sensor模塊根據(jù)傳感器輸入輸出3位控制信號(hào)。最后,依據(jù)track_sensor輸出的控制信號(hào),通過(guò)case語(yǔ)句對(duì)電機(jī)進(jìn)行控制,針對(duì)不同的傳感器狀態(tài)組合,分別控制左右電機(jī)的轉(zhuǎn)向和轉(zhuǎn)速,實(shí)現(xiàn)停車、左轉(zhuǎn)、右轉(zhuǎn)、直行等動(dòng)作。電機(jī)控制邏輯具體如REF_Ref1289\h表4-1所示,相應(yīng)流程圖如REF_Ref1066\h圖4-2。表4-SEQ表4-\*ARABIC1電機(jī)控制邏輯說(shuō)明控制編碼控制狀態(tài)左電機(jī)狀態(tài)右電機(jī)狀態(tài)3'b000停車停轉(zhuǎn)停轉(zhuǎn)3'b001大幅左轉(zhuǎn)停轉(zhuǎn)全速正轉(zhuǎn)3'b010左轉(zhuǎn)15%正轉(zhuǎn)全速正轉(zhuǎn)3'b011左轉(zhuǎn)偏移15%正轉(zhuǎn)全速正轉(zhuǎn)3'b100大幅右轉(zhuǎn)全速正轉(zhuǎn)停轉(zhuǎn)3'b101右轉(zhuǎn)全速正轉(zhuǎn)15%正轉(zhuǎn)3'b110右轉(zhuǎn)偏移全速正轉(zhuǎn)15%正轉(zhuǎn)3'b111直行40%正轉(zhuǎn)40%正轉(zhuǎn)圖4-SEQ圖4-\*ARABIC2頂層模塊流程圖4.4傳感器循跡模塊流程設(shè)計(jì)4.4.1track_sensor模塊設(shè)計(jì)track_sensor模塊是小車循跡系統(tǒng)的核心信號(hào)處理單元,其RTL電路如REF_Ref19457\h圖4-3所示,clk為時(shí)鐘輸入信號(hào);rst_n為低電平有效的復(fù)位輸入信號(hào);sensor_left_out、sensor_left、sensor_mid、sensor_right、sensor_right_out分別為左外側(cè)、左側(cè)、中間、右側(cè)、右外側(cè)傳感器輸入信號(hào),這5個(gè)傳感器輸入信號(hào)進(jìn)行處理生成3位控制輸出信號(hào)ctrl_signal[2..0]。圖4-SEQ圖4-\*ARABIC3傳感器循跡模塊RTL電路圖4.4.2設(shè)計(jì)流程系統(tǒng)啟動(dòng)后,track_sensor模塊先復(fù)位初始化計(jì)數(shù)器,在時(shí)鐘上升沿檢測(cè)到復(fù)位信號(hào)無(wú)效時(shí)開(kāi)始工作,實(shí)時(shí)采集左外側(cè)、左側(cè)、中間、右側(cè)和右外側(cè)五個(gè)傳感器信號(hào),通過(guò)casez語(yǔ)句匹配信號(hào)組合,生成3位控制信號(hào)ctrl_signal指示小車運(yùn)動(dòng)狀態(tài),每個(gè)時(shí)鐘周期循環(huán)處理,持續(xù)根據(jù)傳感器輸入更新ctrl_signal。具體傳感器狀態(tài)匹配如REF_Ref1778\h表4-2,相應(yīng)代碼流程圖如REF_Ref22243\h圖4-4所示:表4-SEQ表4-\*ARABIC2傳感器狀態(tài)匹配傳感器組合(5位)ctrl_signal含義5'b1????(左外有效)3'b001大幅左轉(zhuǎn)(偏離路徑較遠(yuǎn))5'b01???(左有效)3'b010左轉(zhuǎn)(輕微偏離)5'b00100(僅中間有效)3'b111直行(路徑居中)5'b??01?(右有效)3'b100右轉(zhuǎn)(輕微偏離)5'b????1(右外有效)3'b101大幅右轉(zhuǎn)(偏離路徑較遠(yuǎn))5'b?11??(左中有效)3'b011左偏調(diào)整(需向右修正)5'b??11?(右中有效)3'b110右偏調(diào)整(需向左修正)5'b??11?(右中有效)3'b110右偏調(diào)整(需向左修正)圖4-SEQ圖4-\*ARABIC4傳感器循跡模塊流程圖4.5電機(jī)驅(qū)動(dòng)模塊流程設(shè)計(jì)4.5.1ctrl_moto_pwm模塊設(shè)計(jì)ctrl_moto_pwm模塊是循跡小車電機(jī)轉(zhuǎn)速控制的核心。它通過(guò)狀態(tài)機(jī)生成PWM信號(hào),依據(jù)系統(tǒng)給定的高、低電平持續(xù)周期數(shù),精確調(diào)節(jié)PWM占空比來(lái)控制電機(jī)轉(zhuǎn)速。在系統(tǒng)上電或復(fù)位時(shí),模塊處于空閑態(tài),復(fù)位結(jié)束后按設(shè)定參數(shù)循環(huán)切換狀態(tài)產(chǎn)生PWM信號(hào)。頂層模塊可修改參數(shù)調(diào)整占空比,模塊還能輸出周期結(jié)束指示信號(hào),確保系統(tǒng)協(xié)同運(yùn)行。其RTL電路如REF_Ref22909\h圖4-5所示,clk為時(shí)鐘輸入信號(hào);rst_n為低電平有效的復(fù)位輸入信號(hào);spd_high_time[7:0]為設(shè)置8位高電平持續(xù)周期時(shí)間參數(shù)的輸入信號(hào);spd_low_time[7:0]為8位低電平持續(xù)周期時(shí)間參數(shù)的輸入信號(hào);兩個(gè)高低電平持續(xù)時(shí)間的輸入信號(hào)通過(guò)改變占空比可以調(diào)控輸出的PWM脈沖寬度調(diào)制信號(hào)。圖4-SEQ圖4-\*ARABIC5電機(jī)驅(qū)動(dòng)模塊RTL電路圖4.5.2設(shè)計(jì)流程ctrl_moto_pwm模塊作用是生成PWM信號(hào)。系統(tǒng)上電或復(fù)位時(shí),狀態(tài)機(jī)處idle態(tài),計(jì)數(shù)器清零,PWM輸出0。復(fù)位結(jié)束轉(zhuǎn)step_high態(tài),PWM輸出1,step_high_cnt計(jì)數(shù),從spd_high_time轉(zhuǎn)到step_low態(tài),PWM輸出0,同理step_low_cnt計(jì)數(shù)。從spd_low_time回到step_high態(tài),循環(huán)生成PWM。car_top頂層模塊可通過(guò)spd_high_time和spd_low_time調(diào)PWM占空比控電機(jī)轉(zhuǎn)速。具體流程如REF_Ref1893\h圖4-6所示:圖4-SEQ圖4-\*ARABIC6PWM信號(hào)生成模塊流程圖4.6上電復(fù)位模塊流程設(shè)計(jì)4.6.1rst_gen模塊設(shè)計(jì)上電復(fù)位模塊主要用于在系統(tǒng)上電時(shí)或接收到復(fù)位信號(hào)時(shí),對(duì)系統(tǒng)中的各個(gè)模塊進(jìn)行初始化操作,使其處于一個(gè)確定的初始狀態(tài)。其RTL電路如REF_Ref27719\h圖4-7所示,clk為時(shí)鐘輸入信號(hào);rst_n為低電平有效的復(fù)位輸出信號(hào)。圖4-SEQ圖4-\*ARABIC7上電復(fù)位模塊RTL電路圖rst_gen模塊是實(shí)現(xiàn)上電復(fù)位的Verilog模塊,通過(guò)8位計(jì)數(shù)器cnt控制復(fù)位信號(hào)rst_n。系統(tǒng)上電后,clk上升沿驅(qū)動(dòng)cnt從0遞增,計(jì)數(shù)至255(8'hFF)時(shí)停止。rst_n低電平有效,計(jì)數(shù)期間rst_n輸出低電平使系統(tǒng)復(fù)位,計(jì)滿255后rst_n置高,復(fù)位結(jié)束,系統(tǒng)進(jìn)入正常工作狀態(tài)。具體流程見(jiàn)REF_Ref2317\h圖4-5:圖4-SEQ圖4-\*ARABIC8上電復(fù)位模塊流程圖5系統(tǒng)調(diào)試5.1調(diào)試環(huán)境與工具準(zhǔn)備在進(jìn)行FPGA循跡小車的總體調(diào)試前,需搭建完備的調(diào)試環(huán)境并準(zhǔn)備相應(yīng)工具。硬件方面,確保FPGA開(kāi)發(fā)板、循跡傳感器模塊(紅外循跡傳感器)、電機(jī)驅(qū)動(dòng)模塊、電源模塊、電池組等硬件設(shè)備連接穩(wěn)固且無(wú)損壞。使用萬(wàn)用表檢測(cè)電源模塊輸出電壓是否符合設(shè)計(jì)要求,避免因電壓異常損壞電路元件。軟件方面,安裝與FPGA開(kāi)發(fā)板適配的開(kāi)發(fā)工具,如仿真工具,串口調(diào)試助手、邏輯分析儀軟件等輔助調(diào)試工具。確保開(kāi)發(fā)環(huán)境搭建正確,軟件版本與硬件兼容,為調(diào)試工作提供基礎(chǔ)保障。5.1硬件調(diào)試搭建FPGA開(kāi)發(fā)板、紅外傳感器模塊、電機(jī)驅(qū)動(dòng)模塊及電源模塊后,先進(jìn)行通電前電路檢查,用萬(wàn)用表測(cè)量關(guān)鍵節(jié)點(diǎn)電壓確保無(wú)短路、確認(rèn)小車連接正確,再進(jìn)行具體的硬件模塊調(diào)試。首先,安裝好小車后,檢測(cè)電源模塊,將電池裝好后,打開(kāi)電源總開(kāi)關(guān)觀察小車各個(gè)模塊是否正常通電,模塊指示燈是否如REF_Ref32569\h圖5-1所示全部點(diǎn)亮。圖5-SEQ圖5-\*ARABIC1小車通電圖其次,檢測(cè)傳感器模塊,通電后管觀察TCRT5000紅外對(duì)管是否亮起如REF_Ref2706\h圖5-2,用一把黑色的尺子放置TCRT5000紅外對(duì)管正下方,通過(guò)調(diào)節(jié)如REF_Ref2742\h圖5-3所標(biāo)的傳感器模塊上面的電位器,以此調(diào)節(jié)紅外對(duì)管的檢測(cè)靈敏度,觀察紅外對(duì)管是否如REF_Ref2768\h圖5-4所示有一個(gè)燈因檢測(cè)到黑色物體反光而滅。將五個(gè)傳感器模塊一一檢測(cè)后,將五個(gè)傳感器如REF_Ref2791\h圖5-5所示均勻分布在小車前端。圖5-SEQ圖5-\*ARABIC2傳感器亮起圖圖5-SEQ圖5-\*ARABIC3電位器位置圖圖5-SEQ圖5-\*ARABIC4傳感器檢測(cè)黑色物體圖圖5-SEQ圖5-\*ARABIC5傳感器分布圖最后,通過(guò)小車電機(jī)代碼檢測(cè)小車電機(jī)是否可以正常使用,安裝時(shí)是否將電機(jī)裝反,能否完成正轉(zhuǎn),反轉(zhuǎn)。小車電機(jī)安裝如REF_Ref2673\h圖5-6所示:圖5-SEQ圖5-\*ARABIC6電機(jī)安裝圖5.2軟件調(diào)試小車軟件代碼仿真圖如REF_Ref21180\h圖5-7所示,五位傳感器為10000時(shí),dir_l_1<=0,dir_l_2<=0,dir_r_1<=0,dir_r_2<=1,f_pwm_l<=0,f_pwm_r<=pwm;五位傳感器為01000時(shí),dir_l_1<=0,dir_l_2<=1,dir_r_1<=0,dir_r_2<=1,f_pwm_l<=40%pwm,f_pwm_r<=pwm;五位傳感器為01100時(shí),dir_l_1<=0,dir_l_2<=0,dir_r_1<=0,dir_r_2<=1,f_pwm_l<=40%pwm,f_pwm_r<=pwm;五位傳感器為00001時(shí),dir_l_1<=0,dir_l_2<=1,dir_r_1<=0,dir_r_2<=0,f_pwm_l<=pwm,f_pwm_r<=0;五位傳感器為00010時(shí),dir_l_1<=0,dir_l_2<=1,dir_r_1<=0,dir_r_2<=1,f_pwm_l<=pwm,f_pwm_r<=40%pwm;五位傳感器為00110時(shí),dir_l_1<=0,dir_l_2<=1,dir_r_1<=0,dir_r_2<=1,f_pwm_l<=pwm,f_pwm_r<=40%pwm;五位傳感器為00100時(shí),dir_l_1<=0,dir_l_2<=1,dir_r_1<=0,dir_r_2<=1,f_pwm_l<=40%pwm,f_pwm_r<=40%pwm;五位傳感器為00000/11111時(shí),dir_l_1<=0,dir_l_2<=0,dir_r_1<=0,dir_r_2<=0,f_pwm_l<=0,f_pwm_r<=0;圖5-SEQ圖5-\*ARABIC7運(yùn)行仿真圖5.3總體調(diào)試結(jié)合軟件仿真,觀察小車硬件運(yùn)行,當(dāng)左外側(cè)傳感器檢測(cè)到信號(hào)時(shí),小車左輪停轉(zhuǎn),右輪全速正轉(zhuǎn);當(dāng)左側(cè)傳感器檢測(cè)到信號(hào)時(shí),小車左輪慢速正轉(zhuǎn),右輪全速正轉(zhuǎn);當(dāng)左側(cè)和中間傳感器檢測(cè)到信號(hào)時(shí),小車左輪慢速正轉(zhuǎn),右輪全速正轉(zhuǎn);當(dāng)右外側(cè)傳感器檢測(cè)到信號(hào)時(shí),小車左輪全速正轉(zhuǎn),右輪停轉(zhuǎn);當(dāng)右側(cè)傳感器檢測(cè)到信號(hào)時(shí),小車左輪全速正轉(zhuǎn),右輪慢速正轉(zhuǎn);當(dāng)右側(cè)和中間傳感器檢測(cè)到信號(hào)時(shí),小車左輪全速正轉(zhuǎn),右輪慢速正轉(zhuǎn);當(dāng)中間傳感器檢測(cè)到信號(hào)時(shí),小車左輪慢速正轉(zhuǎn),右輪慢速正轉(zhuǎn);當(dāng)全部傳感器檢測(cè)到或者全都沒(méi)有檢測(cè)到信號(hào)時(shí),小車左輪停轉(zhuǎn),右輪停轉(zhuǎn)。以此小車可以完成循跡直行,左右轉(zhuǎn),并且通過(guò)調(diào)節(jié)左右輪子差速完成小車0-60°和0-120°轉(zhuǎn)彎。6成品與功能展示6.1成品展示本設(shè)計(jì)由主芯片為EP4CE6E22C8N的FPGA開(kāi)發(fā)板,5個(gè)紅外感傳感器、4個(gè)電機(jī)及防滑輪,2個(gè)3.7V鋰電池,以及小車驅(qū)動(dòng)底板組成的。實(shí)物如REF_Ref29961\h圖6-1所示。圖6-SEQ圖6-\*ARABIC1小車實(shí)物圖6.2功能演示打開(kāi)電源開(kāi)關(guān),看到小車電源指示燈亮起。電源模塊給傳感器,驅(qū)動(dòng)電機(jī)以及開(kāi)發(fā)板供電后,將小車放在有黑色循跡線路的位置如REF_Ref10910\h圖6-2開(kāi)始運(yùn)行,小車可以實(shí)現(xiàn)直線,左轉(zhuǎn),右轉(zhuǎn)。功能演示如REF_Ref30036\h圖6-3至REF_Ref30065\h圖6-5所示:圖6-SEQ圖6-\*ARABIC2小車軌跡圖圖6-SEQ圖6-\*ARABIC3小車直行圖6-SEQ圖6-\*ARABIC4小車左轉(zhuǎn)彎圖6-SEQ圖6-\*ARABIC5小車右轉(zhuǎn)彎7設(shè)計(jì)創(chuàng)新點(diǎn)及不足7.1設(shè)計(jì)創(chuàng)新點(diǎn)在設(shè)計(jì)架構(gòu)上,采用了模塊化的設(shè)計(jì)理念,將整個(gè)系統(tǒng)劃分為多個(gè)功能獨(dú)立的模塊,這種設(shè)計(jì)使得開(kāi)發(fā)和維護(hù)工作變得更加便捷高效,不同模塊可以獨(dú)立開(kāi)發(fā)、調(diào)試,代碼的復(fù)用性也得到了顯著提升。PWM模塊的參數(shù)可調(diào)控功能是一大創(chuàng)新,通過(guò)靈活調(diào)整相關(guān)參數(shù),能夠精準(zhǔn)改變PWM信號(hào)的占空比,從而滿足不同場(chǎng)景下對(duì)電機(jī)轉(zhuǎn)速的多樣化需求。另外,對(duì)傳感器信號(hào)進(jìn)行狀態(tài)編碼的設(shè)計(jì),極大地簡(jiǎn)化了控制邏輯,減少了復(fù)雜的判斷過(guò)程,使得小車在循跡過(guò)程中能夠更加精準(zhǔn)、快速地響應(yīng)各種路況變化。7.2設(shè)計(jì)不足在本基于FPGA的循跡小車設(shè)計(jì)中,不可避免地存在一些尚需改進(jìn)的地方。從硬件角度來(lái)看,系統(tǒng)對(duì)特定硬件的依賴程度較高,這一特性導(dǎo)致其兼容性表現(xiàn)欠佳。一旦涉及硬件更換,特別是傳感器硬件,哪怕只是微小變動(dòng),都需要投入大量的時(shí)間和精力重新進(jìn)行全面調(diào)試。這是因?yàn)椴煌布陔姎馓匦?、接口?biāo)準(zhǔn)等方面存在差異,重新調(diào)試不僅繁瑣,還可能衍生出一系列新的問(wèn)題。在算法層面,當(dāng)前設(shè)計(jì)的短板也較為明顯。消抖方式過(guò)于單一,僅僅依靠對(duì)傳感器信號(hào)進(jìn)行有限次數(shù)的防抖計(jì)數(shù)來(lái)減少誤判,在復(fù)雜的干擾環(huán)境下,這種方式難以有效抵御干擾,容易致使小車出現(xiàn)錯(cuò)誤動(dòng)作。結(jié)論本論文圍繞基于FPGA的循跡小車設(shè)計(jì)展開(kāi)研究,成功實(shí)現(xiàn)小車實(shí)時(shí)循跡與動(dòng)態(tài)控制。硬件上,以FPGA為核心集成傳感器處理、電機(jī)控制等功能,采用模塊化設(shè)計(jì)提升資源利用率。測(cè)試顯示,復(fù)位邏輯穩(wěn)定,傳感器消抖后能準(zhǔn)確生成控制編碼,小車在直道和彎道均表現(xiàn)良好。電機(jī)通過(guò)參數(shù)化PWM設(shè)計(jì),可靈活調(diào)速。技術(shù)創(chuàng)新方

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論