SPCE061A在电冰箱中应用
作者:凌阳科技大学计划 发布时间:2003-5-29 9:30:31
摘 要:本文介绍了采用凌阳科技的SPCE061A芯片作为控制器核心的语音电冰箱。它能控制电冰箱的工作过程,并能用语音将电冰箱的工作状态、应用常识播报给用户,使控制过程更人性化。
关键词:语音 控制
1 引言
随着家用电冰箱的普及,人们对电冰箱的控制功能要求越来越高,这对电冰箱控制器提出了更高的要求,多功能、智能化是其发展方向之一,传统的机械控制、简单的电子控制已经难以满足发展的要求。本文介绍了采用凌阳科技公司的新秀——SPCE061A作为控制器核心,对电冰箱的工作过程进行控制,并用语音将电冰箱的一些工作状态、使用常识播报出来,使控制过程更人性化。
2 芯片特性简介
SPCE061A 是凌阳科技开发的采用μ’nSP™内核的16位结构的微控制器,SPCE061A里内嵌32K字的闪存FLASH ROM。较高的处理速度使μ’nSP™能够非常容易地、快速地处理复杂的数字信号。因此,以μ’nSP™为核心的SPCE061A微控制器也适用在数字语音识别应用领域。
SPCE061A在2.6V~3.6V工作电压范围内的工作速度范围为0.32MHz~49.152MHz,较高的工作速度使其应用领域更加拓宽。2K字SRAM和32K字闪存ROM仅占一页存储空间,32位可编程的多功能I/O端口;两个16位定时器/计数器;32768Hz实时时钟;低电压复位/监测功能;8通道10位模-数转换输入功能并具有内置自动增益控制功能的麦克风输入方式;双通道10位DAC方式的音频输出功能……。SPCE061A是数字声音和语音识别产品的一种最经济的应用。
特性:
·16位μ’nSP™微处理器;
·工作电压:内核工作电压VDD为2.6~3.6V(CPU),IO口工作电压VDDH为VDD~5.5V(I/O);
·CPU时钟:0.32MHz~49.152MHz ;
·内置2K字SRAM;
·内置32K闪存ROM;
·可编程音频处理;
·晶体振荡器;
·系统处于备用状态下(时钟处于停止状态),耗电小于2μA@3.6V;
·2个16位可编程定时器/计数器(可自动预置初始计数值);
·2个10位DAC(数-模转换)输出通道;
·32位通用可编程输入/输出端口;
·14个中断源可来自定时器A / B,时基,2个外部时钟源输入,键唤醒;
·具备触键唤醒的功能;
·使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;
·锁相环PLL振荡器提供系统时钟信号;
·32768Hz实时时钟;
·7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器
·声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;
·具备串行设备接口;
·低电压复位(LVR)功能和低电压监测(LVD)功能;
·内置在线仿真板(ICE,In- Circuit Emulator)接口。
3 系统组成
液体由液态变为气态时,会吸收很多热量,简称为“液体汽化吸热”,电冰箱就是利用了液体汽化的过程中需要吸热的原理来制冷的。
图3.1为蒸气压缩式电冰箱制冷系统原理图。它由压缩机、冷凝器、干燥过滤器、毛细管、蒸发器等部件组成,其动力均来自压缩机,干燥过滤器用来过滤赃物和干燥水分,毛细管用来节流降压,热交换器为冷凝器和蒸发器。

图 3.1
制冷压缩机吸入来自蒸发器的低温低压的气体制冷剂,经压缩后成为高温高压的过热蒸气,排入冷凝器中向周围的空气散热成高压过冷液体。高压过冷液体经干燥过滤器流入毛细管节流降压,成为低温低压的液体,进入蒸发器中汽化,吸收周围被冷却物品的热量,使温度降低到所需值,汽化后的气体制冷剂又被压缩机吸入,至此,完成一个循环。压缩机冷循环周而复始的运行,保证了制冷过程的连续性。
系统组成如图3.2,主要由电源板、 单片机、传感器组、压缩机控制电路、电磁阀控制电路、显示电路、化霜控制电路、电加热丝控制电路、语音输出电路、风机控制电路等部分组成。

