1、基于ARM的指纹识别门禁系统设计课程设计任务书学生姓名:廖年强专业班级:06自动化指导教师:谢川工作单位:重庆工商大学计信学院题目:基于ARM的指纹识别门禁系统设计已知技术参数和设计要求:1、硬件主要选择基于Xscale内核的PXA255处理器;2、传感器为美国豪威公司的CMOS图像传感器FPS200;3、设计系统的硬件和软件部分;4、硬件包括指纹识别模块、数据处理模块等;5、软件部分包括系统初始化,指纹处理识别,电控锁控制部分等;6、以小组为单位完成本任务,每个小组最多5人;要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、完成元器件选型,设计硬件电路,并提
2、供protel电路图;2、设计中给出最小系统的电路图扩展相应的电路,并根据要求最终形成一个完整的电路图,并完成所有源代码;3、每个组员完成不少于3000字的课程设计报告且报告内容不同。4、课题指标从学生实际出发,难易适中,经过努力都能够完成任务,并有所收获。时间安排:20092010学年第一学期1718周指导教师签名:年月日教研室主任签名:年月日重庆工商大学课程设计成绩评定表学院:计信学院班级:06自动化2班学生姓名:廖年强学号:2006003921优秀目值良好(90x80中等(80x70及格(70x60分参考标准参考参考标准参考标准参考标准标准学习态度学习态度认真,科学作学习态度比较认真,1
3、风严谨,严格保证设计科学作风良好,能按5时间并按任务书中规定期圆满完成任务书规的进度开展各项工作定的任务学习态度尚好,遵守组织纪律,基本保证设计时间,按期完成各项工作学习态度尚可,能遵守组织纪律,能按期完成任务学习马虎,纪律涣散,工作作风不严谨,不能保证设计时间和进度5技术水平与实设计合理、理论分析与计算正确,实验数据准2确,有很强的实际动手能力、经济分析能力和计算机应用能力,文献查阅能力强、引用合理设计合理、理论分析与计算正确,实验数据比较准确,有较强的实际动手能力、经济分析能力和计算机应用能力,文献引用设计合理,理论分析与计算基本正确,实验数据比较准确,有一定的实际动手能力,主要文献引设计
4、基本合理,理论分析与计算无大错,实验数据设计不合理,理论分析与计算有原则错误,实验数据不可靠,实际动手能力差,文献引用、际、调查调研非常合理、调查调研比较合理用、调查调研比无大错 调查调研有较能可信、可信较可信大的问题解 观念陈旧力创1有重大改进或独特见解有较大改进或新颖的有一定改进或新有一定见新0,有一定实用价值 见解,实用性尚可 的见解论文(计算书、图纸撰写结构严谨,逻辑性强,层次清晰,语言准确,5文字流畅,完全符合规0范化要求,书写工整或用计算机打印成文;图纸非常工整、清晰结构合理,符合逻辑结构合理,层次,文章层次分明,语较为分明,文理言准确,文字流畅,通顺,基本达到符合规范化要求,书规
5、范化要求,书写工整或用计算机打写比较工整;图印成文;图纸工整、清纸比较工整、清晰晰结构基本合理,逻辑基本清楚,文字尚通顺,勉强达到规范化要求;图纸比较工整内容空泛,结构混乱,文字表达不清,错别字较多,达不到规范化要求;图纸不工整或不清晰质量指导教师评定成绩:指导教师签名:年月日基于ARM的指纹识别门禁系统设计计信学院06自动化2班廖年强2006003921【摘要】本设计介绍了基于ARM的指纹识别门禁系统的软硬件设计。其中硬件主要是Intel公司基于Xscale内核的PXA255处理器和美国豪威公司的CMOS图像传感器FPS200。软件设计包括系统初始化,指纹处理识别,电控锁控制部分等。经过实际
6、测试该系统工作稳定可靠,达到了设计目的。【关键词】ARM门禁系统指纹识别TCP/IP图像一、门禁系统概述门禁系统(AccessControlSystem,又称出入口控制系统,是为保障人们生活、工作及财产安全,对重要通道的出入口进行管理与控制的系统。随着技术的发展,门禁系统已经从传统的卡式门禁系统发展到今天的生物特征识别门禁系统。生物特征识别门禁系统是以人体生物特征作为辨识条件的指纹比对、掌纹比对、语音比对等。这些生理特征相同的概率达到数十亿分之一,因此具有无法仿冒与借用、不怕遗失、不用携带、不会遗忘,有着个体特征独特性、唯一性、安全性的特点,适用于高度机密性场所的安全保护。其中指纹识别发展最早
7、,使用也最广泛。并逐渐与网络集成。二、PXA255处理器和指纹传感器FPS200简介本系统采用Intel公司基于Xscale内核的PXA255处理器。Xscale微架构采用ARMV5TEISA兼容指令集(浮点指令集除外,它以ARM核为中心,在其周围扩展了指令和数据内存管理(InstructionandDataMemoryManagementUnit,指令、数据和微小数据高速缓(Instruction,DataandMini-DataCache,写缓冲、全缓冲、挂起缓冲和分支目标缓冲,电源管理单元,性能监测单元,调试和JTAG单元以及协处理器接口、MAC协处理器、核心存储总线等。FPS系列CMO
8、S图像传感器芯片是美国豪威公司的产品。FPS200是高度集成的彩色摄像芯片,可带1/4镜头。支持多种格式,内设的SCCB(SerialCameraControlBus串行控制总线接口,提供简单控制方式。通过该接口,我们可以对FPS200芯片内部所有寄存器值进行修改,从而完成对FPS200的控制,包括色彩饱和度的调整、gamma校正等等。该芯片最高能达到每秒钟30帧的传输速率,并且用户可以控制图像质量,可以根据自己的需要选择合适的图像质量。另外FPS200内置了640480分辨率的镜像阵列,A/D转换器,并支持外部水平、垂直同步输入格式,数字视频输出、增益控制、黑平衡和白平衡等在内的控制寄存器功
9、能模块。其内部框图如图1。图1FPS200内部结构框图三、系统硬件设计1、结构框图系统的硬件架构原理框图如图2所示,本系统主要实现指纹的识别、处理、特征模板提取、图2系统硬件结构图结果显示,以及完成个人身份识别/注册功能。主要由ARM9处理、VGA控制及结果显示等模块组成。2、指纹识别模块指纹识别模块核心部分为FPS200传感芯片,该芯片是一种触摸式CMOS传感器件,其传感区域为1.28cm1.50cm,500dpi分辨率,内置有8位ADC,且有微处理器总线、SPI总线三种接口模式。其通过改变电容阵列的参数值可在一秒钟内扫描多副指纹图像便自动选择最好的一幅。本指纹防盗系统采用了传感器的USB模
10、式传感器的数据线直接与STR912x芯片扩展口相接,对FPS200图像传感器进行初始化控制和图像读取。指纹传感电路如图3所示。图3指纹传感电路指纹采集电路的原理图如图4所示,其工作原理为:PXA255处理器通过I2C总线设置FPS200的寄存器,系统开GPIO72(VSYNC的中断使能并检测中断,当GPIO72(VSYNC中断到来以后,打开GPIO73(HREF中断使能,关闭其它的中断使能。当GPIO73(HREF中断到来以后,打开GPIO74(PCLK中断使能,关闭其它中断。每当GPIO74(PCLK中断到来,就将GPI2Obuffer里的GPIO64GPIO71数据采集出来,保存到imgb
11、uf数组中去。重复这一步一直到采满382240次为止。将imgbuf按照每隔320个元素就舍弃62个元素进行处理,这样得到的数据就是320240大小的灰度指纹图像。图4指纹采集电路 原理图3、数据处理模块数据处理模块主要完成指纹识别的整个处理过程,包括指纹图像软化、方向图提取、图像增强、二值化、图像滤波、图像细化等。该模块采用了TMS320VC5402,使用FLASH和SDRAM分别作ARM处理器的程序存储器。TMS320VC5402是16位定点DSP,采用改进的哈佛结构适应远程通信等实时嵌入式的需要。为了提高速度,本文对一些核心的算法进行了优化。4、全局逻辑控制单元系统中大多数外围器件与DS
12、P的握手信号都是通过可编程逻辑器件来完成的,CPLD电路设计按其所实现的功能可分为DSP寻址空间和芯片读写信号两个模块,其中DSP寻址空间模块根据DSP输出的控制信号和数据空间选择信号分时寻址SRAM和FLASH两个存储体。四、系统软件设计指纹识别系统的主程序流程图如图5所示。目标板上电后对整个识别系统进行初始化操作,包括DSP系统的初始化和目标板上外设的初始化,对他们进行参数设置。初始化完成后开始检测指纹传感器上是否有手指,如果有则进行指纹图像的识别识别完成后就对着枚指纹图像进行预处理工作,在预处理的前端,对识别进来的这枚指纹进行质量评估,以判断是否需要继续进行指纹图像的预处理工作,若指纹质
13、量比较好则继续进行预处理和数据上传;如果图像的质量很差,则作废这枚指纹数据。指纹图像的识别是在中断程序中开始的,当指纹传感器上没有手指时,系统将进入省电模式,通过指纹传感器FPS200的手指自动检测中断来唤醒系统,并进行一次指纹图像识别、预处理和数据上传。指纹登记个数3000枚。图5软件流程图系统设计完成后,可脱机值守工作。12232点阵LCD实时显示时钟、操作状态,并具有15键操作键盘,可独立完成建档及查询功能。系统核查指纹1:N与1:1两种方式兼容,提供RS232/R485、RJ45接口支持局域网连接。五、结论及心得体会本次设计主要介绍了基于ARM的指纹识别门禁系统的软硬件设计。ARM体系
14、结构有丰富的接口,在门禁、监控等领域正发挥越来越重要的作用,面向可集成,可扩展,可移植的特定嵌入式系统越来越多的出现在工程领域。随着性价比的提高和软件开发的成熟,ARM在嵌入式领域的应用会越来越广泛。本文从指纹识别的可靠性及速度上考虑,在门禁系统中以ARM微处理器做控制器,充分利用了其高速的运算处理能力。通过此次课程设计,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习嵌入式更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。附:程序代码:fps200.h#ifndef_FPS200_H_#define_FPS200_
15、H_#defineROW_NUM300#defineCOL_NUM256#defineFPS200_IOCRESET_IO(FPS200_IOC_MAGIC#defineFPS_RAH0x00#defineFPS_RAL0x01#defineFPS_CAL0x02#defineFPS_REH0x03#defineFPS_REL0x04#defineFPS_CEL0x05#defineFPS_DTR0x06#defineFPS_DTR_TIME0x70#defineFPS_DCR0x07#defineFPS_DCR_CURRENT0x6#defineFPS_CTRLA0x08#defineFPS
16、_CTRL_ASM_ARCH_EP7211_HA_GETSUB0x04#defineFPS_CTRLA_GETIMG0x02#defineFPS_CTRLA_GETROW0x01#defineFPS_CTRLA_AINSEL0x08#defineFPS_CTRLB0x09#defineFPS_CTRLB_MODE0xC0#defineFPS_CTRLB_RDY0x20#defineFPS_CTRLB_AFDEN0x08#defineFPS_CTRLB_AUTOINCEN0x04#defineFPS_CTRLB_XTALSEL0x02#defineFPS_CTRLB_ENABLE0x01#def
17、ineFPS_CTRLC0x0A#defineFPS_SRA_ASM_ARCH_EP7211_H0x0B#defineFPS_SRA_GETSUB0x04#defineFPS_SRA_GETIMG0x02#defineFPS_SRA_GETROW0x01#defineFPS_PGC0x0C#defineFPS_PGC_VALUE0x4/0xb#defineFPS_ICR0x0D#defineFPS_ICR_IP1_RISE0x80#defineFPS_ICR_IP0_RISE0x40#defineFPS_ICR_IT1_LEVEL0x20#defineFPS_ICR_IT0_LEVEL0x10
18、#defineFPS_ICR_IM10x08#defineFPS_ICR_IM00x04#defineFPS_ICR_IE10x02#defineFPS_ICR_IE00x01#defineFPS_ISR0x0E#defineFPS_ISR_CLRINT0x01#defineFPS_THR0x0F#defineFPS_THR_THV0x40#defineFPS_THR_THC0x09#defineFPS_CIDH0x10#defineFPS_CIDL0x11#defineFPS_TST0x12#include#undefPDEBUG#ifdeffps200_DEBUG#ifdef_KERNEL
19、_/*调试的内核空间*/#definePDEBUG(fmt,args.printk(KERN_DEBUGfps200:fmt,#args#else/*用户空间*/#definePDEBUG(fmt,args.fprintf(stderr,fmt,#args#endif#else#definePDEBUG(fmt,args. /*不调试*/#endif#undefPDEBUGG#definePDEBUGG(fmt,args. /*不调试*/*设备结构类型*/typedefstructFPS200_Devunsignedcharflag;void*data;FPS200_Dev;/*用于ioctl
20、*/#defineFPS200_IOC_MAGICk/*S代表Setthroughaptr*G代表Get:replybysettingthroughapointer*C代表Check*/#defineFPS200_IOCSDTR_IOC(_IOC_WRITE,FPS200_IOC_MAGIC,1,1#defineFPS200_IOCSDCR_IOC(_IOC_WRITE,FPS200_IOC_MAGIC,2,1#defineFPS200_IOCSPGC_IOC(_IOC_WRITE,FPS200_IOC_MAGIC,3,1#defineFPS200_IOCGDTR_IOC(_IOC_READ,
21、FPS200_IOC_MAGIC,4,1#defineFPS200_IOCGDCR_IOC(_IOC_READ,FPS200_IOC_MAGIC,5,1#defineFPS200_IOCGPGC_IOC(_IOC_READ,FPS200_IOC_MAGIC,6,1#defineFPS200_IOCFCAP_IOC(_IOC_READ,FPS200_IOC_MAGIC,7,4#defineFPS200_IOCGDATA_IOC(_IOC_READ,FPS200_IOC_MAGIC,8,4#defineFPS200_IOCEINT_IOC(_IOC_NONE,FPS200_IOC_MAGIC,9,
22、0#defineFPS200_IOCDINT_IOC(_IOC_NONE,FPS200_IOC_MAGIC,10,0#defineFPS200_IOCCINT_IOC(_IOC_READ,FPS200_IOC_MAGIC,11,1#defineFPS200_IOCCRDY_IOC(_IOC_READ,FPS200_IOC_MAGIC,12,1#defineFPS200_IOCCLR_IOC(_IOC_NONE,FPS200_IOC_MAGIC,13,0#defineFPS200_IOC_MAXNR13intfps200_open(structinode*inode,structfile*fil
23、p;intfps200_release(structinode*inode,structfile*filp;intfps200_ioctl(structinode*inode,structfile*filp,unsignedintcmd,unsignedlongarg;voidfps_get_image(;#endif/*_FPS200_H_*/fps200.c#ifndef_KERNEL_#define_KERNEL_#endif#ifndefMODULE#defineMODULE#endif#include#include#include /*printk(*/#include /*kma
24、lloc(*/#include /*everything.*/#include /*errorcodes*/#include /*size_t*/#include#include /*udelay(*/#include /*ioremap(,iounmap(*/#include#include#include#include#include#includefps200.h /*localdefinitions*/#defineFPS200_VR0xfd000000#defineFPS_INDEX(*(volatileunsignedchar*FPS200_VR#defineFPS_DATA(*
25、(volatileunsignedchar*(FPS200_VR+1#defineFPS200_MAJOR240#defineFPS200_NR_DEVS0#defineFPS200_IRQIRQ_EINT2 /irq=6#defineFPS200_DATASIZE76800intfps200_major=FPS200_MAJOR;intfps200_nr_devs=FPS200_NR_DEVS;/*numberofbarefps200devices(nousehere*/MODULE_PARM(fps200_major,i;MODULE_PARM(fps200_nr_devs,i;MODUL
26、E_AUTHOR(NankaiUnversity5-304;MODULE_LICENSE(GPL;structfile_operationsfps200_fops=open:fps200_open,ioctl:fps200_ioctl,release:fps200_release;structfile_operations*fps200_fop_array=&fps200_fops, /*type0*/*addmorelater*/;#defineFPS200_MAX_TYPE0FPS200_Dev*fps200_device;voidfps200_interrupt(intirq,void*dev_id,structpt_regs*regsdisable_irq(irq;/fps_get_image(;fps200_device-flag=1;voidfps_get_image(voidinti=0;intj=0;FPS_INDEX=FPS_CTRLA;FPS_DATA=FPS_CTRLA_GETIMG;for(i=0;i300;i+FPS_INDEX=FPS_CTRLB;while(!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1