APP下载

基于LPC1768的高精度热电阻测量装置的设计与实现

2017-02-07王梦迪

关键词:热电阻铂电阻总线

王梦迪, 马 帅, 华 金

(上海船舶运输科学研究所 舰船自动化分所,上海 200135)

0 引 言

在工业生产过程中,温度是非常重要的参数,某些应用场景对测温装置有着非常高的要求,温度的检测与控制正朝着高精度、高稳定性及高可靠性的方向迅速发展。热电阻传感器作为一种电阻值随温度变化而变化的传感器,具有测量精度高、测量范围广、线性度好及性能稳定等优点,广泛应用在船舶自动化领域中。提出以LPC1768微控制器为主控芯片、外设配合高精度A/D转换器ADS1248芯片、可支持8路通道、采用三线制接法的PT100铂电阻传感器温度测量装置设计方案[1]。以测量装置工作原理为切合点,分别从硬件和软件探讨该测量装置的实现过程。

1 温度测量装置工作原理

温度测量装置工作原理见图1,主要由数据采集单元、模数转换单元、微控制单元(MicroController Unit, MCU)和控制器局域网络(Controller Area Network, CAN)通讯隔离单元组成。数据采集单元采用三线制PT100铂电阻传感器接法,主要完成8路PT100铂电阻传感器的模拟数据采集。模数转换单元主要完成模拟量到数字量的转换,并通过串行外设接口(Serial Peripheral Interface, SPI)与MCU进行通讯。MCU为测量装置的主控单元,主要完成对数字量的处理和测量装置的控制。根据测量装置的CAN总线报文协议要求,MCU将处理的数据转换成CAN现场总线报文发送为CAN现场总线网络中。在MCU和CAN现场总线网络间采用CAN通讯隔离单元,以减少CAN现场总线网络中不同测量装置间的电磁干扰[2]。

2 硬件设计与实现

热电阻测量装置的对外接口主要由电源输入接口、8路热电阻输入接口、CAN现场总线通信接口和发光二级管(Light-Emitting Diode,LED)输出组成,可测温度为0~300 ℃,测量装置硬件接口框图见图2。

2.1 MCU及CAN通讯隔离单元

MCU核心芯片选用NXP公司的LPC1768微控制器,具有功耗低、功能强、效率高和成本低廉等优点。LPC1768基于Cortex-M3内核,最高速率100 MHz,片内集成64 K RAM、512 KBFlash、2路CAN控制器、3路SPI总线和以太网控制器等外设资源,无需外接其他专用芯片即可满足测量装置的各项功能和性能指标。

LPC1768微控制器芯片内部集成了2路CAN控制器,但仍不能对系统内、外部的电源和干扰信号进行有效的抑制,所以在LPC1768微控制器和CAN现场总线网络间增加ADM3053芯片,作为CAN现场总线收发器的CAN通讯隔离单元。ADM3053是一款隔离式CAN物理层收发器,集成隔离DC/DC转换器,能有效地抑制外部干扰。

2.2 数据采集及模数转换单元

CD4052是差分4通道数字控制模拟开关,具有低导通阻抗和低截止漏电流。2片CD4052与ADS1248连接,通过切换CD4052通道可支持8路热电阻传感器温度采集。

ADS1248是高集成、高精度的24位精度的δ-α模数转换器,具有低噪声可编程增益放大器(Programmable Gain Amplifier, PGA)、2个互相匹配的可编程电流和内置极低的漂移参考电压等特点。ADS1248支持4种差分和7个单端输入,具有传感器失效检测功能,采样频率最高可达2 kSPS。ADS1248芯片VREFOUT和VREFCOM两端内置恒压为2.048 V,可在判断PT100铂电阻传感器断线检测时使用[3]。

3 提高测量精度方法

3.1 ADS1248的误差分析

ADS1248是24位高精度模数转换芯片,其测量精度最大误差为0.001%。该测量装置充分利用ADS1248芯片内部资源以提高测量精度,使用ADS1248芯片的两路内部恒流源,与电桥式热电阻测量装置对比,简化了测量装置的电路设计。同时,ADS1248内部集成的低噪声PGA放大倍数最高可达128倍,能实现对微弱模拟信号的采集。

