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