国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32和FPC1011C2的指紋采集系統(tǒng)

2014-09-26 02:19:13林峰劉林偉馮陳偉
中國新通信 2014年16期

林峰 劉林偉 馮陳偉

【摘要】 本文利用MCU STM32和電容式指紋傳感器FPC1011C2設(shè)計(jì)一個自動指紋識別系統(tǒng)。STM32通過SPI接口控制FPC1011C采集指紋圖像,并通過串口將指紋數(shù)據(jù)傳輸至上位機(jī),在PC端完成指紋識別。該系統(tǒng)能可靠地實(shí)現(xiàn)高質(zhì)量的指紋圖像采集和快速的指紋識別。該采集系統(tǒng)具有自動檢測指紋、結(jié)構(gòu)簡單、使用方便的特點(diǎn)。

【關(guān)鍵詞】 指紋采集 STM32 FPC1011C

一、引言

隨著網(wǎng)絡(luò)技術(shù)和通信技術(shù)的發(fā)展,傳統(tǒng)的個人身份鑒別手段已不能完全滿足現(xiàn)代社會經(jīng)濟(jì)活動和社會安全防范系統(tǒng)的需要,人們越來越多地把目光轉(zhuǎn)向生物識別技術(shù),如指紋,虹膜,臉型,聲音,掌紋等。在眾多生物識別技術(shù)中,指紋由于其高穩(wěn)定性,唯一性,采集方便,實(shí)用性強(qiáng)等特殊優(yōu)勢[1],備受用戶青睞。指紋識別已經(jīng)廣泛應(yīng)用于司法、門禁、考勤、金融、社保和戶籍等安防和身份認(rèn)證領(lǐng)域。指紋識別系統(tǒng)的組成由指紋采集和指紋識別兩部分組成。指紋采集是指紋識別的前提,其關(guān)鍵是選擇一款性能優(yōu)越,價格合適,使用方便的指紋傳感器。眾多開發(fā)者使用瑞典FingerPrint Cards公司的電容式面裝指紋傳感器FPC1011F和FPC1011C系列[2][3][4][5]。本文使用FPC1011C2和ST公司的STM32107VCT,STM32通過SPI接口進(jìn)行指紋采集,并通過串口將采集到的指紋圖像發(fā)送至上位機(jī),在上位機(jī)端實(shí)現(xiàn)指紋識別。

二、FPC1011C的硬件特性

一般半導(dǎo)體使用直接測量法,探測到的手指信號微弱,造成指紋圖像不穩(wěn)定。而FPC1011C使用發(fā)射式測量法,增強(qiáng)探測信號,可采集到高質(zhì)量的指紋圖像。它具有以下主要特點(diǎn):抗靜電大于15KV,耐磨高達(dá)100萬次,工作電壓為2.5v或3.3v,傳感器陣列為152x200點(diǎn),分辨率為363dpi,內(nèi)置8位模數(shù)轉(zhuǎn)換器,高速的SPI接口。

2.1 采集原理

FPC1011C內(nèi)部的功能框圖如圖1所示。它屬于電容式傳感器,內(nèi)部包含一個152行200列的傳感器陣列,當(dāng)手紙按壓傳感器表面,所有金屬電極充當(dāng)一個電容板,接觸傳感器表面的手指充當(dāng)另一個電容板,器件表面的保護(hù)層作為兩極板的絕緣層。指紋紋理的凹凸會在傳感器陣列上產(chǎn)生變化的電容,引起二維陣列上電壓的變化。通過采樣保持電路以及A/D轉(zhuǎn)換器,獲得高質(zhì)量的指紋圖像。每次通過讀取傳感器內(nèi)部FIFO的SPI指令捕獲8個像素,逐次捕獲可完成一行指紋數(shù)據(jù)的采集,捕獲完所有的行便形成一幅完整的指紋圖像。可以通過設(shè)置內(nèi)部相關(guān)寄存器的值改變指紋圖像的尺寸。

2.2 寄存器及指令

