基于KMDF 的USB 指紋采集儀驅(qū)動(dòng)程序_第1頁
基于KMDF 的USB 指紋采集儀驅(qū)動(dòng)程序_第2頁
基于KMDF 的USB 指紋采集儀驅(qū)動(dòng)程序_第3頁
基于KMDF 的USB 指紋采集儀驅(qū)動(dòng)程序_第4頁
基于KMDF 的USB 指紋采集儀驅(qū)動(dòng)程序_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于KMDF 的USB 指紋采集儀驅(qū)動(dòng)程序    摘 要:基于USB 的MBF200 指紋采集儀是AIFS 系統(tǒng)的重要組成部分,負(fù)責(zé)原始指紋圖像的采集。根據(jù)MBF200 的芯片接口,加以必要的輔助電路,設(shè)計(jì)了指紋采集儀內(nèi)部電路?;贙UDF 驅(qū)動(dòng)框架,設(shè)計(jì)了核心態(tài)驅(qū)動(dòng)程序,可以實(shí)現(xiàn)批量和單字節(jié)傳輸。根據(jù)指紋圖像的特點(diǎn),采用硬中斷和軟中斷兩種方式保證送入特征提取和比對模塊的指紋圖像質(zhì)量。為了實(shí)現(xiàn)Win32 應(yīng)用程序和驅(qū)動(dòng)程序的通信,設(shè)計(jì)了統(tǒng)一的通信接口,完成了指紋圖像的自動(dòng)采集,效果較好。關(guān)鍵字:核心模式驅(qū)動(dòng)框架;指紋采集儀;功能驅(qū)動(dòng);例程中圖分類號:TP

2、311.10. 引言指紋識別利用了人體指紋的唯一性和不變性,是生物特征識別領(lǐng)域的重要手段,已廣泛應(yīng)用于信息安全領(lǐng)域。自動(dòng)指紋識別系統(tǒng)(AIFS)1包含如下過程:圖1 AIFS 系統(tǒng)過程Fig1 AIFS system process flow指紋采集過程作為指紋識別系統(tǒng)的第一步,負(fù)責(zé)原始指紋圖像的采集,采集圖像的質(zhì)量直接影響到指紋處理結(jié)果。所以指紋采集儀的選取至關(guān)重要,影響整個(gè)系統(tǒng)的性能。較早出現(xiàn)的活體指紋采集儀主要采用光學(xué)方法,采用光的全反射原理取像;后來陸續(xù)出現(xiàn)了超聲波掃描型、熱敏型和半導(dǎo)體型的指紋采集儀。超聲波采集儀雖然采集質(zhì)量出色,但是由于造價(jià)高,不適于大批量應(yīng)用;熱敏型采集儀則由于采

3、集質(zhì)量差、采集面積小,使用較少。半導(dǎo)體型的大多是基于CMOS 壓感特性,由于性價(jià)比高,占據(jù)了大部分的指紋采集設(shè)備市場。MBF200 是市場上先進(jìn)的高性能、低功耗半導(dǎo)體型傳感器2。指紋采集器在系統(tǒng)中使用時(shí),由于大多數(shù)產(chǎn)品和Windows 系統(tǒng)相連,所以在Windows操作系統(tǒng)下的驅(qū)動(dòng)開發(fā)顯得尤為重要。WDF 是微軟下一代驅(qū)動(dòng)模型3,兼容Windows2000以后的所有平臺,在Vista 操作系統(tǒng)和即將發(fā)布的Windows7 操作系統(tǒng)中均被采用,代表了驅(qū)動(dòng)設(shè)計(jì)領(lǐng)域最先進(jìn)的技術(shù)方向。WDF 封裝了驅(qū)動(dòng)程序中的某些共同行為:例如即插即用和電源管理就屬于這種共同行為。因?yàn)榇蠖鄶?shù)驅(qū)動(dòng)程序中都需要處理即插即

