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

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 單芯片AD593/4提供完整的傳感器激勵和測量解決方案

          單芯片AD593/4提供完整的傳感器激勵和測量解決方案

          ——
          作者: 時間:2007-04-23 來源:電子產(chǎn)品世界 收藏

          引言

            當今的許多工業(yè)和儀器儀表應(yīng)用都涉及傳感器。傳感器的功能就是監(jiān)視系統(tǒng)中的變化,然后將此數(shù)據(jù)反饋給主控制器。用于簡單的電壓或電流的傳感器可能是電阻性的。但是,有些傳感器系統(tǒng)可能是電感性或電容性的,就是說在傳感器頻率范圍內(nèi)阻抗變化是非線性的。

            這類復(fù)阻抗傳感器的典型例子就是接近傳感器——用于檢測一個運動物體的相對距離;另外,容性傳感器或感性傳感器——在醫(yī)用設(shè)備中用于血流或者分析血壓或血質(zhì)。

            為了用這些“復(fù)阻抗傳感器”實現(xiàn)測量,必須提供一種交流(AC)激勵頻率源在傳感器的頻率范圍內(nèi)進行掃描。本文試圖說明如何采用單芯片數(shù)字波形發(fā)生器輕松實現(xiàn)這種高達10 MHz的頻率掃描。還介紹了一種帶集成激勵、響應(yīng)和數(shù)字信號處理器(DSP)功能完整的單芯片傳感器解決方案,它適合要求高達近50 kHz激勵頻率的應(yīng)用。

          傳感器:工作原理

            圖1示出一種具由感抗和容抗特性組成的復(fù)阻抗傳感器模型。

            通過傳感器的激勵頻率信號會根據(jù)傳感器的L或C瞬時值表現(xiàn)出相應(yīng)的幅度、頻率或者相位的改變。例如,超聲波液流計會表現(xiàn)出相位偏移,而接近傳感器會引起幅度改變。

           
          圖1. 具有復(fù)阻抗特性的傳感器模型

            跟蹤這種變化阻抗的最常用方法就是監(jiān)視電路的諧振頻率。諧振頻率就是電容值等于電感值所在的頻率點。這也是頻率曲線上最大阻抗值對應(yīng)的頻率點。例如,考慮如圖2所示的接近傳感器情況。在正常情況下,例如在靜態(tài)條件下,傳感器的L,R和C都具有一個唯一值,在諧振頻率Fo處具有最大阻抗值。當一個運動物體接近傳感器時,那么傳感器的L和C值就會改變,并且產(chǎn)生一個新的諧振頻率。通過監(jiān)測諧振頻率的變化(從而導(dǎo)致阻抗的變化),就有可能推測出運動物體相對傳感器的移動距離。

           
          圖2 . 接近傳感器的諧振頻率隨移動距離的變化。

          計算諧振頻率

            計算電路的諧振頻率需要測量頻率和阻抗的關(guān)系(如圖2所示),尤其是需要一個能夠在一定頻率范圍內(nèi)具有掃描能力的波形發(fā)生器。一種簡單、低成本的實現(xiàn)方法就是采用AD5930波形發(fā)生器。AD5930具有在一組預(yù)設(shè)置的頻率范圍內(nèi)提供線性掃描的能力。一旦條件設(shè)定,就無需進一步的控制,除了一個用于啟動頻率掃描的觸發(fā)器。

            AD5930具有許多優(yōu)點:輸出頻率的分辨率為28 bit,所以用戶能以小于0.1 Hz的控制精度輸出頻率。其輸出頻率范圍為0~10 MHz,從而對選擇傳感器具有很大的靈活性。例如,有些傳感器的頻率范圍很窄,但是要求在此頻率范圍內(nèi)具有很高的分辨率。還有些傳感器可能需要很寬的調(diào)頻范圍,但是分辨率要求較低。
          采用這種方法很容易計算出傳感器的諧振頻率。

          系統(tǒng)框圖

            這種系統(tǒng)的典型框圖如圖3所示。通過BF-535 DSP處理器設(shè)置AD5930數(shù)字波形發(fā)生器。需要對從AD5930產(chǎn)生的正弦波輸出電壓波形進行低通濾波和放大以便消除主時鐘(MCLK)、鏡像頻率和高頻噪聲產(chǎn)生的饋通。經(jīng)過濾波的信號可用作傳感器的激勵頻率源。根據(jù)傳感器的阻抗響應(yīng)信號可能需要進行放大以便使其進入模數(shù)轉(zhuǎn)換器(ADC)的動態(tài)范圍內(nèi)。傳感器的輸出和激勵頻率源都輸入到AD7266——一種12 bit、2 MSPS的同步采樣雙ADC。將ADC輸出的數(shù)據(jù)保存在存儲器中以便做進一步的分析以計算出傳感器的相位和幅度偏移。

           
          圖3. 系統(tǒng)框圖

          完整的集成傳感器解決方案

            上面介紹的分立解決方案是一種常用的傳感器阻抗測量解決方案。該方案可能需要許多分立元件,所以是一種高成本的傳感器分析解決方案。這些單獨的元件還會增加自身的誤差源。設(shè)計中的有源元件還會增加相位誤差,這也是需要校正。另外,還需要DSP處理一些復(fù)雜的數(shù)學(xué)計算,這樣可能需要外部存儲器來存儲原始的ADC數(shù)據(jù),從而會進一步增加成本。

            解決上述低頻率傳感器分析問題的解決方案是AD5933/4器件,它將上述主要處理模塊都集成到一顆芯片中。該芯片的內(nèi)核包括3個主要單元:用于提供頻率掃描的直接數(shù)字頻率合成器(DDS)波形發(fā)生器; 用于測量傳感器的響應(yīng)的12 bit、1 MSPS ADC;以及最后能夠?qū)DC測量數(shù)據(jù)進行1024點離散傅立葉變換(DFT)運算的DSP引擎。

            DFT運算結(jié)果提供一個實部(R)和一個虛部(I)數(shù)據(jù),從而可以方便地計算出阻抗。采用下面的公式很容易計算出阻抗的幅度和相位:

           

            為了確定實際的實數(shù)阻抗值Z(ω),通常需要進行頻率掃描??梢杂嬎愠雒總€頻率點的阻抗,從而可以得出一條頻率與幅度的關(guān)系曲線。這樣就很容易測量出100 Ω~20 MΩ范圍內(nèi)的阻抗。該系統(tǒng)允許用戶設(shè)置一個2 V峰峰值(PK-PK)的正弦信號作為外部負載的激勵頻率源。輸出范圍還可以設(shè)置為1V,500 mV和200 mV。頻率分辨率可以達到27 bit(< 0.1 Hz)。

          實現(xiàn)頻率掃描:

            為了實現(xiàn)頻率掃描,用戶必須首先設(shè)置頻率掃描所需要的條件:需要一個起始頻率、頻率間隔和掃頻點數(shù)。然后需要一個啟動命令開始掃描。在每個掃描頻點,ADC先完成1024個采樣,然后進行DFT計算以便提供該波形的實部和虛部數(shù)據(jù)。此實部和虛部數(shù)據(jù)通過I2C接口以兩個16 bit字形式提供給用戶。片內(nèi)DSP處理單元的優(yōu)點是用戶不必進行復(fù)雜的數(shù)學(xué)計算,也無需存儲ADC原始數(shù)據(jù),只需提供兩個16 bit的數(shù)據(jù)。因此,它還允許選擇更便宜的DSP解決方案,因為大大降低了對最終處理能力的要求。

            欲獲知AD5933/4器件的更多信息,請訪問:www.analog.com/AD5933。

          http://www.analog.com/TechArticle_SingleChipAD5933-34

          傳感器相關(guān)文章:傳感器工作原理


          模數(shù)轉(zhuǎn)換器相關(guān)文章:模數(shù)轉(zhuǎn)換器工作原理


          風速傳感器相關(guān)文章:風速傳感器原理
          電流變送器相關(guān)文章:電流變送器原理


          關(guān)鍵詞: AD593/4 測量 測試 傳感器激勵

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();