一款基于MSP430单片机指纹密码锁系统的设计

2018-01-03 07:06彭克勤朱敏玲北京信息科技大学计算机学院
数码世界 2017年12期
关键词:主程序密码锁指纹识别

彭克勤 朱敏玲 北京信息科技大学 计算机学院

一款基于MSP430单片机指纹密码锁系统的设计

彭克勤 朱敏玲 北京信息科技大学 计算机学院

密码锁的形态有很多种,按照相关技术可分为分:按键式的、射频式、还有指纹式等。本文选用低功耗的单片机MSP430F5419作主控机,采用指纹模块ATK-AS608、LCD屏、按键、语音等硬件,尝试设计一款指纹式密码锁。MSP430F5419通过串口对指纹模块ATK-AS608数据读取即录入指纹,通过对MSP430F5419编程,实现指纹密码锁功能。本文主要介绍指纹模块ATK-AS608基本特性,接口协议;分析MSP430F5419与指纹模块ATK-AS608之间通信要求以及实现指纹密码锁系统的编程方法。

单片机MSP430F5419 指纹模块ATK-AS608 串口通讯接口协议 密码锁

1 系统介绍

1.1 系统原理

系统结构如图1所示。指纹模块通过串口协议与MSP430F5419相互通信,LCD屏采用OCMJ128x64带字库LCD显示屏;语音采用ISD1720,通过SPI接口与MSP430F5419相互通信;按键采用HD7279,通过其特殊的SPI协议与MSP430F5419进行通信。

图1 系统结构

1.2 硬件介绍

1.2.1 MSP430F5419

MSP430f5419 系列单片机(MCU)是一个 16 位、采用了精简指令集(RISC)结构的MCU;简便的 27 条内核指令和大量的模拟指令;具有很多寻址方式如:源操作数寻址、目的操作数寻址等;片内数据存储器以及大量的寄存器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在 8MHz 晶体驱动下指令周期为 125 ns ;片上资源丰富,具有超低功耗的优点。

1.2.2 按键接口HD7279

按键接口选用的是HD7279。这是一片智能显示驱动芯片,采用串行接口, 能同时接8位LED数码管,同时可以连接8*8个矩阵键盘。

本设计中采用中文液晶显示(LCD)模块。该模块采用新型控制器8133,它完全兼容原8130 控制器的指令系统,是原8130控制器的基础上升级改进版,并增加了一些特殊的功能,老用户可在原有硬件接口不改变的条件下,对软件程序稍做修改就可实现以下特殊的功能:

(1)光标功能:写入光标功能指令后,光标会在下一个输入的字符或汉字的下一地址位显示(不在最后显示的字符或汉字下方)。可根据需要对光标闪烁效果和光标长度(8点或16点)进行设置。

(2)反白功能:写入反白功能指令后,以后写入的内容将出现反显效果。

(3)汉字字模为 16*16点阵,字体改为15*15点阵,内置字库增加为GB 2312国标一、二级简体汉字字库及前16区字符(16*16点阵)。

(4)显示移动功能:写入显示移动功能指令后;整屏显示移动的位置和速度可编程。

1.2.4 指纹模块ATK-AS608介绍

(1)指纹模块ATK-AS608性能介绍

ATK-AS608指纹识别模块采用了国内著名指纹识别芯片公司杭州晟元芯片技术有限公司(Synochip)的AS608指纹识别芯片,是ALIENTEK推出的一款高性能的光学指纹识别模块。由于芯片内置DSP运算单元并集成了指纹识别算法,因此ATK-AS608模块能高效快速采集图像并识别指纹特征。

制取模型时2组患者的舒适度比较差异有统计学意义(P<0.05)(见表1)。数字化方法组取模时所有患者舒适度评级均为A级和B级,传统方法组有3例患者在取模过程中存在强烈不适感。2组瓷贴面随访期内脱落率比较:46例患者跟踪随访时间6个月,在随访期内,2组患者均未出现瓷贴面脱落,2组瓷贴面脱落率的差异无统计学意义。

ATK-AS608模块具有USB、串口两种通讯接口标配,用户不需研究复杂的图像处理过程以及指纹识别算法,而只需通过对USB或串口按照提供通讯协议便可对模块实施控制。本模块可应用于指纹锁、保险箱柜、考勤机、门禁系统等场合。

