摘 要: 在油气勘探领域,地质岩屑样本图像的采集和分析十分重要。针对目前岩屑采集系统安全保密性不足以及采集操作复杂的问题,提出了一种改进方案:添加指纹识别模块,增加系统的安全保密性,减少了岩屑图像资料被窃取的风险;使用QT/E设计用户界面及程序,使操作人员通过在可触式LCD上进行简单操作,就能完成整个采集过程,提高了采集系统的易用性。
0 引言
在油气勘探领域,钻井岩屑是非常重要的地质参考资料。近年来,随着制造工艺的改进,聚晶金刚石复合片钻头(Polycrystalline Diamond Compact Bit,PDC)的性能大大增强,在钻井速度加快的同时,钻出的岩屑也更加细小,甚至破坏成粉末状,对这种细小岩屑的采集和分析关系到对油井地层的判断是否及时、准确,大幅影响企业的成本和利润。目前,实际使用的岩屑采集系统也不在少数,但是一些采集系统操作复杂,致使操作工人需要花费大量的学习成本去掌握采集流程。又由于采集的岩屑图像属于商业机密,因此其保密工作的重要性不言而喻。考虑到系统的易用性与安全性,本系统的设计思路是以ARM开发板为基础,添加一个指纹识别模块,操作人员需通过指纹识别才能够操作采集系统。同时添加一个可触式LCD模块,通过在触摸屏上的简单操作实现岩屑图像的采集。
1 系统平台设计
1.1 系统硬件平台设计
本系统硬件总体设计方案如图1所示。
主控芯片采用Samsung公司的基于ARM9的S3C2440处理器。它具有功耗低、功能强、引脚与接口丰富,指令执行速度快等优点,非常适用于本系统的开发[4]。采集摄像头使用1 200 dpi的高分辨率面阵CCD相机,保证采集的岩屑图像颗粒清晰,方便后续图像分析。光源模块包括两种模式:白光模式和荧光模式。白光模式下使用LED白光灯管,采集的岩屑白光图像主要用于分析岩性;而荧光模式下使用主峰为365 nm的窄波紫外灯管,并配合使用保留400 nm~700 nm波段光的滤镜,滤镜在荧光模式下自动切入视场,得到效果更好的荧光图像,便于分析岩屑的含油情况。电机及驱动模块用于控制料盘和滤镜进出采集视场。LCD模块使用电容式触摸屏模块与开发板LCD接口相连。指纹模块采用杭州伟耕科技公司开发的R305指纹模块,该模块采用光学式指纹传感器与DSP处理器,内嵌指纹图像预处理算法和通信协议,与主控芯片通过串口进行通信。
1.2 系统软件平台的搭建
系统的软件设计主要是将指纹识别模块软件与LCD上采集操作界面软件程序整合。因此需要选择稳定性高、功能强大的嵌入式系统。嵌入式Linux系统具有丰富的设备驱动程序、方便裁剪与定制、界面功能丰富、内核小巧稳定等特点,除此之外,其代码开源也减少了开发成本。平台的搭建主要由Bootloader的移植、Linux内核的移植和构建文件系统三个步骤组成。
Bootloader与Windows系统下的BIOS功能类似,是系统在操作系统内核启动或用户应用程序运行之前,首先必须运行的一段程序代码,用来初始化硬件设备,设置堆栈,检查系统内存映射等。常用的Bootloader有u-boot,vivi等,本系统使用u-boot。在官网上下载u-boot的压缩文件,解压后根据需求修改配置文件Makefile,生成二进制文件u-boot.bin后,再烧写到开发板中。
内核是操作系统的核心,一方面,管理底层的各个接口,实现对硬件的编程控制和接口操作;另一方面,为应用程序提供了一个执行环境。用户可以根据自身需要对内核进行裁剪和配置,并在内核中添加设备驱动[3]。文件系统是文件的组织管理形式,它位于操作系统之上,包含了Linux能够正常运行所需的库函数和应用程序等。Busybox是用来创建根文件系统的工具,用来构建嵌入式设备所需的Linux根文件系统。最后用YAFFS编译构建文件系统,生成根文件系统的镜像文件,并将其下载到开发板中。
2 指纹识别模块
本文采用的指纹识别模块是伟耕科技有限公司研制的R305指纹识别模块。它由光学式指纹传感器和DSP处理器构成,内嵌完整的指纹识别算法和协议。具有指纹采集、指纹对比、指纹存储等功能[6]。R305的主要技术指标如表1所示。
2.1 硬件接口
指纹模块外部的4个引脚与控制电路板通过串行通信接口相连,外部引脚及定义如表2所示。
由于,指纹模块不能通过串行通信接口与主控芯片相连,必须在其中添加一个电平转换芯片(如MAX232、SP3232等),将RS232信号电平转换为TTL电平,本文使用了3.3 V供电的SP3232芯片,电路连接原理图如图2所示。
2.2 软件接口
使用R305模块进行软件开发,必须掌握该模块具有的系统资源、通信方式和指令系统。
R305模块具有以下系统资源:
(1)状态寄存器,占用1个字,用于系统状态指示。
(2)模块地址:占用2个字,软件只接收与该地址相配的指令包和数据包。
(3)波特率系数:占用1个字,用于设置UART波特率,且该值必须是9 600 b/s的整数倍。
(4)模块指令:占用2个字,用于握手时验证,验证成功系统才响应。
(5)缓冲区与指纹库:模块内设有72 KB的图像缓冲区ImageBuffer和两个512 B大小的特征文件缓冲区CharBuffer1、CharBuffer2。用户可以通过指令读写任意一个缓冲区。特征文件缓冲区既可以用于存放特征文件,也可以用于存放模板特征文件。
R305模块与S3C2440通信采用的是半双工异步串行通信协议,默认波特率为57 600 b/s。传送的帧格式为10 bit,1 bit 0电平起始位,8 bit为数据位和1 bit停止位,无校验位。在此协议规则下,模块与S3C2440通信分为三类:命令包、数据包与结束包。包头均为0xEF01。三种包的格式如表3所示。
08HR305模块指令系统具有丰富的指令集,表4列举出了程序设计中所用到的其中的指令。
2.3 程序设计
对指纹模块的操作分为两种情况,(1)指纹录入:两次指纹采集,将采集到的指纹图像生成特征文件,并将两次采集生成的特征文件合并生成模板,最后将模板保存到指纹库中。(2)指纹登录:采集指纹图像,生成特征文件,保存入CharBuffer1中,再搜索指纹库,并将指纹库中的特征模板存入CharBuffer2中,将CharBuffer1中的特征文件与CharBuffer2中的特征模板进行精确对比直至配对成功。若搜索完整个指纹库仍然找不到配对的指纹特征模板,则登录失败。指纹录入的程序流程图如图3所示,指纹登录的程序流程图如图4所示。
3 QT/E用户界面程序设计
QT是一个完整的C++应用程序开发框架,因为其API在所有平台上均相同,所以QT经常用来做跨平台程序开发[2]。QT/Embedded是面向嵌入式Linux开发的QT版本,通常简称为QT/E。它是基于QT嵌入式GUI和应用程序开发的工具包,专门为嵌入式设备提供图形用户界面的应用框架和窗口系统。
本文使用QT的可视化界面设计工具QT Designer,首先新建一个QT工程,工程模板选择Widget,根据工程需要设计添加窗口、按钮、文字、输入框、对话框等对象,建立这些对象的触发信号与相应的槽。信号与槽机制是QT的基础,它可以让互不相关的对象关联(colleciton)起来,槽就类似于C++成员函数,唯一的区别在于槽可以与信号连接在一起,当触发某个信号时就会自动调用与其相应的槽[8]。信号与槽机制如图5所示。
本系统的槽包括指纹获取、注册、匹配,采集模式切换等,部分槽函数的声明如下:
Public Slot:
Void FingerPrintRegister()
Void FingerPrintCharacter_Save()
Void FingerPrint_Acquisition()
Bool FingerPrintCharacter_Match(match)
Bool ModeChoice(mode)
Void WhiteLight_On()
Void Fluoresecent_On()
Void Filter_On()
采集界面设计完成后,保存.ui工程文件。使用ui2cpp将工程文件转换为C++源文件和头文件,再添加main.cpp,到源码中各个函数下添加代码,最后编译并移植到开发板中即可使用。采集界面程序流程如图6所示。
整个采集界面程序流程简单,符合用户的思维和使用习惯,操作工人可以不经过任何培训就能够对系统进行操作,并且很多步骤都由系统自动完成,比如:当选择白光采集模式,则自动开启白光,关闭荧光,滤镜切出。这样简单的设计不仅能突显采集系统的功能性,获得更好的用户体验,也降低了开发难度,增强了系统的鲁棒性。
4 结论
本文提出了一种针对岩屑采集系统的易操作性与保密性的设计方案,添加了指纹识别模块,并利用模块的软硬件接口在采集程序中添加了指纹识别功能,保证了采集系统的安全保密性。采用QT/E来设计采集系统的交互界面,并设计了采集界面程序,使用户可以通过触屏式LCD直接完成整个采集操作。
参考文献
[1] RAO T A, RAMAIAH N D, NOHAN C K. Finger recognition on various authentication sensors[J]. Journal of Electronic Science and Technology,2014,12(1):134-138.
[2] BLANCHETTE J, SUMMERFIELD M. C++ GUI Programming with QT 4(Second Edition)[M].闫锋欣,译.北京:电子工业出版社,2008.
[3] CORBET J, RUBINI A, KROAH-HAR TMAN G.Linux设备驱动程序[M].魏永明,等译.北京:中国电力出版社,2002.
[4] CPU Samsung Electronics Co.Ltd. User manual S3C2440 32 bit RISC microprocesor revision1[Z]. 2002.
[5] 柴晓光,岑宝炽.民用指纹识别技术[M].北京:人民邮电出版社,2004.
[6] 伟耕科技有限公司.R30X系列指纹识别模块开发手册[Z].2012.
[7] 胡涛.面向保密型企业的指纹识别考勤管理系统的设计与实现[D].成都:电子科技大学,2013.
[8] 吴贺猛.基于QT/E的嵌入式图形用户界面的研究与应用[D].南京:南京邮电大学,2013.