拿来即用,指纹识别保密系统完整解决方案
SPI 接口与 MicroBlaze 系统通信,指纹模块为从机,MicroBlaze 系统为主机。工作模式为:CPHA=0,CPOL=1。Pin3 为 SPI 从机选择引脚(低电平使能),Pin7 为SPI CLOCK 引脚,Pin8 为 MISO 引脚,Pin10 为 MOSI 引脚。MicroBlaze 系统中使用 v1.00.e版本的 opb_spi IP 核实现 SPI 接口,opb 总线频率为 50MHz,分频系数采用 16。
Pin1 为指纹模块中断脚,本系统中采用查询该引脚的方式来获得指纹模块状态信息,当该引脚为低电平时,说明指纹模块准备好数据待主机读取。Pin9 为电源使能引脚,当其置低时,指纹模块上电。在 MicroBlaze 系统中通过 opb_gpio IP 核对其进行控制。Pin6、Pin5 为电源和地,均与开发板相连。Pin2、Pin4 为保留引脚。图 4.7 是其示意图。
5.5 配置电路
作为一个完整的 FPGA 设计,配置方案是最后一步也是不可缺少的一步。本设计中采用是 Xilinx Platform Flash 作为我们设计的配置方案。在 Spartan3E starter kit 开发板上有一块 4Mbit Xilinx XCF04S serial Platform Flash PROM,通过 iMPACT 工具可以方便地生成FlashPROM 文件,然后采用主串行模式将 Platform Flash PROM 上的存储信息配置到 FPGA,实现FPGA 的上电自动加载功能。这是最简单也是最适合本开发环境的解决方案。
参考应用文档 XAPP482,还可应用该 Flash 实现更多功能,限于本设计的应用,不再做进一步探索,提出这一点只是为了说明,这个配置方案也支持对设计的进一步开发和改进。
6 软件流程
图 6-1软件 工作 流程 图
首先,当 USB 接口模块全部完成初始化之后就开始最初的 USB 枚举(enumeration)过程,涉及到各种描述的 获取,包括设备描述、地址设置、配置描述、字符串 描述、端点描述等等,而且随着描述请求的进行,部分描述还会不断的重复,直到计算机完全明白这个 USB设备究竟 具有什么功能 、该调用什么驱 动程序来对这个 设备操作。对于 市场上众多的 Flash闪盘,我们保证让每一条 PC 请求都能够到达 U 盘,U 盘的每一个回应都转发给 PC。这样保证了直接插到PC 端能够识别的 U 盘,使用本作品也能够被识别。
枚举完成之后 USB 进入数据传输阶段,当然这些数据都是对底层 USB 控制器而言的数据,对于要对 USB 数据进行解析的 FPGA 中的 MicroBlaze 程序而言,则仍然需要将其中的数 据 分 为 三 个 类 型 : CBW 、 数 据 、 CSW 。 这 三 种 类 型 数 据 的 详 情 请 参 考 4.3 节 。 当MicroBlaze 收到 CBW 之后就将它转发出去,在转发的同时判断该 CBW 是不是一个读写操作的命令,如果是则代表跟在 CBW 之后的数据是直接来自 Flash 或将要写到 Flash 中去的,那么在数据段的转发操作之前还需要将他们送到 AES 模块进行 CBC 模式的加解密。在数据传输完成之后,必须等待 USB 设备回应 CSW 表示整个会话过程完整无误之后才能进入到下一个请求回应的处理循环中去。
7 测试与总结
7.1 总述
系统测试采用先局部后整体的方案,首先将各个模块(USB 数据透传模块、指纹模块、AES 加密模块)在分离的情况下单独测试,通过对它的各种操作来尽可能多的暴露问题,并一一解决。最后再将三者组合起来进行总体测试。
对 于硬 件测 试, 依靠 SPATARN 开发 板上 的按 钮、 LCD、 LED 灯 来帮 助调 试。 同时RS232 串口能更加方便的将程序中产生的数据、变量实时的发送到计算机供,借助 PC 端的串口程序(Terminal v1.9b、AccessPort),硬件程序中的数据得以在 PC 上保存、分析。测试中用到的主要工具有:
1) Bus Hound 5.0。一款用于分析 PC 上 IO 数据软件,能够对多种协议的数据包进行截取、解析并保存。这些数据代表了在 PC 上看到的 USB 数据,与串 口发回的 USB 数据对比可以找到程序的漏洞,并作出相应的改进。
2) USB- IF Test Suite。USB 开发者论坛提供的用于 USB 标准测试的软件,能够查看当前设备是否符合国际标准。
3) HD Tach v3.0.4.0。用来对 USB 的传输速 率测试,它会对 U 盘提供大小不同的数据包,分别计算他们的传输速率。
4) ATTO Disk Benchmark v2.34。同样是 USB 测速软件,使用不同的两款软件可以提高测试数据的可信度。
WinHex 15.0 SR-2。用于观察 Flash 上每一个扇区的数据变化,有效地判断加密的正确性并评估效果。
7.2 指纹模块的测试
指纹模块由深圳艾菲尔公司设计生产,相关测试指标及结果均由艾菲尔公司提供。
表 7-1 指 纹模 块 各项 指标 性能( 深圳 艾菲 尔 公司 提供)
技术指标名称 | 数值 |
探测皮层 | 真皮层 |
认假率 FAR(实际测试值) | 0.00008% |
拒真率 FRR(实际测试值) | 0.005% |
指纹 |
指纹识别 保密系统 Spartan3E FPGA XC3S500E 相关文章:
- 基于DSP CCS 2.2实现指纹识别预处理系统(07-28)
- 基于FPS200传感器和DSP的指纹识别系统(01-12)
- 基于嵌入式Linux平台的指纹门禁系统(01-20)
- 基于DSP CCS2.2实现指纹识别预处理系统设计(06-10)
- 基于DSP CCS2.2实现指纹识别预处理系统设计方案(06-17)
- 基于DSP的指纹识别系统设计方案(07-03)