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