摘 要: 在油氣勘探領(lǐng)域,地質(zhì)巖屑樣本圖像的采集和分析十分重要。針對目前巖屑采集系統(tǒng)安全保密性不足以及采集操作復(fù)雜的問題,提出了一種改進方案:添加指紋識別模塊,增加系統(tǒng)的安全保密性,減少了巖屑圖像資料被竊取的風(fēng)險;使用QT/E設(shè)計用戶界面及程序,使操作人員通過在可觸式LCD上進行簡單操作,就能完成整個采集過程,提高了采集系統(tǒng)的易用性。
關(guān)鍵詞: ARM;Linux;QT/E;指紋識別模塊
0 引言
在油氣勘探領(lǐng)域,鉆井巖屑是非常重要的地質(zhì)參考資料。近年來,隨著制造工藝的改進,聚晶金剛石復(fù)合片鉆頭(Polycrystalline Diamond Compact Bit,PDC)的性能大大增強,在鉆井速度加快的同時,鉆出的巖屑也更加細(xì)小,甚至破壞成粉末狀,對這種細(xì)小巖屑的采集和分析關(guān)系到對油井地層的判斷是否及時、準(zhǔn)確,大幅影響企業(yè)的成本和利潤。目前,實際使用的巖屑采集系統(tǒng)也不在少數(shù),但是一些采集系統(tǒng)操作復(fù)雜,致使操作工人需要花費大量的學(xué)習(xí)成本去掌握采集流程。又由于采集的巖屑圖像屬于商業(yè)機密,因此其保密工作的重要性不言而喻。考慮到系統(tǒng)的易用性與安全性,本系統(tǒng)的設(shè)計思路是以ARM開發(fā)板為基礎(chǔ),添加一個指紋識別模塊,操作人員需通過指紋識別才能夠操作采集系統(tǒng)。同時添加一個可觸式LCD模塊,通過在觸摸屏上的簡單操作實現(xiàn)巖屑圖像的采集。
1 系統(tǒng)平臺設(shè)計
1.1 系統(tǒng)硬件平臺設(shè)計
本系統(tǒng)硬件總體設(shè)計方案如圖1所示。
主控芯片采用Samsung公司的基于ARM9的S3C2440處理器。它具有功耗低、功能強、引腳與接口豐富,指令執(zhí)行速度快等優(yōu)點,非常適用于本系統(tǒng)的開發(fā)[4]。采集攝像頭使用1 200 dpi的高分辨率面陣CCD相機,保證采集的巖屑圖像顆粒清晰,方便后續(xù)圖像分析。光源模塊包括兩種模式:白光模式和熒光模式。白光模式下使用LED白光燈管,采集的巖屑白光圖像主要用于分析巖性;而熒光模式下使用主峰為365 nm的窄波紫外燈管,并配合使用保留400 nm~700 nm波段光的濾鏡,濾鏡在熒光模式下自動切入視場,得到效果更好的熒光圖像,便于分析巖屑的含油情況。電機及驅(qū)動模塊用于控制料盤和濾鏡進出采集視場。LCD模塊使用電容式觸摸屏模塊與開發(fā)板LCD接口相連。指紋模塊采用杭州偉耕科技公司開發(fā)的R305指紋模塊,該模塊采用光學(xué)式指紋傳感器與DSP處理器,內(nèi)嵌指紋圖像預(yù)處理算法和通信協(xié)議,與主控芯片通過串口進行通信。
1.2 系統(tǒng)軟件平臺的搭建
系統(tǒng)的軟件設(shè)計主要是將指紋識別模塊軟件與LCD上采集操作界面軟件程序整合。因此需要選擇穩(wěn)定性高、功能強大的嵌入式系統(tǒng)。嵌入式Linux系統(tǒng)具有豐富的設(shè)備驅(qū)動程序、方便裁剪與定制、界面功能豐富、內(nèi)核小巧穩(wěn)定等特點,除此之外,其代碼開源也減少了開發(fā)成本。平臺的搭建主要由Bootloader的移植、Linux內(nèi)核的移植和構(gòu)建文件系統(tǒng)三個步驟組成。
Bootloader與Windows系統(tǒng)下的BIOS功能類似,是系統(tǒng)在操作系統(tǒng)內(nèi)核啟動或用戶應(yīng)用程序運行之前,首先必須運行的一段程序代碼,用來初始化硬件設(shè)備,設(shè)置堆棧,檢查系統(tǒng)內(nèi)存映射等。常用的Bootloader有u-boot,vivi等,本系統(tǒng)使用u-boot。在官網(wǎng)上下載u-boot的壓縮文件,解壓后根據(jù)需求修改配置文件Makefile,生成二進制文件u-boot.bin后,再燒寫到開發(fā)板中。
內(nèi)核是操作系統(tǒng)的核心,一方面,管理底層的各個接口,實現(xiàn)對硬件的編程控制和接口操作;另一方面,為應(yīng)用程序提供了一個執(zhí)行環(huán)境。用戶可以根據(jù)自身需要對內(nèi)核進行裁剪和配置,并在內(nèi)核中添加設(shè)備驅(qū)動[3]。文件系統(tǒng)是文件的組織管理形式,它位于操作系統(tǒng)之上,包含了Linux能夠正常運行所需的庫函數(shù)和應(yīng)用程序等。Busybox是用來創(chuàng)建根文件系統(tǒng)的工具,用來構(gòu)建嵌入式設(shè)備所需的Linux根文件系統(tǒng)。最后用YAFFS編譯構(gòu)建文件系統(tǒng),生成根文件系統(tǒng)的鏡像文件,并將其下載到開發(fā)板中。
2 指紋識別模塊
本文采用的指紋識別模塊是偉耕科技有限公司研制的R305指紋識別模塊。它由光學(xué)式指紋傳感器和DSP處理器構(gòu)成,內(nèi)嵌完整的指紋識別算法和協(xié)議。具有指紋采集、指紋對比、指紋存儲等功能[6]。R305的主要技術(shù)指標(biāo)如表1所示。
2.1 硬件接口
指紋模塊外部的4個引腳與控制電路板通過串行通信接口相連,外部引腳及定義如表2所示。
由于,指紋模塊不能通過串行通信接口與主控芯片相連,必須在其中添加一個電平轉(zhuǎn)換芯片(如MAX232、SP3232等),將RS232信號電平轉(zhuǎn)換為TTL電平,本文使用了3.3 V供電的SP3232芯片,電路連接原理圖如圖2所示。
2.2 軟件接口
使用R305模塊進行軟件開發(fā),必須掌握該模塊具有的系統(tǒng)資源、通信方式和指令系統(tǒng)。
R305模塊具有以下系統(tǒng)資源:
?。?)狀態(tài)寄存器,占用1個字,用于系統(tǒng)狀態(tài)指示。
(2)模塊地址:占用2個字,軟件只接收與該地址相配的指令包和數(shù)據(jù)包。
?。?)波特率系數(shù):占用1個字,用于設(shè)置UART波特率,且該值必須是9 600 b/s的整數(shù)倍。
(4)模塊指令:占用2個字,用于握手時驗證,驗證成功系統(tǒng)才響應(yīng)。
?。?)緩沖區(qū)與指紋庫:模塊內(nèi)設(shè)有72 KB的圖像緩沖區(qū)ImageBuffer和兩個512 B大小的特征文件緩沖區(qū)CharBuffer1、CharBuffer2。用戶可以通過指令讀寫任意一個緩沖區(qū)。特征文件緩沖區(qū)既可以用于存放特征文件,也可以用于存放模板特征文件。
R305模塊與S3C2440通信采用的是半雙工異步串行通信協(xié)議,默認(rèn)波特率為57 600 b/s。傳送的幀格式為10 bit,1 bit 0電平起始位,8 bit為數(shù)據(jù)位和1 bit停止位,無校驗位。在此協(xié)議規(guī)則下,模塊與S3C2440通信分為三類:命令包、數(shù)據(jù)包與結(jié)束包。包頭均為0xEF01。三種包的格式如表3所示。
08HR305模塊指令系統(tǒng)具有豐富的指令集,表4列舉出了程序設(shè)計中所用到的其中的指令。
2.3 程序設(shè)計
對指紋模塊的操作分為兩種情況,(1)指紋錄入:兩次指紋采集,將采集到的指紋圖像生成特征文件,并將兩次采集生成的特征文件合并生成模板,最后將模板保存到指紋庫中。(2)指紋登錄:采集指紋圖像,生成特征文件,保存入CharBuffer1中,再搜索指紋庫,并將指紋庫中的特征模板存入CharBuffer2中,將CharBuffer1中的特征文件與CharBuffer2中的特征模板進行精確對比直至配對成功。若搜索完整個指紋庫仍然找不到配對的指紋特征模板,則登錄失敗。指紋錄入的程序流程圖如圖3所示,指紋登錄的程序流程圖如圖4所示。
3 QT/E用戶界面程序設(shè)計
QT是一個完整的C++應(yīng)用程序開發(fā)框架,因為其API在所有平臺上均相同,所以QT經(jīng)常用來做跨平臺程序開發(fā)[2]。QT/Embedded是面向嵌入式Linux開發(fā)的QT版本,通常簡稱為QT/E。它是基于QT嵌入式GUI和應(yīng)用程序開發(fā)的工具包,專門為嵌入式設(shè)備提供圖形用戶界面的應(yīng)用框架和窗口系統(tǒng)。
本文使用QT的可視化界面設(shè)計工具QT Designer,首先新建一個QT工程,工程模板選擇Widget,根據(jù)工程需要設(shè)計添加窗口、按鈕、文字、輸入框、對話框等對象,建立這些對象的觸發(fā)信號與相應(yīng)的槽。信號與槽機制是QT的基礎(chǔ),它可以讓互不相關(guān)的對象關(guān)聯(lián)(colleciton)起來,槽就類似于C++成員函數(shù),唯一的區(qū)別在于槽可以與信號連接在一起,當(dāng)觸發(fā)某個信號時就會自動調(diào)用與其相應(yīng)的槽[8]。信號與槽機制如圖5所示。
本系統(tǒng)的槽包括指紋獲取、注冊、匹配,采集模式切換等,部分槽函數(shù)的聲明如下:
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()
采集界面設(shè)計完成后,保存.ui工程文件。使用ui2cpp將工程文件轉(zhuǎn)換為C++源文件和頭文件,再添加main.cpp,到源碼中各個函數(shù)下添加代碼,最后編譯并移植到開發(fā)板中即可使用。采集界面程序流程如圖6所示。
整個采集界面程序流程簡單,符合用戶的思維和使用習(xí)慣,操作工人可以不經(jīng)過任何培訓(xùn)就能夠?qū)ο到y(tǒng)進行操作,并且很多步驟都由系統(tǒng)自動完成,比如:當(dāng)選擇白光采集模式,則自動開啟白光,關(guān)閉熒光,濾鏡切出。這樣簡單的設(shè)計不僅能突顯采集系統(tǒng)的功能性,獲得更好的用戶體驗,也降低了開發(fā)難度,增強了系統(tǒng)的魯棒性。
4 結(jié)論
本文提出了一種針對巖屑采集系統(tǒng)的易操作性與保密性的設(shè)計方案,添加了指紋識別模塊,并利用模塊的軟硬件接口在采集程序中添加了指紋識別功能,保證了采集系統(tǒng)的安全保密性。采用QT/E來設(shè)計采集系統(tǒng)的交互界面,并設(shè)計了采集界面程序,使用戶可以通過觸屏式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].閆鋒欣,譯.北京:電子工業(yè)出版社,2008.
[3] CORBET J, RUBINI A, KROAH-HAR TMAN G.Linux設(shè)備驅(qū)動程序[M].魏永明,等譯.北京:中國電力出版社,2002.
[4] CPU Samsung Electronics Co.Ltd. User manual S3C2440 32 bit RISC microprocesor revision1[Z]. 2002.
[5] 柴曉光,岑寶熾.民用指紋識別技術(shù)[M].北京:人民郵電出版社,2004.
[6] 偉耕科技有限公司.R30X系列指紋識別模塊開發(fā)手冊[Z].2012.
[7] 胡濤.面向保密型企業(yè)的指紋識別考勤管理系統(tǒng)的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2013.
[8] 吳賀猛.基于QT/E的嵌入式圖形用戶界面的研究與應(yīng)用[D].南京:南京郵電大學(xué),2013.