4、用和電源管理問題,據(jù)說這大概要上千行的代碼,況且,沒有相當(dāng)水平還不一定能處理好。為了一勞永逸,WDF 干脆將即插即用和電源管理封裝了進(jìn)了對象之內(nèi),一舉成了對象的缺?。J(rèn))行為。WDF 改變了操作系統(tǒng)內(nèi)核與驅(qū)動(dòng)程序之間的關(guān)系,WDM 驅(qū)動(dòng)程序中,一方面要處理硬件,另一方面要處理驅(qū)動(dòng)程序與操作系統(tǒng)內(nèi)核的交互?,F(xiàn)在WDF 則將驅(qū)動(dòng)程序與操作系統(tǒng)內(nèi)核之間進(jìn)行了分離,驅(qū)動(dòng)程序與操作系統(tǒng)交互工作交給框架內(nèi)封裝的方法(函數(shù))完成,這樣驅(qū)動(dòng)開發(fā)者只需專注處理硬件的行為即可。這不僅避免了顧此失彼兩面不周的弊端,也指紋采集 預(yù)處理 特征提取 比對 識別結(jié)果- 2 -由于雙方的分離,對操作系統(tǒng)內(nèi)的某些改動(dòng)和硬件制

5、造商配套驅(qū)動(dòng)程序的開發(fā)都有莫大的好處。1 MFB200 的結(jié)構(gòu)和特性MBF2004具有256×300 傳感器陣列和500dpi 的分辨率,集成8 位AD 轉(zhuǎn)換器,工作電壓為3.35V,且有指紋自動(dòng)檢測功能。它提供3 種總線接口:8 位微處理器總線接口(MCU)、串行外圍設(shè)備接口(SPI)和集成USB 全速接口。在計(jì)算機(jī)系統(tǒng)中采用它作為采集設(shè)備時(shí),大多采用USB 接口。MBF200 的電容傳感器陣列由二維金屬電極組成所有金屬電極充當(dāng)一個(gè)電容板,接觸的手指充當(dāng)?shù)诙€(gè)電容板。器件表面的鈍化層作為兩板的絕緣層。當(dāng)手指觸摸傳感器表面時(shí),指紋的高低不平就會在傳感器陣列上產(chǎn)生變化的電容,從而引起二

6、維陣列上電壓的變化,并形成8 位灰度級的數(shù)字指紋圖像。分辨率高達(dá)500DPI,信噪比高,反應(yīng)速度快。傳感器的靈敏度可通過讀寫其內(nèi)部的放電電流寄存器(DCR)、放電時(shí)間寄存器(DTR)和增益控制寄存器(PGC)來進(jìn)行控制。2 指紋采集儀電路設(shè)計(jì)指紋采集儀分為電源模塊、USB 連接模塊、時(shí)鐘模塊、模式控制模塊和輔助外圍電路。電源模塊負(fù)責(zé)向傳感器芯片提供3.33.6V 的電壓;時(shí)鐘模塊采用外部晶體振蕩電路,有助于降低功耗;模式控制模塊負(fù)責(zé)選擇芯片的接口模式和ROM 配置方式;USB 連接模塊負(fù)責(zé)芯片和USB 連接器的連接,為了使采集器在數(shù)據(jù)傳輸速度和信號質(zhì)量上取得較好的效果,該模式下采用帶屏蔽層的電

7、纜。USB 設(shè)備與主機(jī)相連接的控制電路如圖2 所示,其中R3 是全速USB 設(shè)備必須要求的上拉電阻,為1.5K,R1、R2 是起阻抗匹配用,均為43。圖2 USB 連接模塊Fig2 USB connection moduleMBF200 內(nèi)部嵌有USB 控制器,F(xiàn)irmware 也已經(jīng)固化在了芯片中。芯片主要用到的引腳如圖2:MODE 分別置為1、0,表示采用USB 模式并使用內(nèi)部ROM;XTAL1 和XTAL2連接12MHz 晶振,ISET 用于設(shè)置內(nèi)部參考電流,F(xiàn)SET 用于設(shè)置內(nèi)部多頻振蕩器及自動(dòng)指紋檢測速率。AIN 用于模擬信號輸入方式選擇,USB 接口使用三個(gè)端點(diǎn);其中端點(diǎn)0 是控制

