1 概述
GMS87C1404是韩国HYNIX半导体公司(前身是韩国现代半导体公司)采用CMOS技术生产的8位单片机,它具有功耗低、速度高等特点,并具有丰富的片内资源。GMS87C1404采用28脚封装,有23个I/O口。由于该单片机的性价比高,因此,近两年来在国内家电行业中获得了越来越多的应用。
笔者依据GMS87C1404的特点和干洗机中自动控制系统的要求设计了一个基于GMS87C1404的干洗机自动控制系统。该系统在使用了一段时间后获得了满意的效果。
2 GMS87C1404的特点
图1是GMS87C1404的引脚图。它的主要特点如下:
·内带4kROM和192字节在片RAM(包括堆栈);
·8MHz时的指令周期为0.25μs;
·工作电压范围为2.5~5.5V;
·具有8位双向多功能I/O口,可直接驱动LED显示;
·内含8位A/D转换器;
·内含1个8位时间间隔定时器;
·内含4个8位定时/计数器;
·内含2个10位高速PWM模式;
·内含WATCHDOG定时器;
·带有1个8位SPI串行接口;
·具有12个中断源;
·具有1个可编程蜂鸣器驱动口;
·可支持省电模式STOP;
·可选用RC振荡。
GMS87C1404中的四个定时器/计数器不仅可以作为四个8位定时器/计数器使用,同时通过对定时方式寄存器TM0、TM1和TM2、TM3中有关位的设置还可以使它们工作在如下7种定时方式:
(1)8位计数器和8位捕捉方式;
(2)8位捕捉方式和8位比较输出方式;
( 3)8位定时/计数10位PWM方式;
( 4)16位定时器方式;
( 5)16位计数器发生;
(6)16位捕捉方式;
(7)16位比较输出方式。
另外,除了T0、T1、T2、T3四个定时器以外,GMS87C1404还有一个时间间隔定时器BITR,该时间间隔定时器只要一上电就一直运行而不能停止。它的时钟源可以是RC振荡器也可以是主振经分频后的信号。只要对CKCTLR寄存器中的BTCL位进行置1操作,就可以使BITR清零并重新向上计数,当计数计到FF并溢出后,芯片中的计数器/定时器便产生 BIT中断。因此,它可以作为在STOP方式下的片内唤醒定时器使用,同时也可以作为WATCHDOG定时器使用或其它定时器使用。[page]
GMS87C1404中共有12个中断,分别为4个外部中断、4个定时中断、ADC中断、WDT中断、BIT中断和SPI中断。这些中断中的每一个都具有各自的优先级,并且中断可以嵌套。
GMS87C1404的蜂鸣器输出功能使得用户可以方便地选用无源蜂鸣器,该器件通过RBFUN和BUR寄存器的设置可以使RB1脚输出交替变化的方波以用于驱动蜂鸣器。其方波的频率为:
f(Hz)=fxin/[2×分频系数×(BUR+1)]
其中的分频系数和BUR的值均可以由BUR寄存器来确定。
除了片内所具有的WATCHDOG电路外,电源跌落检测(PFD)电路是GMS87C1404的又一个独特之处。对PFDR寄存器进行适当的设置可以使其在Vdd上的电压下降到2.5~3.5V的范围内,或使用2.0~3.0V电压范围内的保持时间超过50ns。通过该电源跌落检测电路还可以使MCU复位。跌落的电压是在OTP编程时由CONFIG寄存器的PFD位决定的。正是这一特点提高了GMS87C1404的抗干扰和抗死机的能力。
GMS87C1404的指令系统共有202条指令,其功能极为丰富。它不但包括了乘法和除法指令,同时还具有7条16位运算操作比较指令,这七条比较指令分别为ADDWdp、CMPWdp、DECWdp、INCWdp、LDYAdp、STYAdp和SUBWdp。通过这些指令可大大简化复杂和多字节的运算编程操作,提高编程的效率。
3 干洗机自动控制系统的设计
干洗机是通过液泵将洗涤剂加入到内桶中的衣物里并通过内桶或外桶之间低速交替的正反转动使洗涤剂与衣物上的油渍污渍充分作用、分解后再经过高速旋转甩掉被分解和多余的洗涤剂,然后通过蒸馏烘干来完成衣物的干洗过程。其中低速转换的时间、高速甩干的时间和烘干的时间及烘干的温度对被洗衣物的干洗效果至关重要,因此,这些环节不但要给予控制,而且要能预置、调节和存储记忆。图2是干洗机自动控制系统的电原理框图。
该干洗机自动控制系统以GMS87C1404为核心元件,通过键盘和VFD(荧光数码显示)屏来实现人机交互。其外部输入信号包括温度、门控和过载信号。其中温度信号直接经GMS87C1404中的A/D转换处理后可在VFD屏上显示出来;而门控和过载信号实际上是开关量信号,这些信号经两路光耦隔离后进入GMS87C1404。GMS87C1404根据用户设定的参数和外部输入的信号再经程序处理后由驱动电路驱动9只继电器,进而实现对干洗机低速电机的正反转动、液泵电机、高速电机(高速1、高速2)、加热烘干电热器、风机电机、蒸馏阀门以及冷却水阀门的控制,并对各执行部件之间复杂的逻辑关系和相互制约关系进行协调控制。
同时,在运行过程中,还需要对低速转动时间、高速甩干时间和烘干时间采用倒计时方式进行显示,当烘干的温度超过35度时自动打开冷却水,以减缓烘干温度的上升速度,当烘干温度超过设定温度时则关闭电加热器。电路中的 EEPROM选用24C01并通过二线I2C协议和GMS87C1404进行通信,以实现对设置参数的存储记忆。本干洗机自动控制系统设有全自动和半自动两种工作方式。
由于GMS87C1404的I/O口数量有限,因此要实现5个端口对11个键信号的采集,就需采用键盘来完成设计。本系统采用双向键盘方案。图3所示是该方案的键盘电路原理图。在该电路的5个口中,先将RC4、RC3作为输出,RC5、RC6、RD2作为输入,通过RC3、RC4进行扫描来读入RC5、 RC6、RD2口的值,从而获得K1、K2、K3、K5、K7、K9、K11的键值;然后再反过来将RC3、RC4作为输入,RC5、RC6、RD2口设为输出,并对RC5、RC6、RD2进行扫描以读入RC3、RC4口的值,从而得到K2、K4、K6、K8、K10的健值。这样就可有效地利用较少的 I/O口来实现对较多的键信号的采集。
因为VFD屏具有高亮度,可设置简单图形和动态显示的特点,因而很适合用在干洗机中。本系统采用静态VFD屏,该屏具有6位数码和19个图形文字符号共61个笔段。驱动电路采用四片CS6210串联来完成,每片CS6210可驱动16个笔段。 GMS87C1404可通过3线串行接口将要显示的数据送往CS6210。然后由CS6210根据所输入的数据在相应的引脚输出对应的VFD屏所需的- 24V电压以点亮相应的笔划。
干洗机自动控制系统的主程序图如图4所示,其中的安全备份程序用于提高该系统的可靠性。虽然GMS87C1404已经提供了性能良好的WATCHDOG电路和PFD功能,但二者仅能在干扰信号达到一定程度时给出复位信号以保证不死机。而断点的现场恢复以及机器的不间断运行还需要通过软件来加以实现。因此,设计时可通过软件将数据备份程序运行过程中那些关键的数据拷贝在RAM区域中一些未使用的区域。下面是数据备份程序BACKUP和数据恢复程序 RESTORE的程序清单。[page]
BACKUP: LDX#01H;备份数据的起始地址
在初始化程序中,系统首先通过CHECK(自定义)寄存器与某一个定值(如 01010101B)进行比较来判断本次复位是上电复位还是因干扰后的WATCH-DOG或PFD复位,如果是上电复位,系统则正常初始化,并置 CHECK为设定值,否则系统将通过RE-STORE程序将原先的BACKUP数据进行恢复,然后再部分初始化并进入主程序直接运行,从而实现程序断点的现场恢复和整机无异常感觉的连续运行,另外,也可以在程序中的一些关键处设置软件陷阱,这样,一旦程序因干扰而没有按正常的运行途径运行而进入陷阱时,系统就会跳到RESTORE进行数据恢复并使运行程序恢复到正常的运行次序,从而确保系统的可靠运行。
参考文献
1.GMS87C1404 User's Manual.HYUNDAI MicroElectronics