基于SPCE061A控制器实现具有语音功能测湿仪的设计

描述

1 引言

工农业生产、气象、环保、国防、科研、航天等部门,经常需要对环境湿度进行测量及控制。对环境温、湿度的控制以及对工业材料水份值的监测与分析都已成为比较普遍的技术条件之一,但在常规的环境参数中,湿度是最难准确测量的一个参数。这是因为测量湿度要比测量温度复杂得多,温度是个独立的被测量,而湿度却受其他因素(大气压强、温度)的影响。此外,湿度的校准也是一个难题。目前,人们探测的湿度测量从原理上有二、三十种之多。随着20世纪后半期电子业的发展,电子式湿度传感器产品及湿度测量于90年代也随之兴起,并在后面这些时间内取得了长足的发展。该方案就是利用电子式传感器配合单片机实现具有语音功能人性化的测湿仪。

1.1 系统参数

本方案系统的主要参数:

工作温度:0~70℃;

工作湿度:0~100%RH;

测量范围:1%~99%RH;

精度:±5RH%。

1.2 功能简介

本方案可以实现:

按键控制启动湿度测量;

语音播放测量湿度值;

湿度判断,并有温馨提示语,当湿度太高时,播放“潮湿,请打开除湿机”,湿度太低时,播放“太干,请打开加湿器”。

2 系统硬件设计

对于湿度测量仪,除了具有一个控制器控制测量外,还需要测量器。本系统中采用SPCE061A作为控制器,电容式湿度传感器HS1101作为测量器,利用一个按键来启动湿度测量和语音播放。由于电容不能直接和SPCE061A的I/O口连接进行测量,所以需要一个电路模块,与SPCE061A的Feedback接口IOB2、IOB4,IOB3、IOB5连接,实现从电容到频率的转换,系统的结构框图如图 2.1。

单片机

图 2.1 系统结构框图

SPCE061A单片机作为主控芯片,根据读到的键值判断是否启动测量,测量时负责读取Feedback电路的工作频率,根据频率计算HS1101的电容和它所在环境的湿度,并把湿度通过喇叭播放出来。同时如果湿度值太高或者太低,系统会播放温馨提示。

2.1 SPCE061A芯片简介

SPCE061A是一款基于 ‘nSP内核的16位单片机,其芯片特性如下:

◆工作电压:内核工作电压VDD为3.0~3.6V(CPU),I/O口工作电压VDDH为VDD~5.5V(I/O);

◆CPU时钟:0.32MHz~49.152MHz;

◆内置2K字SRAM和32K闪存ROM;

◆系统处于备用状态下(时钟处于停止状态),耗电小于2μA@3.6V;

◆具备触键唤醒的功能;

◆32位通用可编程输入/输出端口;

◆2个16位可编程定时器/计数器(可自动预置初始计数值);

◆7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;

◆2个10位DAC(数-模转换)输出通道;

◆14个中断源可来自定时器A / B,时基,2个外部时钟源输入,键唤醒;

◆具备串行设备接口;

◆低电压复位(LVR)功和低电压监测(LVD)功能;

◆内置在线仿真(ICE,In- Circuit Emulator)接口。

SPCE061A的内部结构框图如图 2.2所示。

单片机

图 2.2 SPCE061A内部结构图

2.2 湿度传感器HS1101

2.2.1 湿度测量简介

1、湿度定义

在计量法中规定,湿度定义为“物象状态的量”。日常生活中所指的湿度为相对湿度,用RH%表示。总言之,即气体中(通常为空气中)所含水蒸气量(水蒸气压)与其相同情况下饱和水蒸气量(饱和水蒸气压)的百分比。

2、湿度测量方法

从测试的输出参量上区分,湿度测量方法主要分为以下几类:利用物质几何尺寸变化的测湿法(伸缩法),干湿球法,冷凝露点法,氯化锂露点法,电湿度测量法(电阻法、电容法),电解法(库仑湿度计)以及其它测湿方法。这些测量方法读者可以找相关资料进行进一步了解,限于篇幅,这里不再赘述。下面重点介绍本系统中用到的电湿度测量法的特点。

3、电子式湿度传感器的特点

电子式湿度传感器是近几十年,特别是近20年才迅速发展起来的。湿度传感器生产厂在产品出厂前都要采用标准湿度发生器来逐支标定,电子式湿度传感器的准确度可以达到2%一3%RH。

在实际使用中,由于尘土、油污及有害气体的影响,使用时间一长,会产生老化,精度下降,湿度传感器年漂移量一般都在±2%左右,甚至更高。一般情况下,生产厂商会标明1次标定的有效使用时间为1年或2年,到期需重新标定。

电子式湿度传感器的精度水平要结合其长期稳定性去判断,一般说来,电子式湿度传感器的长期稳定性和使用寿命都不是很好。

湿度传感器是采用半导体技术,因此对使用的环境温度有要求,超过其规定的使用温度将对传感器造成损坏。

所以电子式湿度传感器测湿方法更适合于在洁净及常温的场合使用。

电子式湿度传感器主要有电容式和电阻式两种。

电容式湿敏元件的优点在于响应速度快、体积小、线性度好、较稳定,国外有些产品还具备高温工作性能。但是达到上述性能的产品多为国外名牌,价格都较昂贵。市场上出售的一些电容式湿敏元件低价产品,往往达不到上述水平,线性度、一致性和重复性都不甚理想,30%RH以下,80%RH以上感湿段变形严重。有些产品采用单片机补偿修正,使湿度出现“阶跃”性的跳跃,使精度降低,出现一致性差、线性差的缺点。无论高档次或低档次的电容式湿敏元件,长期稳定性都不理想,多数长期使用漂移严重,湿敏电容容值变化为pF级,1%RH的变化不足0.5pF,容值的漂移改变往往引起几十%RH的误差,大多数电容式湿敏元件不具备40℃以上温度下工作的性能,往往失效和损坏。