图3.2系统组成
4 系统硬件设计
我们知道,电冰箱一般设有冷冻室和冷藏室。冷冻室用于速冻食品,在冷冻室中的食品可以存放较长的时间,食品中的水分会凝结成霜,到一定程度还要除霜,其温度可为-16℃ ~~~ -26℃之间。冷藏室以不冻伤食品又有保鲜作用为准,其温度可为2℃ ~~~ 10℃之间。
具体的说,电冰箱控制器的主要任务就是控制压缩机、电磁阀、化霜加热丝、风扇等的运行,来保持箱内食品的最佳温度,达到食品保鲜的目的,即保证所储存的食品在经过冷冻或冷藏之后,保持色、味、水分、营养基本不变。LED将设定的温度或实际温度显示出来,当冷冻室温度过高或开门时间过长还会用语音提示。
5 硬件组成
整个系统工作于3.3V电压下,由电源板提供5V电压,经过LF33稳压到3.3V为系统供电。三个按键分别设置冷冻室温度、冷藏室温度和人工智能工作方式。温度传感器主要由冷冻室、冷藏室、冷冻室蒸发器盘管、冷藏室蒸发器盘管速冻室、环境温度检测等温度传感器组成。主控器不断采集冷冻室、冷藏室及环境的温度,并根据设定的值及采集值控制各部件的运行。
5.1 键盘扫描、键码分析
按键包括人工智慧键、冷冻调节键、冷藏调节键。键盘输入电路如图5.1。当有键按下时,对应的IO口为拉到高电平。

图5.1
5.2 传感器输入电路
电冰箱通过采集冷冻室和冷藏室的温度,并根据实际温度与设置温度相比较来控制压缩机、电磁阀、风扇及化霜加热丝等部件,使各室温度保持在相应设置值。SPCE061A单片机具有7信道10位逐次逼近式AD转换器,本方案选用其中的5个信道来采集冷藏室、冷冻室、冷藏室盘管、冷冻室盘管和环境温度,即传感器主要由冷冻室、冷藏室、冷冻室蒸发器盘管、冷藏室蒸发器盘管速冻室、环境温度检测等温度传感器组成。其余2个信道用于功能的扩展。温度传感器采用负温度系数的热敏电阻。其控制原理如图5.2。
SPCE061A的AD输入管脚和IOA共用,通过程序进行AD转换功能的控制。为防止电源电压对AD的影响,SPCE061A为AD提供了专门的电源VDDIOAL、VSSIOAL。将5个热敏电阻分别与固定电阻R41-R45串联接于电源VDDIOAL、VSSIOAL,当温度改变时,热敏电阻阻值随之改变,测量其分压值大小则可计算出温度值的大小。

图5.2传感器控制原理
5.3 显示电路
显示电路由四位8段数码管组成,用来显示冰箱内的实际温度、设置温度或故障。接口电路如图5.3,采用动态显示方式驱动。

图5.3 显示电路
5.4 压缩机、化霜电加热丝、风机、电磁阀控制电路
压缩机控制电路比较简单,如图5.4。由IO口输出信号,通过8050反相驱动电路来控制继电器,再由继电器控制压缩机的开停。当IO口输出高电平时,Q11饱和导通,继电器线圈流过电流,其触点吸合;当IO口输出低电平时,Q11截止,继电器线圈无电流,其触点断开。压缩机的开关由相关室的温度决定,每次开机之前必须检测延时保护条件是否满足,才能作出开机决策。

图5.4 控制电路
化霜电加热丝控制电路、风机控制电路、电磁阀控制电路的结构相似,只是器件参数有所不同,故在一起介绍。
5.5 断电记忆功能
系统扩展1块AT24C01A来记忆断电前的工作状态,这样,来电后仍按断电前的设定工作。AT24C01A为I2C总线,利用SPCE061A的IOB0、IOB1作为SCL、SDA信号,如图5.5,其中R23、R24为上拉电阻,I2C总线的读写时序由软件控制。

