<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設計應用 > 用ADuC812設計超聲波非接觸液位計

          用ADuC812設計超聲波非接觸液位計

          作者: 時間:2006-05-07 來源:網(wǎng)絡 收藏

          摘要:闡述了超聲波非接觸液位計測量的原理,給出了硬件電路和軟件編程的設計方法,對其應用也作了簡單介紹。

          本文引用地址:http://www.ex-cimer.com/article/255658.htm

          關鍵詞:ADuC812芯片、超聲波、液位、非接觸


          1.概述

          隨著電子技術、計算機技術以及大規(guī)模集成電路芯片技術的飛速發(fā)展,超聲測距技術也日臻成熟。于九十年代初,國內(nèi)開始將超聲測距技術應用于河流、湖泊、水、渠等水體的水位測量中及其油、漿等液體的液位測量之中,并開始發(fā)揮其重要作用。

          ADuC812是ADI公司99年開發(fā)面市的新一代、帶有閃速MCU的多通道12位A/D轉換器,用ADuC812作為核心,加上超聲波發(fā)、收電路以及存儲、顯示等電路所組成的超聲波非接觸液位計,不僅減小了儀器的體積,更增加了儀器的可靠性、穩(wěn)定性和實用性。

          2.ADuC812芯片特性

          圖1是ADuC812內(nèi)部功能框圖,該芯片具有與8051兼容的內(nèi)核,額定工作頻率為12MHz(最大為16MHz),3個16位定時器/計數(shù)器,32條可編程的I/O口線,端口3具有高電流驅動能力,9個中斷源并有2個優(yōu)先級。芯片內(nèi)集成有8K字節(jié)閃速/電擦除程序存儲器,640字節(jié)閃速/電擦除數(shù)據(jù)存儲器,片內(nèi)充電泵(不需要外部Vpp );256字節(jié)片內(nèi)數(shù)據(jù)RAM,16M字節(jié)外部數(shù)據(jù)地址空間,64K字節(jié)外部程序地址空間。在摸擬輸入輸出方面:片內(nèi)集成有8通道、高精度的12位A/D,片內(nèi)40ppm/℃電壓基準,采樣速率達200kSPS,DMA控制的高速A/D至RAM捕獲,2個12位電壓輸出D/A,片內(nèi)溫度傳感器功能。在電源方面,芯片可用3V或5V供電,并有正常、空閑和掉電三種工作摸式。片上還集成有:UART輸入/輸出口,雙線(I2C兼容)和SPI串行I/O口,看門狗定時器和電源監(jiān)控電路。

          3.測量原理

          超聲波非接觸液位計的測量原理如圖2所示:由CPU控制超聲發(fā)射電路,通過超聲傳感器發(fā)射超聲脈沖波,該脈沖波遇到被測液面(水面)后,反射到超聲傳感器,CPU通過測計發(fā)射、接收之間超聲波往返的傳播時間t(秒),來計算測量距離h,圖2中:

          h=1/2·vt (米)

          v 為空氣中的聲速,其近似公式為:

          v=331.45+0.61T (米/秒)

          T為測量時的氣溫(℃),可以在測量距離的同時測量氣溫來進行對聲速的修正。

          圖2中設傳感器安裝高程為H0(可在安裝傳感器時測得),則液位H可用下式算得:

          H=H0-h=H0-1/2·vt (米)

          本液位計時間測量精度為微秒級,溫度測量精度為0.1℃,由此產(chǎn)生的液位測量誤差經(jīng)分析計算為1厘米。

          4.硬件電路設計

          根據(jù)液位測量原理及ADuC812的特性, 非接觸超聲波液位計的電路組成如圖3所示:主要有單片機控制系統(tǒng),時鐘值班電路,超聲波發(fā)射、接收電路,鍵盤顯示等部分組成。

          單片機控制系統(tǒng) 以ADuC812為核心,控制液位計測量、運算處理、顯示、打印、向外傳送數(shù)據(jù)等。設計6位LCD液晶顯示器用來顯示液位和參數(shù)值,用TPup-16微型打印機記錄測量時的時間、液位;設計有256KB×8字節(jié)的自帶電池保護的非易失數(shù)據(jù)存儲器SRAM,用來存儲時間及液位;超聲傳感器的安裝高程、時鐘及測量、打印、存儲液位的時間間隔等參數(shù)都是通過4個功能鍵置入的。為提高液位計的可靠性,設計有上電復位、手動復位及自復位(利用ADuC812內(nèi)部的看門狗定時器);為了能適時向外傳送測量結果,液位計設計有與無線數(shù)傳電臺及有線的RS-232接口,便于用戶配接。

          時鐘值班電路 為滿足水文自動化測報的需要,液位計的電源值班電路由微功耗的電源變換器件及邏輯電路等組成,用來根據(jù)所設定的測量時間間隔,產(chǎn)生上電控制信號,使除打印機以外的整個液位計得電工作,打印機只有在到達設定的打印時間才由CPU控制上電打印,打印完畢即關閉打印機電源;當液位計每次的測量工作完成后即由CPU送出掉電控制信號,使除值班電路正常供電外,其余電路全無電能消耗。

          模擬電路 包括超聲波的發(fā)射、接收、信號轉換及溫度的測量等幾部分電路組成。

          由ADuC812的P3.3、P3.4產(chǎn)生出一定頻率的經(jīng)調制好的矩形超聲波脈沖,送入超聲波發(fā)射電路,經(jīng)功放、轉換電路后由超聲傳感器發(fā)向被測液面,當超聲波遇到液面后被反射回來,在通過超聲波傳感器接收至轉換電路并進入接收電路。在接收電路中,回波信號經(jīng)放大、解調、檢波、整形等后送入ADuC812的P3.2 口,并產(chǎn)生中斷信號,由計時電路記錄下從發(fā)射超聲波至接收到回波的時間,即完成了一次的時間測量。

          溫度的測量是采用ADI公司的集成溫度傳感器AD590來實現(xiàn)的,AD590為線性電流輸出:1μA/οK,正比于絕對溫度;測溫范圍為-55~+150℃;電源范圍為+4V~+30V。根據(jù)AD590的特性及ADuC812的A/D轉換精度計算、測試得出,本電路可測溫度的靈敏度為0.1℃。

          5.軟件編程設計

          軟件設計采用摸塊化結構,整機軟件由主程序、鍵處理子程序、計算子程序、顯示子程序、數(shù)據(jù)存儲子程序、打印子程序、數(shù)據(jù)傳送子程序等組成。

          主程序 如圖4所示,液位計在第一次上電時要進行系統(tǒng)初始化并自檢,正常后判是否調試狀態(tài),是則通過鍵盤顯示輸入有關參數(shù),然后依次完成測量、計算、顯示、存儲、打印、傳送數(shù)據(jù)等子程序,最后控制掉電。

          子程序 在鍵處理子程序中,將依次對功能鍵、移位鍵、數(shù)字鍵進行相應的處理,并存入對應單元。測量子程序中,首先由ADuC812控制產(chǎn)生一頻率、寬度、幅度一定的超聲脈沖波,發(fā)向液面,并開計時器,對接收到的液面反射回波還要進行頻率、寬度、幅度判別,為消除液面波動及偶然因素的影響,采用一定時間內(nèi)多次測量,計算處理上采用數(shù)字濾波、程序限幅等技術,以提高測量的正確和準確性。在數(shù)據(jù)存儲子程序中,是將需要存入的時間、液位數(shù)據(jù)經(jīng)壓縮后存入256KB×8字節(jié)的SRAM中,按6分鐘測量并存儲一次,則可存儲一年的液位數(shù)據(jù)。其它子程序及各子程序框圖限于篇幅不再給出。

          6.應用

          本液位計在測量過程中無任何部件觸及液面,實現(xiàn)了非接觸測量,所以無論液面是流動、波動或是有漂浮物以及有化學反應等都可應用。

          該液位計的主要性能指標為:測距1.0~12.0米,精度±2厘米,分辨率1厘米。測量、存儲、打印的間隔為1分鐘~12小時,可由鍵盤設定。測量數(shù)據(jù)可用有線、無線向外傳送,電源用12V蓄電池加太陽能(或交流電)浮充,整機功耗小于0.1瓦(6分鐘測一次)。

          該液位計是非接觸測量的理想儀器,現(xiàn)已經(jīng)分別安裝在黃河的干支流及大中型水庫上多處,用于水位的自動測報,運行工作正常,性能穩(wěn)定可靠,受到用戶好評。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          超聲波液位計相關文章:超聲波液位計原理


          液位計相關文章:磁翻板液位計原理




          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();