服务热线0535-6936196

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

来源:拿度科技 浏览量: 时间:2022-03-25 09:16

  

       磁致伸缩位移 (液位) 传感器以其远程测量、高精度、安全可靠、稳定性好、安装方便等优点 ,在锅炉、造纸、制药、石油、化工、水利、食品等领域逐渐取代了传统的传感器。目前应用的此类位移传感器大多都是把位移转换成时间间隔 ,再把时间间隔转换为相应的模拟电压 (电流) 信号 ,这种测量方法存在一些不足之处 : (1)模拟信号抗干扰能力有限 ,不能远距离传输 ; (2)由于电路转换引入噪声 ,使其测量精度不高 ; (3)1根测杆只能测量 1 个液位 (位移) 。
       研制的智能化磁致伸缩位移 (液位) 传感器直接测量多个时间间隔 ,并利用单片机进行较好的处理 ,实现了多点高精度测量 ,并通过RS-485串行通信实现远距离传输及接入工业监测网。另外 ,由于采用 PIC 低功耗单片机及其他低功耗芯片 ,优化电路结构 ,使系统功耗大大降低 ,满足本安型传感器要求。
1.传感器的结构及工作原理
       智能化磁致伸缩位移 (液位) 传感器由不导磁的不锈钢管(探测杆) 、磁致伸缩线 (波导丝) 、可移动的浮球 (磁环) 和测量处理系统等组成。波导丝被安装在不锈钢管内保持电磁特性 ,磁环在不锈钢管外侧可自由滑动 ,测量处理系统集成在传感器头部的电子仓内。
       智能化磁致伸缩位移 (液位) 传感器进行液位测量时 ,磁环被封在浮球内 ,浮球套在探测杆上 ,可沿探测杆随液位的变化而上下移动。测量处理系统产生一周期电脉冲 ,该周期电脉冲加载波导丝 ,产生一个磁场 ,该磁场与测杆外磁环的正交磁场相遇时 ,相互作用形成螺旋磁场 ,产生瞬时扭力 ,使波导丝扭动 ,产生应变波 ,并以音速沿波导丝传回 ,在接收端线圈产生一个电脉冲。每个周期可进行一次测量 ,电脉冲为测量起始脉冲 ( start 脉冲) ,接收端的电脉冲 ( stop脉冲) ,与每个磁环对应 ,最多有 3 个。start 脉冲与 stop 脉冲之间时间间隔与磁环的位置成比例 ,因此通过测量 start 脉冲与stop 脉冲的时间间隔的就可精确地确定被测位移量。应变波在波导丝中的传输速度大约为 2 830 m/ s ,要想得到 5μm 的分辨率 ,时间测量的精度要达到 118 ns ,要求参考时钟要达到 GHz 的范围。
2.系统硬件设计
2.1系统功能及硬件结构
        硬件主要由脉冲输入信号整形及缓冲电路、TDC - GP1 测量芯片、PIC16C63 单片机、AT24C01 串行存储器、DS18B20 测温传感器、显示电路、电源电路、时钟电路及 RS - 485 通信电路组成。
       系统功能主要有 :最多能同时对 3 个液位 (位移) 、3 个温度点进行测量 ;用户可根据自己的需要通过上位机设置测量的液位 (位移) 数、温度点数、测量的量程、标定参数、磁致伸缩位移(液位) 传感器的地址、DS18B20 的地址码及串行通信波特率 ,并保存在串行存储器 AT24C01 中 ,AT24C01 是一种不挥发存储器 ,掉电后数据仍然保留其中 ,每次开机由软件调用 ;用户可以通过上位机对通信、TDC - GP1、AT24C01、DS18B20 等硬件功能进行自检 ,自检失败会给出警告信号 ;系统的液位测量和温度测量是独立进行的 ,彼此不影响 ;鉴于 DS18B20 有可能出现故障 ,系统提供了温度测量故障报警 ,并允许在线更换新的温度传感器 ,系统能够自动找到新的温度传感器并使用 ;每只磁致伸缩位移 (液位) 传感器有 1 个 8 位二进制码地址 ,采用 RS - 485 串行总线连接可以构成最多有 256 只磁致伸位移 (液位) 传感器的一个测控网。
磁致伸缩位移(液位)传感器
2.2微处理电路
       系统采用了美国 Microchip 公司的 PIC16C63A 单片机作为下位机。它的主要特点 :高速度,PIC16C63 微控制器采用宽字单周期指令、哈佛双总线和 RISC 结构 ,低功耗 ;较强的驱动能力 ,数据输入线允许有 25 mA 的倒灌电流 ,可以直接驱动 LED ;一次性编程 (OTP) 功能 ,可编程编码 (加密) 保护功能 ;多种振荡器类型 ,多种复位功能 ,可编程 ID 标识码 ,可在线串行编程。但是 PIC16C63A 单片机指令集中没有带进位减法、乘法及除法等指令 ,给用汇编语言开发复杂软件增加了难度。
       PIC16C63A 单片机是下位机的核心 ,完成包括 TDC - GP1测量芯片、AT24C01 串行存储器及 DS18B20 测温传感器操作控制 ,信号处理、通信、显示等所有功能。
2.3TDC - 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 就自动进行测量并把结果转化为十六进制数输出。
2.4显示电路、通信电路、电源电路
       测量现场数据显示电路采用 8 位串行液晶显示模块 ,微处理器通过串行接口同步输入液位值 ,用户可在线观察液位的变化。上位机和下位机之间用 RS - 485 串行标准进行通信 ,采用ADM483E芯片来实现 ,波特率可由用户设置。采用 LM2575 开关电源 ,效率大于 85 % ,输出电流可达到 1 A ,较好的满足了要求。
2.5信号前置处理电路
       系统采用带施密特触发器逻辑门、比较器及滤波电路对模拟板提供的脉冲信号进行隔离、缓冲、整形及滤波。不仅去掉了毛刺 ,改善了波形的上升沿及下降沿 ,而且提高了模拟信号负载能力 ,提高了 TDC 的测量精度。
3软件系统设计
       上位机软件采用 Visual C ++ 610 来实现 ,具有良好的人机界面 ,完成所有的自检、参数设定、测量命令的下达 ;下位机软件用 PIC16C63A 的汇编语言实现 ,主程序流程图如图 4 所示。
       下位机通过串行口与上位机进行通信 ,下位机的通信模块包括串行口的初始化和中断服务程序 ,下位机中断服务程序流程如图 5 所示。
       上位机命令格式 :8 位地址码 + 8 位命令码 + 8 位参数值 + 8 位异或校验码
       下位机命令格式 :8 位地址码 + 测量值 + 8 位异或校验码
4.信号处理
       磁环在某一静态位置的情况下 ,用数字示波器对原始的 stop 信号和 start 信号进行多次采样所得数据。
       磁环静止不动 ,而不同次的采样中 stop信号和 start 信号之间的时间差就有波动 ,最大波动范围可达μs级 ,按应变波在波导丝中的传输速度 2 830 m/ s 计算 ,也就是说磁致伸缩位移 (液位) 传感器本身就有 mm 级误差 ,系统对多种滤波算法进行了仿真 ,选用防脉冲干扰平均值法 ,结果精度提高到全量程的 3 ‰。基于 PIC16C63 单片机有限的运算能力和存贮空间的限制 ,下位机具体采取以下滤波算法 :把在静态情况下每次采集的 10 组数据累加起来 ,然后减去最大和最小的一组 ,除以 8 所得平均值作为测量结果。
5.结束语
       在调试中遇到并解决了一些问题 :在某些场合可能需要测量 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号
网站地图 

扫码关注拿度微信