毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

FPGA指纹识别系统设计+源码

更新时间:2010-7-2:  来源:毕业论文
FPGA指纹识别系统设计+源码
本系统旨在以通过硬件描述语言,编写出符合FPC1011F指纹传感器读写的SPI串口时序的verilog代码,读出指纹数据。此系统大体上可以分为三个功能模块,1)SPI串口模块,此模块负责向传感器发送初始化指令、读数据指令以及接收数据。2)数据缓冲模块,读出的数据暂存于缓冲FIFO内,避免因较快的读数速度和较慢的打印速度而造成数据丢失。3)UART计算机串口打印模块,负责从数满标志位有效的Rx_FIFO中读出指纹数据并通过串口打印到计算机上。此系统通过仿真、调试下载到FPGA开发板后可以成功地读出指纹数据。
一、 系统框图    Fig1.系统简略框图
二、 系统解析
    如上图所示,蓝色和绿色引脚为外部端口,红色引脚为内部信号。
1. FSM模块:其主要的功能是在系统复位后初始化Tx FIFO(发送FIFO),即把随后要发送给SPI传感器的命令写入Tx FIFO内,然后在满足SPI传感器时序的前提下,FSM模块通过控制Tx_rd_en信号读出Tx FIFO里的命令并传送到SPI模块;在Rx FIFO接收指纹数据时,当数满标志位Rx_full_n有效后说明接收FIFO里的数据已满,这时FSM就会通过相关信号来控制SPI停止接收数据,当检测到Rx_empty_n有效后(接收FIFO已空),FSM就会发出相应的信号启动SPI继续接收数据,直到指纹数据全部接收完毕。
2. Tx FIFO模块:主要功能是在初始化的时候装载待发命令,然后在Tx_rd_en信号的控制下把命令发送出去,因为总的命令数不超过FIFO的深度,所以无须空满标志位。
3. SPI模块:其主要功能是在与外部传感器通信的时候向传感器提供时钟信号SCK,以及片选信号SS,其中SCK和SS信号最初由FSM产生并由FSM进行控制;当需要向传感器发送命令时,FSM会启动SCK和SS信号,同时SPI接受从Tx FIFO读出的命令并暂存到一个8bit移位寄存器tx_shifter[7:0]中,每过一个SCK周期发送一位到至MOSI,发送完1Byte后tx_shifter会重新装载新命令继续发送直到命令发送完毕;当SPI从传感器接收数据时,FSM会启动SCK和SS信号,SPI中移位寄存器rx_shifter[7:0]会在SCK的上升沿采集输入端口MISO的数据并移一位,每8个SCK时钟周期rx_shifter中的数据就会在FSM的控制下写入Rx FIFO,直到数据接收完毕。
4. Rx FIFO模块:此模块的主要功能是对已接收到的指纹数据进行缓存,避免指纹的数据丢失,因为此系统中SPI串口的工作频率为5MHz,而UART串口的工作频率为38400Hz,UART从Rx FIFO取数据的速度远小于SPI往Rx FIFO中写数据的速度。Rx FIFO可以向UART和FSM提供数空和数满标志位rx_empty_n,和rx_full_n,因此SPI和UART可以协调工作。
5. UART模块:些模块主要功能是和计算机进行通信,把接收到的指纹数据通过计算机的终端显示出来。当UART检测到rx_full_n有效后,就会发出读信号Rx_rd_en读出FIFO中的数据发送给计算机,当检测到rx_empty_n有效后停止。三.指纹图像
运行ProcessOfFingerPrint.m文件,指纹图像处理过程如下:
1. 加载指纹文本文件,并用图像显示
2. 灰度图像取反,即将原始指纹黑色背景变为白色背景
3. 进行二文适应性去噪过滤处理
4. 扩大图像的像素至400x304,并找出扩卡后的图像的中心点,用红色’o’标注
5. 将放大后的图像进行二值化处理
6. 进行中值滤波处理
7. 二值化图像细化处理,并标注特征点和中心点。特征端点用'o'标注,特征分叉点用'+'标注,中心点用红色'*'标注
8. 特征模板建立:特征端点分类为1,特征分叉点分类为2;建立特征端点相对中心点的距离向量,和特征分叉点相对中心点的距离向量;建立特征端点相对中心点的方向向量,和特征分叉点相对中心点的方向向量。
9. 运行PointOfMatch=PointOfModel;
仅将数据PointOfMatch保存为table_PointOfMatch,即在workspace内只有PointOfMatch时,运行save table_ PointOfMatch;
10. 指纹匹配时,修改需要加载的指纹图像的文本名字,运行ProcessOfFingerPrint.m,得到待匹配的指纹图像的特征点和中心点。特征端点用'o'标注,特征分叉点用'+'标注,中心点用红色'*'标注
11. 运行Count=match(ThinFingerPrint,PointOfModel,PointOfMatch,Dpx,Dpy,Fpx,Fpy)
显示如下:
PointOfMatch passCount =85
一般能找到13个相同的特征就可以认为这些指纹出自同一个手指,但从匹配来看,平均100个特征匹配点会有3~4个误配,于是将成功匹配点设置为>20个,认为是出自同一个手指.
匹配成功的特征点:端点用红色’o’标注,分叉点用绿色标注’o’。如下图所示:说明:此C代码为基于MicroBlaze的嵌入式系统指纹数据采集程序。
传感器型号:FPC1011
采集步骤:(1) 初始化spi接口模块
          (2) 复位FPC1011指纹传感器。
          (3) 初始化传感器。
          (4) 发送启动传感器命令rd_sensor: 0x11
          (5) 重复发送读数据状态寄存器命令rd_spidstat: 0x21直到指纹数据准备完毕。
          (6) 发送读数据指令rd_spidata: 0x20 读取指纹数据。
          (7) 打印数据。1390
FPGA指纹识别系统设计+源码下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。