APP下载

空调系统中掉电记忆功能的实现方法

2018-08-11裴德凤

赤峰学院学报·自然科学版 2018年7期
关键词:高电平字节器件

裴德凤

(合肥通用机械研究院,安徽 合肥 230031)

1 引言

一般家用电器产品在使用过程中遇到忽然停电断电的情况后,恢复供电,只会进入通电待机状态不会重新启动,而这种突发情况往往会给用户带来不必要的麻烦,当单片机在意外掉电,再恢复供电时,掉电前的一些存储在RAM区的数据随即丢失,为了避免这种情况发生,系统增加了掉电记忆功能,即单片机在正常工作时,用户设定的一些参数,以及系统采集的数据在断电前写入到E2PROM存储器中,再来电时,系统自动从存储器中读出信息,按照设定的方式运行.本文以空调系统为例,介绍如何实现掉电记忆功能.

2 系统硬件电路设计

2.1 24C02芯片简介

24C02芯片内部含有256*8位低功耗CMOS的E2PROM,该芯片采用I2C总线形式传送数据,具有体积小、接口简单、可靠性高、功耗低,价格便宜的特点,其引脚图如图1所示:

图1 24C02引脚图

图中SDA为串行数据输入/输出,SCL为串行时钟输入线,A0、A1、A2为地址线,当接不同的电平时,芯片的地址也不同,可实现一个系统中扩展多片24C02,数据通过SDA双向串行传送.WP引脚为写保护控制端,接“1”禁止写入,接“0”允许写入,Vcc和Vss分别是接正、负电源.

I2C总线的通信协议简述如下:

(1)I2C总线开始信号:SCL保持高电平,且数据线SDA由高到低变化,I2C被启动.

(2)I2C总线停止信号:SCL保持高电平,且数据线SDA由低到高变化时,I2C总线数据停止传送.

(3)数据改变:SCL为低电平时,SDA才能改变传输的数据,数据传输时,SCL必须为高电平,SDA必须为固定状态,不允许跳变.

(4)数据传输:SCL为高电平时,SDA若保持稳定,那么SDA上正在传输数据.即当SCL为高电平时,SDA上的任何变化都被当作启动或停止信号.发送到SDA上的每个字节必须为8位,每次传送的字节数量不受限制,每个字节后面必须跟一个响应位ACK.

(5)在I2C总线开始信号后,发送一个从机地址,地址码共7位,第8位为读写数据选择位R/W,“0”表示写数据,“1”表示读数据,系统发出开始信号后,系统中各个器件将CPU发送到总线上的地址和自己的地址进行比较,如果两者相一致,则该器件即被CPU选中,其接收数据还是发送数据则由R/W的状态确定.[1]

数据传送格式如下:

2.2 空调系统中24C02读写条件及内容

空调在工作过程中需要随时记忆开关机状态、运行模式,设定温度,设定风速的状态,当这些状态一有变化时,即单片机只要判断到有按键按下,或遥控接收信号,立即将上述信息重新写入相应的存储芯片,具体存储方式如下表1所示.另外,为了识别读出字节的准确性,在写入时外加一个校验字节.

表1 存储信息分配表

由上表可知一般空调系统共需要4*8位存储空间来进行信息的存储.为此,在设计中,选用24C02芯片完全能满足空调产品对存储容量的要求,I2C总线结构只需要单片机的两个端口即可进行数据的读写,这对于I/O端口并不富足的M37544单片机控制的空调控制系统来说,非常合适.

当系统首次上电时,单片机将存储芯片中的内容读出,存放到相应的存储单元,系统将会按照掉电前状态运行.判断首次上电的方法:可以在几个固定的存储单元中存入固定的数据,如果单片机掉电,此数据会丢失.所以单片机复位后,首先比较这几个单元的数据是否与存放的数据一致,如果不一致,则说明此次复位为上电复位,即需要读取24C02数据.

2.3 24C02与单片机接口电路

图2 24C02与单片机的接口电路

24C02与单片机的接口电路如图2所示,因为本控制系统只用到一片24C02,所以可将A0、A1、A2三条地址线接地,表示24C02的地址为000,用单片机的P1.0端口接串行时钟输入端SCL,P1.1端口接串行数据输入输出端SDA.

3 读/写24C02软件流程图

3.1 写24C02程序设计

当24C02被启动后,单片机首先发送写控制命令,因为24C02器件识别码为1010,本控制系统硬件电路中三根地址线A2、A1、A0全部接地,所以器件的地址为000,因为是向24C02中写数据,所以R/W位应送0.

图3 写24C02流程图

图4 写24C02子程序片段

当执行写操作时,单片机发出启动信号后,接着发送写控制字节,即1010 0000,当单片机接收到24C02的应答信号ACK后,将发送待写入的字节首地址,单片机再次接收到24C02的应答信号ACK后,将发送待写入的数据至指定地址单元中,当主器件再次收到应答信号ACK后,产生停止位结束一个字节的写入.紧跟着写入下一个字节,也可多个字节数据连续传送之后,再送停止位[1].

图3为写24C02程序流程图.

其中基于M37544单片机[2]的发送数据子程序代码如图4所示,该程序中累加器A中存放待发送的数据,RR7单元中存放发送的位数.

3.2 读24C02程序设计

读24C02字节数据之前,先发送起始位,再通过写操作发送要读的24C02的首地址,当收到应答信号之后再发送读控制命令,24C02器件识别码为1010,器件的地址为000,要读24C02中的数据,R/W位应置1.所以读控制命令为10100001,该命令发送之后,24C02发出应答信号之后会发出8位数据.当所有数据接收完毕,单片机发出一个停止位,结束当前的读操作.

读24C02芯片的流程图如图5所示:

图5 读24C02流程图

其中基于M37544单片机的读字节数据子程序片段如下图6所示,该程序实现读一个字节数据的功能,首先根据数据口p1.1的高低电平状态,将进位标志位CY置1或清0,再移位送入累加器的最高位,最终读取的数据存放在累加器A中,RR7中存放读取数据的位数,初始存入8,当RR7中的数据减到等于0时,一个字节接收完毕.

图6 读24C02数据的子程序片段

4 总结

随着家电产品的智能化发展,在电饭锅、洗衣机、空调等家电产品中,增加了掉电记忆功能,实践证明,在单片机控制系统中,采用24C02存储芯片,可以达到良好记忆效果,从而满足一些特定场合的需求.该种控制方式具有简单灵活、体积小、功耗低、价格便宜等优良性能.

猜你喜欢

高电平字节器件
一种基于FPGA的PWM防错输出控制电路
No.8 字节跳动将推出独立出口电商APP
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
No.10 “字节跳动手机”要来了?
简谈MC7字节码
浅谈物理电路与数字电路
PDM 1kW中波广播发射机保护电路分析
旋涂-蒸镀工艺制备红光量子点器件
面向高速应用的GaN基HEMT器件
一种加载集总器件的可调三维周期结构