基于FPGA的高精度測距系統(tǒng)設(shè)計通信技術(shù)專業(yè)
《基于FPGA的高精度測距系統(tǒng)設(shè)計通信技術(shù)專業(yè)》由會員分享,可在線閱讀,更多相關(guān)《基于FPGA的高精度測距系統(tǒng)設(shè)計通信技術(shù)專業(yè)(36頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 摘 要 隨著的發(fā)展人們的生活質(zhì)量越來越高,許多事物都追求方便、高效,測距在計算機、機器人等工業(yè)化的發(fā)展中都應用廣泛。因為超聲波是一種縱向機械波所以是直線傳播并且符合反射和折射的特性。超聲波傳感器結(jié)構(gòu)簡單、體積小、經(jīng)濟并且方便集成化。利用超聲波以一定速度定向傳播等特性設(shè)計的超聲波測距主要應用在建筑施工現(xiàn)場測量、倒車提醒等防撞系統(tǒng)、移動機器人定位等。超聲波測距具有可靠性、精度可控、應用廣、高效等優(yōu)點。 FPGA是現(xiàn)場可編程門陣列,I/O口多、能夠并行運算、集成度高。常用的門電路或者是復雜組合邏輯電路都能用簡單的程序?qū)崿F(xiàn)。利用FPGA能簡便控制時序的特點本文對超聲波的特性設(shè)計了基于F
2、PGA的測距系統(tǒng),通過FPGA中的全局的時鐘分頻信號處理對超聲波信號的收發(fā)有準確的控制。在一定的工作環(huán)境下,通過測量超聲波往返時間已知超聲波的傳播速度就能計算出來與目標物的距離。 關(guān)鍵詞:超聲波測距;FPGA;分頻 Abstract With the development of people's quality of life is getting higher and higher, many things are pursuing convenience and efficiency, ranging is widely used in the developm
3、ent of computer, robot and other industrialization. Because ultrasound is a longitudinal mechanical wave, it propagates in a straight line and conforms to the characteristics of reflection and refraction. The ultrasonic sensor is simple in structure, small in size, economical and easy to integrate.
4、Ultrasound ranging, which is designed with the characteristics of directional propagation of ultrasound at a certain speed, is mainly used in anti-collision systems such as building construction site measurement, reverse warning, mobile robot positioning and so on. Ultrasound ranging has the advanta
5、ges of reliability, controllable accuracy, wide application and high efficiency.. FPGA is a field programmable gate array with many I/O ports, parallel operation and high integration., parallel computing, and high integration. Commonly used gate circuits or complex combinational logic circuits can
6、be implemented with simple programs.This paper designs a distance measurement system based on FPGA, which can control the time sequence conveniently by using the characteristics of FPGA. It can control the sending and receiving of the ultrasonic signal accurately through the global clock frequency d
7、ivision signal processing in the FPGA., the distance from the target can be calculated by measuring the time of ultrasonic round trip and the speed of ultrasonic propagation. Keywords: Ultrasonic ranging, FPGA,F(xiàn)requency division 目 錄 摘 要 Abstract 第1章 緒論 1 1.1研究目的與意義 1 1.2國內(nèi)外研究現(xiàn)狀 1 1.2.1
8、無損檢測技術(shù) 1 1.2.2 定位和避障 2 1.2.3回波處理方法 2 1.2.3超聲波發(fā)射脈沖 3 第2章 超聲波原理和超聲波傳感器 3 2.1超聲波原理 3 2.2超聲波傳感器 5 第3章 FPGA系統(tǒng)設(shè)計 7 3.1 FPGA簡介 7 3.2 FPGA工作原理和特點 8 第4章 VHDL軟件系統(tǒng)設(shè)計 8 4.1驅(qū)動超聲波模塊 9 4.2 分頻 9 4.3 七段數(shù)碼管顯示 10 4.4 超聲波測距結(jié)果 12 第5章 總結(jié)與展望 13 5.1 總結(jié) 13 5.2 展望 13 致 謝 15 第1章 緒論 1.1研究目的與
9、意義 科技的發(fā)展使得我們的生活智能化自動化工業(yè)水平也逐漸提高,也有越來的越多需要用到測距的地方。電子測量的技術(shù)也越來越多樣越來越精確,非接觸測距系統(tǒng)在當代以及被應用到各個領(lǐng)域當中,非接觸測距是不與目標物表面接觸的情況下,用電磁或者光電進行測量距離的一種方法。與傳統(tǒng)的測量方式相比操作更加方便、測量的距離范圍越大、安全系數(shù)越高、測量的數(shù)據(jù)更加準確。 利用超聲波測距的技術(shù)在作業(yè)的過程中不會產(chǎn)生物理接觸。而且現(xiàn)在生產(chǎn)力不斷提高,超聲波傳感器不需要花費太多的成本即可購得,這也導致了其在各個工業(yè)方面需求也越來越大,例如建造房屋橋梁和道路、測繪地形圖、開挖礦山、交通等方面的防撞裝置以及機械內(nèi)部的檢測。
10、 本次研究主要是利用超聲波在一定環(huán)境下直線傳播超聲波還具有不受光、電磁波以及粉塵干擾的特性,它的傳播方式是直線式的,同時其傳播所需要耗費的能量極少,因為能夠傳播的距離也比較長,通常來說其對物體不存在太大影響或是損害。而且超聲波測距的計算處理比較簡單迅速,系統(tǒng)設(shè)計比較實用,傳感器價格低廉,能夠?qū)崟r控制。因此超聲波測距是個很好的選擇。 1.2國內(nèi)外研究現(xiàn)狀 對超聲波的研究有足夠關(guān)注是源于1912年游艇碰撞冰山沉沒后造成了巨大的損失,為此科學家提出為了預測冰山進行的研究。近年超聲波的研究也越來越深入。我國對超聲波的研究大約是在1956年,并深入了各個領(lǐng)域有部分項目的水平能達到國際標準。 國內(nèi)外
11、的科研人員對超聲波測距系統(tǒng)進行了研究,一方面是對提高超聲波測距的精度對回波的算法和溫度影響的誤差的研究另一方面是對超聲波傳感器的研究,還有超聲波發(fā)射的脈沖的種類。使系統(tǒng)計算更加快速簡單、測量結(jié)果更加精確范圍越大等等都是科研人員一直研究的方向。 1.2.1 無損檢測技術(shù) 超聲波因為其在傳播過程中沒有物理接觸,因此被開發(fā)用來進行無損檢測,這種檢測方式擁有極佳的便利性,因為這種便利性也導致極大的經(jīng)濟效益。應用在國防、宇航、原子能產(chǎn)品中能能夠使產(chǎn)品增值。德國的奔馳公司和日本的小汽車生產(chǎn)在經(jīng)過無損檢測后的質(zhì)量都有很大的提升,這種新型的檢測技術(shù)現(xiàn)在已經(jīng)逐漸在全球范圍內(nèi)開始普及。對于提高產(chǎn)品質(zhì)量、對產(chǎn)品
12、的加工制造,檢驗成品和設(shè)備壽命等方面,美國前總統(tǒng)里根曾表明:“若是在美國過去的發(fā)展進程當中少了這樣優(yōu)秀的檢測手段,那么現(xiàn)在在全球范圍各個領(lǐng)域內(nèi)就不會處于領(lǐng)頭羊的地位”。德國的科學家也將無損檢測技術(shù)當做了機械產(chǎn)業(yè)的支柱之一。每年國內(nèi)外都會出版大量無損檢測的書籍、文獻,其中超聲波檢測占據(jù)大部分。在信息化為主流的時代仍需要計算機控制的產(chǎn)品也要通過對產(chǎn)品實時的監(jiān)控和定位都需要這項技術(shù),這說明超聲波檢測技術(shù)在當前的機械化制造中還是未來的數(shù)字化、智能化的信息時代都有研究熱點。 1.2.2 定位和避障 在軍事上無人機是一個非常依賴測距技術(shù)反饋的信息保障飛行的順利或是對目標物信息的掌握。測距為避障的基礎(chǔ),
13、有很多測距的技術(shù)包括無線射頻、超聲波、紅外線以及激光雷達等。因為這些技術(shù)不同的特性和成本的差異也決定了它應用在不同的部分。其中MB1043為超聲波避障傳感器,因為超聲波測距技術(shù)比較成熟,但它的測距距離比較短,而且對目標物的反射面有一定的要求所以在無人機中超聲波測距主要應用在測量無人機與地面的距離。 生活中超聲波測距廣泛的應用到汽車的倒車雷達上。以及出現(xiàn)的ACC自適應巡航系統(tǒng),這種智能化的控制系統(tǒng)這兩年國內(nèi)外研究無人駕駛汽車的熱點。個系統(tǒng)相比傳統(tǒng)定位,它能及時反饋前車及周圍車距并及時調(diào)整。 1.2.3回波處理方法 回波處理方法決定了測量回波的定位從而影響了測距的精度。超聲波回波的處理方法也
14、在不斷的完善當中。國內(nèi)學者童峰曾經(jīng)在其研究成果中提出過一種能夠在一定程度上將換能器的理論上和實際上相差的頻率特性大致估算出來的算法,其名為最小軍方自適應時延算法,通過此種算法能夠排除在信號輸出的過程由于信道所產(chǎn)生的干擾。國內(nèi)學者楊一春等人也曾經(jīng)以調(diào)頻變換和相關(guān)峰細化等原理為基礎(chǔ)提出過一種能夠快速而精準的估測時延的算法。此種算法若是能夠被應用的話,則必定能夠大大的降低時延誤差。程曉暢等提出這季節(jié)提取相關(guān)函數(shù)保羅和保羅峰細化的算法,關(guān)于超聲波換能器的特性對M序列參數(shù)進行改進。還提出及與FFT的偽隨機碼包絡(luò)相關(guān)快速時延的算法。這些算法與之前的相比減少了很多的計算量。國內(nèi)學者對回波信號的處理進行了諸多
15、研究且都有了各自不同的研究成果,這些不斷完善的理論以及技術(shù)使得測距技術(shù)越發(fā)的精準,越發(fā)的可靠。 1.2.3超聲波發(fā)射脈沖 理論上來講使用單脈沖的超聲波來進行測距是完全沒有任何問題的,但是一個脈沖的時間太短會隨時間消耗使得測量的距離降低,根據(jù)超聲波的特性降低頻率時可以增加測量的范圍同時測量的精度降低。為了解決這個問題程曉暢提出超聲波信號發(fā)射為選用偽隨機二進制序列,回波處理后獲得窄脈沖。杜曉提出用兩種超聲波同時測距的雙頻超聲測距方法,也能獲得窄脈沖。選擇合理的超聲波發(fā)射脈沖對超聲波測距系統(tǒng)的測量范圍和測量誤差上都有顯著的效果,但以上的方法還不能解決測量高精度的問題。 研究內(nèi)容與論文結(jié)構(gòu)
16、 第1章的主要內(nèi)容是對進行這項研究的目的以及這項研究具備的現(xiàn)實意義進行詳細的介紹,除此之外還有國內(nèi)外在此項技術(shù)上所應用的一些改進的操作以及他們提出的完善理論。 第2章敘述了此項技術(shù)的實現(xiàn)所依賴的原理當前所使用的超聲傳感器的內(nèi)部結(jié)構(gòu)。 第3章對FPGA實現(xiàn)的理論基礎(chǔ)以及其內(nèi)部結(jié)構(gòu)進行了詳實的敘述。 第4章的主要內(nèi)容是VHDL在測距中的使用。 第5章是總結(jié)性的章節(jié),最前文中所探討的內(nèi)容進行了總結(jié),對技術(shù)未來的發(fā)展前景進行了展望。 第2章 超聲波原理和超聲波傳感器 這里主要探究的是超聲波作為一種波在傳播的過程中所具備的各種特征,以及在測距技術(shù)中所進行應用應該遵循的原理。 2.1超聲
17、波原理 聲音是由機械振動產(chǎn)生的,并通過介質(zhì)傳遞能量。超聲波是一種物體振動時產(chǎn)生的聲波單位是HZ。聲波頻率在20HZ到20000HZ之間是我們能夠聽到的范圍,當聲波范圍在大于20000HZ時就可以叫這種人們聽不見的波叫超聲波。超聲波這種機械波在傳播的時候需要依賴介質(zhì),介質(zhì)可以使三種狀態(tài)的任何一種物質(zhì),其傳播速度會受到介質(zhì)密實程度的影響,在沒有介質(zhì)存在的真空中,其傳播速度為0,也就是不能在真空中傳播。在超聲波傳播過程中遇到不同介質(zhì)可能會有不同的波形形態(tài)。因為它是縱向的機械波所以它是直線傳播的這些波可以聚焦并服從了反射和折射定律。超聲波的周期是捕捉一個周期的時間,從一個周期到下一個周期的開始的時間
18、。周期的單位為時間,回波中典型值為0.1~0.5微秒。它的周期是由聲源決定的。 三種波形: (1) 縱波波形; (2) 橫波波形; (3) 表面波波形; 超聲波在傳播的過程中,若是其傳播所依賴的介質(zhì)發(fā)生改變的話,那么超聲波也會緊接著產(chǎn)生折射或者反射的情況,這體現(xiàn)了波的特性。同時傳播是需要能量的,波在傳播的過程中雖然速度不變,但是其所蘊含的能量會不斷的衰減,體現(xiàn)在數(shù)據(jù)上就是其頻率越來越低,波長越來越長。若是傳播介質(zhì)是均勻物質(zhì)的話,則其傳播路徑是一條直線。當介質(zhì)是液態(tài)的時候,超聲波能夠使微粒間互相作用,讓介質(zhì)提高溫度起到很好的攪拌作用,這種效應叫做空化作用。本次研究利用了超聲波在空氣中傳
19、播遇到固體障礙物發(fā)生反射的原理應用到測距當中。當然超聲波在空氣中的傳播速度也受到溫度的影響。 圖2.1.1 超聲波原理 受到空氣溫度的影響不同溫度超聲波的傳播速度也不同 超聲波在空氣中的傳播速度與溫度的關(guān)系是: v=331.5+0.6t (m/s) 溫度(℃) -20 -10 0 10 20 100 速度(m/s) 319 325 323 338 344 386 圖2.1.2 在空氣中超聲波傳播的速度和溫度的關(guān)系 2.2超聲波傳感器 超聲波之所以能被用來進行測距工作是因為其在傳播的過程中若是遇到障礙物則會發(fā)生反射,而其速度又是已知的,只要測出其
20、在發(fā)出以后到接收到反射回來的波所經(jīng)歷的這一段時間就能夠計算出傳感器和障礙物之間的距離。這種測距方式不會對目標物造成損害而且與目標物不接觸所以能極大改善了傳統(tǒng)測距方式的局限性和不便性。在傳感器中,通常利用壓電晶片來發(fā)射或者接收超聲波,這是其中一個重要的組成元件。探頭根據(jù)結(jié)構(gòu)的不同可以分為直探頭和斜探頭兩種,其中前者的波屬于縱向波,后者的波屬于橫波,此外,還有表面波探頭、蘭姆波探頭、雙探頭等。通常不同的探頭內(nèi)部的壓電晶片所使用的材料也不一致。此種傳感器有幾項重要的特性如下:(2)工作頻率,通常壓電晶片的共振頻率越高,則其工作頻率越高。(2)溫度:當傳感器工作的時候探頭使用的功率比較小所以長時間工作
21、不會受到影響。(3)靈敏度:由壓電晶片決定。想要靈敏度變高就是要增加機電耦合系數(shù)。 本次設(shè)計使用的是HC-SR04,它性能穩(wěn)定,小巧方便,基本滿足了本次設(shè)計的要求。除此之外還有SRF05、SRF02。 圖2.2.1 HC-SR04正面 圖2.2.2 HC-SR04反面 圖 HC-RS04的內(nèi)部結(jié)構(gòu)圖 HC-SR04提供了非接觸式的測距功能,它大致的測距范圍為2cm-400cm,精度三毫米。其工作時做遵循的原理如下:首先,輸入輸出接口發(fā)出十微妙的觸發(fā)信號,然后模塊開始工作,發(fā)射出八個頻率為四十千赫茲的方波,接下來檢測有沒有回波信號的輸入,如果有的話,就以EC
22、HO函數(shù)發(fā)出一個高電平,其持續(xù)時間為在超聲波的一次測距過程中所經(jīng)歷的時間,再根據(jù)它在固定的介質(zhì)中不變的傳播速度我們就能計算出傳感器到障礙物的距離。 電氣參數(shù) HC-SR04 工作電壓 DC 5V 工作電流 15mA 工作頻率 40KHZ 最遠射程 4m 最近射程 2cm 測量角度 15度 輸入觸發(fā)信號 10us的TTL脈沖 輸出回響信號 輸出TTL電平信號,與射程成正比 規(guī)格尺寸 45*20*15mm 圖2.2.3 HC-SR04的電氣參數(shù) 圖2.2.4 HC-SR04原理時序圖 一個短的超聲波脈沖在0時刻被一個物體反射。傳感器接收到
23、這個信號并將這個信號轉(zhuǎn)換成電信號。當回波信號消失時,下一個脈沖可以被傳輸。從上圖中可以看出當給trig輸入一個10us的觸發(fā)信號,接下來傳感器就會生成一個脈沖信號,其頻率為四十千赫茲,循環(huán)數(shù)量為八。當傳感器發(fā)出的脈沖信號遇到障礙物的時候反射形成回波信號會被echo檢測到這是回波電平從1變?yōu)?定時器停止定時。從發(fā)射脈沖信號到檢測到回波信號的這一段時間就可以用來計算傳感器到障礙物超聲波傳輸?shù)臅r間。由此可以得到超聲波脈沖的傳輸時間又已知傳播速度就可得到我們想要獲得的傳感器與障礙物之間的距離。公式:(高電平持續(xù)時間/2)*超聲波傳播速度=傳感器到障礙物的距離 圖2.2.5 超聲波原理框圖
24、 第3章 FPGA系統(tǒng)設(shè)計 3.1 FPGA簡介 這里主要對FPGA進行一定的介紹。FPGA是以其他的一些可以進行編程工作的期間為基礎(chǔ)所發(fā)展起來的一種綜合性的元件。全稱為現(xiàn)場可編程門陣列。若是在集成電路中使用它的話,可以將其作為半定制類型的電路來使用。這種器件和單片機相比較,他們在處理信息的過程中所發(fā)出的用于控制用途的控制信號并不一樣,F(xiàn)PGA的工作方式是純硬件式的,在其中不涉及一些軟件方面的機制,而單片機不一樣,單片機系統(tǒng)本身在設(shè)計的過程中就像寫入一定的程序,而且兩者的運行速度也并不一致,在單片機的內(nèi)部,工作的時候始終處于單線程的狀態(tài),所有的工作只能按照順序來進行,當前任務沒有完
25、成的時候,不能進行下一步的工作,而FPGA內(nèi)部是允許多個任務共同進行的,屬于并發(fā)式的工作方式,相對來說工作效率更高,運行速度更快。 3.2 FPGA工作原理和特點 通常FPGA由邏輯單元陣列構(gòu)成,其內(nèi)部包含有諸多的邏輯模塊,比方說,IOB,CLB等等。此器件本身具備了變成的功能,相比起PAL,GAL等來說它的內(nèi)部結(jié)構(gòu)并不同,其本身所具備的一些特征如下: 1)在設(shè)計專用集成電路的時候可以直接使用FPGA來進行設(shè)計,在這個過程中,用戶可以不必經(jīng)過投片生產(chǎn)即可獲取具有足夠的適用性的芯片。 2)可以在其他的專用集成電路中起到中試樣片的作用。 3)其內(nèi)部結(jié)構(gòu)中含有許多輸入輸出引腳以及觸發(fā)
26、器。 4)在設(shè)計開發(fā)專用集成電路的所有方法中,F(xiàn)PGA屬于效率最高,成本最低的方法之一。 5)其中用到了CMOS的工藝,相對來說能量消耗低,和CMOS或者TTL的電平能夠擁有極佳的兼容性。 現(xiàn)在能夠生產(chǎn)FPGA的廠商有很多,比方說Altera、Actel等等,這里使用的是Altera實現(xiàn)的超聲波測距系統(tǒng)。 CPLD和FPGA兩種結(jié)構(gòu)進行對比,前者更適用于對觸發(fā)器的需求比較高的結(jié)構(gòu),而后者更適用于對算法以及邏輯的需求比較高的結(jié)構(gòu)。前者在時序方面的邏輯增加縝密,后者因為其本身分布式的結(jié)構(gòu)導致了其無法預測延時的大小。在編程方面,前者的靈活性更高,只需要在內(nèi)部更改布線的方式就可以完成各
27、種編程工作。 3.3 FPGA的結(jié)構(gòu) FPGA由兩個基本單元構(gòu)成,其一是查找表,在編譯代碼的時候用到,其二是寄存器,用于儲存功能。這里以Altera公司所研發(fā)出來的LE系列為例進行說明,一個LE里面有一個4輸入的超招標,同時加上一個寄存器。也可以說是FPGA是基于SRAM結(jié)構(gòu)的,對FPGA的邏輯編程,相當一部分就是對SRAM編程。 1、 可編程I/O I/O部分可以理解為芯片和其它電路連接的部分。當FPGA需要和外部不同的器件相連接的時候需要搭配不同特性的器件標準包括阻抗特性,上下拉電阻還有驅(qū)動電流。一些I/O標準要求vcc和vref電壓,這些電壓由外部提供,并連接到服務的
28、設(shè)備插腳上。對于在給定的區(qū)域內(nèi)合并I/O標準存在限制,參考電平引腳在不同的bank是獨立的。 圖3.3.1 FPGA的基本結(jié)構(gòu) 2、 可編程邏輯單元 FPGA是可編程邏輯器件,用于信號處理,邏輯聯(lián)合。FPGA只是一個芯片,外圍配套的電路要自己設(shè)計,編程也比較復雜,做大系統(tǒng)的時候單靠FPGA是不可能的,涉及到各種各樣的通信,網(wǎng)絡(luò),還有大量的數(shù)字量,模擬量。 3、 嵌入式RAM 由于FPGA中有內(nèi)嵌的RAM這個隨機存儲器它能使得FPGA能夠利用這個RAM使用的范圍更大。RAM可以配位單雙端口、內(nèi)容地址存儲器還有FIFO。不同的芯片內(nèi)部的RAM數(shù)量也是不同的,多個RA
29、M能組成更大的RAM。 4、 布線資源 布線資源連接著FPGA所有的模塊它分為(1)全局性布線資源對整個器件的時鐘的控制管理。(2)長線/短線資源一個是器件區(qū)域的信號和時鐘信號的布線一個是邏輯單元間的互連。(3)一些其他的信號控制線。在設(shè)計的時候布線器會對應邏輯網(wǎng)表上的邏輯自動的連接這些模塊。 5、 底層嵌入專用硬核 底層內(nèi)嵌模塊由DLL、PLL、DSP等組成。對于時鐘的高精度分頻和倍頻還有設(shè)置占空比移相等DLL可以完成。LatTice公司將PLL和DLL集成在一塊芯片上,它們由IP核管理配置。 圖3.3.2 DLL模塊 3.4 Cyclone Ⅳ EP4CE11
30、5開發(fā)板 本次設(shè)計使用的是Altera公司的EP4CE115型號的開發(fā)板,以FPGA為控制器結(jié)合收發(fā)一體的HC-SR04超聲波測距傳感器進行測距。這個系統(tǒng)包括了超聲波測距模塊、FPGA模塊、電源、溫度測量模塊。由于在實驗中環(huán)境相同所以溫度的誤差可以忽略不計。DE2系列的開發(fā)平臺有豐富的邏輯資源,大容量的存儲器、功耗低、能和各種外設(shè)相連接滿足不同的需求。Cyclone Ⅳ EP4CE115為FPGA的最大器件。這個芯片有114480個邏輯單元,3.9Mbits的隨機存儲器、226個乘法器。 圖3.4.1 Cyclone Ⅳ EP4CE115 3.5 FPGA 內(nèi)部電路模塊 第
31、4章 VHDL軟件系統(tǒng)設(shè)計 VHDL是用于數(shù)字系統(tǒng)的編碼模型。VHDL是一種編程語言,它允許在動態(tài)環(huán)境中建模和開發(fā)復雜的數(shù)字系統(tǒng),它描述了數(shù)字的結(jié)構(gòu)及其相應的功能。在電子工程這個領(lǐng)域里面,一個相對來說完整度比較高的VHDL程序由庫、程序包、實體、構(gòu)造體、配置等組成。 VHDL與其他語言相比塊內(nèi)語句執(zhí)行是同時進行的,它能夠?qū)⒉煌瑢哟蔚碾娐访枋龀鰜?,同一期間還可以根據(jù)自身的需求來對數(shù)據(jù)類型進行定義,從而使得設(shè)計能夠更加的自由。大多數(shù)EDA工具都支持VHDL,在設(shè)計過程中它方便閱讀能夠修改設(shè)計比較靈活。它能被不同的工具支持所以移植能力很強。 根據(jù)FPGA模塊化的繼承設(shè)計方法超聲波測距系統(tǒng)采用L
32、ibero Soc集成開發(fā)。軟件上是使用從上到下的模塊化設(shè)計方法,這里使用VHDL實現(xiàn)。軟件程序分成5個部分:主模塊、驅(qū)動超聲波模塊、分頻、7段數(shù)碼管顯示 圖4.0.1 軟件編寫頁面 圖4.0.2 測距模塊的I/O clk:為系統(tǒng)時鐘信號。 echo:當傳感器發(fā)射出的超聲波遇到目標物的時候反射的回波再輸入到傳感器中。 trig:接收觸發(fā)信號使得傳感器內(nèi)部產(chǎn)生脈沖信號。 seg[0...3]是計算出傳感器到目標物體的距離的數(shù)碼管對應顯示數(shù)據(jù)。 4.1驅(qū)動超聲波模塊 模塊功能:獲得測量的距離 參數(shù)說明:clk:1MHz系統(tǒng)時鐘信號 echo:回響輸入 trig:觸發(fā)信
33、號,觸發(fā)時間約為12us Dis:輸出測量的時間,單位為1us L = Dis*340/2/10^6m module MessureDistance(clk,echo,trig,Dis); input clk; //輸入1MHz系統(tǒng)時鐘信號; input echo; //超聲波回響信號輸出 output reg trig; //超聲波的觸發(fā) output reg[15:0]Dis; //輸出測得的距離,精度2mm,可測0~4000mm reg [15:0]count1; //計數(shù)器,計數(shù)到12時,得到12us時間
34、,發(fā)出高電平觸發(fā)超聲波模塊 reg [15:0]count2; //計數(shù)器,用于 計算回響信號持續(xù)的時間,單位:us reg [15:0]temp,temp1;//初始化時將觸發(fā),回響都置0 initial begin trig <= 0; count1 <= 0; count2 <= 0; End 這個模塊是驅(qū)動超聲波的功能以獲得測量的距離。輸出的Dis信號會時刻變化,所以使用的時候要對簡單的范圍進行補繳,每單位發(fā)射和接收的信號時間為1us,這樣距離L = Dis*340/2/10^6m 4.2 分頻 module DevideF
35、requency_1MHz( input CLK, //輸入系統(tǒng)50MHz時鐘信號 output clk_1MHz //輸出1MHz時鐘信號 ); reg [4:0]count; //用作分頻,將50MHz分成1MHz reg clock; initial count = 0; always@(posedge CLK) begin if(count == 5'b11001) begin count = 1'b0; clock = ~clock; end else count
36、 = count + 1'b1; end assign clk_1MHz = clock; Endmodule 4.3 七段數(shù)碼管顯示 模塊功能:七段數(shù)碼管的譯碼顯示 參數(shù)說明: iflag:0:共陰;1:共陽 iA: 四位數(shù)據(jù)輸入 oY: 數(shù)碼管的七段輸出 module seg_decoder(iflag,iA,oY); input iflag; input [3:0] iA; output reg [7:0] oY; always @(iflag or iA) begin case (iA) 4'b0000:oY = 8'h3f;
37、//0 4'b0001:oY = 8'h06; //1 4'b0010:oY = 8'h5b; //2 4'b0011:oY = 8'h4f; //3 4'b0100:oY = 8'h66; //4 4'b0101:oY = 8'h6d; //5 4'b0110:oY = 8'h7d; //6 4'b0111:oY = 8'h27; //7 4'b1000:oY = 8'h7f; //8 4'b1001:oY = 8'h6f; //9 4'b1010:oY = 8'h77; //A 4'b1011:oY
38、= 8'h7c; //B 4'b1100:oY = 8'h58; //C 4'b1101:oY = 8'h5e; //D 4'b1110:oY = 8'h79; //E 4'b1111:oY = 8'h71; //F endcase if (!iflag) oY = ~oY; end Endmodule 4.4 主模塊 always @(Dis) begin d2 <= Dis*340/2000; end seg_decoder seg_1(1'b0,d2[3:0],D1[7:0]); seg_decoder seg_2
39、(1'b0,d2[7:4],D1[15:8]); seg_decoder seg_3(1'b0,d2[11:8],D1[23:16]); seg_decoder seg_4(1'b0,d2[15:12],D1[31:24]); always @(posedge c) begin if (count==2'b11) count = 0; else count = count+1'b1; end always @(posedge c) case(count) 2'b00: begin seg0 <= D1[7:0]; end 2'b01:
40、begin seg1 <= D1[15:8]; end 2'b10: begin seg2 <= D1[23:16]; end 2'b11: begin seg3 <= D1[31:24]; end 4.5 超聲波測距結(jié)果 圖4.4.1 超聲波測距實驗結(jié)果1 超聲波測距較為精確的最小值4cm。 圖4.4.2 超聲波測距實驗結(jié)果2 超聲波測距較精準的數(shù)據(jù)8cm。 圖4.4.3 超聲波測距實驗結(jié)果3 第5章 總結(jié)與展望 5.1 總結(jié) 本次研究主要以FPGA為搭建平臺的超聲
41、波測距系統(tǒng)的設(shè)計,相比較其他以單片機為搭建平臺設(shè)計的超聲波測距系統(tǒng),F(xiàn)PGA的時序性更好使用頻率計數(shù)測得傳感器與障礙物之間的超聲波傳輸時間計算得到它們之間的距離。 (1) 了解超聲波的特性和研究超聲波傳感器HC-SR04的內(nèi)部結(jié)構(gòu)以及它的工作原理,包括引腳接收的信號。 (2) 了解FPGA的基本結(jié)構(gòu)、特性和使用方法。使用了Altera公司的EP4CE115E29C7N型號的FPGA搭建超聲波測距系統(tǒng)的設(shè)計平臺。 (3) 使用VHDL硬件語言,分模塊設(shè)計從頂層到底層子模塊到主模塊。模塊分為主模塊、驅(qū)動超聲波模塊、分頻、7段數(shù)碼管顯示等結(jié)合超聲波傳感器HC-SR04完成系統(tǒng)。 該測距系
42、統(tǒng)使用HC-SR04超聲波傳感器設(shè)計的簡便實時的較近距離的超聲波測距功能 5.2 展望 這個系統(tǒng)在設(shè)計上初步的達到了超聲波測距的要求,不過在需要測量的距離相對來說比較長的時候可能精度比較差,因為實際環(huán)境中可能出現(xiàn)的影響因素太多,若要將其落實到生產(chǎn)實際中的話,還需要根據(jù)具體的情況在各個方面加以改進。使用的FPGA可編程邏輯器件也可能會受到環(huán)境局的干擾。之后也可以結(jié)合實際的應用類似于倒車可以加入報警系統(tǒng)來起到提示的作用。 隨著科學技術(shù)的發(fā)展,超聲波在傳感器中的應用越來越廣。并且超聲波傳感器的價格比較低廉,所以超聲波傳感器能在生活和工業(yè)上得到很好的應用?,F(xiàn)在的傳感技術(shù)比較有限,還有足夠的上升空
43、間和無限發(fā)展的前景。在未來為了滿足日益發(fā)展的社會需求它的精度可以更高能夠測量的范圍更大。在無人機方面它已經(jīng)被應用其中還有聲納等在海洋軍事等方面的應用,能夠研發(fā)出高精度的被動測距聲納,以在海洋中完成隱藏和攻擊的準備工作和識別目標的效果,解決潛艇的噪聲較大的問題。超聲波傳感器結(jié)合未來的各個方面的智能化和自動化并和其它的傳感器結(jié)合成多傳感器,傳感器的技術(shù)和科技的發(fā)展傳感器會具有多種判斷功能,之后可能還有學習功能為滿足社會的需要發(fā)揮更大的作用。 參考文獻 [1] 吳超. 基于FPGA的超聲波測距系統(tǒng)[D]. 武漢理工大學, 2009. [2] Hung M H , Chen Y T ,
44、 Cheng J Y , et al. Development Scheme of SoPC-Based Reconfigurable Controllers[C]// IEEE International Conference on Networking. IEEE, 2006. [3] 李戈, 孟祥杰, 王曉華, et al. 國內(nèi)超聲波測距研究應用現(xiàn)狀[J]. 測繪科學, 2011, 36(4):60-62. [4] Joshi N N, Dakhole P K, Zode P P. Embedded Web Server on Nios II Embedded FPGA Platf
45、orm[C]// Second International Conference on Emerging Trends in Engineering & Technology. 2009. [5] 蘇煒, 龔壁建, 潘笑. 超聲波測距誤差分析[J]. 傳感器技術(shù), 2004, 23(6):8-11. [6] 胡建愷, 張謙琳. 超聲檢測原理和方法[M]. 1. [7] 李茂山. 超聲波測距原理及實踐技術(shù)[J]. 實用測試技術(shù), 1994(1):12-20. [8] 蘇舟. FPGA-現(xiàn)場可編程門陣列[J]. 微處理機, 1993(1):61-62. [9] 莊靜竹. EDA技術(shù)中的硬
46、件描述語言——Verilog HDL[J]. 廈門理工學院學報, 2001, 9(4):68-73. [10] 王紅云, 姚志敏, 王竹林, et al. 超聲波測距系統(tǒng)設(shè)計[J]. 儀表技術(shù), 2010(11):47-49. [11] 楊恒. FPGA/CPLD最新實用技術(shù)指南[M]. 清華大學出版社, 2005. 致 謝 首先我要感謝我的指導老師張國萍,在我做畢業(yè)設(shè)計初期的時候老師沒有做過多干預,讓自己搜索的資料理解完成了開題,之后和我討論了畢業(yè)設(shè)計的大致方向老師很希望我能及早開始畢業(yè)設(shè)計并給了一些建議,但是我在完成過程效率不高老師幫助
47、了很多。我的思路不是很清晰,經(jīng)過老師的幫忙,讓我具體完成時思路逐漸清晰。在承擔繁重的教學和工作任務的狀況下,她主動關(guān)心我畢業(yè)設(shè)計的進度。從論文的選題、開題報告的撰寫、資料的查找,完成設(shè)計,都給予指導。在完成初稿后,老師認真查看了我的文章,指出了我存在的很多問題。在此十分感謝張老師的細心指導,才能讓我順利完成畢業(yè)設(shè)計。 與此同時,我要感謝我的母校,學校提供了學習成長的良好環(huán)境,多樣的活動鍛煉了我多方面的發(fā)展。之后我想要感謝我的兩個班主任,認真的任課老師、負責的院領(lǐng)導和輔導員、還有朝夕相處的同學,互相學習互相幫助成長了許多。最后想要感謝我的父母家人,養(yǎng)育著我支持著我讓我投入到學習中。同時在百忙之
48、中評閱論文和參加答辯的各位專家、教授! 張潤玥 2018年5月10日 附錄 1、超聲波測距主程序 module Messure_Test(Clock,echo,trig,seg1,seg0,seg2,seg3); input Clock; output trig; input echo; output [7:0]seg0; output [7:0]seg1; output [7:0]seg2; output [7:0]seg3; reg [7:0]seg0; reg [7:0]seg1; reg [7:0]seg2;
49、 reg [7:0]seg3; wire [15:0]Dis; wire [31:0]D1; reg [15:0]d2; reg [1:0]count; wire clk; wire iclk; wire c; initial begin seg0[7] = 1'b1; seg1[7] = 1'b1; seg2[7] = 1'b1; seg3[7] = 1'b1; // AN <= 4'b1111; count <= 0; end DevideFrequency_1MHz unit1(Clock,clk);
50、 DevideFrequency_1MHz unit2(clk,iclk); DevideFrequency_1MHz unit3(iclk,c); MessureDistance M(clk,echo,trig,Dis); always @(Dis) begin d2 <= Dis*340/2000; end seg_decoder seg_1(1'b0,d2[3:0],D1[7:0]); seg_decoder seg_2(1'b0,d2[7:4],D1[15:8]); seg_decoder seg_3(1'b0,d2[11:8],D1[23:16]); seg
51、_decoder seg_4(1'b0,d2[15:12],D1[31:24]); always @(posedge c) begin if (count==2'b11) count = 0; else count = count+1'b1; end always @(posedge c) case(count) 2'b00: begin seg0 <= D1[7:0]; end 2'b01: begin seg1 <= D1[15:8]; end 2'b10: begin seg2 <= D1[23:16]
52、; end 2'b11: begin seg3 <= D1[31:24]; end endcase endmodule 2、 分頻 module DevideFrequency_1MHz( input CLK, output clk_1MHz ); reg [4:0]count; reg clock; initial count = 0; always@(posedge CLK) begin if(count == 5'b11001) begin count =
53、 1'b0; clock = ~clock; end else count = count + 1'b1; end assign clk_1MHz = clock; endmodule 3、 七段數(shù)碼管譯碼顯示 module seg_decoder(iflag,iA,oY); input iflag; input [3:0] iA; output reg [7:0] oY; always @(iflag or iA) begin case (iA) 4'b0000:oY = 8'h3f; //0 4'b
54、0001:oY = 8'h06; //1 4'b0010:oY = 8'h5b; //2 4'b0011:oY = 8'h4f; //3 4'b0100:oY = 8'h66; //4 4'b0101:oY = 8'h6d; //5 4'b0110:oY = 8'h7d; //6 4'b0111:oY = 8'h27; //7 4'b1000:oY = 8'h7f; //8 4'b1001:oY = 8'h6f; //9 4'b1010:oY = 8'h77; //A 4'b1011:oY = 8'h7c; //
55、B 4'b1100:oY = 8'h58; //C 4'b1101:oY = 8'h5e; //D 4'b1110:oY = 8'h79; //E 4'b1111:oY = 8'h71; //F endcase if (!iflag) oY = ~oY; end endmodule 4、 驅(qū)動超聲波以及測量距離 module MessureDistance(clk,echo,trig,Dis); input clk; input echo; output re
56、g trig; output reg[15:0]Dis; reg [15:0]count1; reg [15:0]count2; reg [15:0]temp,temp1; initial begin trig <= 0; count1 <= 0; count2 <= 0; //count3 <= 0; end always @(posedge clk) begin if(count1 == 16'hffff) count1 = 0; else count1 = count1 + 1
57、'b1; end always @(posedge clk) begin if(count1 == 16'b0000_0000_0000_0000) trig = 1'b1; if(count1 == 16'b0000_0000_0000_1010) trig = 1'b0; end always @(posedge clk) begin if(echo == 1'b1) count2 = count2+1'b1; else count2 = 1'b0; end always @(neged
58、ge echo) begin temp1 = count2; end always @(negedge echo) begin if(temp1-temp>2'b11|temp-temp1>2'b11) temp = temp1; end always @(posedge clk) begin end always @(posedge clk) begin Dis = temp; end endmodule 5、 管腳配置 Clock Input PIN_Y2 2 B2_N0 2.5 V
59、(default) 8mA (default) echo Input PIN_AB22 4 B4_N0 2.5 V (default) 8mA (default) seg0[7] Output 2.5 V (default) 8mA (default) 2 (default) seg0[6] Output PIN_H22 6 B6_N0 2.5 V (default) 8mA (default) 2 (default) seg0[5] Output PIN_J22 6 B6_N0 2.5 V (default) 8mA (default) 2 (de
60、fault) seg0[4] Output PIN_L25 6 B6_N1 2.5 V (default) 8mA (default) 2 (default) seg0[3] Output PIN_L26 6 B6_N1 2.5 V (default) 8mA (default) 2 (default) seg0[2] Output PIN_E17 7 B7_N2 2.5 V (default) 8mA (default) 2 (default) seg0[1] Output PIN_F22 7 B7_N0 2.5 V (default) 8mA (defaul
61、t) 2 (default) seg0[0] Output PIN_G18 7 B7_N2 2.5 V (default) 8mA (default) 2 (default) seg1[7] Output 2.5 V (default) 8mA (default) 2 (default) seg1[6] Output PIN_U24 5 B5_N0 2.5 V (default) 8mA (default) 2 (default) seg1[5] Output PIN_U23 5 B5_N1 2.5 V (default) 8mA (default) 2
62、(default) seg1[4] Output PIN_W25 5 B5_N1 2.5 V (default) 8mA (default) 2 (default) seg1[3] Output PIN_W22 5 B5_N0 2.5 V (default) 8mA (default) 2 (default) seg1[2] Output PIN_W21 5 B5_N1 2.5 V (default) 8mA (default) 2 (default) seg1[1] Output PIN_Y22 5 B5_N0 2.5 V (default) 8mA (def
63、ault) 2 (default) seg1[0] Output PIN_M24 6 B6_N2 2.5 V (default) 8mA (default) 2 (default) seg2[7] Output 2.5 V (default) 8mA (default) 2 (default) seg2[6] Output PIN_W28 5 B5_N1 2.5 V (default) 8mA (default) 2 (default) seg2[5] Output PIN_W27 5 B5_N1 2.5 V (default) 8mA (default)
64、 2 (default) seg2[4] Output PIN_Y26 5 B5_N1 2.5 V (default) 8mA (default) 2 (default) seg2[3] Output PIN_W26 5 B5_N1 2.5 V (default) 8mA (default) 2 (default) seg2[2] Output PIN_Y25 5 B5_N1 2.5 V (default) 8mA (default) 2 (default) seg2[1] Output PIN_AA26 5 B5_N1 2.5 V (default) 8mA
65、(default) 2 (default) seg2[0] Output PIN_AA25 5 B5_N1 2.5 V (default) 8mA (default) 2 (default) seg3[7] Output 2.5 V (default) 8mA (default) 2 (default) seg3[6] Output PIN_Y19 4 B4_N0 2.5 V (default) 8mA (default) 2 (default) seg3[5] Output PIN_AF23 4 B4_N0 2.5 V (default) 8mA (de
66、fault) 2 (default)
seg3[4] Output PIN_AD24 4 B4_N0 2.5 V (default) 8mA (default) 2 (default)
seg3[3] Output PIN_AA21 4 B4_N0 2.5 V (default) 8mA (default) 2 (default)
seg3[2] Output PIN_AB20 4 B4_N0 2.5 V (default) 8mA (default) 2 (default)
seg3[1] Output PIN_U21 5 B5_N0 2.5 V (default) 8mA (default) 2 (default)
seg3[0] Output PIN_V21 5 B5_N1 2.5 V (default) 8mA (default) 2 (default)
trig Output PIN_AC15 4 B4_N2 2.5 V (default) 8mA (default) 2 (default)
<
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際商法第五講國際貨物買賣法課件
- 金牌客服投訴調(diào)解員課件
- 過敏性紫癜病案討論課件
- 《英語》(新標準)(供三年級起始用)第四模塊第九模塊第二單元Samhadchocolatebiscuits
- 1原子吸收光譜分析A
- 幼兒園區(qū)角環(huán)境的創(chuàng)設(shè)1
- 數(shù)據(jù)挖掘技術(shù)十課Bayes分類方法
- 精神科進修總結(jié)
- 最新隧道施工技術(shù)指南培訓課件
- HAPPYBIRTHDAY課件之一
- 免疫組化的原理與操作
- 詩海拾貝與詩同行課件
- 落花生徐書婷
- 第5課_“和同為一家”PPT(教育精品)
- 電力網(wǎng)無功補償節(jié)能技術(shù)改造及維護