STM32和FPGA相結合減小超聲波液位計測量液位的盲區
日期:2019-02-22 來源: 作者:
引言
超聲波液位計作為一種非接觸式的液位測量設備[1-2],不受電磁干擾影響,成本較低,使用方便,因而在工業生產中得到了廣泛應用,特別是對工況比較復雜的罐體中液位的測量。超聲波液位計的測量精度主要取決于對傳播時間和聲速的檢測精度。目前市場上的超聲波液位計多數是基于MCS-51單片機設計的[3-4],由于單片機本身硬件上的限制,導致對傳播時間的測量精度一般不高,功能也相對單一[5]。本文中將STM32和FPGA相結合,設計了一種新型的超聲波液位計。系統利用溫濕度傳感器對聲速進行了溫度和濕度兩方面的補償;同時,采用無線通信模塊對測量結果進行無線傳輸[6],實現了對液位的遠程監控。該液位測量系統具有精度高、實時性強、多功能等特點。
1超聲波液位測量原理
超聲波液位測量的方法主要有相位檢測法、幅值檢測法、時差法[7]。其中,相位檢測法精度較高,但量程短,電路設計復雜;幅值檢測法實現簡單,但精度較低;時差法電路不太復雜,量程和精度基本能滿足工業要求,文中采用時差法。
1.1時差法原理
發射探頭發出的超聲波在介質中傳播,經被測液面反射后,回波信號被接收探頭所接收。由于在特定介質中聲速是可以確定的,因此只要測量出超聲波從發出到被接收所用的時間就可以計算出超聲波傳輸的距離,進而間接測量出液面高度[8]。時差法的原理圖如圖1所示。
由圖可知,L=E-D,L=E-ct/2,c為聲速,t為超聲波傳播的時間。
1.2聲速的溫濕度補償
由時差法的原理可知,決定測量精度的關鍵是對聲速的確定和對傳播時間的測量。影響聲速的環境因素主要是溫度,大多數氣介式超聲波液位計也是都對溫度進行了補償,但如果待測液體是易揮發的,空氣中大量的蒸氣會形成不容忽視的聲速梯度,為了保證測量的精度,這時就需要對聲速進行溫度和濕度兩方面的補償,經查閱資料后推導得到修正后的聲速公式為:式中:c0為標況下的聲速,取331.45m/s,p為標準大氣壓,取1.01325×105Pa,pw為水蒸氣分壓強,t為測量溫度,T0為273.15K,pw/p為相對濕度。
2系統的總體設計
超聲波液位測量系統的結構框圖如圖2所示,系統主要由STM32單片機、FPGA、發射電路、接收電路、溫濕度測量模塊、LCD顯示模塊、無線通信模塊、報警模塊等組成。由于FPGA內嵌軟核NiosⅡ需要占用較大的FPGA邏輯面積[9],而且是FPGA粗顆粒邏輯結構制作的CPU,和基于ASIC的ARM在功耗和速度上的性能相差較大,因此,系統采用意法半導體生產的STM32芯片作為主控制器,STM32通過SPI接口和FPGA進行通信。上電之后,STM32單片機向FPGA發送測量信號,FPGA接收到信號之后,發出超聲波激勵信號,同時開始計數,激勵信號經發射電路放大后激勵換能器振動發出超聲波,經被測液面反射后產生的回波信號由接收電路處理后被回波識別模塊檢測到,計數器停止計數,將計數值通過SPI接口傳給STM32,STM32利用補償后的聲速和傳播時間計算出液位高度,并控制LCD顯示液位和溫濕度測量結果,同時,將相應測量結果通過無線通信發送給PC端,如果液位不在規定范圍內,則發出報警信號。
3硬件電路設計
3.1超聲波發射電路
發射電路如圖3所示。FPGA的I/O口電平為3.3V,分頻產生的40kHz的激勵脈沖先經過限流電阻R1,接著被晶體管Q1(9014)、Q2(9014)、Q3(9015)進行功率放大后加載到變壓器兩端,由于變壓器的初級線圈會產生高電流,故采用場效應管相連。電阻R3用來和換能器進行阻抗匹配。
3.2超聲波接收電路
接收電路如圖4所示,核心器件是TL852。TL852是專用的超聲波測距芯片,可以完成對回波信號的放大、濾波和整形。TL852具有11級的增益變換,測量過程中,可以根據超聲波傳播時間的長短來控制GCA、GCB、GCC、GCD四個引腳的電平,調節增益的大小,進而增大量程。TL852的輸出信號并不能直接被FPGA識別,還需進行進一步的比較整形處理。比較整形電路由雙運放LM311組成,前級運放構成的同相跟隨器是為了使比較整形電路和放大濾波電路隔離;后級運放構成電壓比較器,實現AD轉換,以便FPGA識別回波信號。
3.3LCD顯示模塊
為了便于現場調試和顯示測量結果,系統選用LCD12864液晶屏作為顯示模塊。該液晶屏的分辨率為128×64,具有多種接口方式,并且內置了漢字字庫,可以顯示字母、數字符號、中文字型及圖形。另外,LCD12864還具有低電壓低功耗的優點。
3.4溫濕度測量模塊
系統選用DHT11溫濕度傳感器來檢測溫濕度,對聲速進行補償。DHT11的濕度測量范圍是20%~95%,精度為±5%RH,溫度測量范圍是0~50℃,精度為±2℃。DHT11通過單總線和STM32進行通信,連接方便,DATA端口輸出的是已校準的數字信號。STM32和DHT11之間的連接電路如圖5所示
3.5無線通信模塊
系統選用的無線通信模塊型號為AS32-TTL-100,該模塊采用Semtech原裝SX1278射頻芯片,載波頻率410~441MHz,發射功率為100mW,通過串口與單片機進行通信,通信距離zui遠可達3000m。另外,AS32-TTL-100的功耗低至1.5μA,還采用了LoRa擴頻技術,具有很強的抗干擾能力,傳輸距離和穿透能力比傳統的FSK有著很大地提高。控制MD0和MD1兩個輸入端口的電平可以選擇不同的工作模式,模塊通過RXD和TXD兩個端口和單片機進行串口通信,AUX端口用于指示模塊的工作狀態。發射端無線模塊與STM32的接線圖如圖6所示,接收端無線模塊通過USB轉TTL轉接板實現電平轉換,和PC機進行通信。
3.6STM32和FPGA模塊
系統選用的主控芯片是意法半導體公司的STM32F103VET6,該款芯片有80個通用IO口,512KB閃存FLASH,64KB的SRAM,3個SPI,5個串口等豐富的資源,可以滿足設計要求。FPGA芯片選用的是Al-@@@@tera公司的Cyclone系列的EP1C3T144C6,1.5V內核,EP1C3T144C6具有2910個邏輯單元,59904位內嵌RAM,一個鎖相環。FPGA部分主要包括:發射模塊、回波識別模塊、計數模塊、SPI接口模塊。其中,發射模塊產生超聲波激勵信號;回波識別模塊用于檢測回波信號;計數模塊在超聲波激勵信號發出的同時開始計數,回波識別模塊接收到回波信號后停止計數,則渡越時間為N/f,N為計數器的計數值,f為計數頻率。計數器停止計數之后將計數值通過SPI接口發送給STM32,STM32根據計數值計算出超聲波傳播時間,從而計算出液位高度。
4系統軟件設計
系統的軟件部分包括STM32部分軟件設計、FP-GA部分軟件設計以及PC端軟件設計。
4.1STM32部分軟件設計
STM32部分的軟件在KeilMDK上開發。為了實現對多個任務的并行處理,以及對液位的實時監測,考慮在STM32F103VET6微控制器上移植一個嵌入式實時操作系統。和其他的實時操作系統相比,FreeRTOS是一個小巧、免費的操作系統,FreeRTOS的內核可裁剪,一般只占用4K~9K字節的空間,具有很強的可移植性,并且不對任務數量和任務優先級進行限制。綜上考慮,系統選用FreeRTOS作為操作系統。
FreeRTOS可以實現任務的創建、刪除、掛起、恢復、設定優先級等功能。在高精度超聲波液位計的程序設計中需要創建液位測量、溫濕度測量、LCD顯示、無線通信、報警五個任務,根據重要性和實時性要求,給每個任務設置相應的優先級,程序流程圖如圖7所示。軟件用C語言進行編寫,為了方便調試以及后期開發和維護,程序采用模塊化的設計思想。創建一個任務的代碼如下所示:
4.2FPGA部分軟件設計
FPGA軟件部分的開發環境為QuartusⅡ,采用VerilogHDL語言進行程序設計。通過狀態機產生相應的控制時序,完成各項操作。圖8為狀態機的狀態遷移圖,有空閑、開始、數據發送三個狀態,為了減少組合邏輯的數目,提高系統速度,用獨熱碼對各個狀態進行編碼。START信號用來標記是否接收到開始指令,START=0時開始測量。ECHO用來標記是否接收到回波信號,當識別到回波信號時,ECHO被置為1。上電后,狀態機處于空閑狀態,當START=0時,狀態機進入開始狀態。進入開始狀態后,發射模塊發射出由10個頻率為40kHz的脈沖組成的脈沖簇,驅動發射電路發出超聲波。在產生驅動信號的同時,計數器開始計數。當回波識別模塊識別到回波時,ECHO被置為1,進入數據發送狀態。進入數據發送狀態后,先將計數值保存在計數寄存器中,再將計數器中的值清零,為下次計數做準備,完成這些操作后將計數寄存器中的值通過SPI接口發送給STM32。時序仿真如圖9所示。
4.3PC端軟件設計
系統上位機部分軟件采用C#語言編寫,該語言對Windows操作系統兼容性較好,所用的集成開發環境是VS,C#程序在VisioStudio.NET平臺上運行。當PC端采集到STM32發送的液位和溫濕度數據時,在監控界面上進行顯示。PC端軟件部分需要設計一個串口類用來接收數據,串口接收到數據后,先將數據緩存,再利用一個線程對數據進行解析,解析后的數據在datagrid表格中顯示,并用chart類繪制液位的曲線圖,點擊保存按鈕,可以將數據保存到Excel表中。測量過程中監控界面如圖10所示。
5結束語
采用STM32作為主控制器,并移植了FreeRTOS實時操作系統,實現了液位的實時測量,以及其他各任務的實時處理。采用FPGA作為協處理器,利用其并行處理的能力消除了產生激勵信號和啟動計時之間的延時。FPGA較高的工作頻率保證了計時的精度以及超聲波激勵信號的穩定性,進而提高了測量精度。同時,系統還對聲速進行了溫度和濕度兩方面的補償,進一步提高了液位計的測量精度。另外,該系統還有無線通信的能力,實現了對液位的遠程監控。
相關產品推薦:磁翻板液位計
上一篇文章:磁翻板液位計在釀造釜測量釀造水壺中麥汁水平的應用下一篇文章:通過液位計控制實現砂漿廢水自動化運行處理
- 一般需要多久對磁翻板液位計進行維護確保測【2019-05-13】
- PVC材質磁翻板液位計【2018-11-28】
- 研發強穿透抗干擾超聲波液位計是時代發展的【2018-12-19】
- 中藥制劑廢水處理工程概述與流程說明【2022-02-21】
- 植物油大型儲罐及其遠傳磁翻板液位計的結構【2019-09-09】
- 淺談SIS系統在煤化工裝置的應用【2019-07-06】
- 公平,統一的磁翻柱液位計定價【2019-06-01】
- 磁浮子液位計清洗步驟是什么?清洗前后的注意【2021-03-09】
- 儲罐側面上下兩套玻璃管液位計液面不等高的【2017-09-07】
- 磁翻板液位計的浮子的三點選擇原則及材質選【2020-11-21】
- 淺析火電企業脫硫遠傳磁翻板液位計運營維護【2019-09-10】
- 液氨磁翻板液位計【2014-04-01】
- 玻璃管液位計的非接觸監控原理與計算調試目【2018-01-26】
- 磁翻柱液位計安裝后的詭異現象探討和措施分【2021-12-17】
- 基于機器視覺的磁翻板液位計實時讀數識別方【2023-11-23】
- 玻璃板液位計【2022-11-23】
- 磁翻板液位計與差壓液位計雙重監控分離器液【2022-03-14】
- 關于磁翻板液位計應用大型乙烯裝置冷區現場【2022-03-10】
- 磁翻板液位計在海水脫硫液位測量中選擇什么【2022-03-08】
- 如何解決磁翻板液位計水浸問題及預防故障的【2022-03-04】
- 探究磁翻板液位計在醫療設備中的應用【2019-11-25】
- 從研發角度去分析磁翻板液位計到底哪個廠家【2018-12-28】
- STM32和FPGA相結合減小超聲波液位計測量液【2019-02-22】
- 關于磁翻柱液位計的油壓問題分析及應對措施【2019-07-15】
- 磁翻板液位計4-20mA接線方法和二次儀表配合【2020-11-19】
- 熱水鍋爐及磁性翻版液位計供熱系統突發停電【2019-08-27】
- 三暢磁翻板液位計為企業計量節能與生產降耗【2013-09-05】
相關的產品