来源:中国一卡通网 作者:不详 发布时间:2014-02-24 10:09:57 字体:[大 中 小]
摘 要:本文设计了一个能用于门锁和保险箱的指纹识别与控制系统。系统以"MSP封装说明"为主控芯片,FSC7002为指纹处理芯片,兼具密码和指纹两种开启方式。还设计了一个可选的远程开启和报警模块。模块采用MG323作为通信芯片,通过GSM网络实现了远程信息的传输。
2.3 用户信息结构
用户数据信息存储的是用户的具体信息,包括用户名字、用户对应的指纹ID、开启密码、用户创建时间以及用户属性,总共长度为24个字节。用户创建时间表示用户创建的具体时间或者用户最近的修改时间,采用BCD码用7个字节表示,分别是秒、分、时、日、月、星期、年具体格式和DS1302对外输出的格式相同。用户属性property使用1个字节记录了用户的权限级别、用户的有效期和用户默认验证方式。系统通过用户创建时间和用户有效期判断用户是否到期失效。用户数据的结构定义如下:
2.4 指纹模块通信协议
控制模块和指纹处理器FSC7002通过UART接口通信,它们之间的通信遵循一定的协议。FSC7002提供了一个标准通信协议,本文直接采用了这个协议。上位机MSP向下位机(FSC7002)发送的指令,采用指令包的形式进行。指令包的长度为8字节,其格式如下所示。
下位机收到指令包后,将有关指令执行情况与结果采用应答包的形式上报给上位机。下位机只对符合自身地址码的指令包做出应答,其他地址的指令包不会给予应答;对于不符合协议要求的指令码,下位机也不会应答。应答包的长度是不定的,应答包将返回它应答的指令码,以及此指令码的执行结果代码,还会返回一些必要的参数。应答包的格式如下所示。
控制模块(上位机)和指纹处理模块(下位机)不停地通过指令包和应答包的传送,完成一系列的功能任务。
远程报警和开启
3.1 远程报警
远程报警是指当传感器检测到侵入或者输入报警密码时,系统向预先设置的手机号码发送报警信息。所谓报警密码是指预先设置的一组密码,使用这组密码同样也能开启锁具,但是在开启的同时,它将启动远程通信模块,并向远程手机发送报警的信息。报警密码主要用在被挟持开锁的情况下,既能保证人身安全,又能有一定的反制措施。
3.2 远程开启
远程开启是指使用手机发送开机指令,在远距离情况下开启门锁或者保险箱。远程开启功能的一大安全漏洞是使用GSM短信方式并不安全,因此本系统中对传输的数据进行了安全加密,使得安全性大大提升,加密算法使用256位DES加密。
远程开启功能包括锁具部分和用户手机部分,两部分必须相互配合才能完成预期目标。锁具部分在前述章节建立的基础上开发完成,用户手机部分使用Android平台作为开发对象。远程开启功能包括注册流程和远程开启流程,分别如图5和图6所示。
由于MSP430F149没有随机数生成器,因此使用内部的计时器,对用户按键间隔计时,使用这个间隔时间作为随机数种子。
3.3 基于Android的远程开启程序设计
本文基于Android平台,针对指纹锁远程开启的应用需求,采用DES算法加密通信数据,设计了符合安全要求的指纹锁手机端软件。
手机端软件主要实现3个功能:远程开启、注册、删除。软件的总体结构如图7所示。
注册:手机端软件接收锁体短信,将锁体名称、密钥和短信来源号码保存到数据库。
开启:获取用户输入的随机数和密码,用随机数和保存的密钥对密码进行加密,发送到指纹锁对应的号码。
删除:手机端软件删除对应锁体的信息,包括保存的密钥。
软件中涉及短信接收和短信发送,必须在项目配置文件中添加SEND_SMS和RECEIVE_SMS权限。
接收系统广播,需要向系统申请广播接收者权限。申请的方式有静态和动态两种。静态方式在软件的项目配置文件声明即可。静态方式下,软件在整个运行过程中都将响应系统广播。动态方式是在需要的时候使用registerReceivei方法向系统申请权限,在结束的时候使用unregisterReceiver方法注销即可,本文中采用动态方式。接收到短信的系统广播为android.provider.Telephony.SMSRECEIVED,用它生成过滤器IntentFiLTEr类,即可使软件只对该广播进行响应。
发送短信功能通过短信服务SmsManager类实现。该类中sendTextMessage方法即可控制手机硬件,实现短信的发送。
结语
本文设计的指纹识别和控制系统(不包括远程通信模块)使用4节1.5 V干电池串联供电。经测试,在使用指纹按捺感应启动功能的前提下,待机功耗为10.4μA,密码识别过程功耗为8.9 mA,指纹识别过程功耗为131.2mA。系统主要功耗指标已达到商业水平,具有较高的实用价值。
推荐文章
论坛热帖