摘 要: 在油氣勘探領(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)的性能大大增強,在鉆井速度加快的同時,,鉆出的巖屑也更加細小,,甚至破壞成粉末狀,對這種細小巖屑的采集和分析關(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個字,軟件只接收與該地址相配的指令包和數(shù)據(jù)包,。
?。?)波特率系數(shù):占用1個字,用于設(shè)置UART波特率,,且該值必須是9 600 b/s的整數(shù)倍,。
?。?)模塊指令:占用2個字,用于握手時驗證,,驗證成功系統(tǒng)才響應(yīng),。
(5)緩沖區(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.