在SPI模式下,通過指令對FPC1011C的寄存器進(jìn)行讀寫操作,完成對FPC1011C的設(shè)置以及指紋數(shù)據(jù)的采集。共有14條讀寫指令和9個控制寄存器。主要的寄存器以及指令功能如下:(1)STATUS寄存器:包含F(xiàn)IFO的狀態(tài)信息;(2)DRIVC寄存器:設(shè)置連接驅(qū)動電壓幅度的大小;(3)ADCREF寄存器:設(shè)置AD轉(zhuǎn)換的動態(tài)范圍;(4)SENSEMODE寄存器:選擇測試模式。正常工作模式下,該寄存器應(yīng)被清楚。(5)SPISTAT:包含SPI接口的狀態(tài)信息。(6)SPI指令,指令代碼和功能描述如表1所示。

2.3 SPI時序

在指紋采集電路中,F(xiàn)PC1011C被設(shè)置為從機(jī)。在SPI從模式中,傳感器支持的傳輸模式為MODE0,即CPOL=0,CPOH=0,如圖2所示。

具體的時序要求如下:①在數(shù)據(jù)傳輸中,SCS保持低電平;②MOSI線上的數(shù)據(jù)在SCK的上升沿被采樣;③SCK在空閑狀態(tài)時,可為高電平,也可為低電平;④MISO線上的數(shù)據(jù)在SCK的下降沿發(fā)生變化;⑤最高位先被移出,最低位最后被移出;⑥一次接收和發(fā)送的數(shù)據(jù)長度都是8位。

FPC1011C通過SPI執(zhí)行讀寫寄存器命令的時序如下圖3和圖4所示。

寫寄存器時,主機(jī)首先發(fā)送命令字節(jié),然后是參數(shù)字節(jié)。讀寄存器時,主機(jī)首先發(fā)送讀取命令和相應(yīng)參數(shù),然后FPC1011C在SPI_DO上返回1個或多個數(shù)據(jù)。

三、基于FPC1011C的指紋采集系統(tǒng)

3.1 系統(tǒng)硬件結(jié)構(gòu)

本指紋采集系統(tǒng)以ST半導(dǎo)體的STM32107F為核心處理器。STM32107F是基于第二代ARM Cortex-M3內(nèi)核的微控制器是為嵌入式系統(tǒng)應(yīng)用而設(shè)計(jì)的高性能、低功耗的互聯(lián)型32位微處理器,集成了各種高性能的標(biāo)準(zhǔn)接口如以太網(wǎng),USB,CAN,I2C,I2S等,適用于儀器儀表、工業(yè)控制、通訊系統(tǒng)等領(lǐng)域。主頻達(dá)到72MHz,能夠滿足指紋采集的需求。該控制器自帶串行外圍SPI接口,能夠很方便地與FPC1011C連接。具體硬件電路如圖5所示。將PA口配置成SPI功能,PA5,PA6,PA7分別作為SPI的SCK,MISO,MOSI與FPC1011C的CK,DI和DO連接,PB9作為FPC1011C的片選信號。為了將采集到的指紋數(shù)據(jù)發(fā)送至PC,將STM32的USART通過MAX232與PC連接。

3.2 指紋采集軟件

指紋采集的總體流程如圖6所示。首先進(jìn)行STM32和FPC的初始化,然后檢測是否有指紋,如果有,則讀取指紋數(shù)據(jù)并傳送至上位機(jī),完成指紋的采集。STM32的SPI相關(guān)的初始化代碼為:

RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2,ENABLE);

SPI_Cmd(SPI2, DISABLE); //必須先禁能,才能改變MODE

SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex; //雙工模式

SPI_InitStructure.SPI_Mode = SPI_Mode_Master; //SPI主模式

SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; //8bit數(shù)據(jù)

SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; //CLK空閑時為高電平

SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; //CLK上升沿采樣

SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; //片選用軟件控制

SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4;//SPI頻率為18MHz

SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; //高位在前

SPI_InitStructure.SPI_CRCPolynomial = 7; //crc7,stm32spi帶硬件ecc

SPI_Init(SPI2, &SPI_InitStructure);

SPI_Cmd(SPI2, ENABLE);

FPC1011的初始化主要完成三個控制寄存器的設(shè)置,包括將DRIVE寄存器設(shè)置為127,將ADCREF設(shè)置為2,將SENSEMODE寄存器設(shè)置為0。前兩數(shù)值個將影響到采集指紋圖像的質(zhì)量,其具體值根據(jù)應(yīng)用可能不同。設(shè)置的具體過程為首先通過SPI發(fā)送指令碼,再發(fā)送指令參數(shù)。

