劉 君, 伍 璨, 吳思聰
(天津理工大學(xué) 電子信息工程學(xué)院,天津 300384)
?
基于FPGA的多通道超聲波測距系統(tǒng)設(shè)計(jì)
劉君, 伍璨, 吳思聰
(天津理工大學(xué) 電子信息工程學(xué)院,天津300384)
超聲波測距是一種非接觸式連續(xù)測量方法,具有電路簡單、測量精度高等優(yōu)點(diǎn);傳統(tǒng)的測距系統(tǒng)多采用單片機(jī)實(shí)現(xiàn),無法滿足現(xiàn)代測距實(shí)時(shí)性、立體化、多向性的要求;因此設(shè)計(jì)了一種基于FPGA的多通道超聲波測距系統(tǒng),所有通道同時(shí)進(jìn)行檢測與處理,系統(tǒng)具有較高的擴(kuò)展性;硬件部分采用US_100超聲波傳感器實(shí)現(xiàn)了超聲信號(hào)的發(fā)射與接收,采用京微雅格C192芯片對回波信號(hào)進(jìn)行檢測和處理,實(shí)現(xiàn)了從2厘米到4米的距離的精確測量,測量結(jié)果送入LCD12864進(jìn)行顯示;軟件設(shè)計(jì)采用Verilog HDL語言在Primace編輯環(huán)境下進(jìn)行開發(fā),在Modelsim軟件下進(jìn)行仿真,并通過HR3開發(fā)板驗(yàn)證了全部設(shè)計(jì)功能;測試結(jié)果表明:該測距系統(tǒng)運(yùn)行穩(wěn)定可靠,測量精度高。
現(xiàn)場可編程門陣列;多通道;回波信號(hào)處理;超聲波
超聲波具有穩(wěn)定性強(qiáng)、易于制造、價(jià)格低廉、無輻射等優(yōu)點(diǎn),在多個(gè)領(lǐng)域有著廣泛應(yīng)用[1]。通常諧振頻率高于20 kHz的聲波稱為超聲波,頻率越高,反射能力越強(qiáng),而繞射能力越弱[1-2]。利用超聲波的這種特性,常常用渡越時(shí)間檢測法進(jìn)行距離的測量[3-4]。傳統(tǒng)設(shè)計(jì)方法多基于單片機(jī)設(shè)計(jì),具有電路簡單,成本低等優(yōu)點(diǎn),但無法滿足現(xiàn)代測距立體化、多向性和實(shí)時(shí)性的要求[5-6]。本文設(shè)計(jì)了一種基于FPGA的多路超聲波測距系統(tǒng),采用渡越時(shí)間的測距原理,實(shí)現(xiàn)了四路超聲測距通道并行檢測、同時(shí)顯示,相對于傳統(tǒng)的測量方法提高了測距的速度與準(zhǔn)確度,且系統(tǒng)具有較高的擴(kuò)展性。
傳統(tǒng)的多通道超聲測距系統(tǒng)多采用控制器順序觸發(fā)超聲探頭并檢測其回波信號(hào),因此系統(tǒng)延時(shí)較大,無法真正實(shí)現(xiàn)多通道的同時(shí)檢測,因此本文設(shè)計(jì)了一種基于FPGA的多通道超聲波測距系統(tǒng),利用FPGA的并行處理的特點(diǎn),實(shí)現(xiàn)多通道并行檢測和處理,并將處理的結(jié)果送入LCD液晶顯示器進(jìn)行顯示,系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)框圖
1.1開發(fā)板CME_HR3及開發(fā)環(huán)境Primace
FPGA(Field Programmable Gate Array現(xiàn)場可編程門陣列)是在PAL,GAL,EPLD等可編輯器件基礎(chǔ)上發(fā)展的產(chǎn)物[7]。本次設(shè)計(jì)選用的CME_R系列HR03PN0C192I7芯片是一種高性價(jià)比的可編程邏輯器件,主要面向低功耗的應(yīng)用領(lǐng)域,擁有高性能、低成本的優(yōu)勢,其軟件開發(fā)環(huán)境是由國內(nèi)自主研發(fā)的Primace開發(fā)套件。Primace開發(fā)套件具有完整的EDA工具流程,自帶豐富的IP核資源,能有效地進(jìn)行快速研發(fā)設(shè)計(jì),縮短IC產(chǎn)品研發(fā)周期,可以快速高效地進(jìn)行FPGA或者CAP的應(yīng)用設(shè)計(jì)。
1.2US_100超聲波測距傳感器
US_100超聲波測距傳感器是一種非接觸式傳感器,可以實(shí)現(xiàn)2厘米到4.5米距離測量。將該模塊的工作電壓設(shè)定在3 V,即可以滿足低功耗的要求,也可實(shí)現(xiàn)與FPGA電平的匹配。同時(shí),由于內(nèi)部自帶溫度傳感器,可結(jié)合溫度對測距結(jié)果進(jìn)行校正,因此輸出信號(hào)不需再進(jìn)行溫度校準(zhǔn),減小后續(xù)的工作。該模塊可工作在串口觸發(fā)模式或者電平觸發(fā)模式,本次設(shè)計(jì)采用電平觸發(fā)模式進(jìn)行測距,圖2為電平觸發(fā)方式下US_100的時(shí)序圖。由時(shí)序圖可知,只要FPGA產(chǎn)生一個(gè)大于10 μs的觸發(fā)信號(hào),超聲波傳感器就可以發(fā)出 8個(gè)40 kHz 的超聲波脈沖,并對超聲回波信號(hào)進(jìn)行溫度修正,修正后的回波信號(hào)送入FPGA進(jìn)行后續(xù)處理。
圖2 US_100超聲波測距模塊工作時(shí)序圖
1.3LCD128*64液晶顯示屏
傳統(tǒng)的LED數(shù)碼管無法實(shí)現(xiàn)同時(shí)顯示各個(gè)通道的測量結(jié)果,因此本文選用了較為常用的LCD液晶顯示屏進(jìn)行測量結(jié)果的顯示。QC12864B點(diǎn)陣液晶顯示屏是一種內(nèi)部自帶中文字庫的點(diǎn)陣型液晶顯示模塊[8],其橫向可以顯示128個(gè)點(diǎn)、縱向可以顯示64個(gè)點(diǎn),由此得名128*64液晶點(diǎn)陣顯示,能夠滿足四路測量結(jié)果的同時(shí)顯示。
本設(shè)計(jì)采用Verilog HDL語言Primace開發(fā)環(huán)境下進(jìn)行軟件設(shè)計(jì)。整個(gè)系統(tǒng)可分為傳感器控制模塊、測距計(jì)數(shù)模塊、顯示模塊和頂層模塊,軟件設(shè)計(jì)框圖如圖3所示。
圖3 軟件設(shè)計(jì)框圖
2.1傳感器控制部分
為了使超聲測距模塊正常工作,該模通過FPGA要產(chǎn)生一個(gè)大于10 μs的觸發(fā)信號(hào)(Trig),并且能夠檢測傳感器的回波信號(hào)(Echo)。該模塊采用狀態(tài)機(jī)進(jìn)行設(shè)計(jì),如圖4所示,狀態(tài)機(jī)由5個(gè)狀態(tài)組成,在st0狀態(tài)完成對控制器的初始化;st1狀態(tài)負(fù)責(zé)產(chǎn)生觸發(fā)信號(hào);在st2狀態(tài)一旦檢測到echo信號(hào)為高電平,則立刻轉(zhuǎn)入到st3狀態(tài);在st3狀態(tài)下,當(dāng)檢測到Echo信號(hào)為高電平時(shí),啟動(dòng)計(jì)數(shù)器并完成對回波信號(hào)的測量,一旦檢測到Echo信號(hào)變?yōu)榈碗娖剑i存存測量的結(jié)果,并產(chǎn)生一個(gè)完成信號(hào);st4準(zhǔn)備下一次觸發(fā)。黃河系列HR03開發(fā)板上提供的晶振時(shí)鐘為20 MHz(周期為50 ns),而US_100要求的觸發(fā)信號(hào)維持時(shí)間大于10 μs,故對時(shí)鐘計(jì)數(shù)250次達(dá)到定時(shí)要求:
50 ns*250=12.5 μs;
(1)
圖4 控制器狀態(tài)轉(zhuǎn)移圖
2.2測距計(jì)數(shù)模塊
測距計(jì)數(shù)模塊主要功能是將超聲波傳感器的回波信號(hào)轉(zhuǎn)換為化測量的距離,傳統(tǒng)的測量方法都是通過測量超聲回波信號(hào)的時(shí)間,再用聲速乘以時(shí)間得到兩倍的測量距離。但在FPGA系統(tǒng)里,由于采用了硬件描述語言進(jìn)行設(shè)計(jì),按照傳統(tǒng)的設(shè)計(jì)方法將占用大量的FPGA資源,不利于系統(tǒng)的開發(fā)。因此在本次設(shè)計(jì)中采用一種預(yù)先計(jì)算的方法進(jìn)行數(shù)據(jù)測量,既保證了測量的精度又節(jié)省了FPGA的資源。超聲回波信號(hào)Echo高電平持續(xù)的時(shí)間是通過系統(tǒng)時(shí)鐘進(jìn)行測量的,根據(jù)US_100工作原理,從US_100傳回的Echo信號(hào)已經(jīng)轉(zhuǎn)化為340 m/s標(biāo)準(zhǔn)音速的時(shí)長,若系統(tǒng)頻率為20 MHz時(shí),則1 mm的距離需計(jì)個(gè)數(shù)為可由式(2)確定(其中聲速v為340 m/s,T為50 ns)。則N等于117.64,N取整數(shù)
(2)
117或者118。
則當(dāng)N=118時(shí),對應(yīng)的測距長度為:
340 m/s*50 ns*118/2=1.003 mm;
(3)
當(dāng)N=117時(shí),對應(yīng)測距長度為:
340 m/s*50 ns*117/2=0.995 mm;
(4)
通過上述計(jì)算可以發(fā)現(xiàn),當(dāng)采用118作為計(jì)數(shù)器的終值時(shí),會(huì)產(chǎn)生0.003 mm的數(shù)據(jù)偏差;當(dāng)采用117作為計(jì)數(shù)器的終值時(shí),會(huì)產(chǎn)生-0.005 mm的數(shù)據(jù)偏差。所以選擇118時(shí)系統(tǒng)誤差更小,更符合設(shè)計(jì)要求。當(dāng)毫米位(data1)測量完成后,后續(xù)的厘米位(data2)、分米位(data3)、米位(data4)的計(jì)數(shù)可遵循十進(jìn)制計(jì)數(shù)的法則,依次完成對超聲回波信號(hào)的測量與轉(zhuǎn)換。對測距計(jì)數(shù)模塊在Modelsim下進(jìn)行功能仿真。圖5為單通道的測距計(jì)數(shù)模塊仿真結(jié)果圖,如圖所示,可以確認(rèn)計(jì)數(shù)的過程是符合邏輯的,在Echo信號(hào)為高電平時(shí),計(jì)數(shù)器開始工作并進(jìn)行計(jì)數(shù),data1計(jì)數(shù)到9后data2準(zhǔn)確的產(chǎn)生進(jìn)位,當(dāng)計(jì)數(shù)完畢后在控制器產(chǎn)生一個(gè)Echo_done信號(hào)完成計(jì)數(shù),并對計(jì)數(shù)結(jié)果進(jìn)行鎖存。
圖5 計(jì)數(shù)模塊仿真圖
2.3128*64LCD液晶顯示控制模塊
該模塊采用狀態(tài)機(jī)設(shè)計(jì)方法,參照12864的工作狀態(tài)進(jìn)行設(shè)計(jì),首先進(jìn)行液晶顯示屏的初始化,然后在顯示屏上顯示出各個(gè)通道的測量結(jié)果,整個(gè)顯示過程循環(huán)進(jìn)行。選用的128*64LCD液晶顯示屏的指令執(zhí)行時(shí)間為72 μs,即兩條指令的輸入間隔應(yīng)大于72 μs,即此狀態(tài)機(jī)的時(shí)鐘頻率基準(zhǔn)應(yīng)小于13.8 KHz,因此選用12.5 KHz的時(shí)鐘作為基準(zhǔn),控制狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換,從而驅(qū)動(dòng)LCD顯示屏工作。送入的LCD_control模塊的數(shù)據(jù)是BCD碼,通過一個(gè)加法器加上30 H,實(shí)現(xiàn)數(shù)據(jù)到ASCII碼的轉(zhuǎn)換。圖6為液晶顯示模塊例化圖(調(diào)用了來自Quartus的例化圖),data1a~data4b依次為A、B、C、D四路傳感器測量所得毫米、厘米、分米、米位。dat[7..0]、en、rst、rw、PSB、rs為輸出信號(hào),與LCD顯示屏的管腳相連,實(shí)現(xiàn)對LCD的操作。圖7為控制模塊的仿真圖,可以看到在rs=0時(shí)輸出的是LCD的行定位指令,之后連續(xù)的輸出要顯示的字符與測量的結(jié)果。
圖6液晶顯示模塊例化圖
圖7 控制模塊仿真圖
2.4頂層模塊設(shè)計(jì)
本次設(shè)計(jì)使用的Priamce開發(fā)套件內(nèi)無法生成各自模塊的例化模型,因此將設(shè)計(jì)好的文件保存在一個(gè)工程目錄下,通過Verilog語言中的端口名關(guān)聯(lián)法完成模塊間的互聯(lián)[7-9]。以一路傳感器控制模塊關(guān)聯(lián)為例,說明其中使用的端口名關(guān)聯(lián)法:
UR_control_FSM M1(.CLK(CLK), .trig(trig1),.echo(echo1),.echo_done(echo_done1),
.RESET(RESET),.d1(d1a),.d2(d2a),.d3(d3a),
.d4(d4a));
UR_control_FSM 是調(diào)用的已經(jīng)例化的傳感器控制模塊;M1是調(diào)用模塊的命名;.CLK為調(diào)用模塊的輸入信號(hào)端口名;括號(hào)內(nèi)CLK是wire型外部連線或輸出輸入口線;其他端口類同。此外,如需多次調(diào)用已有例化模塊UR_control_FSM,則只要在模塊命名處采用不同模塊名稱即可。
為了驗(yàn)證設(shè)計(jì)能否達(dá)到我們的設(shè)計(jì)要求,需要將程序下載到芯片內(nèi)部,并進(jìn)行實(shí)際測量。常用的下載配置模式包含主動(dòng)配置AS(active serial configuration方式、被動(dòng)配置PS(passive serial configuration)方式和JTAG方式,此次選用JTAG配置模式[10-11]。把輸入、輸出端口分配到指定的引腳后,通過下載線將程序下載到CME_HR3芯片上,并自動(dòng)完成固化過程。
實(shí)驗(yàn)證明多通道超聲波測距系統(tǒng)的4個(gè)US_100探頭可同時(shí)對不同的方向進(jìn)行距離測量,測量結(jié)果能夠在LCD顯示屏上實(shí)時(shí)的顯示。為了進(jìn)一步測試測距系統(tǒng)的測量精度,調(diào)整各個(gè)通道的障礙物與傳感器的距離,觀察并記錄測量結(jié)果,測試結(jié)果如表1所示。從測試結(jié)果中可以得出結(jié)論:此次搭建的測距系統(tǒng)平臺(tái)測距結(jié)果誤差保持在±0.004 m內(nèi),測距結(jié)果可靠。
表1 測距測試結(jié)果
單位:m
本文設(shè)計(jì)了一種基于FPGA的多通道超聲波測距系統(tǒng),采用京微雅格的黃河C192作為主控芯片實(shí)現(xiàn)了多路超聲信號(hào)同時(shí)檢測與處理,器件占用的邏輯單元占總數(shù)的22%;調(diào)用的寄存器占總數(shù)的11%;參與分配的I/O口占總數(shù)的18%;PLB緩存寄存器調(diào)用率為57%。本設(shè)計(jì)可用于車載智能終端的超聲測距部分,由于FPGA具備豐富的開發(fā)資源,可在此系統(tǒng)繼上續(xù)增加測距通道的數(shù)量,也能夠搭載其他傳感器實(shí)現(xiàn)對時(shí)間、溫濕度的測量,也可實(shí)現(xiàn)對酒精傳感器、胎壓的檢測確保駕駛員的安全行駛,具有較高的擴(kuò)展性和更為廣闊的應(yīng)用前景。
[1]卜英勇,王紀(jì)嬋,趙海鳴,等. 基于單片機(jī)的高精度超聲波測距系統(tǒng)[J]. 儀表技術(shù)與傳感器, 2007(3): 66-68.
[2] 張攀峰,王玉萍,張健,等. 帶有溫度補(bǔ)償?shù)某暡y距儀的設(shè)計(jì)[J]. 計(jì)算機(jī)測量與控制,2012,20(6): 1717-1719.
[3] 高韻灃,何少佳,鄧子信,等. 高精度嵌入式超聲波測距系統(tǒng)的研究[J].計(jì)算機(jī)測量與控制,2015,23(1):25-26.[4] 夏繼強(qiáng),鄭昆,鄭健峰,等. 基于STM32的收發(fā)一體式超聲波測距系統(tǒng)[J]. 儀表技術(shù)與傳感器, 2014(8): 43-45.
[5] 顧國榮,鮑駿成,李海樂. 基于單片機(jī)的超聲波測距系統(tǒng)設(shè)計(jì)[J]. 沿海企業(yè)與科技,2012(2): 42-45.
[6] 王巧花,鄔昌軍,姚建松. 基于單片機(jī)的超聲波測距系統(tǒng)設(shè)計(jì)[J]. 煤礦機(jī)械,2014,35(6): 234-236.
[7] 陳大新,胡學(xué)同,周杏鵬. 利用FPGA改進(jìn)超聲波測距模塊設(shè)計(jì)[J]. 傳感器與微系統(tǒng),2005,24(2): 57-59.
[8] 顧菘. 一種通用的TFT-LCD顯示控制器的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子設(shè)計(jì)工程, 2012,20(15): 173-175.
[9] 黃繼業(yè),潘松. EDA技術(shù)實(shí)用教程[M]. 北京:科學(xué)出版社,2002.
[10] 叢偉林. 16Mbit FPGA配置存儲(chǔ)器設(shè)計(jì)研究[D]. 成都:電子科技大學(xué),2012.
[11] 唐文娟,顏永紅,楊世明,等. 16通道劑量率在線檢測系統(tǒng)的軟硬件設(shè)計(jì)[J]. 核電子學(xué)與探測技術(shù), 2011,31(3): 355-358.
Design of Multi-channel Ultrasonic Ranging System Based on FPGA
Liu Jun,Wu Can,Wu Sicong
(School of Electronics and Information Engineering,Tianjin University of Technology, Tianjin300384,China)
Ultrasonic ranging is a non-contact and continuous measurement which is simple in circuitry and high in accuracy. The single-channel ranging system can't meet the requirements such as real-time, three-dimensional and diversity. This paper designs a multi-channel ultrasonic ranging system based on FPGA(Field Programmable Gate Array) which is produced by Capital Microelectronics and tests and processes the echo signal come from US_100.The system can realize distance measurement from 2 centimeter to 4.5 meters. And the results can be displayed on LCD (Liquid crystal display). All software modules are designed by using Verilog HDL in Primace editing environment, and verified on the Modelsim and HR3 FPGA platform. The test results show that this system is stable and highly accurate.
field programmable gate array; multi-channel; echo signal processing; ultrasonic wave
2015-08-06;
2015-09-07。
天津理工大學(xué)育苗項(xiàng)目(LGYM201243);天津理工大學(xué)教學(xué)改革研究贊助項(xiàng)目(YB12-09)。
劉君(1980-),男,天津人,博士在讀,講師,主要從事信號(hào)檢測與處理方向的研究。
1671-4598(2016)01-0078-03
10.16526/j.cnki.11-4762/tp.2016.01.021
TP3
A