发新话题
打印

基于温度传感芯片LM92的温度巡检系统

基于温度传感芯片LM92的温度巡检系统

摘  要: 本文介绍了一个基于温度传感芯片LM92的温度巡检系统的设计,分别论述了它的总体框架,系统功能,以及LM92特色电路的设计,并给出了C语言编写的LM92的读写程序。
关键词: 温度巡检;数据采集;I2C总线

  温度是表征物体冷热程度的物理量,它是工农业生产中最常见、最基本的参量之一。常用的测温方法有热电偶、热电阻以及IC感温芯片。由于IC技术的发展,许多芯片厂商都推出了测温专用的IC。这些IC温度传感器既有模拟输出,也有数字输出,同时也可能会整合其它的许多功能。美国国家半导体公司(NS)推出了模拟传感器(如LM45),数字传感器(如LM92),远程二极管温度传感器(如LM83),系统监控传感器(如LM78)四个温度产品系列。本文主要论述一个基于NS温度传感芯片LM92的温度巡检系统的设计。

LM92的特性
  LM92是单片高精度数字温度传感器,内含12位温度A/D转换器,可以将被感知的温度量化到0.0625℃的数字量,其基本特性如下:工作电压:+2.7V~+5.5V; 测温范围:-55℃~+150℃;精度:±0.33℃(30℃时); 线形度:±0.50℃;温度刷新间隔:500ms; IIC串行接口等。

NS温度巡检系统的总体框架图
  该系统采用LM92温度传感器,充分利用其精度高、采用IIC总线接口、宽范围电压供电等特点进行设计,总体的系统框架如图1所示。
此系统实际上是一个温度显示设定记录报警巡检系统,简称温度巡检系统。主要特点如下:
● 液晶实时显示温度,在交流供电时,液晶每1s刷新一次温度显示。在电池供电时,液晶显示有休眠功能;
● 报警上下限可以随时设定;
● 每路可以记4000条数据,更换更大容量的EEPROM,可以记录更多数据。可以巡检监控16路以上的温度输入;
● 传感器单元可以和主控单元脱离,单独作为一个火警报警和温度过热报警器;
● 通过RS232和电脑相连,用上位机软件实现数据管理、计算、图表显示、打印以及系统设定等多项功能。

收藏到网摘:
本贴地址:http://bbs.shejis.com/viewthread.php?tid=83238&fromuid=0
点这里,把本帖地址在MSN/QQ上发给朋友分享!同时你还可以获得积分!

TOP

Re:楼主

LM92相关硬件电路
  为了使这种电路具有通用性,传感头部分的电路和MCU的连接只要是两个I/O引脚就可以了,并不一定要求主控单元有IIC接口。LM92的测温和报警单元电路图如图2所示。

  图中最左边的音频插座,用于和系统的主控单元相连。实际就是采用三线连接,插座第2线接SDA,第3线接SCL,MCU亦是如此连接。82B715是IIC总线上的驱动芯片,在实际工程中可以使IIC总线信号传得很远。

  贴片跳线开关SW和上拉电阻RT1、RT2配合使用,用来确定LM92的地址,一组IIC总线上可以挂4路LM92传感器。大多数MCU均有不少I/O引脚,2个作为一组,即可扩展4路LM92传感器。例如,如果一个MCU能留出8个I/O引脚用于测温,就可做到16路的巡检。C2为22mF的电解电容,可以作为传感器LM92的备用电源;当SCL和SDA均为低电平,且传感器处未加外接电源时可以给芯片供电。

  以LM92芯片为界,右边的元器件都去掉,此时就可以作为一个温度传感的变送单元,和系统主机相连就可以实现温度巡检的功能。加上LM92芯片右边的元件,可以在温度传感点做一个报警装置,类似于建筑物中安装的烟雾报警,不过此处是用于温度报警。该报警器可以连接到主机上组成一个测温网络,如给一个粮库、车间测温,也可以拔掉音频线,单独使用,既可分,也可以合。


TOP

Re:楼主

关于LM92的软件设计

  此软件用C语言编写,略作修改可以移植到各种单片机(MCU)上。其中的延时程序,调整延时时间,可以让IIC总线传得更远。
bit ackbit;      /*用于IIC的应答信号,正确ackbit=0,错误ackbit=1*/
unsigned char lm92_addr;      /*LM92内部寄存器的地址*/
unsigned char lm92_config;    /*配置寄存器中的值*/
unsigned char lm92_data_h;    /*当地址指向双字节时,代表高字节数据*/
unsigned char lm92_data_l;    /*当地址指向双字节时,代表低字节数据*/
/*================================*/
/*读取和写入LM92的控制程序*/
/*================================*/
/*控制IIC的延时程序*/
void lm92_delay_us()    /*延时可以保证远传*/
{
      NOP();
      NOP(); 
      NOP(); 
      NOP();      /*延时的时间根据需要可以调整*/
}
/*主器件输出的开始条件*/
void start_lm92_condition()                         
{
      SDA2=1;
      SCL2=1;
      lm92_delay_us();                     
      SDA2=0;
        lm92_delay_us();
      SCL2=0;
      lm92_delay_us();
}


TOP

Re:楼主

关于LM92的软件设计

  此软件用C语言编写,略作修改可以移植到各种单片机(MCU)上。其中的延时程序,调整延时时间,可以让IIC总线传得更远。
bit ackbit;      /*用于IIC的应答信号,正确ackbit=0,错误ackbit=1*/
unsigned char lm92_addr;      /*LM92内部寄存器的地址*/
unsigned char lm92_config;    /*配置寄存器中的值*/
unsigned char lm92_data_h;    /*当地址指向双字节时,代表高字节数据*/
unsigned char lm92_data_l;    /*当地址指向双字节时,代表低字节数据*/
/*================================*/
/*读取和写入LM92的控制程序*/
/*================================*/
/*控制IIC的延时程序*/
void lm92_delay_us()    /*延时可以保证远传*/
{
      NOP();
      NOP(); 
      NOP(); 
      NOP();      /*延时的时间根据需要可以调整*/
}
/*主器件输出的开始条件*/
void start_lm92_condition()                         
{
      SDA2=1;
      SCL2=1;
      lm92_delay_us();                     
      SDA2=0;
        lm92_delay_us();
      SCL2=0;
      lm92_delay_us();
}


TOP

Re:楼主

/*主器件输出的停止条件*/
void stop_lm92_condition()
{
      SDA2=0;
      SCL2=1;
lm92_delay_us();
        SDA2=1;
        lm92_delay_us();
        SCL2=0;
        lm92_delay_us();
}
程序以下部分从略,有兴趣读者请与编辑部(articleb@edw.com.cn)联系索取。

结 语
  此温度巡检系统的设计尽可能地利用了LM92传感器的功能,充分发挥了LM92的特性,也大大提高了本系统的性能。它适用于需要温度显示、报警设定、记录、巡检等各项功能的场合,如食品车间、铁路保温货车、医院、档案馆等应用,具有非常广泛的应用前景。


TOP

发新话题
统计代码