新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 自動調整漂移的磁通計

        自動調整漂移的磁通計

        ——
        作者:華東師范大學 張暢 時間:2007-01-26 來源:《世界電子元器件》 收藏

        引言

        磁通計是利用rc電子積分原理測量磁通量的精密儀器,應用在磁性材料及器件的生產加工、磁電技術、磁性測試技術以及測控技術等領域。目前國產磁通計功能相對單一,精度低,但基本滿足需求。存在的弊端是漂移比較嚴重,手動調整耗時比較長,給使用人員帶來很大不便。因此有必要研制可自動調整漂移的磁通計。

        本文引用地址:http://www.104case.com/article/20754.htm

        磁通計原理介紹

        垂直于某一面積所通過的磁力線的多少叫做磁通量或磁通,用 表示,單位wb。磁通計就是用來測量磁通的儀器。本文討論建立在霍爾效應基礎上的采用運算放大器和阻容網絡組成的模擬積分式磁通計的漂移調節問題。

        傳感器使用的是lake shore公司的霍爾發生器hgt-2100,這是一種固態傳感器,輸出電壓值和磁場的磁通量成正比。該器件建立在霍爾效應的基礎上。1879年,edwin h.hall發現,如果對位于磁場(b)中的導體施加一個電流(ic),該磁場的方向垂直于所施加電流的方向,那么在既與磁場垂直又和所施加電流方向垂直的方向上會產生一個電壓(vh)。這個電壓被稱為霍爾電壓,這種現象被稱為霍爾效應?;魻栯妷旱挠嬎愎綖椋簐h= b bsin 。其中vh為霍爾電壓(mv), b為磁場靈敏度(mv/kg)(在一特定的電流下),b為磁場磁通密度(kilogauss), 為磁場方向和霍爾元件間的夾角。hgt-2100是一種低價,高靈敏度的貼片器件。有效范圍為0.005寸x 0.005寸正方形區域。磁場靈敏度范圍是55~140mv/kg,輸入阻抗450~900 ,輸出阻抗為550~1350 。由此霍爾探針和阻容網絡構成的模擬積分式磁通計的原理圖如圖1所示。

        由電磁學理論知道,對霍爾發生器hgt-2100輸出電壓信號積分后輸出電壓值即為磁通量值 。模擬積分器式磁通計存在的一個難題是漂移問題。在輸入的感應電壓為零時,由于積分放大器的非理想性,存在偏置電流、失調電流、失調電壓和溫漂,使積分器輸出電壓隨時間不斷地向一個方向變化(增大或減小)。測量之前必須先讓積分電容短路放電。一種傳統的漂移調節方法是使用多圈線繞電位器微調放大器的輸入uin,使差分輸入平衡。然后將積分電容放電,才能進行測量。這種調節過程比較繁瑣,使用人員必須根據輸出值變化的方向(增大或減?。﹣頉Q定電位器調節的方向,還要根據輸出變化的快慢來決定調節的終止時刻。


        硬件電路設計

        本文提出一種改進的調漂方法,即利用單片機控制的數字電位器來代替傳統的多圈線繞電位器從而實現自動調漂。在圖1中,由積分器輸出的電壓uout經a/d轉換后送入微控制器處理、顯示。本文以at89c2051為例說明微控制器調整漂移的方法。

        主要器件介紹

        tlc2543串行a/d轉換器

        電路中采用的a/d轉換芯片是ti公司的tlc2543,是12位分辨率開關電容逐次逼近串行a/d轉換器,采樣率為66kbit/s,具有11個模擬輸入通道,采樣和保持是自動的,在工作溫度范圍內轉換時間為10 s,線性誤差+1lsb,具有單、雙極性輸出,可編程的msb或lsb前導,可編程的輸出數據長度,且與外圍電路的連線簡單。它是一種性能優良的a/d轉換器件,可靠性高,價格便宜,廣泛應用于儀器儀表、檢測與控制設備等。

        at89c2051單片機

        at89c2051是atmel公司推出的8位單片機,是一個2k字節可編程eprom的高性能微控制器。它與工業標準mcs-51的指令和引腳兼容,是一種功能強大的微控制器,它對很多嵌入式控制應用提供了一個高度靈活有效的解決方案。

        x9c102p數字電位器

        數字電位器是一種具有數字接口的有源器件,可以取代模擬電路中的機械電位器,方便地與微控制器接口,從而可以用數控的方法調整模擬電路中的電流、電壓等參數。xicor公司的x系列e2pot固態非易失性數字電位器是低功耗cmos電路,具有數字脈沖輸入,模擬輸出的特性。x9c102p總阻值為1k ,包含 100個阻單元陣列,每個單元之間和任一端都有可以被滑動端訪問的抽頭點?;瑒佣说奈恢糜蒫s、u/d和inc 三個輸入端控制,且存儲在非易失存儲器中,因而下一次上電時可以被重新調用,與多圈線繞電位器性能相同。

        硬件電路圖

        該模塊主要由兩部分組成:微控制器與a/d轉換器接口電路,微控制器與數字電位器接口電路。

        at89c2051與tlc2543的硬件連線圖如圖2所示。

        晶振選12mhz,ain0為模擬電壓輸入端,cs為片選線,din 為串行數據輸入端;dout為a/d轉換結果的三態串行輸出端;clk為i/o時鐘;vcc為電源;gnd為地。

        at89c2051與x9c102p的硬件連線圖如圖3所示。

        數字電位器x9c102p的三個輸入端inc、u/d、cs接在p1口。滑動端vw的電壓作為輸出。

        微控制器at89c2051是整個系統的核心,tlc2543對輸入的模擬信號進行采集,轉換結果dout由單片機通過p1.2(14腳)接收,ad芯片的通道選擇和方式數據通過p1.1(13腳)輸入到其內部的一個8位地址和控制寄存器。在輸入為零時,微控制器對輸入模擬信號進行分析,若采樣值變化說明漂移存在,根據采樣值變化的方向相應的調整數字電位器滑動的方向。電位器vw輸出電壓u接到模擬輸入端微調模擬輸入uin。調動過程由微控制器自動完成,不需要手動調整。


        軟件設計

        這里給出調節函數“adjust”,它調用了子程序串行數據采集模塊“read_ad”和微控制器控制電位器模塊“dp_down”和“dp_up”。

        tlc2543的通道選擇和方式數據為8位,其功能為:d7、d6、d5和d4用來選擇要求轉換的通道,d7d6d5d4=0000時選擇0通道,d7d6d5d4=0001時選擇1通道,依次類推;d3和d2用來選擇輸出數據長度,本程序選擇輸出數據長度為12位,即d3d2=00或d3d2=10;d1、d0選擇輸入數據的導前位,d1d0=00選擇高位導前。在每次i/o周期讀取的數據都是上次轉換的結果,當前的轉換結果在下一個i/o周期中被串行移出。第一次讀數由于內部調整,讀取的轉換結果可能不準確,要丟棄。 零輸入時,微控制器對采樣值進行判斷。當采樣值增大時,調用dp_up函數,使u增大,反饋到積分器輸入端,uin增大。同樣當采樣值減小時,調用dp_down函數,使u減小,同理uin增大。循環調節,直至采樣值不變,實現了漂移的自動調節。對積分電容放電后,即可開始測量。這里調整的方向要根據磁通計實際情況而定。

        #include
        sbit sclk = p1^0;
        //tlc2543時鐘信號線
        sbit din = p1^1;
        tlc2543串行數據輸入線
        sbit dout = p1^2;
        //tlc2543串行數據輸出線
        sbit cs = p1^3;
        //tlc2543片選信號線
        sbit cs1 = p1^5;
        //x9c102p片選信號線
        sbit ud = p1^6;
        //x9c102p的u/d
        sbit inc = p1^7;
        //x9c102p的inc

        void adjust()
        {
        while(1)
        {
        int m1,m2,delta;
        m1 = 0;
        m2 = 0;
        delta = 0;
        m1 = read_ad();
        delay_500us();
        m2 = read_ad(); delta = m2 - m1;
        if(delta >0)
              dp_up(); //采樣值增大將vw向vh方向調整
        else
        {
        if(delta <0)
        dp_down();
        //采樣值減小將vw向vl方向調整

        }
        }
        }

        unsigned int read_ad( void ) {
        unsigned int data ad;
        unsigned char data i;

        ad = 0;
        p1 = 0xf4;
        //始化 p1 i/o 口 sclk = 0;
        cs = 1;
        delay_100us ();
        cs= 0;
        delay_100us ();
        for( i=0; i<12; i++)
        //12bit din

        {
        din = 0;
        sclk = 1;
        sclk = 0;
        }
        cs = 1;
        //轉換階段
        delay_100us ();
        cs = 0;
        delay_100us ();
        for( i=0; i<12; i++) //12bit dout
        {
        dout = 1;
        ad <<= 1;
        if(dout)
        {
        ad |= 0x0001;
        }
        sclk = 1;
        sclk = 0;
        }
        cs = 1;
        return (ad);
        //返回ad轉換結果

        }

        void dp_down() //vw向vl方向調整u減小的子程序
        {
        cs1 = 0;
        ud = 0;
        inc = 0;
        delay_100ms();
        inc = 1;
        cs1 = 1;
        }
        void dp_up() //vw向vh方向調整u增大的子程序
        {
        cs1 = 0;
        ud = 1;
        inc = 0;
        delay_100ms();
        inc = 1;
        cs1 = 1;


        小結

        本文介紹了用微控制器控制數字電位器調節模擬積分式磁通計的方法,給出了硬件連線圖和c程序,目的是解決目前的模擬積分式磁通計的漂移問題。實踐證明,該方案可以實現自動調整漂移,且方便、快捷、價格便宜,優于機械電位器。




        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 泾源县| 长沙县| 轮台县| 延川县| 奉化市| 扎赉特旗| 阿拉尔市| 枣庄市| 泽普县| 佳木斯市| 浪卡子县| 东乌| 石家庄市| 新民市| 清丰县| 綦江县| 老河口市| 曲水县| 南充市| 麻城市| 乾安县| 密云县| 台东市| 泸溪县| 突泉县| 普格县| 嘉善县| 隆尧县| 丰都县| 北京市| 孝感市| 富川| 贵溪市| 乐都县| 望都县| 固镇县| 孝感市| 屯昌县| 黎平县| 荃湾区| 定州市|