磁致伸縮位移 (液位) 傳感器以其遠程測量、高精度、安全可靠、穩(wěn)定性好、安裝方便等優(yōu)點 ,在鍋爐、造紙、制藥、石油、化工、水利、食品等領域逐漸取代了傳統(tǒng)的傳感器。目前應用的此類位移傳感器大多都是把位移轉換成時間間隔 ,再把時間間隔轉換為相應的模擬電壓 (電流) 信號 ,這種測量方法存在一些不足之處 : (1)模擬信號抗力有限 ,不能遠距離傳輸 ; (2)由于電路轉換引入噪聲 ,使其測量精度不高 ; (3)1根測桿只能測量 1 個液位 (位移) 。
研制的智能化磁致伸縮位移 (液位) 傳感器直接測量多個時間間隔 ,并利用單片機進行較好的處理 ,實現(xiàn)了多點高精度測量 ,并通過RS-485串行通信實現(xiàn)遠距離傳輸及接入工業(yè)監(jiān)測網(wǎng)。另外 ,由于采用 PIC 低功耗單片機及其他低功耗芯片 ,優(yōu)化電路結構 ,使系統(tǒng)功耗大大降低 ,滿足本安型傳感器要求。
1.傳感器的結構及工作原理
智能化磁致伸縮位移 (液位) 傳感器由不導磁的不銹鋼管(探測桿) 、磁致伸縮線 (波導絲) 、可移動的浮球 (磁環(huán)) 和測量處理系統(tǒng)等組成。波導絲被安裝在不銹鋼管內(nèi)保持電磁特性 ,磁環(huán)在不銹鋼管外側可自由滑動 ,測量處理系統(tǒng)集成在傳感器頭部的電子倉內(nèi)。
智能化磁致伸縮位移 (液位) 傳感器進行液位測量時 ,磁環(huán)被封在浮球內(nèi) ,浮球套在探測桿上 ,可沿探測桿隨液位的變化而上下移動。測量處理系統(tǒng)產(chǎn)生一周期電脈沖 ,該周期電脈沖加載波導絲 ,產(chǎn)生一個磁場 ,該磁場與測桿外磁環(huán)的正交磁場相遇時 ,相互作用形成螺旋磁場 ,產(chǎn)生瞬時扭力 ,使波導絲扭動 ,產(chǎn)生應變波 ,并以音速沿波導絲傳回 ,在接收端線圈產(chǎn)生一個電脈沖。每個周期可進行一次測量 ,電脈沖為測量起始脈沖 ( start 脈沖) ,接收端的電脈沖 ( stop脈沖) ,與每個磁環(huán)對應 ,最多有 3 個。start 脈沖與 stop 脈沖之間時間間隔與磁環(huán)的位置成比例 ,因此通過測量 start 脈沖與stop 脈沖的時間間隔的就可精確地確定被測位移量。應變波在波導絲中的傳輸速度大約為 2 830 m/ s ,要想得到 5μm 的分辨率 ,時間測量的精度要達到 118 ns ,要求參考時鐘要達到 GHz 的范圍。
2.系統(tǒng)硬件設計
2.1系統(tǒng)功能及硬件結構
硬件主要由脈沖輸入信號整形及緩沖電路、TDC - GP1 測量芯片、PIC16C63 單片機、AT24C01 串行存儲器、DS18B20 測溫傳感器、顯示電路、電源電路、時鐘電路及 RS - 485 通信電路組成。
系統(tǒng)功能主要有 :最多能同時對 3 個液位 (位移) 、3 個溫度點進行測量 ;用戶可根據(jù)自己的需要通過上位機設置測量的液位 (位移) 數(shù)、溫度點數(shù)、測量的量程、標定參數(shù)、磁致伸縮位移(液位) 傳感器的地址、DS18B20 的地址碼及串行通信波特率 ,并保存在串行存儲器 AT24C01 中 ,AT24C01 是一種不揮發(fā)存儲器 ,掉電后數(shù)據(jù)仍然保留其中 ,每次開機由軟件調用 ;用戶可以通過上位機對通信、TDC - GP1、AT24C01、DS18B20 等硬件功能進行自檢 ,自檢失敗會給出警告信號 ;系統(tǒng)的液位測量和溫度測量是獨立進行的 ,彼此不影響 ;鑒于 DS18B20 有可能出現(xiàn)故障 ,系統(tǒng)提供了溫度測量故障報警 ,并允許在線更換新的溫度傳感器 ,系統(tǒng)能夠自動找到新的溫度傳感器并使用 ;每只磁致伸縮位移 (液位) 傳感器有 1 個 8 位二進制碼地址 ,采用 RS - 485 串行總線連接可以構成最多有 256 只磁致伸位移 (液位) 傳感器的一個測控網(wǎng)。