初始化后通過SPI發(fā)送RD_SENSOR指令啟動FPC1011開始采集指紋。然后查詢是否有指紋數(shù)據(jù)。有兩種查詢的方法,一種是在發(fā)出RD_SENSOR指令后等待365-409個時鐘,另一種是通過反復(fù)發(fā)送RD_SPISTAT指令,判斷STATUS寄存器的DA位是否為1。如果為1,說明FPC的存儲陣列中已有指紋數(shù)據(jù)可用。然后通過RD_SPIDATA指令讀取指紋數(shù)據(jù)。在默認(rèn)情況下,如果沒有改變XREAD和YREAD的值,則將讀取整個傳感器的152×200個字節(jié)的數(shù)據(jù)。讀取后可將指紋數(shù)據(jù)通過串行口發(fā)送至PC,以便PC端的指紋識別系統(tǒng)進(jìn)行指紋數(shù)據(jù)的進(jìn)一步處理,實(shí)現(xiàn)指紋的識別。

上位機(jī)端可利用Visual C++ 或Visual Studio等開發(fā)環(huán)境編寫相應(yīng)的上位機(jī)界面。上位機(jī)接收串口的數(shù)據(jù),形成BMP圖像并顯示。本設(shè)計(jì)采集到的指紋數(shù)據(jù)如圖7和圖8所示。

3.3 指紋識別

指紋識別流程包括預(yù)處理,特征點(diǎn)提取和匹配。在取到指紋圖像之后,由于采集的過程及采集設(shè)備的限制,難免會使圖像受到“污染”,同時原始圖像信息量過高,不利于存儲,所以需經(jīng)過預(yù)處理的過程。預(yù)處理是由于主要包含指紋圖像的平滑,濾波,增強(qiáng),二值化,細(xì)化等步驟。經(jīng)過預(yù)處理后,提取出有用的特征點(diǎn),進(jìn)而通過對特征點(diǎn)進(jìn)行匹配,最后輸出比較結(jié)果。

四、總結(jié)

本文利用STM32F107和FPC1011C實(shí)現(xiàn)一個指紋采集系統(tǒng),在PC端實(shí)現(xiàn)指紋識別,利用PC的高性能,滿足實(shí)時工作的需求。同時STM32強(qiáng)大的控制能力使得本系統(tǒng)可以應(yīng)用于門禁,保險等諸多領(lǐng)用領(lǐng)域。本文接下來要做的是將指紋識別算法移植到DSP上,構(gòu)建一個基于DSP的嵌入式的指紋識別系統(tǒng)。c

參 考 文 獻(xiàn)

[1] 李春雷. 指紋識別算法的研究及基于FPGA的硬件實(shí)現(xiàn). 山東:山東大學(xué),2005

[2] 楊磊,張文超,秦會斌. 基于STM32的指紋識別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 機(jī)電工程,2011(12),1531-1535

[3] 陳淑靜,馬天才. 基于FPC1011F的指紋識別系統(tǒng)[J]. 山西電子技術(shù),2009(5),32-33

[4] 李爽. 基于FPC1011C電容式傳感器指紋識別系統(tǒng)設(shè)計(jì)[J]. 信息與電腦,2010(6),30-31

[5] 陳文燕,劉良勇. 指紋傳感器FPC1011F在ARM9指紋采集系統(tǒng)中的應(yīng)用[J]. 中北大學(xué)學(xué)報(bào)(自然科學(xué)版),2011(5),642-647

汝南县| 迁安市| 沂南县| 铅山县| 云阳县| 静海县| 江口县| 长泰县| 循化| 云浮市| 衡山县| 台东县| 托克托县| 纳雍县| 集安市| 汨罗市| 宾阳县| 贵定县| 宁乡县| 开封县| 依兰县| 婺源县| 淮安市| 临颍县| 朝阳县| 湘西| 湖州市| 方正县| 德昌县| 上林县| 肃宁县| 新蔡县| 石屏县| 肥西县| 绿春县| 五峰| 鄂温| 广河县| 开封县| 余江县| 晋中市|