8、端點(diǎn),用來控制對功能寄存器的讀寫;端點(diǎn)1 是讀端點(diǎn),用來讀取經(jīng)過AD 轉(zhuǎn)換后的指紋圖像數(shù)據(jù),它是以塊方式進(jìn)行讀取的,每次64 個(gè)字節(jié);端點(diǎn)2 是中斷端點(diǎn),當(dāng)ISR 被置位時(shí),由它向端點(diǎn)2 發(fā)送中斷信號。- 3 -圖3 指紋采集儀原理圖Fig3 schematics of fingerprinting3 基于KMDF 的USB 驅(qū)動(dòng)架構(gòu)3.1 WDF 框架微軟操作系統(tǒng)下的驅(qū)動(dòng)模型,最開始采用的是VxD(VIRTUAL X DRIVER),現(xiàn)早已經(jīng)廢棄。自Windows 2000 開始,驅(qū)動(dòng)開發(fā)基于WDM(Windows Driver Model)標(biāo)準(zhǔn)驅(qū)動(dòng)模型。WDF5 (Windows Driv

9、er Foundation)是微軟提出的下一代全新的驅(qū)動(dòng)程序模型,它是在WDM(windows Driver Model)的基礎(chǔ)上發(fā)展而來的;WDF 是Vista 系統(tǒng)及其以后的版本采用的驅(qū)動(dòng)模型,全面向上兼容WDM。最新發(fā)布的Windows7 中就采用了WDF。WDF 支持面向?qū)ο蟆⑹录?qū)動(dòng)的驅(qū)動(dòng)程序開發(fā),提供了比WDM 更高層次抽象的高度靈活、可擴(kuò)展、可診斷的驅(qū)動(dòng)程序框架。WDF 框架管理了大多數(shù)與操作系統(tǒng)相關(guān)的交互,實(shí)現(xiàn)了公共的驅(qū)動(dòng)程序功能(如電源管理、PnP 支持),隔離了設(shè)備驅(qū)動(dòng)程序與操作系統(tǒng)內(nèi)核,降低了驅(qū)動(dòng)程序?qū)?nèi)核的影響。圖4 WDF 驅(qū)動(dòng)棧模型Fig4 WDF driver s

10、tack modelVDDDPXTAL1XTAL2MODE0 MODE1TESTAINISETFSET電源模塊DMUSB 連接模塊時(shí)鐘模塊模式控制模塊輔助外圍電路USB接口PC機(jī)DriverManagerWindows Kernel內(nèi)核模式用戶模式:Reflector( Filter )Kernel - modeDriverKernel - modeDriver設(shè)備堆棧Reflector(Filter )設(shè)備堆棧ApplicationsWin32 APIHost ProcessUser - modeDriverUMDFRuntimeEnvironmentHost ProcessUser - m

11、odeDriverUMDFRuntimeEnvironmentKernel - modeDriver中國科技論文在線 - 4 -對應(yīng)于驅(qū)動(dòng)模型,分別有相應(yīng)的驅(qū)動(dòng)開發(fā)套件。WDM 驅(qū)動(dòng)模型對應(yīng)于DDK(DriverDevelop Kit),而WDF 驅(qū)動(dòng)模型對應(yīng)于WDK(Windows Driver Kit)。WDK 提供了兩個(gè)框架:KMDF(內(nèi)核模式驅(qū)動(dòng)程序框架)和UMDF(用戶模式驅(qū)動(dòng)程序框架)。對內(nèi)核模式和用戶模式對象來說,WDF 是兩者的父對象。相對于內(nèi)核模式,派生出的對象稱為“KMD 框架”,即KMDF;相對于用戶模式,派生出的模型稱為“UMD 框架”,即UMDF。具體到實(shí)現(xiàn),KMDF