图5.5 AT24C01A
5.6 语音提示、报警电路
SPCE061A有两信道电流输出型DAC,每个信道的输出能力可编程为2mA或3mA,只需外加一个负载电阻即可转化成电压信号,经三极管放大推动喇叭,见图5.6。
每次通电开机、改变工作模式、冷冻室超温报警等,都会以甜美的声音提示您,以保证操作正确,开机的提示语音还会向您普及一些使用电冰箱的常识。报警电路主要用于冷冻室温度过高时,冷冻温度会以一定的频率显示,并用语音提示“冷冻室超温”。此时应检查冰箱门是否关好(请将冰箱门关好)?是否一次性放入大量较热的食品?冰箱工作一段时间后,冷冻室温度降低,冷冻温度显示灯停止闪烁,超温报警自动消除。

图5.6
6 软件设计
本系统软件主要由主流程、功能子程序、中断服务程序组成。
子程序主要由键盘扫描、键码分析、温度采集、传感器检测、人工智慧、冷藏室温度采集与控制、冷冻室温度采集与控制、压缩机保护及控制、驱动、显示数据计算、运行参数存储等模块组成,LED的显示在256Hz的中断程序中完成,用SPCE061A播放语音的程序在《SPCE061A单片机》一书及凌阳大学计划网站上有详细的讲解,这里不再做分析。主流程如图6.1。

图6.1主程序流程
6.1 初始化子程序
初始化模块主要完成初始化I/O口、中断、内存单元,并读出AT24C01A相应单元的值进行控制,程序流程如图6.2。

图6.2 初始化子程序
AT24C01A的0x02单元为标志位:当读出的值为0xFF时,表示初次使用,则自动进入人工智慧控制模式。为0x55时,表明断过电,读出断电前的工作状态。AT24C01A单元分配:
表6.1
|
地址 |
工作状态 |
地址 |
工作状态 |
|
0x02 |
标志位 |
0x08、0x 09 |
冷冻室设置温度 |
|
0x04、0x 05 |
运行标志 |
0x0A、0x 0B |
冷藏室设置温度 |
|
0x06、0x 07 |
驱动标志 |
0x11—0x1D |
相关时间单元 |
每次存储时,将各参数存储在3个不同的单元中(同一参数存储3次),每次上电复位后,将3个单元的数据读出且进行比较,采取三中取二的决策方式,如果3次都不同,则进入最安全的方式运行。
6.2 键盘扫描、键码分析
当有键按下时,对应的IO口为拉到高电平,CPU扫描到按键动作,则根据当前运行状态和按键来改变运行标志位,并开始计时,如果连续5秒无按键,则将有效设定送入相应控制单元。
6.3 人工智慧模块
人工智慧模块通过检测环境温度的高低,自动确定冷冻室和冷藏室的设定温度。如果环境温度高,则相应地将冷藏室、冷冻室的温度设置高一些;如果环境温度低,则相应地将冷藏室、冷冻室的温度设置低一些,以免压缩机长时间运行或不运行。
6.4 冷冻室(冷藏室)温度采集与控制
通过冷冻室(冷藏室)温度传感器,采集冷冻室(冷藏室)温度,将数据致入显示缓冲区,并将实测温度与冷冻室(冷藏室)的设置温度比较,如果实测温度高于设置温度,则置冷冻室(冷藏室)高标志,否则返回。
热敏电阻灵敏度高,为了防止开冰箱门时温度传感器采集到的温度变化太快,引起控制部件的频繁动作,温度采集采用滑动平均值滤波方法,程序中数组R_tempR[15] 为冷藏室温度采集存储队列单元(程序初始化时连续采集了15次温度,存储在数组的15个元素中),程序每循环一次,采集一次冷藏室温度,数组元素值依次向高位移位一次,R_tempR[14]元素的值丢失,并将温度存入R_tempR[0],这样在数组中始终有15个“最新”的数据,求出数组的算术平均值作为本次测量结果。R_tempKJ[15]、R_tempF[15]、R_tempHS[15]、R_tempHW[15]分别为冷藏室蒸发器盘管、冷冻室温度传感器、冷冻室蒸发器盘管和环境温度传感器温度采集存储单元,计算方法同上。温度采集流程见图6.3。

