基于S3C2410和MBF200的指紋采集系統(tǒng)設(shè)計(jì)
指紋識(shí)別是一項(xiàng)高新技術(shù),而指紋識(shí)別的前期工作就是指紋圖像采集。采集的圖像質(zhì)量對(duì)指紋識(shí)別丁作有重要影響。S3C2410是為手持設(shè)備設(shè)汁的一款低功耗、高度集成、內(nèi)含一個(gè)ARM920T核的微處理器。該處理器擁有獨(dú)立的16 KB指令Cache和16 KB數(shù)據(jù)Cache、MMU、支持TFT的LCD控制器、NAND閃存控制器、4路DMA、4路帶PWM的Timer、I/O端口、RTC、Touch Screen接口、2個(gè)USB主機(jī)接中、1個(gè)USB設(shè)備接口、SD主機(jī)接口和MMC接口、2路SPI端口、最高運(yùn)行頻率為203 MHz。指紋傳感器MBF200具有體積小、低功耗和低成本等特點(diǎn),屬于電容性傳感器,其傳感器陣列由二維金屬電極組成,所有金屬電極充當(dāng)一個(gè)電容板,接觸的手指充當(dāng)另一個(gè)電容板,器件表面的鈍化層作為兩板的絕緣層,指紋紋理的凹凸會(huì)在傳感器陣列上產(chǎn)生變化的電容。進(jìn)而引起二維陣列上電壓的變化,形成指紋圖像。結(jié)合兩器件上述特點(diǎn),這里選用S3C2410和MBF200構(gòu)成指紋采集系統(tǒng)。
2 系統(tǒng)硬件設(shè)計(jì)
S3C2410與MBF200通訊支持MCU通訊方式、USB通訊方式和SPI通訊3種數(shù)據(jù)傳輸方式。此系統(tǒng)采用MCU和USB通訊方式。由于MCU通訊方式具有操作簡(jiǎn)單、數(shù)據(jù)傳輸速度快等優(yōu)點(diǎn),這里討論基于MCU通訊的指紋采集系統(tǒng)。MBF200與S3C2410通訊的硬件框圖與指紋采集系統(tǒng)原理圖分別如圖1、圖2所示。
D[7:0]實(shí)現(xiàn)與S3C2410的通訊,索引寄存器對(duì)應(yīng)存儲(chǔ)空間的最低位為0,功能寄存器對(duì)應(yīng)最低位為1;當(dāng)跳針JP1,JP2,JP3跳到右邊時(shí)為MCU通訊方式;nGCS2與選通信號(hào)CSO連接,用于選通MBF200;S3C2410引腳nOE與MBF200的RD引腳連接,產(chǎn)生讀信號(hào);S3C2410引腳nWE與MBF200的WR引腳連接,產(chǎn)生寫信號(hào);電路中接2個(gè)LED,與MBF200引腳P1、P0相連,低電平亮,用于測(cè)試硬件電路;JP4連接EINT與MBF200的INTR中斷引腳;WAIT引腳用于在指紋采集時(shí)查看A/D轉(zhuǎn)換是否完成,防止在A/D轉(zhuǎn)換未完成時(shí)讀出隨機(jī)數(shù)據(jù),導(dǎo)致數(shù)據(jù)采集失敗;MBF200供電電源選擇S3C2410引腳49提供的VDD33 V。
硬件平臺(tái)搭建好后通過向MBF200的CTRLC寫數(shù)據(jù)驗(yàn)證是否能控制兩個(gè)LED燈的點(diǎn)亮和熄滅。通過向索引寄存器寫MBF200功能寄存器的索引號(hào)來鎖定該寄存器,當(dāng)功能寄存器被鎖定時(shí),才可以對(duì)該寄存器進(jìn)行讀寫操作。MBF200進(jìn)行數(shù)據(jù)采集必須正確配置幾個(gè)功能寄存器,它們配合使用才能完成指紋采集工作,下面對(duì)MCU工作模式下幾個(gè)重要寄存器進(jìn)行說明。
中斷控制寄存器ICR主要控制指紋傳感器的兩個(gè)中斷源:內(nèi)部中斷與外部中斷。其IT[1:0]位與IP[1:0]位需配合使用,通過產(chǎn)生中斷喚醒傳感器,當(dāng)IT[1:O]被設(shè)置成電平觸發(fā)時(shí),IP [1:0]位要設(shè)置為上升沿或高電平有效;控制寄存器CTRLA寫非“0”值開始A/D轉(zhuǎn)換,讀該寄存器獲取指紋圖像數(shù)據(jù),當(dāng)A/D轉(zhuǎn)換正在進(jìn)行時(shí),不能對(duì)該寄存器進(jìn)行寫操作,否則A/D)轉(zhuǎn)換不能繼續(xù)進(jìn)行,要等到上一個(gè)A/D轉(zhuǎn)換完成才能可讀該寄存器,否則會(huì)讀出錯(cuò)誤的數(shù)據(jù);控制寄存器CTRLB在初始化時(shí)要將AFDEN置位,以使能器件的自動(dòng)檢測(cè)功能,AUTOINCEN置位以實(shí)現(xiàn)圖像采集時(shí)自動(dòng)進(jìn)行A/D轉(zhuǎn)換。
3 軟件接口設(shè)計(jì)
3.1 主程序設(shè)計(jì)
軟件設(shè)計(jì)主要實(shí)現(xiàn)S3C2410控制MBF200驅(qū)動(dòng)程序的編寫。在ADS 1.2開發(fā)環(huán)境下采用移植性強(qiáng)的C語言編寫程序,目標(biāo)板上電后初始化整個(gè)采集系統(tǒng),包括ARM系統(tǒng)的初始化和MBF200的初始化。
MBF200器件采集圖像通過檢測(cè)中斷開始,首先使能中斷,中斷寄存器清零。本程序采用電平觸發(fā)方式,在無指紋時(shí)引腳INTR是高電平,當(dāng)有指紋時(shí)變?yōu)榈碗娖?。因此,檢測(cè)中斷信號(hào)就是檢測(cè)引腳INTR的信號(hào)。程序向CTRLA寄存器寫0x02,采集整個(gè)區(qū)域的指紋圖像,圖像數(shù)據(jù)存儲(chǔ)在CTRLA寄存器。注意要等到上一個(gè)A/D轉(zhuǎn)換完成才能讀該寄存器,否則會(huì)讀出錯(cuò)誤的數(shù)據(jù)。主程序流程如圖3所示。
評(píng)論