12、 對應(yīng)于.Sys 文件,負(fù)責(zé)硬件交互和處理;UMDF 對應(yīng)于.Dll 文件,負(fù)責(zé)和用戶的交互。3.2Windows USB 驅(qū)動(dòng)原理在KMDF 中,USB 通信使用分層驅(qū)動(dòng)模型,每層處理一部分通信任務(wù)。把通信分成層,可以使不同的設(shè)備在一些任務(wù)上使用相同的驅(qū)動(dòng)。如圖5 所示,Windows 對構(gòu)成一個(gè)USB主機(jī)的不同軟件部分進(jìn)行了清楚的劃分。USB 設(shè)備驅(qū)動(dòng)程序通過Windows 定義的軟件接口與根集線器驅(qū)動(dòng)程序進(jìn)行通信,而USB 總線根集線器驅(qū)動(dòng)程序則通過包含在USBD 中的USBDI(通用串行總線驅(qū)動(dòng)程序接口)實(shí)現(xiàn)與通用串行總線驅(qū)動(dòng)程序(USBD)的通信。然后,USBD 選擇兩種主機(jī)控制器驅(qū)

13、動(dòng)程序之一,同其下方的主控制器通信。最后,主控制器驅(qū)動(dòng)程序通過PCI 枚舉器軟件直接實(shí)現(xiàn)對USB 物理總線的訪問。USB 總線驅(qū)動(dòng)程序由操作系統(tǒng)提供,它位于USB 功能驅(qū)動(dòng)程序的下面,負(fù)責(zé)與實(shí)際的硬件打交道,實(shí)現(xiàn)繁瑣的底層通信6。USB 功能驅(qū)動(dòng)程序由設(shè)備開發(fā)者編寫,位于USB 總線驅(qū)動(dòng)程序的上面,不與實(shí)際的硬件打交道,而是通過向USB 總線驅(qū)動(dòng)程序發(fā)送包含URB(USB Request Block,USB 請求塊)的IRP(I/0 Request Packet,I/O 請求包),來實(shí)現(xiàn)對USB設(shè)備信息的發(fā)送或接收。圖5 USB 分層結(jié)構(gòu)Fig5 USB layed structure如圖5

14、所示,總線驅(qū)動(dòng)對應(yīng)于PDO(Physical Device Object),功能驅(qū)動(dòng)對應(yīng)于FDO(Functional Device Object)。在功能驅(qū)動(dòng)程序之上以及功能驅(qū)動(dòng)程序和總線驅(qū)動(dòng)程序之間可能存在著各種的過濾驅(qū)動(dòng)程序(Filter Driver)。過濾驅(qū)動(dòng)程序也可以創(chuàng)建過濾設(shè)備對象硬件接口IRPIRPAPI 調(diào)用USB 應(yīng)用程序Win32 子系統(tǒng)上層USB 過濾器驅(qū)動(dòng)USB 功能驅(qū)動(dòng)下層USB 過濾器驅(qū)動(dòng)USB 總線驅(qū)動(dòng)硬件抽象層HAL用戶態(tài)核心態(tài)- 5 -FiDO(Filter Device Object)。過濾驅(qū)動(dòng)程序是一個(gè)中間層的驅(qū)動(dòng)程序,它可以截獲并處理經(jīng)過它的I/O 請

15、求。過濾驅(qū)動(dòng)程序用于變更標(biāo)準(zhǔn)設(shè)備驅(qū)動(dòng)程序的行為。USB 設(shè)備驅(qū)動(dòng)程序的工作原理如下:當(dāng)應(yīng)用程序和指紋采集儀進(jìn)行通信時(shí),必須設(shè)置DeviceControl 例程,然后使用Windows API 函數(shù)DeviceIoCtrl()對WIN32 子系統(tǒng)進(jìn)行WIN32        調(diào)用。此調(diào)用由I/O 系統(tǒng)服務(wù)接收并通知I/O 管理器,I/O 管理器將此請求構(gòu)造成一個(gè)合適的I/O 請求包(I/O Request Packet,IRP)并把它傳遞給USB 功能驅(qū)動(dòng)程序。USB 功能驅(qū)動(dòng)程序接收到這個(gè)IRP 以后,根據(jù)IRP

