服務熱線0535-6936196

基于PIC單片機和TDC芯片的智能化磁致伸縮位移傳感器

來源:拿度科技 瀏覽量: 時間:2023-10-11 08:51

  

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

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


上一篇:一種立式磁致伸縮液位計校準裝置的研制


下一篇:磁致伸縮材料傳感器和驅動器

關閉
磁致伸縮位移傳感器店鋪二維碼磁致伸縮液位傳感器店鋪二維碼
磁致伸縮位移傳感器logo圖片
山東省煙臺經濟技術開發區珠江路32號3號樓
Copyright ? 2019 NADO | All right reserved. 魯ICP備16037561號
網站地圖 

掃碼關注拿度微信

忘忧草成人无碼高清_永久免费A∨无码_亚洲一级网站_国产大尺度不卡无码成人