蔡玉辉,张 敏
(中国电子科技集团公司第四十七研究所,沈阳 110000)
近年来,随着降雨减少、高温频繁等气候变化的影响,环境温度监测技术得到了各方面的重视[1]。因半导体技术、通信技术的飞速发展,环境温度感知系统也变得更加智能化、便捷化、人性化,成为环境监测领域研究的重点。环境温度感知系统凭借灵活便捷、精度高、可靠性强等优点被广泛应用于智能家居、工业生产、国防建设等诸多领域。本研究尝试提出一种环境温度感知系统的新设计,用以实现对环境温度信息的全自动实时采集、传输、处理,将重要的环境温度信息与相关预测报告给用户。
最早的8051系列单片机是由美国英特尔公司生产的MCS51单片机[2]。后来英特尔将MCS51核心技术授权给其他一些公司用于产品研发,比如由美国Atmel公司生产的AT89C51系列单片机、中国宏晶科技公司生产的STC89C51系列单片机等。国内外众多8051单片机也都是以MCS51内核为基础开发出来的。因此,为适应不同的需求,内核架构及基本功能可能多少做出一些调整。MCS51指令集是通用的,其驱动代码几乎是统一的。
STC89C51RD单片机中包含8位CPU作为中央处理单元、4 kB的FLASH作为程序存储器、512字节RAM作为数据存储器,此外还有3路定时器、一个UART(通用异步收发器)、通用I/O等资源,具有基本数字信号处理与逻辑控制功能,可以满足绝大多数嵌入式系统需求。
在系统设计中,采用常见的软硬件结合的方式,可实现MCU与外设间高效可靠的信息交换[3]。作为系统中的温度传感器,DS1820是单总线9位数字式温度传感器,测温范围可达-55℃~125℃。DS1820小巧精致,只有三个引脚:GND、DQ、VCC;
仅需一根数据线就可以与MCU进行通信,完成数据的读写操作,具有单点和多点的网络通信拓扑结构。可以将DS1820温度传感器用于过程控制、家庭环境、工业设备、建筑设施的温度检测。同时,采用单总线结构能够大大节省MCU资源,使得系统更加简洁,MCU利用率更高[4]。
DS1820包含了64位激光ROM、感温元件、温度报警触发器三大重要的组成部分[5]。
设计基于STC89C51RD单片机,所构建的环境温度感知系统如图1所示。系统除了STC89C51RD作为微控制器,还包含看门狗电路(复位监控电路)、ISP电路(在线串行编程电路)、按键输入电路、报警指示灯电路、报警蜂鸣器电路、8路DS1820温度传感器、DC/DC电源电路以及上位机系统。
图1 环境温度感知系统整体架构
选用宏晶科技增强型8051内核STC89C51RD单片机作为系统的主控芯片,6/12时钟模式可选,最高工作频率可达80MHz[6]。作为系统主体的环境温度感知电路如图2所示。
图2 环境温度感知电路设计图
嵌入式系统是以应用为目的,以硬件为基础的专用计算机系统[7]。嵌入式系统最核心的是MCU,为消除板级杂散电感带来的串扰,此处选用两个30pF电容来配合12MHz的无源晶振,构成晶振电路[8],以确保单片机正常运行。P2.0~P2.7口驱动了8路DS1820温度传感器,每个IO口通过单总线与DS1820进行数据传递。此外还设计了按键电路,通过程序检测按键输入的高低电平或边沿信号,以此可实现对单片机的外部控制[9]。P1口和P3口被用来驱动LED和蜂鸣器,用来做温度超调或突变时的报警。LED采用共阳极接法,可用来避免单片机输出电流过多造成的驱动能力不足的问题[10]。
STC89C51RD单片机有多个复位源,其一是上电自动复位;
其二是手动复位,即给RST引脚一段时间高电平以实现单片机的复位。普通的手动复位可以通过阻容和按键搭建而成,按键未按下时RST引脚为低电平,按键按下时电源接到电容负极,电容会放电,从而将RST引脚拉高。因此RST高电平时间由按键按下时间和电容大小决定。手动复位很难保证单片机复位的稳定性,容易造成复位时间不足进而造成ISP功能不稳定的状况。对此,增设复位监控电路(看门狗),通过手动按键给看门狗MAX813L的/MR引脚低电平,看门狗会产生一个稳定的复位信号,对单片机产生稳定的复位操作。
要实现串口通信功能以及ISP功能,就需要USB转TTL电平的串口芯片。在此基于南京沁恒公司的CH340G芯片来设计串口通信电路。CH340G需要12MHz的晶振来提供时钟。当电源为5V时,V3引脚需要对地接104电容。上述两部分功能所对应电路设计原理如图3所示。
图3 复位监控与串口电路设计图
最终现实的基于STC89C51RD单片机的环境温度感知电路的实物电路板如图4所示。该电路板采用两层布线方式,布局合理,布线紧凑。
图4 系统硬件设计实物电路板
通过电源适配器将220V交流电转换为9V直流电,该电压经过DC/DC变换器转变为直流5V,用以系统供电。右侧排针接的是8路DS1820温度传感器,用于探测8处不同环境的温度。该系统通过D口USB座与上位机进行通信,同时该接口也被用于ISP下载。
FLASH不能对自己进行读写操作,它实现ISP模式的触发条件是:将单片机PSEN引脚接地,给单片机一个复位操作;
RXD口不断地接收数据,并判断是否是ISP关键字,当识别到关键字后,自动调节自己的波特率并给上位机一个的应答,以此与上位机建立握手关系,即可通过ISP上位机软件如STCISP对单片机的FLASH进行操作。实际上单片机中有2 kB的ISP程序区是堆叠到4 kB的FLASH中,当系统满足进入ISP功能的条件时,单片机就会自动跳转到ISP程序并开始进入ISP模式,此时可以对单片机的FLASH进行读、写、块擦除等操作。所设计的ISP电路,不需要更换硬件设备就可以随时随地地下载用户区程序,方便快捷,便于后续的程序调试及升级。
系统软件设计包括单片机程序设计与上位机程序设计。
基于KEIL开发环境,所编写的单片机程序包括:按键输入检测程序、LED与蜂鸣器控制程序、DS1820读写程序、与上位机通信程序、看门狗驱动程序等。其中,关键部分为DS1820的操作软件。为确保数据链的完整性,单总线器件对器件的时序要求很高。DS1820相关软件配置总体分为四步:
(1)复位并初始化DS1820;
(2)对DS1820的ROM进行操作;
(3)对DS1820存储器进行操作;
(4)完成温度转换,处理DS1820返回数据。
温度读数以16位的二进制补码形式存在,再对读取温度所得到的二进制数据量进行算法补偿,进而获得较高分辨率,增加DS1820的测温精度。
系统开始运行后,先与上位机通信,直至握手成功;
然后当收到上位机指令后,开始进行数据采集,并传递给上位机进行处理与显示。当采集的8路温度有一路超出规定范围或有陡然变化情况发生,STC89C51RD单片机立刻做出动作,对应的指示灯闪烁,蜂鸣器开始啸叫,在上位机也会做出报警。
设计的软件部分以VB 6.0为开发平台。使用VB语言实现的上位机界面如图5所示。设计完成的软件具有数据处理、存储、显示等多种功能,通过串口与下位机进行实时通信。此设计方式符合当今主流的控制与检测技术,确保数据传递的及时性、可靠性。当系统开始工作时,打开上位机软件,8路温度传感器所检测到的温度都实时打印在上位机界面上,界面清晰,可视度好。
图5 上位机软件界面
本设计涵盖硬件电路设计、单片机程序编写、上位机软件编写三个方面。所设计的环境温度感知系统可以全自动地实时采集被监测的环境温度,并实时传递给上位机;
经过上位机处理,做出环境温度监测、异常报警并报告给用户。该环境温度感知系统易于操作、灵敏快捷,满足了远程温度的实时监测与数据记录的需求,可被广泛应用于智能家居、工业生产、国防建设等领域。