16、中包含的具體操作代碼,構(gòu)造相應(yīng)的USB 請求塊并把此URB 放到一個(gè)新的IRP 中,然后把此IRP 傳遞到USB 總線驅(qū)動(dòng)程序,USB 總線驅(qū)動(dòng)程序根據(jù)IRP 中所含的URB 執(zhí)行相應(yīng)的操作(如從USB 設(shè)備讀取數(shù)據(jù)),并把操作結(jié)果通過IRP 返還給USB 功能驅(qū)動(dòng)程序。USB 功能驅(qū)動(dòng)程序接收到此IRP 后,將操作結(jié)果通過IRP 返還給I/O 管理器,最后I/O 管理器將此IRP 中的操作結(jié)果返還給應(yīng)用程序,至此應(yīng)用程序?qū)SB設(shè)備的一次I/O 操作完成。USB 功能驅(qū)動(dòng)程序除負(fù)責(zé)處理應(yīng)用程序的I/O 請求外,還要處理PnP 管理器發(fā)送給它的PnP 請求。通過對這些PnP 請求的處理,USB

17、 功能驅(qū)動(dòng)程序可支持設(shè)備的熱插拔和即插即用功能。3.3指紋采集儀通信與傳輸方式USB 定義了四種傳輸類型:控制傳輸、中斷傳輸、等時(shí)傳輸、批量傳輸。控制傳輸:可靠的、非周期性的、由主機(jī)軟件發(fā)起的請求或者回應(yīng)的傳輸,通常用于命令事務(wù)和狀態(tài)事務(wù)。控制傳輸有兩個(gè)功能,攜帶USB 規(guī)范的要求,讓主機(jī)了解設(shè)備的功能與配置;攜帶群組或廠商定義的要求。控制傳輸用于在客戶軟件和它的應(yīng)用設(shè)備之間的設(shè)置信息、命令信息、狀態(tài)信息的傳輸,允許訪問一個(gè)設(shè)備的不同部分。中斷傳輸:小規(guī)模數(shù)據(jù)的、低速的、固定延遲的傳輸。中斷傳輸用于只傳送或接收少量數(shù)據(jù),而且并不經(jīng)常進(jìn)行傳送,但卻有一個(gè)確定的服務(wù)周期。等時(shí)傳輸:在主機(jī)與設(shè)備之間

18、的周期性的、連續(xù)的通信,一般用于傳輸與時(shí)間相關(guān)的信息。這種類型保留了將時(shí)間概念包含于數(shù)據(jù)中的能力。但這并不意味著,傳送這樣數(shù)據(jù)的時(shí)間總是很重要的,即傳輸并不一定很緊急。批量傳輸:非周期性的,大包的可靠的傳輸。典型地用于傳輸那些可以利用任何帶寬的數(shù)據(jù),而且這些數(shù)據(jù)當(dāng)沒有可用帶寬時(shí),可以容忍等待。批量傳輸是為了支持在某些在不確定的時(shí)間進(jìn)行的相當(dāng)大量的數(shù)據(jù)通信,對連續(xù)性不做要求。它可以利用任何可獲得的帶寬。MBF200 使用內(nèi)部ROM 作為配置寄存器,在主機(jī)發(fā)出GET-DESCRIPTOR 命令時(shí),可以從內(nèi)部ROM 中讀取USB 的描述符來配置USB 接口。在MBF200 的USB 接口中,使用了以

