snifer

[原创]基于Blackfin系列的DSP实现的指纹识别系统

0
阅读(2522)

开学了,有个学生想申请专利,跟我交流了一些看法,建议他首先在国家专利网查询一下新颖性,还好,属于新型的,我帮他写了一个程序,基于uclinux的,我个人是比较满意的,贴出这个程序,大家共勉!!!

在代码中我已经提供了fingermap.c文件,其中对指纹模块的操作进行了封装,用户在使用中只需要调用其中的对应函数就可以实验对应的功能,当然也可以对API进行修改已满足自己的需求.

/*****************************************************************

User_enroll()注册用户

Command ID:0x21

Command:0x01 0x02 0x21 0xff 0x03

******************************************************************/

void User_enroll(unsigned char ucFPIdx);

/*****************************************************************

User_auth()指纹验证

Command ID:0x24

Command:0x01 0x02 0x24 0xff 0x03

******************************************************************/

void User_auth(unsigned char ucFPIdx);

/*****************************************************************

User_erase()删除指纹记录

Command ID:0x22

Command:0x01 0x02 0x22 0xff 0x03

******************************************************************/

void User_erase(unsigned char ucFPIdx);

/*****************************************************************

User_clear()清除所有指纹(只有管理员才能进行操作)建议应用程序在执行命令之前,验证管理员身份

Command ID:0x26

Command:0x01 0x02 0x26 0xff 0x03

******************************************************************/

void User_clear();

/*****************************************************************

Set_SecuLv()设置指纹比对时的严格等级(00-04)

Command ID:0x28

协议头 协议长度 固定字段 命令码 安全级别 协议尾

02 04 01 02 28 MM 02 01 03

******************************************************************/

void Set_SecuLv(unsigned char ucSecuLv);

/*****************************************************************

Get_FPNum()获得当前已注册指纹数

Command ID:0x27

协议头 协议长度 固定字段 命令码 协议尾

02 03 01 01 27 02 01 03

******************************************************************/

void Get_FPNum();

/*****************************************************************

FPM_Start()启动指纹模块

协议头 协议长度 固定字段 波特率(4字节)固定字段

(28字节)协议尾

02 3B 01 39 16 00 00 00 00 50 00 50 00 00 00 0000 00 00 00 64 00 00 00 00 MM MM MM MM CC CC CC71 00 00 10 01 00 00 00 00 00 00 00 00 00 01 0010 00 12 00 10 00 00 00 00 00 00 00 00 02 01 03

******************************************************************/

void FPM_Start();

/*****************************************************************

FPM_Reset()复位指纹模块

******************************************************************/

void FPM_Reset();

根据如上提供的指纹操作API,在linux开发环境下编写程序实现对指纹模块的完整操作。

在本次实验中提供了一个用户界面的测试应用程序(fingermapt),谨供参考!

下载调试

将自己写的应用程序编译通过之后,下载到blankfin上.

切换到minicom 终端窗口,使用NFS mount 开发主机的blankfin。进入\usr\lyj\exp\ 目录,运行自己的应用程序,观察运行结果的正确性。

[root@zxt hello]# minicom

[/mnt/yaffs] mount -t nfs -o nolock 192.168.0.56/host

[/mnt/yaffs]cd /host/usr/lyj/exp/

[/host/usr/qinguang/exp/]./fingermap

呵呵,新生入学典礼上,我给学生介绍了linux操作系统,嵌入式系统,oracle数据库,希望能大家能走非微软系列,前途不可限量啊。有什么好的介意,大家可以一起交流

Baidu
map