文章分类

当前位置:首页>技术文章>TMP04的PIC单片机测温实现

TMP04的PIC单片机测温实现

数字化温度传感器可以直接将温度量以数字脉冲信号形式输出,具有测量精度高、抗干扰能力强、传输距离远、外围接口电路简单等诸多优点。同时数字温度传感器还可直接与微处理器进行接口,大大方便了传感器输出信号的处理。本文以 PWM 模式输出的 TMP04 型数字式温度传感器为例,介绍由 PCI 单片机实现的几种测温方案,并给出软件设计流程。 关键词:数字式温度传感器 PCI 单片机 TMP04 PWM 1 引言在大多数测控系统中,温度都是必不可少的检测量,温度传感器也是测控系统中十分重要的传感器件。

随着数字化传感器技术的不断发展, 出现了各种类型的数字温度传感器。数字温度传感器可以直接将被检测的温度信息以数字化形式输出,与传统的模拟式温度传感器相比,具有测量精度高、功耗低、稳定性好、外围接口电路简单特点。而单片机微处理器越来越丰富的外围功能模块,更加方便了数字式温度传感器输出信号的处理。数字式温度传感器主要的输出模式有 PWM、SPI、I2C、SMBus 等,当今主流的单片机几乎都支持这种接口方式,文中以 PWM 输出模式为例,讨论了 PIC 单片机对于这种输出模式的测温方案。

PWM 模式输出的数字温度传感器如 TMP03/04、TPM05/06 等,都是将传感器件测得的温度信息数字化后,经过一定的输出编码,调制成占空比与温度成正比的数字脉冲信号单线输出。输出信号接入微处理器后,只需测得数字脉冲信号的占空比就可由软件运算得到相应的温度信息。而对于微处理器来说,输入信号占空比的计算方式多种多样以 PCI 系列单片机为例,在 PIC16、PIC17、PIC18 中均可由 CCP 模块的捕捉功能、RB 端口电平变化中断功能,外部中断功能等多种方法实现。

以下将分别作以介绍。 2 硬件设计由于数字式温度传感器直接输出数字脉冲信号,无需后续的 AD 转换和温度补偿,所以基于数字式温度传感器的测温电路硬件非常简单,仅需要单片机微处理器和传感芯片就可实现。除了个别集电极开路输出的传感芯片在接入单片机时需要外加上拉电阻以外,其余的传感芯片可与单片机直接相连。在此选用 PCI 系列单片机作为微处理器,ADI 公司的 TMP04 数字式温度传感器作为传感芯片。

2.1 PIC 系列单片机简介 PIC 系列单片机是美国微芯(Microchip)公司生产的 8 位 COMS 单片机,它内部采用哈佛总线结构,使得全部指令单字节、单周期化,有利于提高 CPU 执行搜集的速度,从而提高单片机的运行速度。它的指令系统采用精简指令集(R1SC)技术,寻址方式非常简单,便于程序的编写与调试。它丰富的外部功能模块更是为外设提供了极其方便的接口,使得许多外部设备可以直接与微处理器进行通信。

本设计采用的 PIC18F458 具有最大 25mA 的拉/灌电流、3 个外部中断、4 个定时器/计数器、2 个捕捉/比较/脉冲调制(CCP)模块、SPI 和 I2C 二种工作方式的主同步串行模块(MSSP)、可寻址的 USART 模块、高级 10 位 8 通道模数转换器以及集成的 CAN 总线模块等多种外围功能模块。

2.2 数字式温度传感器 TMP04 简介 TMP04 是 ADI 公司生产的一款低功耗、高精度、宽动态输入范围的 PWM 模式输出的数字式温度传感器。TMP04 是三端单线式器件,测量结果以 PWM 编码式数字脉冲信号在 DOUT 引脚输出,输出信号的占空比与所测温度成正比,其输出编码格式以及具体的温度计算公式如图2所示。其中,T1一般为10ms,最大不赶12ms,T2随着温度的变化而变化,输出不同占空比的数字脉冲信号时表示不同的温度. TMP04内部含有一个由输入采样器、模拟求和器、积分器、比较器、1 位 DAC 以及数字滤波器构成的∑-Δ型模数转换器,该模数转换器具有分辨率高、线性度好、抗混叠哭声和量化噪声能力强等诸多优点,非常适用于数字式温度传感器等微传感系统。