19、下三個(gè)端點(diǎn):端點(diǎn)0:端點(diǎn)O 是控制端點(diǎn),常用于設(shè)備的枚舉和配置。FPS200 傳感器的功能寄存器的讀寫,都是使用控制傳輸方式向端點(diǎn)O 寫入廠商規(guī)定的命令字來完成。芯片初始化過程如圖6。端點(diǎn)1 采用批量輸入方式,專用來讀取寄存器CTRLA,即A/D 轉(zhuǎn)換器的輸出緩沖區(qū)。數(shù)據(jù)以64 字節(jié)的長度包傳送。如果是在GETROW 的圖像讀取方式下,根據(jù)行數(shù)的不同,最后一個(gè)數(shù)據(jù)包的長度可能會少于64 字節(jié)。端點(diǎn)2 是中斷端點(diǎn),如果有中斷產(chǎn)生,ISR(Interrupt Status Register)的內(nèi)容就被傳送到端點(diǎn)2。如圖6 所示。- 6 -圖6 MBF 初始化Fig6 initialization

20、of MBF4 指紋采集儀驅(qū)動(dòng)設(shè)計(jì)4.1 驅(qū)動(dòng)程序設(shè)計(jì)和WDM 模型相同,KMDF 框架是面向?qū)ο?、事件?qū)動(dòng)的驅(qū)動(dòng)程序模型。它定義了一系列的對象用來表示設(shè)備、驅(qū)動(dòng)、中斷、內(nèi)存等,每個(gè)對象有對應(yīng)的屬性、方法和事件。驅(qū)動(dòng)程序利用這些方法創(chuàng)建對象、設(shè)置屬性和響應(yīng)事件??蚣芏x的主要對象有:WDFDRIVER對象、WDFDEVICE 對象、WDFREQUEST 對象、WDFQUEUE 對象、WDFQUEUE 對象、WDFINTERRUPT 對象等。WDF 的對象模型是層次化的模型。WDFDRIVER 對象是根對象,其他對象都是它的子對象。對于大多數(shù)對象,驅(qū)動(dòng)程序在創(chuàng)建它們的時(shí)候可以指定父對象,如果沒有

21、指定,則框架默認(rèn)其父對象為WDFDRIVER 對象。WDF 大大簡化了WDM 中的PNP 和電源管理的開發(fā)。WDF 框架為設(shè)備停止、設(shè)備刪除、電源狀態(tài)切換等PNP 和電源管理事件提供了適合的缺省行為,驅(qū)動(dòng)程序本身不再糾纏于復(fù)雜的PNP 和電源管理事件處理。在WDM 驅(qū)動(dòng)程序中, I/O 請求的取消是一個(gè)復(fù)雜難以理解的過程,開發(fā)人員必須有對內(nèi)核深刻的理解才能正確處理I/O 請求的取消。WDF 框架支持內(nèi)建的I/O 請求取消處理,使得驅(qū)動(dòng)程序處理取消I/O請求的工作大大簡化。USB 驅(qū)動(dòng)入口函數(shù)7為DriverEntry(),其主要工作是把各種函數(shù)指針填入驅(qū)動(dòng)程序?qū)ο?。這些指針為操作系統(tǒng)指明了驅(qū)動(dòng)