3.2 基于ADS1248三线制测量原理分析

在船舶自动化应用中,PT100铂电阻传感器应用的位置与测量装置间的距离会非常长,为提高测量精度,采用三线制恒流源驱动PT100铂电阻传感器,可消除在硬件电路上连接线电阻带来的误差。三线制恒流源驱动PT100铂电阻传感器原理见图3。

在实际应用中,3根连接线需采用同种规格且长度相等,图3中r1,r2,r3分别等效为3根导线电阻,设r1=r2=r3=r。R为PT100铂电阻传感器等效电阻,Rcomp为输入端的比较电阻,Rref为外部参考源采样电阻。ADS1248内部集成2路恒流源(IDAC1和IDAC2),通过对寄存器的配置进行编写,选择2路恒流源输出Ia、Ib。在测量装置中为了消除导线电阻对输入端压差UIN的影响,取2路恒流源Ia=Ib=I。Ia和Ib汇聚流经采样电阻Rref时产生压降,则Uref电压为

Uref=2×I×Rref

(1)式(1)中:当Rref一定时,Uref只和2路电流源有关,在正常测量过程中2路电流源的值是固定不变的,Uref也固定不变。ADS1248可选取Rref两端电压Uref为测量PT100铂电阻传感器的外部参考源。

电流流过PT100铂电阻传感器R、比较电阻Rcomp和导线电阻r1,r2,r3都会产生压降,AIN0,AIN1两端电压分别为

UAIN0=I×(R+r)+2×I×(Rref+r)

(2)

UAIN1=I×(Rcomp+r)+2×I×(Rref+r)

(3) 采集电压输入到AIN0,AIN1两端的压差UIN为

UIN=I×(R-Rcomp)

(4) 由式(4)可知,当PT100铂电阻传感器采用三线制接法时,输入端差分电压的大小的和导线电阻、参考源选择均无关。

Rcomp的取值与测量装置的测量精度有关。该测量装置的可测温度为0~300 ℃,对应的电阻值约为100~212.02 Ω,当Rcomp取最小值与最大值和的1/2时,正负偏压幅度的大小相等,此时测量装置的误差最小,Rcomp约为156 Ω。

3.3 线性化处理

在测量PT100铂电阻传感器的电阻值时,由于PT100铂电阻传感器的电阻值随着温度的变化并非完全线性的,导致测量PT100铂电阻传感器的输出值和实际的温度值存在偏差。因此采取建立数组查表和线性插值算法的方式计算出测量温度,可在一定程度上对PT100铂电阻传感器进行线性化校正。根据PT100铂电阻传感器的温度分度表,结合实际应用中的精度要求选取合适的标定点时间间隔,选取若干个标定点,建立电阻—温度分度表。若取m个标定点,每个标定点分别是Ri(0≤i≤m),对应的温度记Ti。当计算测量温度时,将测量电阻值R按顺序查表,确定R在区间[Ri,Ri+1]内,最后采用线性插值算法计算PT100铂电阻传感器测量温度T为

(5)

4 软件设计与实现

热电阻测量装置软件总体结构见图4,热电阻测量装置软件设计有3个部分,分别为:

1)软件平台层中与底层硬件相关的驱动,如CAN驱动、SPI驱动、TIMER驱动、WDT驱动和A/D驱动等;

2)协作式多任务调度器,调度器初始化、任务创建、任务销毁和调度器启动等;

3)上层热电阻测量装置应用程序设计,如PT100铂电阻传感器测量、采集数据处理、CAN总线报文发送和测量装置标定等。

4.1 主程序

主程序软件流程图见图5,测量装置需完成一系列的初始化工作,包括LPC1768初始化、ADS1248初始化、E2PROM初始化和调度器初始化等。若测量装置需进行标定,标定过程中使用标准电阻箱模拟PT100铂电阻传感器的电阻值,将标定值存储到铁电中,供测量装置在正常测量时使用。创建数据采集任务GatherTask和数据处理任务ProcessTask,启动调度器。

