基于单片机AT89S52的红外温度遥测系统设计
2010-01-25彭芬
彭 芬
(武汉职业技术学院电子信息工程系,湖北武汉 430074)
用单片机实现的检测系统中,数据采集装置往往是安装在环境条件恶劣的现场和野外那些地方不适合或不方便架设电缆线的地方。而采集到的数据需要通过传输到手持终端,然后通过手持终端送到后台机进行数据分析、处理。这样,数据采集装置与手持终端之间的数据传输需要解决通信问题。在这样的工作环境中利用红外线这种非电信号作为传输介质,来传送数据信息,即采用红外通信方式比较合适。
本文以单片机 AT89S52作为检测和控制核心,根据 51单片机之间的串行通信原理,利用红外传输来实现用于恶劣的现场环境的温度遥测系统。
1 系统硬件实现
根据要求本系统做成两个模块。一个是从机模块,负责收集现场信息,进行一定的数据处理,根据主机的要求返回数据,并执行主机发出的命令,用单片机控制温度传感器实现温度检测和转换,再接上一个红外发射管将温度数据发送出去;另一个是主机模块,用单片机控制一个红外管实现温度数据的接收和显示。主机与从机之间的信息交换是通过串行通信来实现。在采用主从式串行通信系统中[1],从机不主动发送命令或数据,一切都由主机控制。由于发送和接收共用同一物理信道只有被主机呼叫时,从机才对主机做出应答。唤醒被叫从机后,主、从两机之间进行数据交换,而未被呼叫的从机则继续处于等待状态。
1.1 主机模块
主机模块如图1所示中,单片机AT89S52作为控制器,开关 S用来控制是否需要传送温度参数,按下表示需要传送,否则不需要传送;红外通信芯片MAX3100在单片机的控制下完成单片机串口和红外通信之间的转换,IRLED1为发送红外的LED发光二极管,用于发送要求从机传送温度参数的呼叫信号,IRLED2为接收红外的发光二极管,用于接收从机传送来的温度参数,点阵图形液晶芯片 MGLS-12032A用于显示相应温度参数。
1.2 从机模块
从机模块如图2所示中,单片机 AT89S52作为控制器,温度传感器DS1820实现被测现场的温度检测,通过单总线[2]传送给控制中心单片机如图中的 P1.7。IRLED1为发送红外的 LED发光二极管,用于发送传感器检测到的温度参数,IRLED2为接收红外的发光二极管,用于接收主机发送的要求传送数据的呼叫信号,红外通信芯片MAX3100在单片机的控制下完成单片机串口和红外通信之间的转换。
1.3 串口—红外转换芯片MAX3100
图1 主机模块硬件接口电路图
51系列单片机自身带有具有串行通信接口可以很方便地实现单片机之间的串行通信,但是其串行口是不支持红外数据传输功能。
本系统设计希望利用红外通信的方式来完成采集到的温度数据的传输,这样就需要采用串口/红外的转换芯片,完成单片机串口 /红外数据传输的功能转换。
图2 从机模块硬件接口电路图
MAX3100是Maxim公司生产的通用异步收发芯片,不仅适合于速率高达 230kbit/s的 RS-232数据链路,而且支持红外数据传输格式,可以完成单片机串口红外数据传输的功能转换,就是一个针对红外信道的调制解调器。
MAX3100的原理如图3所示。MAX3100中组合了一个简单的UART、一个带有 SPI接口的波特率发生器及一个中断发生器 。通过将一个长度为 16位的字写入到写状态寄存器中形成一个通用异步接收发送器。该字节中包含了波特率 (位B0~B3)、数据字节长度、校验设定、8字节接收 F1F0、普通 UART与 IR da ta时基选择、关机控制及 4个中断屏蔽位。通过写一个 16位字到一个写数据寄存器中发送数据,其中最后的 7(校验位未设定)或 8位 (校验位被设定)是实际上被发送的数据。该寄存器控制着 RTS输出端的状态。当接收中断被设定时,在接收到数据时就会产生一个中断[3]。根据接收到的校验数据及 CTS脚输入的逻辑电平,从一个 16位的寄存器中依据先进先出原理读取数据。该寄存器同样还包含有用于普通操作出错及关机状态中的接收显示。
图3 MAX3100原理图
使用 MAX3100实现串口的红外通信,需要对MAX3100的寄存器进行操作,其中 MAX3100的 SPI口主要对 CS、SCLK、D IN、DOUT4个端口进行控制。
MAX3100的引脚如表1所示。MAX3100采用的是全双工通信,即 D IN,DOUT引脚上同时有数据传送。在SCLK时钟的下降沿,将数据从 DOUT引脚发送出去,在SCLK时钟的上升沿,从 D IN引脚接收数据。
表1 MAX3100引脚功能表
1.4 温度传感器 DS18B20简介
现场温度数据的采集采用温度传感器 DS1820。DS1820是美国 DALLAS公司生产的单线数字温度传感器,可直接将温度转化成串行数字信号供微机处理。目前常用的微机与外设之间进行数据传输的串行总线主要有 I2C总线、SPI总线等,这些总线至少需要两条或两条以上的信号线。而DS1820采用的是单总线技术,即单根信号线既可以传输时钟,又可以传输双向数据,这样会使得系统线路简单、硬件开支少。
DS1820采用 3脚PR-35封装,管脚排列如图4所示。图中 1脚 GND为地;2脚 DQ为数据输入/输出端(即单线总线),该脚为漏极开路输出,常态下呈高电平;3脚 VDD是外部 +5V电源端,不用时应接地。
图4 DS1820的 PR-35封装
2 软件实现
软件部分由主机模块程序和从机模块程序两大部分组成。
主机模块部分程序主要由主机主程序、要求传送温度参数的命令红外发射子程序、温度参数红外接收中断程序[4]及显示子程序组成,其中主机主程序流程框图如图5所示,温度参数红外接收中断程序流程框图如图6所示。
从机模块的程序主要由从机主程序、温度参数采集子程序、要求传送温度参数的命令红外接收及温度参数传送的红外发送中断程序组成,其中从机主程序流程框图如图7所示,温度参数传送的红外发送中断程序流程框图如图8所示。
图7 从机主程序流程框图
3 结束语
本文设计采用红外传输硬件系统装置,制作简单。由于采用红外线传输数据,形成了数据通信设备非接触的方式,真正起到了全面保护串行通信的作用,实现了恶劣现场环境条件的温度参数遥测,具有一定的实用性。
图8 温度参数接收中断程序流程框图