嵌入式指纹锁的设计与实现
系统软件设计
该指纹识别门锁系统是完全自主开发的具有独立知识产权的软件,其完整的系统管理协议增强了软件的强壮性和可移植性,完整的指纹识别命令集使其可以自动进行指纹的注册、识别以及指纹数据的输出。系统软件总程序包括监测控制部分和通讯部分。监测控制部分包括了门锁控制软件诸如开关门、应急密码开门、指纹录入、指纹删除等程序,以及指纹识别管理、电源管理、定时器中断管理、看门狗、外部指令处理和I2C总线存储器等程序。
通讯部分主要包括通讯协议和驱动程序,其中通讯协议包括数据接收、数据发送、校验、数据包处理等程序;设备驱动包括寄存器配置和系统状态控制等程序。
表1 指纹锁的性能指标
系统初始化
嵌入式指纹锁系统在启动或复位之后,需要对系统硬件和软件运行环境进行初始化,这些工作由启动程序完成,启动程序通常采用汇编语言编写。写好启动程序是设计好嵌入式程序的关键,系统启动程序所执行的操作与具体的目标系统和开发系统相关,流程如图4所示。
指纹识别软件的协议命令集
系统管理协议包括功能部件更新下载、设备复位、部件错误处理、检测注册的用户数量、检测存储器信息、检测安全级、设置安全级、检测每个用户注册的指纹数、设置每个用户录入的指纹数以及设置波特率等。指纹识别命令集包括自动ID注册用户、给定ID注册用户、删除给定ID用户、匹配删除用户、删除所有用户、给定ID用户识别、自动ID用户识别、提取特征信息、特征信息匹配、从模块获取特征信息以及在模块中存储特征信息等。下面给出该软件指纹识别协议命令集中自动用户注册部分的设计说明。
自动用户注册是指系统使用自动选择的ID号注册用户,如下:
STI_USER_REGISTR ATION:开始注册
0x1b - 0x5e - 0x50 - Start ID NumberH- Start ID NumberL STI_USER_REGISTRATION _SUCCESS:注册成功
0x1b - 0x5e - 0x51 - Start ID NumberH- Start ID NumberL 其中Start ID NumberH/ Start ID NumberL为注册开始时的ID值 STI_USER_REGISTR ATION_ERROR:注册失败 0x1b - 0x5e - 0x52 - 0x00- ID Number
单片机与指纹模块的通讯协议
系统中的工作核心是指纹模块,它几乎包含了对指纹处理的所有操作。指纹识别模块通过RS232串口与使用者接口,使用者通过此接口来命令模块完成诸如指纹采集、指纹比对等一系列操作。单片机与指纹模块的通讯为半双工异步通讯,RS232接口缺省的波特率为9600bps。
单片机与指纹模块的通讯,对命令、数据、结果的接收和发送都采用帧的形式进行,通讯格式内容包括包标识、地址码保留字、包长度、包内容和校验和。 由于通过串口通讯,在数据接收的开始有时会丢失一两个字节,所以在接收数据包时可能因为接收字节不完全而使程序陷入死循环。
这里采用在规定时间内如果没有接收到数据则强行退出接收程序,而后重新接收数据的方法,由于指纹模块与单片机的工作频率非常快,根本不会影响该系统的工作。 同样,单片机和模块通过一串消息帧来传递命令,在程序编写时利用数组来存储Receive[Max]从模块接收到的数据,如图5所示。
单片机通过串口向模块发送命令而后又等待接收命令时,经常丢失或有误一两个字节,这样导致数组Receive [Max]中数据会丢失一两个字节。
参考指纹模块的通讯协议可知,消息帧中的大部分数据都相同,只有一两个不同的关键字且在数据帧的中间部分。所以,根据模块动作的几种可能情况在接收数据的数组Receive[Max]中搜索对应的一两个关键字,这样就可以正确判断模块的动作。
系统测试
根据门锁的安全性能指标设计测试方案,系统测试主要从以下几个方面进行:
1) 用不同质量的指纹:用大约500人次的不同指纹进行开锁、注册等测试;
2) 同一指纹在不同条件下:诸如干湿、破损、压力温度不同、位置角度不同、油污情况下进行开锁试验;
3) 不间断的工作方式:长时间的疲劳测试、频繁的开锁、关锁,测试系统的稳定性;
4) 人为制造紧急状况:电源不足情况下、恶性开锁、开锁后忘记关门、普通用户手指不能开门、取消非法用户权限等。 指纹锁的核心部分测试后的各项性能指标如表1所示。
结语
经过大量的测试工作,本门锁系统的性能状态良好,满足安全性和易用性的指标要求。门锁系统从功能上具有授权录入指纹、按ID号或按级删除指纹、记录最近的10次开门记录,可录入150枚指纹。本系统采用了嵌入式的体系结构,以及精度高、反应快、功耗低、体积小的外围器件,配合成熟的指纹识别算法和完善的功能设计,以及应急开门方案、加密设计和低功耗设计。本嵌入式指纹锁的误识率为0.001%0.01%,拒识率为0.1%1%,处理速度低于0.3s,完全满足指纹识别产品的要求。由本系统为核心制作的小样本嵌入式指纹锁已于2005年末供应海外市场。
- 嵌入式系统的定义与发展历史(11-15)
- 嵌入式系统亲密接触(11-22)
- 嵌入式系统设计中的USB OTG方案(02-01)
- 嵌入式线控驾驶系统开发过程中设计和测试考虑(02-02)
- 一个典型的嵌入式系统设计和实现 (02-02)
- DDR SDRAM在嵌入式系统中的应用(02-07)