测量装置软件中的调度器基于时间触发设计模式的软件架构进行编写,是由不同任务间共享的定时器中断服务程序,也是简单的协作式多任务操作系统。当运行多个任务时,都可使用同一个调度器来完成。调度器中断响应函数是时间间隔为1 ms的“事件”,当调度器被任务中的“事件”触发后,遍历任务块链表,根据任务的优先级执行需要被调度执行的任务[4]。

4.2 数据采集任务

数据采集任务流程见图6,该任务是采集8路PT100铂电阻传感器信号,创建循环数组存储采集值。任务启动后,选择第一路通道,判断该通道是否断线,若不断线,设断线标志位isBrokenFlag[i] 为 0,测量该通道PT100铂电阻传感器的电阻值,循环数组存储测量值。若该通道断线,设断线标志位isBrokenFlag[i] 为1,循环数组中其他值均为0。此时,该通道采集任务结束,单通道采集时间约为30 ms,循环执行其他7个通道数据采集任务至结束后,通知Schedule OS 3 Ticks,即调度器等待3 ms再次调用该任务。

在测量每一通道PT100铂电阻传感器之前,使用ADS1248芯片VREFOUT和VREFCOM两端内置恒压2.048 V作为参考源来测量Rref两端电压,若得到Rref两端电压为Uref/2或0时,可判断该通道为处于断线状态。

4.3 数据处理任务

数据处理任务流程图见图7,该任务主要是对采集数据进行滤波,转换为CAN现场总线报文并发送。判断通道断线标志位isBrokenFlag[i],当isBrokenFlag[i]为1时,该通道为断线,CAN现场总线报文设置为0x8fff;当isBrokenFlag[i]为0时,该通道不断线,除去循环数组中0和0x8fff,使用冒泡算法对循环数组进行排序,去掉最大3个值和最小3个值后取平均值,转换为CAN现场总线报文。循环执行其他7个通道数据处理任务至结束,按照测量装置的CAN协议要求发送CAN现场总线报文后,通知Schedule OS 500 Ticks,即调度器等待500 ms再次调用该任务。

5 试验数据结果分析

在该测量装置试验中,设置试验箱试验温度分别在10 ℃,30 ℃和50 ℃环境下,使用标准电阻箱来模拟PT100铂电阻传感器的电阻值,使用周立功USBCAN-II模块配合CANTest软件接收测量装置发出的CAN现场总线报文,数据转换后记录见表2。

表2 试验数据统计

由表2可知,试验温度在10 ℃,30 ℃和50 ℃环境下,误差并无差异,符合该测量装置设计要求。试验表明,该测量装置的测量精度高,测量的温度误差<0.5 ℃,可满足实际应用需求。

6 结 语

设计一种三线制PT100铂电阻传感器测量装置,试验表明该测量装置的测量精度高、测量误差小、运行稳定可靠和抗干扰能力强,具有较高的实际应用价值。

[1] 谭长森. 基于PT100型铂热电阻的测温装置设计[J]. 工矿自动化,2012,38(3):89-91.

[2] 赵标,佘俊. 热电偶测温及冷端补偿研究与实现[J]. 上海船舶运输科学研究所学报,2013,36(1):50-53.

[3] 贾诚安,叶林,葛俊锋,等.一种基于STM32和ADS1248的数字PID温度控制系统[J].传感器与微系统,2005,34(11):103-105.

[4] MICHEAL J P. 时间触发嵌入式系统设计模式:使用8051系列微控制器开发可靠应用[M]. 北京:中国电力出版社, 2004.

猜你喜欢

热电阻铂电阻总线
基于PT100铂热电阻的离心泵温度监测系统设计
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
铂电阻温度传感器现场检定的干扰故障及处理方法
铂电阻感温元件特性数据研究
NHR-213不隔离智能温度变送器
高精度铂电阻温度测量新方法探讨
多通道ARINC429总线检查仪
热电阻智能防火系统
基于EtherCAT总线的ROV控制系统设计