2.2微處理電路
系統(tǒng)采用了美國 Microchip 公司的 PIC16C63A 單片機作為下位機。它的主要特點 :高速度,PIC16C63 微控制器采用寬字單周期指令、哈佛雙總線和 RISC 結構 ,低功耗 ;較強的驅動能力 ,數(shù)據(jù)輸入線允許有 25 mA 的倒灌電流 ,可以直接驅動 LED ;一次性編程 (OTP) 功能 ,可編程編碼 (加密) 保護功能 ;多種振蕩器類型 ,多種復位功能 ,可編程 ID 標識碼 ,可在線串行編程。但是 PIC16C63A 單片機指令集中沒有帶進位減法、乘法及除法等指令 ,給用匯編語言開發(fā)復雜軟件增加了難度。
PIC16C63A 單片機是下位機的核心 ,完成包括 TDC - GP1測量芯片、AT24C01 串行存儲器及 DS18B20 測溫傳感器操作控制 ,信號處理、通信、顯示等所有功能。
2.3TDC - GP1 電路
TDC - GP1 (Time to Digital Converter - General Purpose) 電路是德國 ACAM公司生產(chǎn)的一種高精度時間測量芯片。TDC - GP1提供了 8 位數(shù)據(jù)總線和 4 位地址總線接口 ,操作時序符合通用微處理器的總線操作時序 ,這使得 TDC - GP1 很方便作為一個微處理器的簡單外圍電路 ,用于操作 TDC - GP1 的 12 個 8 位控制寄存器、2 個 8 位狀態(tài)寄存器和 8 個 16 位結構寄存器 ;內(nèi)部自帶高精度時鐘 ,通過設置控制寄存器分辨率可達到 125/ s ,測量范圍在 2 ns~200 ms 之間 ;操作電壓的范圍為 217~515 V ,兩次事件的時間間隔由一個 29 位的動態(tài)區(qū)域數(shù)字化 ,測量速度可高達 4 ×106 次/ s ,TDC - GP1 平均電流消耗由測量速度決定 ,可以降低到 10μA 的范圍 ,內(nèi)置 16 位的算術邏輯單元 ,能夠實現(xiàn)測量后必要的直接標度的算術運算和存儲 16 位輸出寄存器的結果 ;參考時鐘可在 500 kHz~35 MHz 之間選擇 ;另外 TDC -GP1 還提供了 4 個接口用于測量電阻、電容或者電感 ,具有 16位的精度和 2 ×104 次/ s 的測量速度。
它主要有兩種工作模式 :2 路通道、250/ s 分辨率的小量程工作模式 ;1 路通道、125/ s 分辨率大量程工作模式 ,可以通過設置片內(nèi) 12 個控制寄存器來改變工作狀態(tài)。
工作在小量程模式時 ,TDC 的兩個通道都是由 start 脈沖的邊沿觸發(fā)的 ,每個獨立的通道可以檢測到 4 個采樣值 ,這些采樣值與 start 脈沖的時間被存儲到各個通道的采樣寄存器中。在 start 信號和個 stop 信號之間 ,不能少于 3 ns 的時間間隔 ,如果小于這個值 ,開始的 stop 信號是要被忽略的 ,所以 start信號和個 stop 信號之間的間隔必須大于 3 ns ;在同一個通道的 stop 信號之間 ,也必須有 15 ns 的時間間隔 ,太靠近的 stop信號也會被忽略 ;而在兩個不同通道的 stop 信號之間則沒有最小時間的限制 ;所有的 stop 信號在 stop 信號之后都不能超過716μs 的值。
工作在大量程模式時 ,在這個模式中 stop 信號和接下來的個參考時鐘信號的正跳沿之間的時間設定為 FC1 ,出現(xiàn)個正跳沿后計時器被觸發(fā) , TDC 記錄下經(jīng)過的時鐘周期數(shù)CC ,直到個 stop 信號被檢測到 ,個 stop 脈沖和接下來的個參考時鐘信號的正跳沿之間的時間設定為 FC2 ,接著開始新一輪的計數(shù)。由時間計算式可算出時間值 ,如式 (1) 。其后的 stop 信號也同樣處理。
在這種模式下可以處理超過 100 ms 的時間間隔。stop 信號之間、兩個不同通道的 stop 信號之間至少要大于 2 個時鐘周期 ,所有 stop 信號之間不應超過 216倍的時鐘周期。所以的測量范圍不超過 200 ms.
由于該芯片具有高分辨率、低功耗、測量范圍廣、多點測量、體積小等優(yōu)點 ,使它成為傳感器和處理器之間的方便的橋梁 ,大大減輕了處理器的工作壓力。系統(tǒng)最多可配 3 個磁環(huán)另加 stop 脈沖的回波共 4 個 stop 脈沖 ( 如圖 3) , 只要利用PIC16C63A 單片機對 TDC - GP1 的控制寄存器進行設定 ,TDC -GP1 就自動進行測量并把結果轉化為十六進制數(shù)輸出。
2.4顯示電路、通信電路、電源電路
測量現(xiàn)場數(shù)據(jù)顯示電路采用 8 位串行液晶顯示模塊 ,微處理器通過串行接口同步輸入液位值 ,用戶可在線觀察液位的變化。上位機和下位機之間用 RS - 485 串行標準進行通信 ,采用ADM483E芯片來實現(xiàn) ,波特率可由用戶設置。采用 LM2575 開關電源 ,效率大于 85 % ,輸出電流可達到 1 A ,較好的滿足了要求。
2.5信號前置處理電路
系統(tǒng)采用帶施密特觸發(fā)器邏輯門、比較器及濾波電路對模擬板提供的脈沖信號進行隔離、緩沖、整形及濾波。不僅去掉了毛刺 ,改善了波形的上升沿及下降沿 ,而且提高了模擬信號負載能力 ,提高了 TDC 的測量精度。
3軟件系統(tǒng)設計
上位機軟件采用 Visual C ++ 610 來實現(xiàn) ,具有良好的人機界面 ,完成所有的自檢、參數(shù)設定、測量命令的下達 ;下位機軟件用 PIC16C63A 的匯編語言實現(xiàn) ,主程序流程圖如圖 4 所示。
下位機通過串行口與上位機進行通信 ,下位機的通信模塊包括串行口的初始化和中斷服務程序 ,下位機中斷服務程序流程如圖 5 所示。
上位機命令格式 :8 位地址碼 + 8 位命令碼 + 8 位參數(shù)值 + 8 位異或校驗碼
下位機命令格式 :8 位地址碼 + 測量值 + 8 位異或校驗碼
4.信號處理
磁環(huán)在某一靜態(tài)位置的情況下 ,用數(shù)字示波器對原始的 stop 信號和 start 信號進行多次采樣所得數(shù)據(jù)。
磁環(huán)靜止不動 ,而不同次的采樣中 stop信號和 start 信號之間的時間差就有波動 ,波動范圍可達μs級 ,按應變波在波導絲中的傳輸速度 2 830 m/ s 計算 ,也就是說磁致伸縮位移 (液位) 傳感器本身就有 mm 級誤差 ,系統(tǒng)對多種濾波算法進行了仿真 ,選用防脈沖干擾平均值法 ,結果精度提高到全量程的 3 ‰。基于 PIC16C63 單片機有限的運算能力和存貯空間的限制 ,下位機具體采取以下濾波算法 :把在靜態(tài)情況下每次采集的 10 組數(shù)據(jù)累加起來 ,然后減去和最小的一組 ,除以 8 所得平均值作為測量結果。
5.結束語
在調試中遇到并解決了一些問題 :在某些場合可能需要測量 3 層的液位 ,而當 TDC 工作在大量程模式時 ,兩個測量通道中只有個通道在工作 ,1 個測量通道只有 4 個采樣寄存器 ,只可以接收 1 個 start 信號和 3 個 stop 信號 ,也就是說只能測量兩層的液位 ,為解決該問題做了多次實驗 ,結果發(fā)現(xiàn) :事實上可以通過設定控制寄存器 ,把第 4 個 stop 信號采集暫存入第二通道 ,這樣在大量程工作模式下就可以同時測量 3 個液位了。PIC單片機的數(shù)據(jù)存儲空間分 BANK1 和 BANK2 ,編程者通過設定status 寄存器的第 6 位來決定訪問哪一部分 ,但調試過程中經(jīng)常會發(fā)現(xiàn)數(shù)據(jù)存儲空間的某一存儲單元被改寫。系統(tǒng)很好地解決了該問題 ,就是在進入中斷服務程序時 ,除了保存 status 寄存器的值 ,一定要對 status 寄存器清零 ,退出中斷服務程序時恢復status 寄存器的值 ; PIC 單片機的程序存儲空間分 2 頁 ,當程序足夠大并同時占用 2 頁時 ,往往出現(xiàn)程序“飛”的情況 ,系統(tǒng)為解決此問題采取了以下辦法 :當用 goto 和 call 命令訪問另一頁時 ,設置 platch 寄存器的第 4 位 ,并且在程序中打開“看門狗”。