22、程序容器中各種子例程的位置。根據(jù)WDFUSBINTERFACE 和WDFUSBPIPE 對象方法,分別進(jìn)行初始化。接口對象的初始化函數(shù):m_Interface.Initialize()。端點(diǎn)對象的初始化函數(shù):Pipe0.Initialize()和Pipe1.Initialize()。例程的分發(fā)使用DeviceControl 函數(shù),自己定義好要實(shí)現(xiàn)的具體例程,如下:switch (I.IoctlCode()case IOCTL_VENDOR_REQUEST:AD 轉(zhuǎn)換允許CTRLB Bit0 和Bit2 置位等待30us傳感器初始化完成傳感器參數(shù)調(diào)整寫寄存器DTR寫寄存器DCR寫寄存器PGC傳感

23、器參數(shù)調(diào)整完畢- 7 -status = IOCTL_VENDOR_REQUEST_Handler(I);/初始化break;case IOCTL_BULK_READ:status = IOCTL_BULK_READ_Handler(I);/批量讀break;case IOCTL_READ_INT:status = IOCTL_READ_INT_Handler(I);/中斷讀break;default:status = STATUS_INVALID_DEVICE_REQUEST;break;在IOCTL_VENDOR_REQUEST_Handler 中配置MBF200_DTR 為0x14,MB

24、F200_DCR為0x06,MBF200_PGC 為0x08,MBF200_ICR 為0x09,MBF200_CTRLB 為0x0D。4.2 軟中斷和硬中斷設(shè)計(jì)指紋的自動(dòng)檢測分為基于中斷寄存器的檢測和基于軟中斷的自動(dòng)檢測?;谥袛嗉拇嫫鞯臋z測就是讀取中斷狀態(tài)寄存器的值,當(dāng)有指紋按下時(shí),讀取ISR 的值;基于軟中斷的自動(dòng)檢測是指自己設(shè)定檢測窗口和閾值,根據(jù)窗口內(nèi)指紋點(diǎn)的數(shù)目判斷是否有指紋按下,這樣,也可以濾出質(zhì)量不合格的指紋。MBF200 的中斷狀態(tài)寄存器非常靈敏,只要有手指按下,就能被捕捉,改變狀態(tài)值。如果嚴(yán)格按照硬中斷來采集指紋,容易捕捉到不合格的指紋。故本文采用了兩級中斷。當(dāng)根據(jù)硬中斷采集

25、到指紋時(shí),采用軟中斷判斷是否符合所要求的指紋圖像標(biāo)準(zhǔn)。最后濾去不合格圖像(模糊、偏離中心等),送到特征提取和比對模塊進(jìn)行處理。采用軟中斷,需要自己實(shí)現(xiàn)指紋圖像的判決函數(shù)Read_Threshold()。所用算法如下:圖7 軟中斷檢測指紋圖像Fig7 fingerprint detection using softirq4.3 應(yīng)用程序與驅(qū)動(dòng)程序的接口應(yīng)用程序和驅(qū)動(dòng)程序通信,主要有兩種方式:為設(shè)備創(chuàng)建的一個(gè)符號鏈;輸出到一個(gè)接口。WDM 驅(qū)動(dòng)程序建議使用輸出到一個(gè)接口而不推薦使用創(chuàng)建符號鏈的方法。這個(gè)接口保把指紋圖像分為9 個(gè)字區(qū)域(3X3)從中間塊開始進(jìn)行掃描6 4 72 38 5 9Thre

26、sL<指紋點(diǎn)數(shù)<ThresH?1 按照左圖次序繼續(xù)掃- 8 -證PDO 的安全,也保證安全地創(chuàng)建一個(gè)惟一的、獨(dú)立于語言的訪問設(shè)備的方法。一個(gè)應(yīng)用程序使用Win32APIs 來調(diào)用設(shè)備。在某個(gè)Win32 APIs 和設(shè)備對象的分發(fā)函數(shù)之間存在一個(gè)映射關(guān)系。獲得對設(shè)備對象訪問的第一步就是打開一個(gè)設(shè)備對象的句柄。1用符號鏈打開一個(gè)設(shè)備的句柄<b3 Microsoft Corp. Architecture of the Windows Driver FoundationEB/OL,2006.4 EPASS Inc. MBF200 datasheetEB/OL5 Microsoft Corp. Architecture of the Windows Driver FoundationEB/OL,2006.6 武安河. Windows 設(shè)備驅(qū)動(dòng)程序WDF 開發(fā)M.北京:電子工業(yè)出版社,2009:40-56,188-227.7 張領(lǐng)會. 基于MBF200 和USB 的數(shù)據(jù)采集設(shè)計(jì)方法的研究D. 西北工業(yè)大學(xué),2006.USB Fingerprint Sensor Driver Baseed on KMDFLiu Chunhe, Ji HaoSchool of Information and Telecommunication , Beijing Universt

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論