|
基于FPGA的高精度超聲波測距儀設(shè)計為了提高超聲波的測量精度,利用FPGA技術(shù)設(shè)計了一種高精度超聲波測距儀。采用Quartus II軟件在高密度可編程邏輯門陣列(FPGA)上設(shè)計了基于SoP C的硬件系統(tǒng)平臺,并采用nios II ED S開發(fā)軟件開發(fā)了測量儀的軟件系統(tǒng)。利用FPGA內(nèi)部的硬件資源,設(shè)計了高速超聲波控制器。溫度傳感器ds18b20用于測量環(huán)境溫度,并利用溫度校正超聲波的傳播速度。試驗表明,采用該方案設(shè)計的超聲波測距儀具有較高的測距精度,具有一定的實(shí)用推廣價值。 0引言 超聲波測距儀是一種利用超聲波測量距離的非接觸式測距工具。由于超聲波具有定向性好、使用方便、成本低、抗干擾能力強(qiáng)等優(yōu)點(diǎn),所以超聲波測距儀在工業(yè)測量、車輛避障、安全警示、液位測量等方面都有應(yīng)用。機(jī)械內(nèi)部損傷檢測、車輛自動導(dǎo)航III和機(jī)器人等領(lǐng)域得到了廣泛應(yīng)用。然而,目前大多數(shù)超聲波測距儀一般采用MCS51單片機(jī)作為控制器,其測量精度受定時器時鐘頻率的限制,不能令人滿意。 針對上述情況,本文利用大規(guī)模FPGA設(shè)計了一套基于SoPCtgj的嵌入式高精度超聲測距系統(tǒng),采用軟硬件協(xié)同設(shè)計方法,采用自定義IP核技術(shù)和溫度補(bǔ)償技術(shù)。該測試系統(tǒng)具有高可靠性、高集成度、快速響應(yīng)、高精度、低成本等特點(diǎn)。 1硬件系統(tǒng)設(shè)計 在硬件系統(tǒng)中,測距儀采用高密度可編程邏輯門陣列(FPGA)作為硬件設(shè)計平臺,系統(tǒng)設(shè)計框圖如圖1所示。主要器件有Nios lI處理器、A Valon-m總線、JT AG控制器、U APPA控制器、EPCS控制器、超聲波控制器、LCD控制器、EPCS4存儲器、SD-R AM控制器、SRAM存儲器、LDAC顯示器、通用I/O口和H.C.SR04超聲波收發(fā)模塊。為了實(shí)現(xiàn)復(fù)雜的控制,在可編程邏輯門陣列(FPGA)中嵌入了32位Nios II處理器。N ios II處理器是era公司提供的32位軟核處理器。在系統(tǒng)設(shè)計中,設(shè)計者根據(jù)項目要求,將ios II軟核CPU免費(fèi)嵌入到A tera公司生產(chǎn)的FPG A中。SD RAM控制器控制外部SD RAM存儲核心芯片,用于存儲和存儲數(shù)據(jù)。JTA GUA RT控制器可以在線下載和調(diào)試程序。EPSC控制器控制EPSC存儲芯片,EPSC存儲芯片用于存儲FP A配置文件;液晶顯示控制器控制液晶顯示顯示測量數(shù)據(jù)。超聲波控制器是根據(jù)外接超聲波收發(fā)模塊的電氣特性設(shè)計的自定義控制器。控制器的輸出引腳與外部超聲波收發(fā)模塊連接,控制超聲波收發(fā)模塊進(jìn)行測距。溫度對超聲波的傳播速度有很大影響。該系統(tǒng)設(shè)計了溫度補(bǔ)償電路,提高了測量精度。系統(tǒng)通過PIO連接到DS18B20數(shù)字溫度傳感器。 2. 硬件系統(tǒng)設(shè)計 2.1超聲波控制器的設(shè)計 超聲波控制器是本系統(tǒng)的核心模塊,其設(shè)計框圖如圖2所示。它主要由接口單元電路、寄存器組、倍頻器、計數(shù)器和狀態(tài)機(jī)組成。接口單元電路用于將Valon-M總線連接到超聲波控制器。因為接口單元內(nèi)有一個地解碼器,所以控制器中的所有寄存器都可以被Nios II通過地解碼器訪問。倍頻器的作用是將50兆赫茲系統(tǒng)時鐘的頻率翻倍到100兆赫茲,從而提高系統(tǒng)的測量精度。狀態(tài)機(jī)控制中各模塊的協(xié)調(diào)是通過產(chǎn)生各種定時信號來實(shí)現(xiàn)的。TR IG為超聲波收發(fā)模塊的觸發(fā)信號;EC H O為超聲反射接收和判斷的輸入信號;s T為計數(shù)器啟動信號,高電平計數(shù)器開始計數(shù);CLR是計數(shù)器清零信號。當(dāng)CLR高時,它將計數(shù)器值清除為零。H為計數(shù)器值,保存控制信號,H為高功率電平,計數(shù)器的電流值保存在計數(shù)器寄存器中。在超聲波控制器中,還定義了三個寄存器,并對其進(jìn)行了定義. 2. 雙狀態(tài)機(jī)模塊化設(shè)計 狀態(tài)機(jī)模塊是超聲波控制器的關(guān)鍵模塊,其功能是產(chǎn)生各種定時控制。圖3是狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖,有五種狀態(tài):空閑、啟動、計數(shù)、數(shù)據(jù)保存和計數(shù)器清除。上電過程中,狀態(tài)機(jī)處于空閑狀態(tài)。一旦開始指令被寫入控制寄存器,狀態(tài)機(jī)就進(jìn)入啟動狀態(tài)。在啟動狀態(tài)下,狀態(tài)機(jī)一側(cè)對啟動寄存器進(jìn)行清零操作,另一側(cè)產(chǎn)生超聲波測距啟動信號TR IG,啟動超聲波測距模塊產(chǎn)生超聲波。完成這些任務(wù)后,狀態(tài)機(jī)進(jìn)入計數(shù)狀態(tài)。計數(shù)狀態(tài)下,計數(shù)器對100m hz時鐘進(jìn)行計數(shù)。當(dāng)超聲波收發(fā)模塊接收到障礙物反射回來的超聲波時,能能值降低,計數(shù)器停止計數(shù),狀態(tài)機(jī)進(jìn)入數(shù)據(jù)保存狀態(tài)。在數(shù)據(jù)保存狀態(tài)下,計數(shù)數(shù)據(jù)保存在計數(shù)寄存器中。保存數(shù)據(jù)后,狀態(tài)機(jī)進(jìn)入計數(shù)器數(shù)據(jù)零狀態(tài),此時將清除計數(shù)器中的值以準(zhǔn)備下一次計數(shù)。 2. 3硬件平臺設(shè)計 超聲波測距儀的SoP C硬件設(shè)計采用Altera公司的SoP C B開發(fā)工具。SoP C B builder是一個功能強(qiáng)大的系統(tǒng)開發(fā)工具,它使嵌入式系統(tǒng)設(shè)計人員可以很容易地設(shè)計基于ios II處理器的片上系統(tǒng)。在SoP CBuilder的圖形用戶界面中,設(shè)計人員可以將SoP CBuilder庫中的功能模塊添加到系統(tǒng)中。SoPCBuilder還允許設(shè)計人員向SoPCBuilder庫添加用戶定義的邏輯單元。SoPC Builder開發(fā)工具定義的硬件系統(tǒng)如表2所示,其中uhrasonc為超聲波控制器和用戶定義的邏輯控制單元。 2.4溫度補(bǔ)償電路的設(shè)計 超聲波的傳播速度極易受溫度的影響。超聲波在室溫下的傳播速度約為340 m/s,但當(dāng)溫度發(fā)生變化時,超聲波的傳播速度會發(fā)生變化,例如當(dāng)溫度升高1℃時,超聲波的傳播速度會增加0.6 m/s,因此在使用超聲波測量距離時,必須考慮溫度對超聲波傳播速度的影響。 表 2 硬件系統(tǒng)模塊的定義 為了提高測量精度,本系統(tǒng)設(shè)計溫度補(bǔ)償電路。 本系統(tǒng)的溫度補(bǔ)償電路主要采用了DS18B20全數(shù)字溫度傳感器來測量環(huán)境溫度 ,再利用下式對超聲波傳播速度進(jìn)行溫度補(bǔ)償 。 式中:為超聲補(bǔ)償后的傳播速度;T是實(shí)際溫度。 3.系統(tǒng)程序設(shè)計 為了使測試儀正常工作,還需要設(shè)計系統(tǒng)的控制程序。系統(tǒng)程序采用Ahera公司的Nios lI EDS 8.0集成開發(fā)環(huán)境進(jìn)行開發(fā)。圖4是系統(tǒng)程序的算法流程圖。程序啟動后,ios II主程序?qū)ο到y(tǒng)的相關(guān)設(shè)備進(jìn)行初始化,如LCD屏幕初始化、溫度傳感器DS18B20初始化、串口初始化等。 系統(tǒng)初始化完成后,ios lI軟核CPU讀取DS18B20的溫度值,得到當(dāng)前測試環(huán)境的溫度值。讀取溫度后,向超聲波控制系統(tǒng)中的啟動寄存器發(fā)送啟動命令,啟動超聲波測距模塊移動距離,通過讀取狀態(tài)寄存器的值來了解控制器的工作狀態(tài)。如果控制器處于工作繁忙狀態(tài),控制器會延時一段時間,重新讀取狀態(tài)信息。如果已知控制器處于“空閑”工作狀態(tài),則讀取計數(shù)寄存器中的值,并根據(jù)公式(1)對超聲波的傳播速度進(jìn)行校正,然后用校正后的傳播速度計算距離并顯示距離。 4.檢查測試結(jié)果 為了進(jìn)一步評估超聲波測距儀的精度,根據(jù)上述設(shè)計方法,利用高密度FPGA和超聲波收發(fā)模塊設(shè)計了測試樣機(jī),并對測試樣機(jī)的性能進(jìn)行了測試。FPG A采用Altera公司生產(chǎn)的EP 1C 6Q 240 C8,超聲波收發(fā)模塊采用HC。SR 04。表3給出了一組測試樣機(jī)的測試結(jié)果。從試驗結(jié)果可以看出,使用本試驗測量距離時,除測量近距離距離的匹配誤差誤差為2%外,測量中長距離距離的相對誤差均保持在1%以內(nèi)。該測試儀測量精度高。 表3測試結(jié)果 5、總結(jié) 超聲波測距儀是一種非接觸式距離測量工具,具有許多優(yōu)點(diǎn)。本文針對傳統(tǒng)單片機(jī)超聲測距儀測量誤差大的缺點(diǎn),采用軟硬件協(xié)同設(shè)計方法和用戶自定義IP核心技術(shù),設(shè)計了一套基于Nios II的高精度超聲測距系統(tǒng)。該系統(tǒng)具有可靠性高、集成度高、響應(yīng)速度快、精度高、成本低等優(yōu)點(diǎn)。 參 考 文 獻(xiàn) [1] 汪才杰 ,張大名 ,張米露.基 于 FPG A 的高精度超聲波 測距 系統(tǒng)的設(shè)計『J].微型機(jī)與應(yīng)用 , 20 12 ,3 1(17 ) :25 —27 . 班寧產(chǎn)品匯總 |