基于DS1302的时间锁应用研究
2015-10-15
时间锁是在电子产品中设置一个预定工作时间,当实际工作时间超过预定工作时间时,让产品进入一种特殊的待机状态,同时声光警示、数码管显示或液晶显示相关提示信息。
1、时间锁设计
1.1 时间锁的硬件设计
实现时间锁的一个关键是产品使用时间的实时保存,且断电时信息不能丢失。常见方法有:
①利用单片机内部的E2PROM实时保存产品的使用时间。采用该方法保存不需要后备电源,实现成本较低,但有些型号的单片机没有内部 E2PROM,且该方式存在写入寿命短、写入时间较长(10 ms数量级)的问题。若在向E2PROM写入数据时突然掉电,则写入数据会出错,导致时间锁定功能失效。
②利用专门的E2PROM芯片(如24C02等)保存使用时间。该方法的优缺点同方法①。
③利用专门的RAM芯片保存数据。当掉电检测电路检测到系统掉电时,向单片机申请中断;在中断处理程序中向RAM写入数据,完成数据备份保存。该方式占用硬件资源多、实现成本较高。
DSl302是美国Dallas公司推出的一款实时时钟芯片。
其内部RAM是一种可反复擦写的静态RAM,保存数据所需的功耗非常低,可与时钟电路共用后备电池。用它做数据备份非常合适,可快速、方便、可靠地完成产品使用时间的备份保存。采用该方法保存数据可弥补上述3种方法的诸多缺陷。
时间锁的硬件电路如图l所示。控制单片机采用Microchip公司的PICl6F74,DSl302通过SPI总线与PICl6F74的RDO、RDl、RD2口相连。DSl302的工作原理在很多文献中均有介绍,本文不再说明。
1.2 时间锁的软件设计
产品在出厂时,在单片机程序中预先设定好使用时间,产品主程序定时调用图2所示的时间锁子程序。主程序根据工作标志进入正常工作状态或特殊 工作状态。在正常工作状态,实时将累计工作时间保存于DSl302的静态RAM中;在特殊工作状态,产品停止工作,同时声光警示、数码管显示或液晶显示相 关提示信息。
参考文献所述的时间锁是读取DS1302的当前日期时间,再与预设的日期时间比较,若超期则产品停止工作。但用户可将当前日期时间重新设置在预设的日期时间之前以避开时间锁,而本时间锁则是计算产品实际累计工作时间,从而解决了上述问题。
2、远程解密
当用户付清货款(余款)后,厂家或商家可通过电话线路对产品远程解密。采用远程解密方法方便灵活,既可使产品及时进入正常工作状态,保证用户付完货款(余款)后能马上使用产品,又可避免厂家派人上门解密的麻烦,以及密码外泄。
2.1 硬件设计
远程解密的硬件电路如图3所示。电路包括铃流检测电路、模拟摘机电路、DTMF(双音多频)解码电路3部分。将电话外线接入到远程解密电路的电话线输入端,同时将ANl开关拨通。当PICl6F74判断到RC7为低电平时,系统主程序进入电话密码接收状态。
电话线路没有振铃信号时,电话外线上的电压约为48 V,D1和D2的总稳压值为54 V,不足以让D3导通,光耦PC111的内部发光二极管不发光,输入到PICl6F74的RD3口为高电平;当该电话用户被呼叫时,电话交换机发送的振铃 信号叠加在直流电压上,振铃为25%26#177;3 V的正弦波,谐波失真不大于10%,D3导通,PC111的内部发光二极管发光,输入到PICl6F74的RD3口为低电平。故而,该电路可检测振铃信 号。振铃以5 s为周期,即1 s送,4 s断,故可检测到若干次振铃后再模拟摘机。
PICl6F74检测到预定次数振铃信号后,设置RD4口输出高电平,T1导通,则T2也导通。电话回路电流流经稳压二极管D4,交换机识 别到电话线路回路电流大于30mA时,停止发送振铃信号,接通电话线路,实现模拟摘机功能。电话信号经T2、C1、R1送到MT8870双音频解码。
DTMF主要用于电话交换系统。它是由两个不同频率的音频信号叠加而成的复合信号,这些音频信号不存在任何谐波关系,分为高音组和低音组, 电话机每个按键对应一组DTMF信号。远程解密电路采用MT8870作为DTMF信号的解码芯片,解调电话线路传来的数据信号。MT8870是加拿 大.Mitel公司生产的一种集成度高、应用普遍的通信类集成电路芯片,可以方便地与单片机连接。其主要功能是完成DTMF信号的接收和识别,可用于有线 电话网、无线移动通信网和计算机通信网的终端设备。DTMF信号通过IN一端输入MT8870,GS引脚接反馈电阻对输入的DTMF信号进行放 大,OSCl和OSC2引脚之间接一个3.58 MHz的晶振。从电话线路送来的双音多频信号在MT8870内经过滤波、放大、高低频分离,再经过数字处理转化为与DTMF信号相对应的二进制码,由 D0~D3引脚直接输出。例如按下电话“1”号键,则电话线上就有高频1209 Hz和低频697 Hz的DTMF信号。该信号进入MT8870进行解码,解码的结果由DO、D1、D2、D3输出,MT8870输出结果、频率组合、电话按键的对应关系如 表1所列。MT8870的SID引脚提供DTMF信号检测输出。当MT8870接收到DTMF信号并解码完成后,该引脚为高电平。平时该引脚为低电平,该 信号可向单片机申请中断。0E引脚为输出使能端,当OE为高电平时解码结果可以从DO~D3输出。0E为低电平时DO~D3引脚为高阻态。
2.2 软件设计
远程解密软件模块编成一个子程序,每次系统上电时调用。其程序流程如图4所示。通过判断RC7端口是否为低电平决定是否远程解密。当RD3 口检测到3次铃流信号后,使RD4口输出高电平实现模拟摘机,进入数据接收状态。在数据接收状态,当RD5收到高电平脉冲时,即可通过读取RCo~RC3 口接收保存1位数据,随后等待下一个高电平。当收到预定位数密码后,结束远程解密子程序。用户接收密码完毕时,只需将ANl断开,重新开机上电,产品即可 正常工作。