0、引言
磁致伸縮傳感器經常應用于惡劣工業環境,能夠對石油等液位進行精確測量。由于其不受油漬和塵埃等環境的影響,浮子與敏感材料非接觸,從而大大延長了工作壽命;傳感器輸出絕對位置,斷電后無需重新標定。磁致伸縮傳感器的測量精度主要由前端信號處理和時間測量這兩個電路決定。傳統的時間測量方式難以達到納秒級的精度,因而無法保證測量結果的精度。本文著重介紹了新型芯片TDC-GP2在磁致伸縮傳感器中的應用,有效解決了脈沖時差測量精度不高的問題。
1、傳感器原理
稀土合金材料在外力磁場交互作用下會發生“磁致伸縮”現象。當浮子的磁場與激勵脈沖的磁場交疊時會產生應變脈沖,脈沖以一定的速度在波導絲上傳播,經信號處理電路后可得到起始脈沖和停止脈沖,兩者之間的時間差即為激勵脈沖在波導絲上的傳播時間。
磁致伸縮位移傳感器前端波形
傳感器位移計算公式為:
S=v×tn(1)
式中:S為浮子相對位移;v為感應脈沖在波導絲上的傳播速度;tn為激勵脈沖和第n個浮子產生的激勵脈沖時間差。而對于特定環境下的測量,感應脈沖傳播速度恒定,此時只要能精確測出兩脈沖之間的時間差,就可以精確地計算出浮子的位置。
目前,國外磁致伸縮傳感器的分辨率已經達到小于1μm的水平,因而可以推算出其時間間隔測量必須精確到納秒級。若采用傳統的計時方式,測量晶振頻率就要達到GHz的范圍。目前,市場上的振蕩器很少能達到如此高的頻率,且穩定性也不理想。對此,本文利用高精度測時芯片TDC-GP2有效解決了這一難題。
2TDC-GP2時間測量
2.1TDC-GP2時間測量原理
TDC-GP2是ACAM公司通用TDC系列的新一代產品,其時間分辨率可達50ps,遠遠超過了目前磁致伸縮傳感器對時間測量精度的要求。TDC-GP2可進行三次采樣,平均電流消耗為15μA,測量范圍為500ns~4ms,滿足一般場合下傳感器測量范圍的要求。芯片內部提供了精確的停止脈沖使能窗口,并具有高速脈沖發生器、溫度測量和時鐘控制等功能,這使得它在低成本、低功耗的精確時間測量方面有著廣闊的應用前景。
TDC-GP2是以信號通過內部門電路的傳播延遲來進行高精度時間間隔測量的。芯片上的智能電路結構、擔保電路和特殊的布線方法使芯片能夠精確地記錄信號通過門電路的個數。芯片測量時間的精度由內部門電路的傳播延遲時間決定。
TDC-GP2芯片采用前置適配器來擴展時間測量范圍,并且能夠保持分辨率不變。TDC-GP2的高速單元并不測量整個時間間隔,而是僅僅測量起始脈沖和停止脈沖到相鄰的基準時鐘上升沿的時間間隔。TDC-GP2時間間隔測量原理如圖2所示。
磁致伸縮傳感器時間間隔測量原理
圖2中:HIT和HIT?為TDC-GP2在相應區域間內測得的通過的門電路個數,并記錄在內部寄存器中;CC為基準時鐘在相應區間內測量而得到的時間。在測量過程中,必須對TDC-GP2進行內部校準,即記錄在一個和兩個基準時鐘周期內通過的門電路個數,用Cal?和Cal?來表示。
TDC-GP2內部ALU時間間隔計算公式如式(2)和式(3)所示。
Time=RES_X×T×2s(3)式中:T為基準時鐘周期;ClKHSDiv為內部時鐘預劃分數。測量結果存儲在內部32位寄存器中。
2.2、TDC-GP2的硬件設計
系統采用ATmega128作為磁致伸縮傳感器的MCU,其價格低廉,具有豐富的內部資源,使用方便。單片機通過SPI接口與TDC-GP2通信。TDC-GP2核心電壓為1.8~3.6V,必須由電池或固定的線性電壓調節器供電。穩定的供電電源是獲得良好測量結果的基本保證,并且要求電源具有高電容性和低電感性,從而保證測量結果的可靠性。本設計采用3.3V的線性電源供電。在硬件設計中,印刷電路板(PCB)布線要注意對電源進行濾波和去耦。本文使用10μF和0.1μF的電容對進入數字部分的電源進行濾波,并使用0.1μF的電容對芯片和電源進行去耦,去耦電容要盡可能放在靠近TDC-GP2的地方3]。TDC-GP2硬件連接電路如圖3所示。
磁致伸縮傳感器TDC-GP22硬件連接電路
圖3中,4MHz晶振作為TDC-GP2的基準時鐘和芯片的粗計數器;32.768kHz晶振作為TDC-GP2的校準時鐘。測量前必須對基準時鐘進行校準。TDC-GP2從校準時鐘引出Start和Stop脈沖,啟動TDC-GP2單元測量時差,結果存儲在結果寄存器中,并對中斷標志位置位。微處理器可以計算出基準時鐘的頻率誤差。
測量過程中,RSTN為TDC-GP2復位引腳,測量前要確保其有一個不小于50ns的低電平,否則會導致測量不正常。Start端接收到脈沖之后開始計時,Stop,端接收到指定脈沖次數后停止計時,并使能中斷,通知MCU讀取數據。
2.3、TDC-GP2時間測量軟件設計
系統采用ATmegal28對磁致伸縮傳感器進行控制和數據處理,其中對TDC-CP2芯片的設置和結果的讀取為整個軟件的關鍵部分。TDC-GP2測量結果有八位有效數字,為保證測量結果精度,需使用雙浮點型來表示。本設計中采用支持雙浮點運算的編譯器IAR-AVR來編寫程序。TDC-GP2時間測量流程如圖4所示。
TDC—GP2 時間測量流程圖
軟件設計首先要對單片機端口和SPI工作方式初始化,主要包括初始化PD?、PD。端口作為輸出和中斷輸入,SPI為Model1工作方式,在每次讀寫序列之間SSN至少保持50ns高電平。每次對TDC-GP2初始化之前要對TDC-GP2進行復位,且先進行硬件復位,再進行軟件復位,硬件復位持續時間必須大于50ns。然后根據測量模式對TDC-GP2內部寫寄存器Reg0~Reg5進行初始化,此時,要注意關閉移向單元和噪聲單元,否則會導致測量失敗;同時也不能對芯片進行連續讀寫操作,每個寄存器必須進行單獨尋址。讀操作前要先發送操作碼,在發送操作碼之后的第一個時鐘上升沿,TDC-CP2發送指定地址的最高位到SO輸出。本文采用高精度和高穩定性的32.768kHz時鐘對基準時鐘和內部TDC進行校準。在寫寄存器中設置TDC內部自動校準,并設定標定基準時鐘的周期數n。啟動校準后,TDC內部ALU自動計算32.768kHz時鐘的n個周期與實際基準時鐘單個周期的比值,結果存儲在結果寄存器中。計算公式如式(4)所示:
RES_x=(n×T?2768k)/T(4)
單片機通過SPT總線讀取TDC校準值后,通過式(5)計算修正因子CAL。
式中:Tz?為校準時鐘的周期值;Tne為基準時鐘的理論周期值。TDC-GP2測量的時間要乘以校準因子CAL來修正。部分關鍵程序代碼如下。
//TDC-CP2復位
SET_RSTN_H;
CLR_RSTN_L;
asm("nop");
SET_RSTN_H;
Write_SPI_8byte(0x50);
//TDC-CP2寄存器初始化
voidTDC_Config(void)
Write4ByteToTDC(Reg0.0x008668);//自動校準Write4ByteToTDC(Reg?,0x314300);//采樣點數Write4ByteToTDC(Reg2.OxE00000);//開中斷Write4ByteToTDC(Reg3.0x180000);//4ms溢出Write4ByteToTDC(Reg4.0x200000)
Write4ByteToTDC(Reg5.0x080000)
//關閉噪聲單元和移相單元
WritelByteToTDC(0x03);//手動校準
WritelByteToTDC(0x70);//準備測量
3、濾波算法與調試結果
3.1、數字濾波算法
為了防止環境干擾對TDC-GP2測量結果精度的影響,采用數字濾波來提高傳感器的穩定性。經仿真比較6],本設計選用了防脈沖干擾平均濾波法,其穩定性更高。
3.2、調試結果
大量測試結果表明,TDC-GP2在磁致伸縮傳感器中測量所得到的數據能夠滿足要求。在量程為1m的傳感器中,在量程范圍內的兩端點位置及中間點位置作定點測量,實測時間數據如表1所示。
由表1可知,磁致伸縮傳感器在定點測量的時間值的最大偏差不超過10ns,標準偏差不超過3ns。
4結束語
TDC-GP2具有高精度、低功耗和封裝小等特點,適合于低成本的磁致伸縮傳感器領域;具有三次采樣能力,可同時測量三層液位,極大地方便了工業領域的應用。本設計解決了磁致伸縮傳感器中時間測量模塊精度不高的問題,遠遠超過了國外磁致伸縮傳感器最高分辨率對時間測量模塊的要求,做到了精度無損測量,為傳感器位移精度的提高打下了良好的基礎,具有廣闊的發展前景。
審核編輯 黃宇
-
位移傳感器
+關注
關注
5文章
1138瀏覽量
34981 -
磁致伸縮
+關注
關注
2文章
26瀏覽量
9323
發布評論請先 登錄
評論