Nios II处理器可提供高性能内核、低成本内核和标准内核3种内核,且具有可编程、可配置等特点[4],所有内核可以方便地增加指令和自定义外设,大大增强了SOPC系统的整体能力,在Nios II嵌入式处理器自定义指令和自定义外设的操作控制下,硬件可以优化那些软件执行起来最耗时的那部分程序,使其能够在FPGA中运行,从而大大地提高了系统性能和数据吞吐量,本设计中FPS200指纹采集模块和VGA显示部分使用了自定义外设的形式通过AVALON总线与Nios II CPU连接,简化了系统设计,增强了系统稳定性。
传感器初始化是指对DTR、DCR、PGC三个寄存器进行配置,以便在获得整幅图像之前启动传感器并对图像参数进行调整,根据外界环境和指纹表面的特性设置好相应参数。
本系统采用集成MCU接口,指纹采集的程序流程如图3所示。首先初始化FPS200的各个寄存器,主要是放电电流寄存器(DCR)、放电时间寄存器(DTR)和增益控制寄存器(PGC)的设置;然后查询等待,指纹被FPS200采集进入数据寄存器后,再读入内存,根据指纹采集流程图在Nios II IDE下编写相应的C语言代码,具体如下:
用HDL语言编写指纹采集芯片FPS200和VGA的外设与开发板连接,创建Nios II CPU时包括以下内容:选择标准的Nios II CPU内核[5],根据需要添加相应的components。在Interface to user logic中添加自定义指纹采集和VGA图像显示外设,在SOPC Builder中添加FPS200和VGA两个自定义外设,生成的Nios II CPU如图4所示。
4 系统实现
启动Nios II IDE环境下,创建系统软件控制部分后,运行程序即可采集指纹图像,本系统环境下采集的指纹图像5所示。