由于∑-Δ型模数转换器的作用,TMP04 的最大功耗不超过 6.5mW,全程线性误差只有 0.5℃,稳定性非常高。同时 TMP04 的动态输入范围比较大,精度也比较高,在-25℃~125℃温度范围内误差仅为 1.5℃。TMP04 还有一个与其结构、功能很类似的同类产品 TMP03,二者唯一的区别就是 TMP03 的输出级采用集电极开路电路,输出电流可达 5mA,驱动能力强,可驱动光耦实现远程测温,接入单片机时需要外接上拉电阻,而 TMP04 的输出级采用互补型 MOSFET 电路,其输出电平与 COMS/TTL 电路兼容,可直接接入单片机。

3 软件设计由 PWM 编码的原理可知,要测出 PWM 数字脉冲信号所携带的温度信号,只要检测出数字脉冲信号的占空比即可,以 PIC18 系列为例,一个单片机有 9 个不同的端口(2 个 CCP 模块端口、4 个 RB 电平变换中断端口、3 个外部中断 INT 端口),可以测出 TMP04 的输出温度,这为 PWM 编码式温度数字传感器提供了相当灵活的接口方式和更为广阔的应用空间。

3.1 由 CCP 模块的捕捉功能实现捕捉/比较/脉宽调制 CCP 模块是 PIC 单片机特有的外围功能模块,它与 TMR1 和 TMR2 配合使用实现输入捕捉、输出比较和脉宽调制输出等功能。其中输入捕捉模式用于测量引脚输入信号的周期、频率、脉宽、信号的到达时刻以及消失时刻等。结合 TMP04 输出信号的特点,可以利用 CCP 模块分别测量出 TMP04 输出信号的高电平脉宽 T1 和低脉宽 T2,然后间接算出信号的占空比,从而得到 TMP04 输出的温度信息。

3.2 由 RB 端口电平变化中断实现与其它单片机不同,PIC 单片机的 RB4-RB7 端口具有输入电平变化中断功能,当 RB4-RB7 任意一个引脚上的输入电平发生变化(由高变低或由低变高)时,都可以引起 CPU 中断,执行中断处理程序。因此,可以将 TMP04 的输出信号输入 RB4,当输入 RB4 的信号发生跳变时,利用 RB4 的电平变换中断调用中断处理程序分别对信号高低电平的脉宽进行测量,从而间接算出信号的占空比,最终得到 TMP04 输出的温度信息。

3.3 由外部中断 INT 实现由外部中断 INT 实现与由 RB 端口电平变化中断实现的设计方案类似,都是由单片机响应电平变化产生中断,再通过中断服务程序计算高低脉宽,从而得到 TMP04 输出信号的占空比和所携带的温度信息。所以由外部中断 INT 实现和由 RB 端口电平变化中断实现程序类似,只是将中断源改为 INT0(INT1,INT2 均可)中断,使能 INT0 中断使能位 INT0IE,判断 INT0 中断标志位 INT0IF,由于 INT0 输入为 RB0 引脚,上例中设 RB0 为输入,并由 INTEDG0 判断高低电平即可,注意要启动 RB 口的弱上拉功能,其总体的程序流程程图类似图 5。

4 实验数据对比利用简单的电路及以上软件程序在室温为 24.1℃时,笔者用三种方法测量温度,为了得到更好的精度,每种分别设计了泄编和 C 评议二种测温程序,其结果与平均值如表 1 所示。 表 1 测试结果与平均值方 法测温 结果平均值汇编程序 C 程序 CCP 捕捉模块 23.923.923.9 RB 电平变化中断 24.524.124.3 INT0 外部中断 24.424.4

24.4 5 结束语设计基于 PWM 模式输出的数字式温度传感器的测温系统时,关键是对传感器输出的脉冲信号高低电平脉宽的测量。由于测量脉宽是由定时器在高电平(低电平)期间计数实现的,所以单片机的指令周期将直接影响到测量的精度,指令周期越短精度越高。但是如果指令周期短而晶振频率高,将会引入高频干扰,所以晶振要根据系统实现情况选取。此外还要注意 PIC 单片机定时器预分频比的设定,应在保证测量传感器信号脉宽进不会发生溢出的情况下使分频比最小,这样有利于提高测量精度。


© 星光电子技术工作室 2021 All Rights Reserved.
如有任何问题、建议、业务、合作,请联系手机/微信:13713820066