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