1 緒論
1.1 課題研究的背景
科技飛速發(fā)展時(shí)至今日,超聲波測(cè)距廣泛應(yīng)用于工業(yè),農(nóng)業(yè),交通,環(huán)境,安全防護(hù)能源測(cè)量等科學(xué)領(lǐng)域,超聲波測(cè)距的測(cè)量精度、測(cè)量距離,可靠性等性能指標(biāo)對(duì)于提高相關(guān)應(yīng)用系統(tǒng)的測(cè)控精度、可靠性,提高生產(chǎn)效率、促進(jìn)科學(xué)技術(shù)的發(fā)展都具有極為重要的作用。隨著經(jīng)濟(jì)的迅速發(fā)展,交通系統(tǒng)日益龐大,交通安全問(wèn)題越來(lái)越被重視,安全防護(hù)現(xiàn)在變成為一個(gè)重要議題。近幾年,船舶運(yùn)輸事故頻發(fā),復(fù)雜的水運(yùn)環(huán)境,如大雨、大霧或夜間行駛常常導(dǎo)致航道的能見(jiàn)度降低,造成碰撞事故。由于超聲波測(cè)距技術(shù)具有在黑暗、灰塵、煙霧等惡劣的環(huán)境下正常工作的特性,將超聲波測(cè)距引入航運(yùn)系統(tǒng)能切實(shí)可行的緩解這一問(wèn)題。
超聲波測(cè)距系統(tǒng)的設(shè)計(jì)結(jié)構(gòu)多種多樣,性能差異也各異。目前市面上主流的超聲波測(cè)距系統(tǒng)大多是以8位或者16位單片機(jī)為主空芯片,產(chǎn)生驅(qū)動(dòng)信號(hào),并負(fù)責(zé)接收處理回波,控制現(xiàn)實(shí)通訊。這樣處理成本固然降低了,但是測(cè)量精度,和測(cè)量距離,以及時(shí)序的控制能力有限。
超聲波測(cè)距的核心在于超聲波信號(hào)的收發(fā)部分,傳統(tǒng)單片機(jī)內(nèi)部指令運(yùn)行時(shí)存在較大延時(shí)誤差其精度無(wú)法滿足精密測(cè)量的要求,本設(shè)計(jì)將FPGA(現(xiàn)場(chǎng)可編程門陣列)引入超聲波測(cè)距系統(tǒng)的設(shè)計(jì)內(nèi),利用其較高的運(yùn)行速度和豐富的片內(nèi)資源,取代單片機(jī),提高對(duì)超聲波工作頻率的控制精度以及對(duì)超聲波收發(fā)渡越時(shí)間的測(cè)量精度。
1.2國(guó)內(nèi)外研究現(xiàn)狀
超聲波測(cè)距被大量應(yīng)用于各種工業(yè)領(lǐng)域,諸如工業(yè)自動(dòng)控制,建筑工程測(cè)量和機(jī)器人視覺(jué)識(shí)別等方面。和其他方法相比,比如激光測(cè)距、微波測(cè)距等,由于聲波在空氣中傳播速度遠(yuǎn)遠(yuǎn)小于光線和無(wú)線電波的傳播速度,對(duì)于時(shí)間側(cè)量精度 的要求遠(yuǎn)小于激光測(cè)距、微波測(cè)距等系統(tǒng),因而超聲波測(cè)距系統(tǒng)電路易實(shí)現(xiàn)、結(jié)構(gòu)簡(jiǎn)單和造價(jià)低,且超聲波在傳播過(guò)程中不受煙霧、空氣能見(jiàn)度等因素的影響,在各種場(chǎng)合均得到廣泛應(yīng)用。
超聲波測(cè)距作為一種典型的非接觸測(cè)量方法,在很多場(chǎng)合得以應(yīng)用。然而超聲波測(cè)距在實(shí)際應(yīng)用也有很多局限性。
超聲波在空氣中衰減極大,由于測(cè)量距離的不同,造成回波信號(hào)的起伏變化,不同幅度回波信號(hào)在通過(guò)固定門限比較器的整形過(guò)程中,回波到達(dá)時(shí)間的測(cè)t產(chǎn)生較大的誤差,另外就是構(gòu)成超聲波傳感器的壓電陶瓷片在壓電的雙向轉(zhuǎn)換過(guò)程中,存在慣性、滯后等現(xiàn)象,以及超聲波脈沖在空氣中傳播本身及多重的反射路徑,均導(dǎo)致回波信號(hào)被展寬,也使測(cè)量產(chǎn)生較大的誤差,影響了測(cè)距的分辨率。其他還有一些因素,諸如環(huán)境溫度,風(fēng)速等也會(huì)對(duì)測(cè)量造成一定的影響。
目前國(guó)內(nèi)外對(duì)超聲波測(cè)距的研究主要集中在提高測(cè)距精度方面。由于超聲波測(cè)距其測(cè)量范圍與測(cè)量精度是相互矛盾的。要想得到較大的測(cè)量范圍,需降低超聲波的頻率,而此時(shí)波長(zhǎng)增大,測(cè)量精度則會(huì)降低;要想提高測(cè)量精度,需使用高頻的超聲波,其在空氣中衰減很快,測(cè)量范圍則會(huì)縮小。
超聲波測(cè)距的精度主要取決于所測(cè)超聲波傳輸時(shí)間的測(cè)量精度和超聲波在介質(zhì)中的傳輸速度這兩方面。國(guó)外在提高超聲波測(cè)距性能方面做了大量研究,國(guó)內(nèi)相關(guān)學(xué)者也做了相關(guān)研究。提高傳輸時(shí)問(wèn)的測(cè)量精度主要通過(guò)提高測(cè)距儀器的計(jì)時(shí)精度來(lái)實(shí)現(xiàn)。而對(duì)于超聲波的傳輸速度的提高,主要通過(guò)采用高頻的超聲波換能器實(shí)現(xiàn)。高頻的超聲波換能器的工作中心頻率,一般是幾到十幾MHz,由于換能器的工作頻率很高,超聲波衰減非常明顯,這就對(duì)測(cè)距儀器的驅(qū)動(dòng)信號(hào)的 驅(qū)動(dòng)效率提出了更高要求,如何使驅(qū)動(dòng)信號(hào)的中心頻率精度提高成為了一個(gè)派生研究方向。
1.3超聲波的特性
當(dāng)物體振動(dòng)時(shí)會(huì)發(fā)出聲音。科學(xué)家們將每秒鐘振動(dòng)的次數(shù)稱為聲音的頻率,它的單位是赫茲。我們?nèi)祟惗淠苈?tīng)到的聲波頻率為20~20000赫茲。當(dāng)聲波的振動(dòng)頻率大于20000赫茲或小于20赫茲時(shí),我們便聽(tīng)不見(jiàn)了。因此,我們把頻率高于20000赫茲的聲波稱為“超聲波”。
超聲和可聞聲本質(zhì)上是一致的,它們的共同點(diǎn)都是一種機(jī)械振動(dòng),通常以縱波的方式在彈性介質(zhì)內(nèi)會(huì)傳播,是一種能量的傳播形式,其不同點(diǎn)是超聲頻率高,波長(zhǎng)短。
超聲波是一種在彈性介質(zhì)中的機(jī)械振蕩,傳播速度僅為光波的百萬(wàn)分之一,縱向分辨率較高。超聲波對(duì)色彩、光照度、外界光線和電磁場(chǎng)不敏感,對(duì)于被測(cè)物處于黑暗、有灰塵或煙霧、強(qiáng)電磁干擾、有毒等惡劣的環(huán)境下超聲波有很強(qiáng)的適應(yīng)能力。
由于超聲波的能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),聲波傳播速度在相當(dāng)大范圍內(nèi)與頻率無(wú)關(guān)等獨(dú)特優(yōu)點(diǎn),超聲波被視為測(cè)距技術(shù)的一種良好選擇在軍事,工業(yè),交通上有很多的應(yīng)用。
2FPGA介紹
2.1 FPGA對(duì)于設(shè)計(jì)的必要性
在這里我們比較一下單片機(jī)與FPGA的性能特點(diǎn):
單片機(jī):可采用C語(yǔ)言編程,靈活多變,可以方便的實(shí)現(xiàn)復(fù)雜的指令控制。但是對(duì)時(shí)序控制實(shí)現(xiàn)能力較弱,組合邏輯能力較弱,程序執(zhí)行采用順序執(zhí)行方式,外部自由使用I/O口數(shù)量有限,對(duì)于接口信號(hào)的頻率控制能力較弱,運(yùn)行速率約為幾十兆赫茲,采用外部晶振的頻率不能超過(guò)40MHz。
FPGA:采用硬件語(yǔ)言編程,沒(méi)有指令控制系統(tǒng),控制能力較弱。但具有很強(qiáng)的時(shí)序控制能力和邏輯組合能力,對(duì)于通信接口特別是高速接口可以將不同速率不同協(xié)議的耦合和橋接。運(yùn)行速率約為幾百兆赫茲,采用外部晶振的頻率可超過(guò)100MHz。
整個(gè)系統(tǒng)的核心部分是超聲波的收發(fā)控制端和信號(hào)處理部分,正是出于這種考慮現(xiàn)在主流的設(shè)計(jì)是采用單片機(jī)做為主控芯片負(fù)責(zé)產(chǎn)生超聲波驅(qū)動(dòng)信號(hào)并對(duì)回波進(jìn)行數(shù)據(jù)處理,控制現(xiàn)實(shí)輸出。
決定超聲波驅(qū)動(dòng)信號(hào)的效果,同時(shí)對(duì)于回波信號(hào)的處理,和整個(gè)超聲波測(cè)距總計(jì)時(shí),超聲波周期的精確時(shí)間是一個(gè)重要的參數(shù)。對(duì)于驅(qū)動(dòng)信號(hào)頻率的嚴(yán)格控制,總計(jì)時(shí)的時(shí)間控制,是系統(tǒng)高性能保障重要條件。
現(xiàn)在主流的設(shè)計(jì)是采用單片機(jī)的中斷加定時(shí)計(jì)數(shù)器來(lái)處理,為方便計(jì)算定時(shí)器初值,采用12MHz晶振來(lái)計(jì)算,無(wú)論是采用是采用哪種位定時(shí)器/計(jì)數(shù)器方式,驅(qū)動(dòng)信號(hào)的頻率精度都有限,與理論精度相差較大,隨著進(jìn)入中斷之前執(zhí)行任務(wù)的不同,定時(shí)器的計(jì)時(shí)值存在著多達(dá)3us以上的不確定誤差;若采用定時(shí)器的對(duì)外部正脈沖自動(dòng)計(jì)時(shí)的功能,將待測(cè)信號(hào)接入外部中斷引腳,自動(dòng)實(shí)現(xiàn)信號(hào)寬度的測(cè)量,該方案的計(jì)時(shí)精度也只能達(dá)到lus。而且計(jì)時(shí)的精度受制于單片機(jī)的運(yùn)行速度,可提高空間很小;若采用TTL分立元件(如8253/8254)來(lái)實(shí)現(xiàn)計(jì)數(shù)器電路,這樣計(jì)時(shí)的精度會(huì)有所提高,但計(jì)時(shí)頻率可提高空間不大,如8254最高計(jì)時(shí)頻率不超過(guò)10MHz。同時(shí)設(shè)計(jì)由于采用分立元件,體積也很大。
對(duì)回波到達(dá)時(shí)間的測(cè)量,對(duì)回波信號(hào)的辨識(shí)和綜合處理也是系統(tǒng)設(shè)計(jì)的關(guān)鍵任務(wù)。實(shí)際上超聲波換能器由于余震自身存在1到2us的不確定誤差,若計(jì)時(shí)器自身的計(jì)時(shí)誤差也是us級(jí)的,那么綜合起來(lái)之后,誤差又將增大。本設(shè)計(jì)中采用FPGA技術(shù),利用其強(qiáng)大的時(shí)序處理能力,極高的運(yùn)行速度(100MHz以上),同時(shí),其豐富的內(nèi)部資源又可以將前述的各種邏輯功能集中在一塊芯片內(nèi)部實(shí)現(xiàn),體積也很小,F(xiàn)PGA(Field Programmable Gate Array)是可編程邏輯器件的一種。可編程邏輯器件是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,是一種半定制的集成電路,結(jié)合計(jì)算機(jī)軟件技術(shù)可以快速、方便地構(gòu)建數(shù)字系統(tǒng)。以下簡(jiǎn)要介紹可編程邏輯器件及FPGA的發(fā)展、結(jié)構(gòu)和功能特點(diǎn)。
2.2 可編程邏輯器件
隨著微電子設(shè)計(jì)技術(shù)與工藝的發(fā)展,數(shù)字集成電路從電子管、晶體管、中小規(guī)模集成電路、超大規(guī)模集成電路(VLSIC)逐步發(fā)展到今天的專用集成電路(ASIC)。ASIC的出現(xiàn)降低了產(chǎn)品的成本,提高了系統(tǒng)的可靠性,縮小了設(shè)計(jì)科的物理尺寸,推動(dòng)了社會(huì)的數(shù)字化進(jìn)程。但是ASIC因其設(shè)計(jì)周期長(zhǎng),改版投資大,靈活性差等缺陷制約著它的應(yīng)用范圍。硬件工程師希望有一種更靈活的設(shè)計(jì)方法,根據(jù)需要,在實(shí)驗(yàn)室就能設(shè)計(jì)、更改大規(guī)模數(shù)字邏輯,研制自己的ASIC并馬上投入使用,這是提出可編程邏輯器件的基本思想。
可編程邏輯器件隨著微電子制造工藝的發(fā)展取得了長(zhǎng)足的進(jìn)步。從早期的只能存儲(chǔ)少量數(shù)據(jù),完成簡(jiǎn)單邏輯功能的可編程只讀存儲(chǔ)器(PROM)、紫外線可擦除只讀存儲(chǔ)器(EPROM)和電可擦除只讀存儲(chǔ)器,發(fā)展到成為可以完成超大規(guī)模的復(fù)雜組合邏輯與時(shí)序邏輯的可編程邏輯器件(CPLD)和現(xiàn)場(chǎng)可編程邏輯門陣列(FPGA)。隨著工藝技術(shù)的發(fā)展與市場(chǎng)的需要,超大規(guī)模、高速、低功耗的新型FPGA/CPLD不斷推陳出新。新一代的FPGA甚至集成了中央處理器(CPU) 或數(shù)字處理器(DSP)內(nèi)核,在一片F(xiàn)PGA上進(jìn)行軟硬件協(xié)同設(shè)計(jì),為實(shí)現(xiàn)片上可編程系統(tǒng)(SOPC,System On Programmable Chip)提供了強(qiáng)大的硬件支持。
2.3 FPGA的結(jié)構(gòu)
FPGA生產(chǎn)廠家有Altera、Xilinx、Actel、Lattice等四家公司,其中Altera 和Xilinx主要生產(chǎn)一般用途FPGA,其主要產(chǎn)品采用RAM工藝。Actel主要提供非易失性FPGA,產(chǎn)品主要基于反熔絲工藝和FLASH工藝。其中Altera公司一直都處于可編程芯片系統(tǒng)(SOPC)領(lǐng)域的前沿和領(lǐng)袖地位,為業(yè)界提供最先進(jìn)的可編程器件和相關(guān)軟件工具、IP軟件模塊以及優(yōu)秀的設(shè)計(jì)方案。其主流FPGA系列包括FLEX6000、FLEXl0K、ACEX、Cyclone、CyclonelI、APEX20K、APEXII、Stratix、Mercury、Exclibur等。
簡(jiǎn)化的FPGA基本由6部分組成,分別為可編程輸入/輸出單元,基本可編程邏輯單元,嵌入式RAM,豐富的布線資源,底層嵌入功能單元和內(nèi)嵌專用硬核等,如圖:
圖2.1 FPGA的內(nèi)部邏輯結(jié)構(gòu)
3 基于FPGA測(cè)距系統(tǒng)硬件結(jié)構(gòu)平臺(tái)
3.1 FPGA核心板結(jié)構(gòu)
該設(shè)計(jì)采用FPGA開(kāi)發(fā)板,該開(kāi)發(fā)板集成了多種功能,比如說(shuō)像VGA接口、PS2 鍵盤接口、138譯碼的數(shù)碼管、32pin外接口I/O、間距為2.54mm的外接插件、jtag調(diào)試接口、AS下載接口、DA數(shù)模轉(zhuǎn)換芯片TLC5620、USB轉(zhuǎn)串口接口、蜂鳴器、四個(gè)輕觸按鍵。開(kāi)發(fā)板的具體結(jié)構(gòu)如下圖所示:
圖3.1 FPGA 開(kāi)發(fā)板結(jié)構(gòu)
從設(shè)計(jì)方面考慮要用到的部分是外接口I/O、138譯碼的數(shù)碼管、jtag調(diào)試接口、AS下載端口、蜂鳴器等。在最初的設(shè)計(jì)思路中運(yùn)用到了LED燈,輕觸按鍵這些功能。運(yùn)用這些功能的目的是對(duì)FPGA開(kāi)發(fā)板進(jìn)行一個(gè)初步的學(xué)習(xí),從而實(shí)現(xiàn)一些簡(jiǎn)單的功能,進(jìn)而向較難的功能邁出一小步。
該FPGA開(kāi)發(fā)板所用的核心芯片為ALTERA公司的cyclone IV E系列芯片,具體型號(hào)為EP4CE6E22C8N。cyclone IV E系列的芯片通過(guò)了最低的成本實(shí)現(xiàn)了較高的功能,并且cyclone IV E系列的器件上邊集成很多低成本的收發(fā)器。在不影響其整體功能的前提下,節(jié)省了很多成本。Cyclone IV E 系列在很多領(lǐng)域諸如像無(wú)線、通訊等都有著一些很有價(jià)值的應(yīng)用。
cyclone IV E 器件系列具有以下特性:
(1)6k到150k的邏輯單元。
(2)高達(dá)6.3Mb的嵌入式存儲(chǔ)器。
(3)高達(dá)360個(gè)18*18乘法器,實(shí)現(xiàn)DSP處理密集型的應(yīng)用。
(4)協(xié)議橋接的應(yīng)用,可以實(shí)現(xiàn)小于1.5W的總功率。
(5)低成本、低功耗的FPGA構(gòu)架。
圖3.1 cyclone IV E EP4CE6E22C8N 型號(hào)芯片
在選用該開(kāi)發(fā)板之前,對(duì)實(shí)現(xiàn)一個(gè)具體系統(tǒng)應(yīng)該有一個(gè)全方位的了解,針對(duì)系統(tǒng)的功能和需要的資源來(lái)具體選擇FPGA開(kāi)發(fā)板。下面針對(duì)cyclone IV E系列的EP4CE6E22C8N 型號(hào)芯片的具體需用單元做出介紹:
(1)具有可編程的輸入輸出端口
在該FPGA開(kāi)發(fā)板中,I/O位于最左邊的部分,總共有32個(gè)。它們是FPGA芯片與外界電路的重要接口部分,同時(shí)它們也完成不同的電器特性對(duì)I/O信號(hào)的驅(qū)動(dòng)和匹配需求,在編寫(xiě)程序的時(shí)候,有時(shí)為了節(jié)省資源或?yàn)榱顺绦虻暮?jiǎn)潔性,目前大多數(shù)FPGA 端口都設(shè)計(jì)成具有可編程性的I/O接口。FPGA針對(duì)外部設(shè)備的接口具有可以編寫(xiě)程序并輸入芯片的功能,所以這樣就大大增加了FPGA的自由特性。
(2)較為豐富的布線資源
和cyclone系列的其他芯片一樣,F(xiàn)PGA本身就具有非常豐富的布線資源,它的這個(gè)特點(diǎn)可以給開(kāi)發(fā)工程師們非常多的自我選擇,選擇最簡(jiǎn)潔的布線方式和最簡(jiǎn)便的算法。這些布線的結(jié)構(gòu)和連線的長(zhǎng)度對(duì)信號(hào)的傳輸速度起到了非常重要的影響,所以算法的優(yōu)先級(jí)和算法的優(yōu)化就顯的尤為重要了,它可能直接可以確定運(yùn)算速度了。
(3)較低的功耗
Cyclone IV E系列芯片采用了經(jīng)過(guò)優(yōu)化后的60nm的工藝。它的內(nèi)核電壓相對(duì)于前幾代的都有所降低。這在大規(guī)模集成電路的工程設(shè)計(jì)中既節(jié)省了資源,又降低了系統(tǒng)整體的功耗。這對(duì)于資源優(yōu)化與資源的合理分布有這非同尋常的價(jià)值所在。
(4)全面的設(shè)計(jì)資源
該系列FPGA核心芯片運(yùn)行流暢,其IP庫(kù)也非常成熟,使用的是Quarters II開(kāi)發(fā)軟件。不管是程序調(diào)試方面還是下載、電路圖仿真等方面都非常的便利。其嵌入式處理器采用的是NiosII處理,這是目前世界上最通用的嵌入式處理器。它可以使得綜合電路運(yùn)行的更為流暢,時(shí)鐘頻率更加穩(wěn)定。
(5)全方位的時(shí)鐘網(wǎng)絡(luò)
該芯片時(shí)鐘網(wǎng)絡(luò)資源豐富,可以利用PLL進(jìn)行分頻、倍頻;可以調(diào)用IP核對(duì)需要的時(shí)鐘頻率進(jìn)行具體設(shè)定。并且在芯片處理系統(tǒng)中可以對(duì)不同的時(shí)鐘信號(hào)進(jìn)行同時(shí)處理。
3.2 超聲波測(cè)距傳感器
首先介紹超聲波測(cè)量距離的原理,其次介紹超聲波測(cè)距模塊。超聲波測(cè)距的基本原理可以這樣認(rèn)為,我們知道聲音在空氣里的傳播速度大約是0.34千米/秒。超聲波在空氣中的傳播速度大概也是0.34千米/秒,而這個(gè)速度受外界環(huán)境變化特別的小;況且超聲波的波長(zhǎng)相對(duì)于空氣中的懸浮顆粒直徑較大,因而可以有效的繞射過(guò)空氣中的懸浮顆粒等直徑比較小的障礙物,所以可以認(rèn)為它在空氣中的傳播速度基本可以維持在0.34千米/秒。基于這個(gè)基本不變的速度,只需測(cè)出其發(fā)出去以及反射回來(lái)的時(shí)間差,然后在通過(guò)一定的計(jì)算,就可以得到發(fā)射端到目標(biāo)物體的距離了。
由以上的超聲波測(cè)量距離的原理圖就可以知道距離S可以被很簡(jiǎn)潔的表達(dá)出來(lái)了。可以把聲速表示成V,超聲波從發(fā)射到接收的時(shí)間差為T,這樣距離就可以被表達(dá)成S=V*T/2。圖3.2中的方法可稱為間接測(cè)距法。還有一種直接測(cè)距的方法,直接測(cè)距就是將測(cè)距系統(tǒng)的發(fā)射端口和接收端口對(duì)準(zhǔn)。發(fā)射的超聲波直接進(jìn)入接收端,這樣就可以直接計(jì)算出其測(cè)量的距離了。這種測(cè)距系統(tǒng)并不僅僅局限于超聲波測(cè)距系統(tǒng),在一些激光測(cè)距、紅外測(cè)距等系統(tǒng)方面也有著一定價(jià)值的應(yīng)用。
圖3.2 超聲波測(cè)量距離的原理圖
在本設(shè)計(jì)中利用超聲波在空氣中的傳播原理,按照S=V*T/2的關(guān)系計(jì)算出1毫米的時(shí)鐘高電平個(gè)數(shù)。利用距離單位的逐項(xiàng)疊加,逐個(gè)進(jìn)位的方式計(jì)算出其距離。
圖3.3 超聲波模塊
基于FPGA的超聲波測(cè)距系統(tǒng)利用的超聲波模塊型號(hào)為HC_SR04,它實(shí)際上采用的是給模塊上的trig端口一個(gè)觸發(fā)電平,讓其觸發(fā)超聲波的發(fā)出。
首先,在使用該模塊之前,對(duì)該超聲波模塊進(jìn)行了簡(jiǎn)單的端口測(cè)試。利用電壓源給該模塊接上5V的電壓。利用信號(hào)發(fā)生器產(chǎn)生一個(gè)10us的高電平脈沖信號(hào),將此信號(hào)加到trig接口上,這樣就完成了對(duì)該超聲波模塊的觸發(fā)。然后將示波器探頭接在超聲波模塊的echo端口上,觀察示波器會(huì)顯示以下信號(hào):
圖3.4 示波器觀測(cè)圖
圖3.5 信號(hào)源信號(hào)圖
由圖3.5中的信號(hào)源可以看出,設(shè)置占空比為20%,脈沖電壓為5V,周期為50us。這樣信號(hào)源就可以產(chǎn)生一個(gè)10us的連續(xù)脈沖,將此脈沖信號(hào)送給trig端口,然后在超聲波模塊上的echo端口上加上示波器來(lái)測(cè)量echo上的信號(hào)變化。圖3.4所示,可以清楚的看到echo信號(hào)也呈現(xiàn)周期性變化,其原因就是給trig輸入的信號(hào)成周期性變化,每次經(jīng)過(guò)10us的連續(xù)高電平,超聲波就會(huì)發(fā)出一個(gè)調(diào)制的脈沖信號(hào),該調(diào)制信號(hào)返回后,echo端的信號(hào)就會(huì)由高電平瞬間變回低電平了,所以echo信號(hào)的周期性變化是由trig信號(hào)的周期性變化引起的。還有一個(gè)值得注意的問(wèn)題,觀察示波器的峰峰值可以看出echo反饋的高電平和給超聲波模塊的VCC端口所輸入的電壓信號(hào)的高電平值是一樣大的,因此就要考慮FPGA開(kāi)發(fā)板的I/O接口所承受的最大耐壓值;比如像Xilinx的Basys系列的開(kāi)發(fā)板I/O接口電壓承受值為3.3V,這種情況就要給echo接口加一個(gè)分壓電阻。以免返回電壓過(guò)大而對(duì)芯片造成一定程度的損傷。而ALTERA系列開(kāi)發(fā)板的I/O接口一般情況可以承受5V的電壓值,因此可以直接將I/O接口與echo端口和trig端口接在一起。
4超聲波測(cè)距系統(tǒng)程序設(shè)計(jì)及仿真
4.1 程序流程圖
下圖給出了系統(tǒng)軟件設(shè)計(jì)的整體框架,實(shí)際上由于FPGA內(nèi)的各個(gè)子進(jìn)程都是并行執(zhí)行的,且每個(gè)子進(jìn)程都是是獨(dú)立的模塊,因此程序設(shè)計(jì)并不是按照順序的方法設(shè)計(jì)的,而是分離成各個(gè)小的子模塊進(jìn)行設(shè)計(jì)綜合的,需要嚴(yán)格控制時(shí)序。
超聲波收發(fā)部分負(fù)責(zé)產(chǎn)生超聲波驅(qū)動(dòng)信號(hào),要求頻率為50MHz,占空比為50的方波信號(hào)以驅(qū)動(dòng)超聲波換能器,同時(shí)高速計(jì)數(shù)器開(kāi)始計(jì)數(shù),檢測(cè)回波后,計(jì)數(shù)器停止計(jì)數(shù),計(jì)算后控制顯示輸出。
圖4.1 系統(tǒng)軟件設(shè)計(jì)框圖
4.2程序及仿真主控制模塊代碼:
通過(guò)主控制程序,可以實(shí)現(xiàn)超聲波測(cè)距以及當(dāng)測(cè)量距離小于一定長(zhǎng)度時(shí),蜂鳴器報(bào)警,報(bào)警距離可以通過(guò)改代碼,實(shí)現(xiàn)想要的報(bào)警的距離。下面是通過(guò)波形仿真的結(jié)果。如圖所示:
圖4.2 測(cè)距并報(bào)警
分頻模塊代碼:
Endmodule
上述代碼中輸出的1KHZ時(shí)鐘,在之后進(jìn)行譯碼器掃描。分頻模塊仿真如下圖示:
圖4.3 分頻模塊仿真
譯碼器模塊代碼:
譯碼器模塊,通過(guò)掃描檢測(cè)到的1KHZ時(shí)鐘輸入,把測(cè)量到的距離顯示到數(shù)碼管上,譯碼器模塊仿真如下圖所示:
圖4.4 數(shù)碼管顯示仿真
4.3頂層原理圖頂層原理圖主要分為三個(gè)模塊,分別為分頻模塊,主控制模塊,譯碼器模塊。還有超聲波模塊接口,以及數(shù)碼管模塊接口。如下圖所示:
圖4.5 原理圖
此次的期末大作業(yè),雖然經(jīng)歷了一次次的困難,但積累了很多寶貴的經(jīng)驗(yàn)。在整個(gè)設(shè)計(jì)的過(guò)程中遇到的問(wèn)題主要有以下三點(diǎn),第一:基礎(chǔ)知識(shí)掌握的不牢固,對(duì)書(shū)本上的內(nèi)容理解不夠透徹,沒(méi)有掌握好編程相關(guān)知識(shí)。第二:超聲波測(cè)距這個(gè)模塊程序的編寫(xiě)沒(méi)有思路、對(duì)VerilogHDL語(yǔ)言的不熟悉導(dǎo)致直接在程序中使用乘除法和取余等符號(hào),雖然編譯器沒(méi)有報(bào)錯(cuò),但是運(yùn)行完后根本沒(méi)有結(jié)果,也不能綜合出一個(gè)完整的電路。第三:相關(guān)知識(shí)掌握的不夠全面,缺少系統(tǒng)設(shè)計(jì)的經(jīng)驗(yàn)。
這次大作業(yè)進(jìn)一步端了我的學(xué)習(xí)態(tài)度,學(xué)會(huì)了實(shí)事求是,嚴(yán)謹(jǐn)?shù)淖黠L(fēng),對(duì)自己要嚴(yán)格要求,不能夠一知半解,要力求明明白白。急于求成是不好的,我有所感受。如果省略了那些必要的步驟,急于求成,不僅會(huì)浪費(fèi)時(shí)間,還會(huì)適得其反。我覺(jué)得動(dòng)手之前,頭腦里必須清楚該怎么做,這一點(diǎn)是很重要的。就目前來(lái)說(shuō),我的動(dòng)手能力雖然差一點(diǎn),但我想,通過(guò)我的不懈努力,在這方面,我總會(huì)得到提高。這一點(diǎn),我堅(jiān)信。因?yàn)閯e人能做到的,我也一定能做到。
全部資料51hei下載地址:
FPGA程序仿真.rar
(1.24 MB, 下載次數(shù): 160)
基于FPGA的超聲波測(cè)距.docx
(1.11 MB, 下載次數(shù): 116)
Screenshot_20191223_105349.jpg (113.53 KB, 下載次數(shù): 182)
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |