服务热线0535-6936196

基于 PIC 单片机和 TDC 芯片的智能化磁致伸缩位移传感器

来源:拿度科技 浏览量: 时间:2023-02-15 14:04

  

基于 PIC 单片机和 TDC 芯片的智能化磁致伸缩位移传感器
作者:徐国华 宋书锋 吕瑜

1  引言
       磁致伸缩位移 (液位) 传感器以其远程测量、高精度、安全可靠、稳定性好、安装方便等优点 ,在锅炉、造纸、制药、石油、化工、水利、食品等领域逐渐取代了传统的传感器。目前应用的此类位移传感器大多都是把位移转换成时间间隔 ,再把时间间隔转换为相应的模拟电压 (电流) 信号 ,这种测量方法存在一些不足之处 : (1) 模拟信号抗干扰能力有限 ,不能远距离传输 ; (2)由于电路转换引入噪声 ,使其测量精度不高 ; (3) 1 根测杆只能测量 1 个液位 (位移) 。
       研制的智能化磁致伸缩位移 (液位) 传感器直接测量多个时间间隔 ,并利用单片机进行较好的处理 ,实现了多点高精度测量 ,并通过 RS - 485 串行通信实现远距离传输及接入工业监测网。另外 ,由于采用 PIC 低功耗单片机及其他低功耗芯片 ,优化电路结构 ,使系统功耗大大降低 ,满足本安型传感器要求。
2  传感器的结构及工作原理
       智能化磁致伸缩位移 (液位) 传感器由不导磁的不锈钢管(探测杆) 、磁致伸缩线 (波导丝) 、可移动的浮球 (磁环) 和测量处理系统等组成。波导丝被安装在不锈钢管内保持电磁特性 ,磁环在不锈钢管外侧可自由滑动 ,测量处理系统集成在传感器头部的电子仓内。
       智能化磁致伸缩位移 (液位) 传感器工作原理图如图 1 所示 ,进行液位测量时 ,磁环被封在浮球内 ,浮球套在探测杆上 ,可沿探测杆随液位的变化而上下移动。测量处理系统产生一周期电脉冲 ,该周期电脉冲加载波导丝 ,产生一个磁场 ,该磁场与测杆外磁环的正交磁场相遇时 ,相互作用形成螺旋磁场 ,产生瞬时扭力 ,使波导丝扭动 ,产生应变波 ,并以音速沿波导丝传回 ,在接收端线圈产生一个电脉冲。每个周期可进行一次测量 ,电脉冲为测量起始脉冲 ( 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 脉冲 ( 如图 3) , 只要利用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 的汇编语言实现 。
        下位机通过串行口与上位机进行通信 ,下位机的通信模块包括串行口的初始化和中断服务程序。
        上位机命令格式 :8 位地址码 + 8 位命令码 + 8 位参数值 + 8 位异或校验码。
5  信号处理
       磁环在某一静态位置的情况下 ,用数字示波器对原始的 stop 信号和 start 信号进行多次采样所得数据。从表 1 可以发现 ,磁环静止不动 ,而不同次的采样中 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 位 ,并且在程序中打开“看门狗”。
     



本文章转自爱学术(aixueshu.com),如有侵权,请联系删除


 


上一篇: 经营精细化---磁致伸缩多功能液位仪


下一篇:工业检测用液位传感器的研制

关闭
磁致伸缩位移传感器店铺二维码磁致伸缩液位传感器店铺二维码
磁致伸缩位移传感器logo图片
山东省烟台经济技术开发区珠江路32号3号楼
Copyright © 2019 NADO | All right reserved. 鲁ICP备16037561号
网站地图 

扫码关注拿度微信