三防平板方案中温控应用,温度是一种最基本的环境参数,和人们的生产、生活息息相关。例如,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器、模拟集成温度传感器和智能集成温度传感器。
目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。在一些更复杂的系统中还涉及高精度或高速的测量、大规模巡检、数据存储回放、数据通信,以及设置时间等。温度传感器的研究既看重基础,又有扩展深度,并且具有很强的实用性和趣味性。
1.三防平板方案中系统设计任务需求
多路温度监控报警系统基本功能如下。
● 多路温度测量并用十进制显示,显示误差小于±0.5℃。
● 多路温度测量并选择通道或巡检显示。
● 可在键盘设置温度上、下限,具有超限报警功能。
● 显示温度对应的当前时间(时间显示用4位LED数码管,可用键盘进行时钟调节)。
多路温度监控报警系统设计的扩展功能如下。
● 数据存储与选择回放。
● 可通过键盘设定环境温度,并控制加热器将环境温度调整到设定值。
● 采用RS-232/RS-485方式与PC进行通信。
2.三防平板方案中系统组成
通过任务的需求分析要实现的功能与指标,将系统划分为各功能模块,确定采用的处理器,以及各模块之间的相互联系,并建立系统的模型框图。
典型的单片机系统是由多个功能模块构成的,通常包括传感器(或前向通道)、人机交互、数据存储、时钟电路、数据处理、数据通信等。可依照任务要求对外围各功能模块进行选择,确定本实例的组成框图。多路温度监控报警系统组成框图如图1所示。
还需进一步确定系统各功能之间的联系,采用哪家产品,并做进一步的比较与选择,设计硬件电路并绘制出系统的电路原理图。
图1 多路温度监控报警系统组成框图
3.三防平板方案中系统设计方案选择分析
(1)三防平板方案中选择合适的单片机。51系列单片机的开发经验已经有几十年的积累,外围元器件齐全,各类资料非常完备,开发环境比较成熟。在实践中,采用高性能、低成本的51系列单片机,可以使读者在尽可能短的时间内掌握单片机系统的学习方法和开发思路,提高学习效率,在掌握共性的同时注意其特性即可触类旁通。当然,也可根据现有的开发条件选择其他系列的嵌入式微处理器。
(2)三防平板方案中传感器的选用。传感器的选择是设计计算机测控系统的关键,决定了一个系统的复杂度和精确度。在满足精度的情况下,尽可能使系统构架简洁。对温度上限和下限没有特殊要求的场合,可以选择集成温度传感器。目前常见的集成传感器有1-wire 温度传感器DS18B20,SPI温度传感器TMDATA22,I2C温度传感器TMDATA00/101,以及串行STH10和DTH11温湿度传感器等。
DS18B20是美国Dallas公司推出的一种智能温度传感器,与传统的热敏电阻相比,它能够直接读出被测温度,通过简单的编程可实现9~12位的数字值读数方式,可选择0.5℃、0.25℃、0.125℃、0.0625℃不同的温度测量分辨率,测温范围是-55~+125℃,而且采用单总线数字信号输出,可以直接与单片机的端口相连,大大提高了系统的稳定性。DS18B20传感器提供了一种方便可行的选择,也可选择其他方案。
(3)三防平板方案中存储器和实时时钟。显示某一时刻的温度需要存储温度数据,可采用SPI总线或I2C总线的高集成度的存储芯片和日历时钟芯片,接口方便,可大大简化电路设计。例如,SPI总线的X5045存储芯片,三线的DS1302、DS12887实时时钟芯片,I2C总线的AT24C02和PCF8563实时时钟芯片等。
DS12887是常用的一种并行实时时钟芯片,集存储器、实时时钟于一体,在没有外部电源的情况下可工作10年(自带晶体振荡器及电池)。可计算到2100年前的秒、分、小时、星期、日期、月、年七种日历信息并带闰年补偿;用二进制码或 BCD 码来代表日历和闹钟信息;有12和24小时两种制式,12小时制式有AM和PM提示;可以应用于Motorola和Intel两种总线;数据/地址总线复用;内建128 B的RAM,其中14 B时钟控制寄存器,114 B通用 RAM;总线兼容中断(IRQ);三种可编程中断,其中时间性中断可产生每秒一次到每天一次的中断,周期性中断的周期为122~500 ms,时钟更新后结束中断;并行总线操作非常简单,降低了软/硬件设计的难度。
(4)三防平板方案中人机交互。键盘与显示电路是单片机系统中最常见的人机交互方式。系统的任务,如监测当前温度、设置上/下限报警值、存储温度值、更新时钟变化、与上位机通信,以及控制外部环境温度等都需要用到键盘和显示器。本系统选择专用键盘显示芯片 HD7279,单片机通过SPI总线接口与其通信。当有键按下时,HD7279向单片机发出中断,通过中断服务子程序读取键值并进行相应的处理。HD7279可接收并显示数据,而且可以自动保持LED的显示内容,不需要单片机连续的间隔扫描,大大降低了单片机的工作量,可以更好地分配资源和进行任务调度。同时,为获得更好的显示效果,本系统选择LCD1602或LCD12864等液晶屏作为显示器。
(5)三防平板方案中系统与外部PC的数据通信。系统内部的单片机与外部PC的通信可以采用并行总线和串行总线通信方式,在实时性要求不高的系统中,建议采用串行总线方式,这样可节省I/O口线的资源并降低成本。与PC通信的串行总线方式有RS-232、RS-485或USB等。
单片机与PC通信接口已经有很多成熟的设计方案可以参考,在单片机和PC通信调试的过程中,可以暂时不编写 PC 端程序,直接应用串口通信软件进行测试,如使用串行调试助手通信成功后,证明下位机程序完全正常,这时再编写PC端的程序。
另外,还可以采用无线数据收发等通信技术,如采用无线模块收发技术或ZigBee无线网络通信技术等。
4.三防平板方案中软件设计流程
三防平板方案中对于单片机系统的开发,除了进行硬件电路设计外,更重要的是系统的软件开发。单片机之所以能广泛应用于各种不同需求的场合,就是因为它允许开发者根据需求编写相应的软件,软件的优劣对系统的成本和稳定性都有至关重要的影响。
在单片机程序设计中,强调程序的模块化设计,这会让整个程序变得清晰易懂,而且容易调试和修改。三防平板方案中软件设计流程如图2所示,首先设计整体流程,再编写各个功能模块,分别对每个模块进行调试并修改,再将功能模块组合并填入整体流程,不断调试修改,完成软件的整体设计。另外,需要注意的是,仿真调试成功并不代表程序下载到芯片以后就一定没有故障,因为晶体振荡器、复位电路和电路的匹配情况都会影响单片机的正常运行。
6.主要编程代码(底层驱动)
(1)数字温度传感器部分的编程。DS18B20是常用的数字温度传感器,具有体积小、硬件开销低、抗干扰能力强、精度高的特点。DS18B20内部寄存器如图10-4所示,DS18B20通信指令如表10-1所示。
图3 DS18B20内部寄存器结构
表10-1 DS18B20通信指令
(2)实时时钟芯片的编程。DS12887是美国Dallas公司推出的串行接口实时时钟芯片,采用CMOS技术制成,具有内部的晶体振荡器和时钟芯片备份锂电池,外围硬件十分简单,与单片机相连之后,使用单片机对其初始化就可以正常工作了。其代码如下。
(3)键盘接口部分的编程。HD7279是一片具有串行接口的键盘扩展接口芯片,该芯片可以连接多达64键的键盘矩阵,本系统键盘接口的编程代码如下。
(4)LCD液晶屏接口编程。LCD1602是一种工业字符型液晶,能够同时显示16×2,即32个字符。LCD1602液晶屏利用液晶的物理特性,通过电压对其显示区域进行控制,有电就显示,这样就可以显示出图形。该模块需要使用 RS、R/W、D7、D6、D5、D4、D3、D2、D1、D0等引脚,其接口代码如下。
(5)RS-232串行通信接口编程。RS-232串行通信接口(即COM接口)只需要一对传输线就可以实现双向通信,从而大大降低了成本,特别适合远距离通信,但其传送速率较低。单片机的串口主要需要配置波特率、端口等参数。RS-232串口通信程序参考代码如下。
//串口代码
//串口初始化
void UART_Init(void)
{
SCON=0x40; //串口方式1
PCON=0; //SMOD=0
REN=1; //允许接收
TMOD=0x20; //定时器1定时方式2
TR1=1; //启动定时器
ES=1; //使能中断
EA=1; //使能中断
}
void send_char(unsigned char aChar)
{
SBUF=aChar;
while(TI==0); //等待,直到发送成功
TI=0;
}
在程序设计中要充分考虑每个模块所需要的时间及其所需的灵敏度(采样时间),在实际使用中,为了能够让按键快速响应,建议将按键设定为外部中断触发,这样能大大加快反应速度。以上函数中,如果函数的整体执行时间超过设计所需要的温度采样时间间隔,这时可以配置定时中断,将温度采集放置在定时中断中执行,保证温度采样率不受函数中的其他功能模块的影响。