本系统中我们使用电容式湿度传感器HS1101,这颗传感器比较常见,适用于一些对精度要求不高的场合。

2.2.2 HS1101简介

1、基本参数

如图 2.3。如果没有特别标注,默认下图的测量温度Tα=25℃,测量时HS1101工作频率为10KHz。

图 2.3 HS1101参数图

单片机

2、特性曲线

如图 2.4。测量温度Tα=25℃,测量时HS1101工作频率为10KHz。

图 2.4 HS1101特性曲线

2.3 硬件电路

2.3.1 SPCE061A最小系统

本方案使用SPCE061A精简开发板(61板)作为单片机最小系统。61板包括SPCE061A芯片及其外围的基本模块,外围模块包括:晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED)等,如下图所示。

单片机

图 2.5 SPCE061A最小系统

2.3.2 电容式湿度传感器HS1101电路模块

由于湿度传感器HS1101是电容式的,所以要想办法测量得到它的电容,利用单片机没有办法直接读到,但是利用SPCE061A的Feedback功能可以测得HS1101所在RC电路的工作频率,这样就可以计算得到它的电容。

为了减小误差,利用一个固定电容和一个电阻构成另一个Feedback电路,作为湿度传感器HS1101的基准。

如图 2.6:根据图 2.3中的参数,为了使湿度传感器HS1101的工作频率尽量接近10KHz,选择一个620KΩ的电阻和HS1101形成Feedback1;390pF的电容作为基准,和另外一个620KΩ电阻形成Feedback2。

单片机

图 2.6 电容式湿度传感器电路模块电路

2.3.3 按键电路

本系统直接使用SPCE061A精简开发板上的按键,61板上按键电路如图 2.7。

单片机

图 2.7 61板按键电路

3 系统软件设计

本方案的软件系统包括下面模块:

按键扫描:扫描按键,判断是否有键按下,在Key.c文件中实现;

湿度测量:端口初始化,测量湿度并返回湿度值,在Hum_Measure.c文件中实现;

语音播放任意数字:播放任意的整数,本系统中用来播放湿度值,在PlayVoice.c文件中实现;

中断服务:语音播放中断服务程序和IRQ2中断读计数值程序,在isr.asm文件中定义。

3.1 各模块程序说明

3.1.1 主程序

主程序流程如图 3.1:调用按键扫描程序读取键值,如果是KEY1键按下则启动测量,调用湿度测量函数测量湿度,并根据测量结果进行相应播放;如果不是KEY1键按下,返回继续扫描按键。

注意:在每次测量前都会关断快速中断FIQ,这是因为在测量过程中用到了定时/计数器TimerA,而在语音播放时打开了FIQ中断,所以在测量前需先关闭,以免在测量过程中CPU一直相应FIQ中断,造成不必要的麻烦。

图 3.1 主程序流程图

3.1.2 按键扫描模块

本系统中只用到了一个按键--61板上的KEY1键,这个键和IOA0连接。按键扫描程序流程如图 3.2所示。利用延时去抖的方法,先取一次端口数据,延时一段时间,一般延时几十ms即可,再取一次端口数据,如果二者相同,说明取到了正确的键值。

图 3.2 按键扫描程序流程图

3.1.3 湿度测量程序流程图

湿度测量程序流程如图 3.3,为了减少误差,确保测量的正确性,测量四次,去掉一个最高值和一个最低值,如果中间两个数相差不大于10,则中间两个数的平均值就是测量的最终数据,程序中这个数据为TimerA的计数值。

由于用Feedback功能测量传感器的电容,如图 2.6。事实上利用Feedback功能直接能测到传感器工作的频率,根据这个频率来才能计算传感器的电容值。

测量传感器工作频率的方法:利用TimeB作为定时器,TimeA作为计数器;根据TimeB定时时间内TimeA计数的个数来测得传感器的工作频率。

图 3.3 湿度测量程序流程图

3.1.4 语音播放任意整数数据程序

语音播放任意三位整数程序流程如图 3.4。这个程序可以定义形式参数来传递任意三位数。先计算这个数据的百、十、个位,再分别进行播放,播放的流程如下:

图 3.4 语音播放任意三位数流程图

3.1.5 中断服务程序流程图

FIQ的中断服务程序如图 3.5。FIQ中断服务程序主要功能是调用F_FIQ_Service_SACM_S480函数解码并输出。

IRQ2中断服务程序如图 3.6。IRQ2中断服务程序有两个功能:一是保存TimerA的计数值;二是为了配合湿度测量函数,设置定时时间溢出标志,如果进入这个中断服务程序,说明定时溢出。

图 3.6 IRQ2中断服务程序流程图

4 结语

湿度测量本身比温度测量复杂的多,主要是由于湿度受温度、大气压的影响。对于电容式湿度传感器来说,更是难上加难,因为测量电容本身也是一个非常复杂的过程。SPCE061A的Feedback功能给这种测量提供了很大的方便,利用固定电阻和电容式湿度传感器形成RC振荡电路,接在Feedback的输入和输出端,这样通过测量频率,很容易就能得到电容式湿度传感器的电容,根据标定值就可以得到测量湿度。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分