
基于SPCE061A的智能密码锁系统的软件设计说明.doc
42页1 引言智能密码锁系统是利用单片机的优越性能与其广阔的应用空间为核心特别是随着集成电路技术的发展,单片微型计算机的功能也不断增强,许多高性能的新型机种不断涌现出来单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点成为自动化和各个测控领域中广泛应用的器件,尤其是在日常生活中发挥的作用也越来越大单片机技术的迅猛发展和人们保安意识的日渐提高,使利用单片机及其他外围芯片实现智能密码开锁和自动报警已成为可能,且是一种发展趋势,特别是在智能密码锁系统中,单片机更是起到了不可替代的核心作用[9]通过把传统密码锁与语音识别解锁相结合,并通过进行远距离报警的智能密码锁系统的开发是以市场研究为基础,针对人们的需求和市场上的密码锁和报警产品的不足而提出的此系统是智能密码开锁系统与利用的报警系统的有机结合,由于现在人们生活水平的提高,安全意识的增强,密码锁逐步普及到家庭,因此它的实施就更加可行而且利用密码开锁既安全又实用,从技术上又易于实现,在传统智能密码锁系统的设计基础上,加入了语音识别解锁功能,并且引入报警功能有一定的研究价值和现实意义我们用传统的密码锁,无论是安全还是功能都有一定的局限性,实用价值很难达到令人满意的效果,有些密码锁甚至由于报警信息不明确还会出现故障处理不及时或处理不当的现象造成不必要的损失。
所以把传统的密码锁与声纹识别密码锁相结合的双密码设置系统和报警系统引入到智能密码锁系统中解决了这一难题[6]2 单片机语言的简介目前针对凌阳16位单片机,现有两种语言支持,即汇编和C[1,2]2.1 汇编语言凌阳单片机的汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序[3] 2.2 单片机C语言的发展C语言是一种源于编写UNIX操作系统的语言,它是一种结构化语言,可产生压缩代码C语言可以进行许多机器级函数控制而不用汇编语言与汇编语言相比,有如下优点:对单片机的指令系统不要求了解,仅要求对SPCE061A的存储器结构有初步了解,寄存器分配、不同存储器的寻址及数据类型等细节可由编译器管理程序有规的结构,它可分为不同的函数这种方式可使程序结构化,将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性、编程及程序调试时间显著缩短,从而提高效率[12]C语言提供的库包含许多标准子程序,其具有较强的数据处理能力,能将已编好的程序很容易地植入新程序,因为它具有方便的模块化编程技术。
C语言作为一种非常方便的语言而得到广泛的支持C语言程序本身并不依赖于机器硬件系统,基本上不做修改就可根据单片机的不同而较快地移植过来[4]C语言是一种结构化语言它层次清晰,便于按模块化方式组织程序,易于调试和维护C语言的表现能力和处理能力极强它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构它还可以直接访问存的物理地址,进行位
7) 通过C语言可实现模块化编程技术,从而可将已编制好的程序加入到新程序中8) C语言可移植性好且非常普及,C语言编译器几乎适用于所有的目标系统,已完成的软件项可以很容易地转化到其他的处理器或环境中所有这些并不说明汇编语言就没有立足之地,很多系统特别是实时时钟系统都是用C语言和汇编语言联合编写的对时钟要求严格时使用汇编语言是唯一的方法除此之外,包括硬件接口的操作都应该用C语言来编写C语言的特点就是可以使程序员尽量少的对硬件进行操作,它是一种功能性和结构性很强的语言[1]3 主要元器件介绍3.1 SPCE061A凌阳十六位单片机的CPU核采用凌阳最新推出的µ’nSP〔Microcontroller and Signal Processor〕16位微处理器核〔以下简称µ’nSP™〕;而µ’nSP™核是一个通用的核结构SPCE061A 是继µ’nSP™系列产品SPCE500A等之后凌阳科技推出的又一个16位结构的微控制器SPCE061A里嵌>32K字〔Word〕的闪存〔FLASH〕,>2K字〔Word〕SRAM的;置十位ADC、DAC,有多达十四个的中断源等丰富的片资源CPU最高可工作在49MHz的主频下,应用凌阳µ’nSP™的精简指令集,再加上较高的处理速度使µ’nSP™能够非常容易地、快速地处理复杂的数字信号;这使得SPCE061A带有>DSP特性,且具有灵活的语音处理功能。
因此,与其它类型的单片机相比,以µ’nSP为核心的SPCE061A微控制器是适用于有数字语音功能的应用领域产品的一种最经济的选择本方案采用凌阳科技16-bit高性能的微控制器—SPCE061A作为主控器,其CPU硬件资源情况包括:·16位µ’nSP™微处理器;·工作电压
3.2 系统模块及其功能(1) 时钟发生器:SPCE061A部配置有两种时钟:系统时钟〔FSYS〕是由SPCE061A 部的时钟模块提供的整个时钟模块由晶体振荡器、PLL〔锁相环〕倍频电路和分频电路几部分构成FSYS直接向CPU核和和定时器等外围工作模块提供时钟脉冲源是整个系统的主要时间基准SPCE061A的指令执行时间就是以FSYS为基准计算的一个CPU时钟周期指的就是一个FSYS时钟周期时钟系统由3级电路外加石英晶体组成振荡器的输出频率取决于26768HZ的晶体;PLL将32768HZ倍频到20.48MHZ〔默认〕、24.576MHZ、32.768HZ、40.96MHZ、49.152MHZ,可编程选择;后接的分频电路PLL输出频率,可编程进行1、2、4、8、16、32、64分频,默认为8分频2) 电源电路:负责将VDD和VSS引脚之间施加的电源电压分配到芯片的各个功能电路只要电源电压不超出规定的围,就能够保证单片机正常的工作为了提高抗干扰能力和可靠性,通常在靠近单片机引脚的正、负电源之间跨接2只容量一大一小的电容器容量大的为电解电容器,用于滤除电源纹波;容量小的电容为瓷片电容,用于旁路叠加到电源上的毛刺干扰。
3) 节电控制器:可以控制MCU进入节电模式,以便达到节能降耗的目的,特别是对那些电池供电便携装置4) 复位管理电路:负责管理来自外部的人工复位信号,以及部几种不同原因引起的系统复位5) 上电复位电路〔POR〕:当单片机芯片加电后VDD升到一定的值,该电路产生一个复位信号使单片机可靠复位,然后进入工作状态为了进一步确保可靠上电复位,在单片机RESET引脚上外接阻容延时电路,利用电容器的充电过程来延长上电时间6) 欠压复位电路〔LVR〕:为了确保程序可靠运行,当电源电压出现跌落并下降到阀值以下时〔该阀值可编程规定为2.2伏〕,该电路可设置一个标志,或者产生一个部复位信号使CPU进入并保持在复位状态直到VDD恢复到正常围〔2.2伏以上〕,CPU才能返回到正常状态7) 监视定时器,俗称看门狗〔WDT〕:可以看成是具有16级二进制计数器的,利用FSYS作为脉冲源的计数器,用来监视程序的运行状态万一由于意外原因,一旦导致CPU跑到正常程序之外而出"死机",WDT将强行把CPU复位,使其返回到正常的程序轨道上来8) 中断管理逻辑:该模块可以管理2个外部中断触发信号〔EXT1和EXT2〕和部多达14个外设模块的中断源,外加一个软件中断。
3.3 HT9200A编码芯片 HT9200A是串行式DTMF发号芯片,部电路比较复杂,但集成后具有体积小、重量轻、频率稳定、编码精度高等优点HT9200A采用8脚DIP或SOP封装形式,能输出带支流电平的DTMF信号HT9200A采用低功耗设计,工作电压在2.0-5.5V,待机电流低于2μA,谐波失真小等优点[14]具体如下:●工作电压2.0V--5.5V图1 HT9200A芯片引脚图●HT9200A 串行模式●低功耗、总谐波失真低●使用3.58MHz晶体/瓷震荡器引脚说明[16]:CE:使能端,低电平有效;X1、X2:外接 3.579545MHz 晶体震荡器端;VSS:地,接负极;CLK:串行模式同步时钟输入端;串行时为高阻态,并行时部上拉;DATA:串行模式数据输入端;串行时为高阻态,并行时部上拉;DTMF:DTMF信号输出端;VDD:电源正极;HT9200A DTMF信号发生器专为与MCU接口所设计,在MCU的控制下可从DTMF引脚发出16个双音及8个单音,HT9200A提供一种串行工作模式,例如安全系统、家庭自动化、线遥控,通讯系统等[10,16]框图如下:图2 HT9200A 串行模式控制时序4 硬件方案概述基于16位SPCE061A的智能密码锁系统其主要功能是:采用传统密码开锁和语音识别开锁的双密码设置,在通过按键进行密码输入解锁的基础上,加入语音识别解锁功能。
并能采集人体红外信号,然后进行适当的处理,判断是否报警,倘若有陌生人进入,在规定的时间不对系统进行手动复位,就会发出声音报警,同时系统还会通过线拨报警,预先储存在系统之中[5,8]该系统的硬件部分包括信号采集与处理模块、单片机控制模块、语音报警处理模块、DTMF编码模块、模拟摘挂机与铃流检测模块、键盘及电源等模块具体工作过程是:通过按键选择传统密码开锁或语音识别开锁,然后进行密码比较识别或语音比较识别,识别结果反馈给单片机,单片机再通过端口来控制继电器是否开锁;当有人非法闯入时红外传感器采集到的人体体红外信号,经过信号处理以后将该信号转换,然后输入到单片机,同时单片机判断是否通过远程报警,如果需要报警就控制模拟摘挂机部分的继电器吸合,接通电路然后发送DTMF编码,呼叫对方的话机[5,11]系统框图如图3所示。
