2 系统硬件设计
S3C2410与MBF200通讯支持MCU通讯方式、USB通讯方式和SPI通讯3种数据传输方式。此系统采用MCU和USB通讯方式。由于MCU通讯方式具有操作简单、数据传输速度快等优点,这里讨论基于MCU通讯的指纹采集系统。MBF200与S3C2410通讯的硬件框图与指纹采集系统原理图分别如图1、图2所示。
D[7:0]实现与S3C2410的通讯,索引寄存器对应存储空间的最低位为0,功能寄存器对应最低位为1;当跳针JP1,JP2,JP3跳到右边时为MCU通讯方式;nGCS2与选通信号CSO连接,用于选通MBF200;S3C2410引脚nOE与MBF200的RD引脚连接,产生读信号;S3C2410引脚nWE与MBF200的WR引脚连接,产生写信号;电路中接2个LED,与MBF200引脚P1、P0相连,低电平亮,用于测试硬件电路;JP4连接EINT与MBF200的INTR中断引脚;WAIT引脚用于在指纹采集时查看A/D转换是否完成,防止在A/D转换未完成时读出随机数据,导致数据采集失败;MBF200供电电源选择S3C2410引脚49提供的VDD33 V。
硬件平台搭建好后通过向MBF200的CTRLC写数据验证是否能控制两个LED灯的点亮和熄灭。通过向索引寄存器写MBF200功能寄存器的索引号来锁定该寄存器,当功能寄存器被锁定时,才可以对该寄存器进行读写操作。MBF200进行数据采集必须正确配置几个功能寄存器,它们配合使用才能完成指纹采集工作,下面对MCU工作模式下几个重要寄存器进行说明。
中断控制寄存器ICR主要控制指纹传感器的两个中断源:内部中断与外部中断。其IT[1:0]位与IP[1:0]位需配合使用,通过产生中断唤醒传感器,当IT[1:O]被设置成电平触发时,IP [1:0]位要设置为上升沿或高电平有效;控制寄存器CTRLA写非“0”值开始A/D转换,读该寄存器获取指纹图像数据,当A/D转换正在进行时,不能对该寄存器进行写操作,否则A/D)转换不能继续进行,要等到上一个A/D转换完成才能可读该寄存器,否则会读出错误的数据;控制寄存器CTRLB在初始化时要将AFDEN置位,以使能器件的自动检测功能,AUTOINCEN置位以实现图像采集时自动进行A/D转换。
3 软件接口设计
3.1 主程序设计
软件设计主要实现S3C2410控制MBF200驱动程序的编写。在ADS 1.2开发环境下采用移植性强的C语言编写程序,目标板上电后初始化整个采集系统,包括ARM系统的初始化和MBF200的初始化。
MBF200器件采集图像通过检测中断开始,首先使能中断,中断寄存器清零。本程序采用电平触发方式,在无指纹时引脚INTR是高电平,当有指纹时变为低电平。因此,检测中断信号就是检测引脚INTR的信号。程序向CTRLA寄存器写0x02,采集整个区域的指纹图像,图像数据存储在CTRLA寄存器。注意要等到上一个A/D转换完成才能读该寄存器,否则会读出错误的数据。主程序流程如图3所示。