技术中心

指纹门禁考勤一体机的指纹算法调度模块的原理

来源:深圳市深安威尔迪科技有限公司
2022/5/30 8:46:45
435
导读:
  指纹产品中指纹算法具有核心作用,直接关系到指纹产品的工作速度和准确率。我们威尔迪的指纹产品的指纹算法,获得2011年世界指纹算分的大赛名。主要做的是指纹门禁考勤一体机、指纹门禁一体机等指纹产品。
 
  指纹算法调度模块的原理是:在片内开辟一块算法代码执行区,大小为SWAP—SIZE。算法代码放在片外存储器申,执行的时候由一个调度模块把一部分算法代码搬运到片内运行,执行完毕后再搬运下一部分到片内运行,这样一直到算法调用结束。由于每次只执行一小段代码,算法代码最多占用SWAP—SIZE的片内存储空间,这样就大大节省了片内的存储空间。对于在指纹识别算法中存在的一些比较大的常数表,由于只在某些时候才被用到,因此可以放到片外,在需要的时候才复制到片内供使用。在这种方案中要付出的主要代价之一是代码和数据从片外到片内复制的时间,但这些时间相比算法的运算时间而言是微不足道的。另外一个代价在于:由于是分段运行的,需要增加一个调度模块,因此需分段编译程序,可利用TICCS的内存分配功能来实现。
 
  在进行算法调度的时候,下面几个问题是需要注意的:
 
  ①调度模块调用算法以函数为最小单位,这就要求编写的函数大小不能超过SWAP一SIZE。实际使用时,可以几个函数为一组,只要不超过SWAP—SIZE就可以了。
 
  ②对于有函数互相调用的情况,必须保证同时把这几个函数复制到片内缓存,一般来说调用层次应该不超过两层。
 
  ③如果某个函数被好几个函数调用,那么这个函数应该放在PROG程序段中,而不是放在SWAP—PROG程序交换段中,这样可以减少调度难度。如果函数很小,调用又频繁,可以使用内联的方法来优化系统。
 
  另外,为了快速、高效地使用程序空间,将程序空间进行分页管理。分页管理使得利用C语言访问程序空间更加方便,限度地利用了开发环境提供的C编译嚣,可以大大加快开发时间。

相关技术