图6.3
6.5 压缩机保护及控制模块
本模块包括三部分:压缩机保护子程序、压缩机控制子程序、压缩机启动/停止子程序。
压缩机保护子程序主要用于启动压缩机,压缩机每次启动前,先检查停机时间是否已经延时5分钟。若已经延时5分钟,压缩机可以立即启动;若未到5分钟,则继续延时到5分钟后,压缩机才可以启动。见图6.4。

图6.4 压缩机保护
压缩机控制子程序主要根据冷冻室和冷藏室的温度检测标志、化霜(结束)标志、压缩机允许开机标志来决定压缩机的启动、停机,并置启动/停机命令标志。
压缩机启动/停止子程序根据压缩机当前的运行状态和启动/停机命令标志来控制压缩机的运行。
表6.2
|
压缩机运行状态 |
启动/停机命令标志 |
动作 |
|
1 |
1 |
返回 |
|
0 |
关压缩机;置关机标志;计时单元1清0;计时单元2停止计时。 | |
|
0 |
1 |
启动压缩机;置开机标志;计时单元2开始计时 |
|
0 |
返回 | |
|
注: | ||
6.6 驱动模块
驱动模块包括压缩机、电磁阀、风扇和化霜加热丝,程序根据当前运行状态和驱动标志位来确定其运行状态。

图6.5
6.7 语音输出模块
凌阳科技提供了SACM-A2000、SACM-S480等语音压缩算法,随SPCE061A的开发环境一起提供给用户。在用户程序方面,开发环境提供了C语言和汇编语言的API(应用程序接口),使用非常方便。
语音播放程序包括播放初始化程序、播放程序和中断服务程序。播放初始化完成初始化A/D、定时器TimerA和音量,播放程序从ROM里取出预先压缩好的语音数据,解压缩后存放到播放队列里。中断服务程序定时地从播放序列中读数据,送到D/A转换驱动喇叭发音。
用SACM-S480算法播放程序:
SACM_S480_Initial(1); //初始化A/D、TimerA
SACM_S480_Volume(15); //初始化音量
SACM_S480_Play(result,3,3); //播放一条语音
while((SACM_S480_Status()&0x0001)==1)//播放状态
{
SACM_S480_ServiceLoop();//播放服务函数
}
SACM_S480_Stop(); //停止播放
主播放函数SACM_S480_Play(int Index,Int Channel,Int Ramp_Set)有三个参数,
Index:播放索引号。
Channel:播放通道。1-通过DAC1通道播放,2-通过DAC2通道播放,3-通过DAC1和DAC2通道播放。
Ramp_Set:消除开始放音时的“啵”声。
中断服务程序:
_FIQ:
push R1,R4 to [SP] //寄存器入栈
R1 = [P_INT_Ctrl] //读中断标志位
R1 &= 0x2000
jz FIQ_ret //不是TimerA FIQ中断
call F_FIQ_Service_SACM_S480; //放音服务函数
FIQ_ret:
R1 = 0xa800;
[P_INT_Clear] = R1; //清中断标志
pop R1,R4 from [SP];//寄存器出栈
reti;
7 结语
应用SPCE061A的家用电冰箱控制器具有多种优点:
1. 设计新颖、功能强大。SPCE061A是凌阳科技公司最新的16位单片机,特点是高速、低功耗、强大的I/O口功能,以上的设计方案只占用SPCE061A的一部分资源,可以在此基础上开发出功能更强的产品,缩短了开发周期。
2. 成本低、性价比高、运行可靠。SPCE061A有丰富的I/O口资源,外围电路相对简单。价格低,性能高,以上的控制方案已经通过EMC测试。
8 参考文献
[1] 刘胜利等,新型无氟冰箱及冷藏柜原理及维修技术[M] 北京:电子工业出版社
[2] 方贵银,新型电冰箱维修技术与实例[M] 北京:人民邮电出版社