ATK-AS608模块内设有二个512bytes大小的特征文件缓冲区与一个72K字节的图像缓冲区,名字分别称为:CharBuffer1,CharBuffer2和ImageBuffer。用户可以通过指令读写任意一个缓冲区。CharBuffer1或CharBuffer2既可以用于存放普通特征文件也可以用于存放模板特征文件。为了加快速度,通过UART口上传或下载图像时,只用到像素字节的高4位,即将两个像素合成一个字节传送;通过USB口则是整8位像素。

指纹库容量根据挂接的FLASH容量不同而改变,系统会自动判别。指纹模板按照序号存放,序号定义为:0—(N-1)(N为指纹库容量)。用户只能根据序号访问指纹库内容。

(2)通信协议分析

上位机与模块之间通讯、MCU与模块之间通讯,模块指令和数据的发送或接收,都是按照模块指令格式和数据格式打包;解析指令和接收数据包也按照对应的格式。

一、指令格式

模块指令格式分为三种:命令格式(如表1所示)、数据格式(如表2所示)、结束包格式(如表3所示)。

表1 命令格式

表2 数据包格式

表3 结束包格式

二、模块应答格式

应答是将有关命令执行情况与结果上报给上位机或者MCU;应答包含有参数,并可跟后续数据包。上位机或者MCU只有在收到模块的应答包后才能确认模块收包情况与指令执行情况。模块应答包中包含一个参数:确认码。确认码表示执行指令完毕的情况。模块应答格式如表4所示。

表4 模块应答格式

2 软件实现

MSP430F5419 编译环境为IAR for 430软件,采用C语言编程。

按照功能来分,主要分为三部分:主程序,中断程序,指纹模块功能子程序等部分,每个功能是相互关联的,又相互独立,下面按功能要求来讲述。

2.1 主程序

主程序流程图如图2:程序上电时,首先,时钟及IO口初始化,串口初始化,语音初始化,指纹模块初始化,,然后进入查询按键,检查按键功能进入相应的功能程序。

图2 主程序流程图

2.2 指纹模块函数

本次设计里一共有三个函数,分别是删除指纹、录指纹、刷指纹;每个函数都包含着很多相同的子功能函数,如获取图像命令PS_GetImage()、应答包处理功能JudgeStr()等,在此仅对press_FR()刷指纹函数实现进行介绍;其流程程图如图3所示。

图3 刷指纹函数流程图

函数代码如下:

2.3 串口数据接收

串口接收数据采用中断的方式,当有数据来时,串口接收中断信号,进入接收中断,然后接收数据,按照指纹模块提供的数据协议进行接收,其流程图如图4所示

图4 串口接收指纹数据流程图

中断接收处理函数如下

3 结束语

本文由于篇幅的原因,很多细节没有详尽写入。比如串口接收数据,文中只是简单提到接收,其实这个也需要处理,在本次设计实现的程序里,开启了一个1MS的定时器,时间到,即表示接收完毕,然后主程序开始处理接收到的数据;这是整个系统数据处理最重要的一块。

[1]洪利,章扬,李世宝.MSP430单片机原理与应用实例详解[M].北京:北京航空航天大学出版社,2010.7

[2]沈建华,杨艳琴,翟骁曙.MSP430系列16位超低功耗单片机原理与应用[M].北京:清华大学出版社,2004.11

[3]王桂荣,李宪芝.传感器原理及应用[M].北京:中国电力出版社,2010.5

[4] Ramon Bardolet,Enrico Pigorsch.Sensors [M].Springer,2014.8

[5]ATK-AS608指纹识别模块用户手册.pdf HTTP://www.openedv.com/thread-77992-1-1.html

[6]HD7279A串行接口8位LED数码管及64键键盘智能控制芯片(第四版).PDF》HTTP://www.bitcode.com.cn

[7] B系列改进型中文液晶显示模块使用说明书.pdf HTTP://www.gptlcm.com

[8] ISD 1700系列数码语音电路使用手册(中文版).pdf HTTP://www.atvoc.com

彭克勤,女,硕士,副教授;朱敏玲,女,博士,副教授。

猜你喜欢
主程序密码锁指纹识别
自动升级程序在船舶监测系统中的应用
浅谈数控铣削技术代码程序的嵌套方式研究
电控冰箱软件模块化设计
基于单片机指纹识别电子寄存柜设计
开启密码锁
时光倒流 换回PotPlayer老图标
基于单片机的电子密码锁设计
苹果屏幕指纹识别专利图流出
iPhone8新专利曝光
指纹挂锁