S3C2410與指紋傳感器MBF200的SPI通信
隨著網(wǎng)絡(luò)技術(shù)和通信技術(shù)的發(fā)展,傳統(tǒng)的身份認(rèn)證技術(shù)對(duì)于信息安全表現(xiàn)得越來(lái)越有些力不從心了。由于人的身體特征具有唯一性和穩(wěn)定性,人們開(kāi)始把目光轉(zhuǎn)向了生物識(shí)別技術(shù),如指紋、虹膜、DNA、掌形識(shí)別等。在眾多的特征識(shí)別中,指紋采集設(shè)備由于具有體積小、功耗低、穩(wěn)定性好、誤判概率低等優(yōu)點(diǎn),而受到人們的青睞。指紋傳感器是指紋采集設(shè)備中的核心器件,在此選用富士通公司的MBF200。它是一款先進(jìn)的固態(tài)指紋傳感器芯片,具有性能高、功耗低、成本低、接口方便等特點(diǎn)。這使得在嵌入式系統(tǒng)中實(shí)現(xiàn)數(shù)據(jù)的傳輸更加方便。S3C2410是三星公司推出的ARM920T核微處理器,主要面向手持設(shè)備以及高性價(jià)比、低功耗的應(yīng)用,且在片上集成了豐富的組件,有利于其擴(kuò)展。
本文引用地址:http://butianyuan.cn/article/201611/318266.htm1 MBF200的結(jié)構(gòu)和特點(diǎn)介紹
MBF200是為嵌入式系統(tǒng)設(shè)計(jì)的高性能、低功耗的電容指紋傳感器。該芯片傳感區(qū)域?yàn)?.28 cm×1.50 Cm,具有256×300傳感器陣列和500 dpi的分辨率,集成8位A/D轉(zhuǎn)換器,工作電壓為3.3~5 V,且有指紋自動(dòng)檢測(cè)功能。提供3種總線接口:8位微處理器總線接口(MCU)、串行外圍設(shè)備接口(SPI)和集成USB全速接口。鑒于接口簡(jiǎn)單,實(shí)現(xiàn)容易且占用的I/O較少,本文采用SPI接口方式。
MBF200的內(nèi)部結(jié)構(gòu)如圖1所示。其中256×300傳感器陣列用于產(chǎn)生感應(yīng)電壓;功能寄存器用于對(duì)芯片進(jìn)行操作控制;控制電路用于傳感器與外部接口電路的控制,負(fù)責(zé)數(shù)據(jù)的讀出與寫(xiě)入;地址索引寄存器與數(shù)據(jù)寄存器分別用于對(duì)功能寄存器的地址選擇及數(shù)據(jù)的讀寫(xiě);采樣保持及A/D轉(zhuǎn)換電路用于對(duì)傳感器陣列所產(chǎn)生的電壓進(jìn)行采樣。另外,多頻振蕩電路用于為芯片提供時(shí)鐘信號(hào)。
MBF200共有19個(gè)寄存器,對(duì)芯片的讀/寫(xiě)操作實(shí)際上就是對(duì)寄存器的操作,所以了解寄存器的功能才能學(xué)會(huì)芯片的使用。由于本文采用的是串行外圍設(shè)備接口(SPI)的從操作模式,這里僅對(duì)用到的一些重要寄存器進(jìn)行說(shuō)明。
(1)CTRLA(控制寄存器A)
控制寄存器A的功能說(shuō)明如表1所列。
寫(xiě)該寄存器開(kāi)始圖像轉(zhuǎn)換,讀該寄存器來(lái)獲取A/D轉(zhuǎn)換結(jié)果。GETSUB、GETIMG和GETROW三位選定了相應(yīng)的一種圖像存取模式,并且初始化了A/D轉(zhuǎn)換器的轉(zhuǎn)換序列。ANISEL位確定了A/D轉(zhuǎn)換的來(lái)源。置GETSUB位為1,開(kāi)始捕獲由RAH、RAL、CAL、REH、REL、CEL確定的矩形圖形區(qū)域。置GETIMG位為1,開(kāi)始捕獲整幅圖像而不用考慮行列寄存器。置GETROW位為1,開(kāi)始捕獲由RAH、RAL確定的行單元數(shù)據(jù)。向GETSUB、GETIMG和GETROW中的任意一位寫(xiě)入1個(gè)“1”,都將放棄當(dāng)前對(duì)應(yīng)模式的圖像獲取并重新開(kāi)始該新模式的圖像獲取,而且這3位每次最多只能有1位被置成1。如果這3位中有多于一位被置成1,那么圖像的轉(zhuǎn)換就不會(huì)開(kāi)始。當(dāng)GETIMG被置成l后,MBF200會(huì)完成以下一系列動(dòng)作:
?、傩械刂繁恢贸蒓;
②列地址被置成O;
?、圩詣?dòng)開(kāi)始圖像的行獲??;
?、艿谝粋€(gè)像素的A/D轉(zhuǎn)換自動(dòng)開(kāi)始。
當(dāng)向CTRLA中寫(xiě)“O”時(shí),除了會(huì)清除ANSEL之外,并不會(huì)使MBF200放棄當(dāng)前的圖像。讀CTRLA的狀態(tài)可以得到A/D轉(zhuǎn)換的結(jié)果。
(2)CTRLB(控制寄存器B)
控制寄存器B的功能說(shuō)明如表2所列。
在SPI模式中,AFDEN與ENABLE聯(lián)合使用,通過(guò)產(chǎn)生中斷來(lái)喚醒微處理器和啟動(dòng)A/D轉(zhuǎn)換使能,這樣可以節(jié)省電量??刂萍拇嫫鰿TRLB中的AUTOINCEN位用于設(shè)置是否啟動(dòng)自動(dòng)增加行列地址寄存器的值。當(dāng)此位被設(shè)置1時(shí),若某一個(gè)像素的A/D轉(zhuǎn)換值被讀取,則列地址自動(dòng)增加,同時(shí)下一個(gè)像素的A/D轉(zhuǎn)換自動(dòng)開(kāi)始。一旦某行的最后一個(gè)像素的灰度值被讀取,則行地址自動(dòng)增加,同時(shí)這行的第一個(gè)像素的A/D轉(zhuǎn)換自動(dòng)開(kāi)始。
(3)ICR中斷控制寄存器
這個(gè)寄存器主要控制指紋傳感器的2個(gè)中斷源,中斷請(qǐng)求O與手指探測(cè)中斷對(duì)應(yīng),中斷請(qǐng)求1與引腳EXTINT的外部中斷對(duì)應(yīng)。各位的詳細(xì)說(shuō)明請(qǐng)查閱參考文獻(xiàn)。
2 硬件接口設(shè)計(jì)
2.1 MBF200的SPI接口特性
在SPI從模式中,傳感器支持的數(shù)據(jù)傳輸格式為SPImode(O,0)和SPI mode(1,1)。如圖2所示,MBF200的時(shí)序要求如下:
?、僭跀?shù)據(jù)傳輸中,SCS保持低電平;
?、贛OSI線上的數(shù)據(jù)在SCK的上升沿被采樣;
?、跾CK在空閑狀態(tài)時(shí),可為高電平,也可為低電平;
?、躆ISO線上的數(shù)據(jù)在SCK的下降沿發(fā)生變化;
⑤最高位先被移出;
⑥指令格式是8位指令碼加8位地址碼和8位數(shù)據(jù)。
2.2 S3C2410的SPI接口特點(diǎn)
S3C2410有2個(gè)串行外圍設(shè)備接口(SPI),每個(gè)SPI接口都有2個(gè)分別用于發(fā)送和接收的8位移位寄存器。在SPI通信中,數(shù)據(jù)同時(shí)被發(fā)送(串行移出)和接收(串行移入),8位串行數(shù)據(jù)的傳輸速率由相關(guān)的控制寄存器決定。
SPI的接口特性:與SPI接口協(xié)議v2.11兼容;8位用于發(fā)送的移位寄存器;8位用于接收的移位寄存器;8位預(yù)分頻邏輯;查詢、中斷和DMA傳送模式。
把S3C2410的SPI配置為主設(shè)備,完成對(duì)MBF200的接口設(shè)計(jì),硬件連接如圖3所示。SPIMOSI0作為主設(shè)備的輸出,SPIMISOO作為主設(shè)備的輸入,SPICLK0用作SPI通信的串行時(shí)鐘。且S3C2410支持4種不同的傳輸格式,可以保證主從設(shè)備時(shí)序的一致性。
S3C2410的SPI接口操作:通過(guò)SPI接口,S3C2410可以與MBF、200同時(shí)發(fā)送和接收8位數(shù)據(jù)。串行時(shí)鐘線與兩條數(shù)據(jù)線同步,用于移位和數(shù)據(jù)采樣。數(shù)據(jù)傳輸速率由SPPREn寄存器控制,通過(guò)修改預(yù)分頻值來(lái)調(diào)整波特率。當(dāng)GPGO輸出為低電平時(shí),向SPDATn寄存器寫(xiě)入字節(jié)數(shù)據(jù),SPI發(fā)送和接收操作就同時(shí)啟動(dòng)。
3 軟件設(shè)計(jì)
軟件設(shè)計(jì)主要實(shí)現(xiàn)S3C2410控制MBF200型指紋傳感器進(jìn)行操作,采用移植性強(qiáng)的C語(yǔ)言在ARM的集成開(kāi)發(fā)環(huán)境ADS1.2下編寫(xiě),主程序流程如圖4所示。目標(biāo)板上電后就對(duì)整個(gè)采集系統(tǒng)進(jìn)行初始化操作,包括ARM系統(tǒng)的初始化和MBF200的初始化,對(duì)它們進(jìn)行參數(shù)配置。初始化完成后就開(kāi)始檢測(cè)指紋傳感器上是否有手指,如果有就發(fā)生中斷,在中斷服務(wù)程序進(jìn)行指紋圖像的采集,并保存起來(lái)。
3.1 S3C2410系統(tǒng)的初始化
任何一個(gè)系統(tǒng)啟動(dòng)的最初任務(wù)都是硬件的初始化,為后面的應(yīng)用程序的執(zhí)行準(zhǔn)備好一些基本的硬件環(huán)境,包括看門(mén)狗和中斷的設(shè)置、CPU的速度和時(shí)鐘頻率的配置、相關(guān)存儲(chǔ)器的設(shè)置,以及與SPI通信相關(guān)的寄存器的設(shè)置。部分代碼如下:
3.2 MBF200的初始化
MBF200共有19個(gè)寄存器,除了SRA、CIDH、CIDL之外,在指紋采集之前必須對(duì)其初始化。
3.3 指紋采集程序設(shè)計(jì)
指紋采集工作由檢測(cè)到手指中斷開(kāi)始,向CTRLA寄存器寫(xiě)入0x02開(kāi)始整個(gè)區(qū)域的指紋圖像數(shù)據(jù)采集;行捕獲時(shí)間和A/D轉(zhuǎn)換時(shí)間結(jié)束后,讀取CTRLA寄存器,即當(dāng)前像素點(diǎn)的8位數(shù)字量數(shù)值。每次讀取當(dāng)前像素點(diǎn)的數(shù)值后自動(dòng)進(jìn)行下一像素點(diǎn)的A/D轉(zhuǎn)換,循環(huán)讀取CTRLA的值到指定的空間就可以獲得一枚指紋圖像的數(shù)據(jù)。指紋采集程序流程如圖5所示。
由于MBF200與指紋傳感器FPS200的結(jié)構(gòu)和采集原理類似,根據(jù)FPS200的行捕獲時(shí)間和A/D轉(zhuǎn)換時(shí)間的算法,可估算出MBF200的行捕獲時(shí)間TROW和A/D轉(zhuǎn)換時(shí)間TA/D。計(jì)算方法如下:
其中:TS為傳感器時(shí)鐘周期,DT[6:O]為放電時(shí)間常數(shù)。由于2個(gè)等待時(shí)間不易過(guò)短,所以估算出丁RROW為
結(jié) 語(yǔ)
隨著信息安全越來(lái)越受重視,指紋自動(dòng)識(shí)別系統(tǒng)會(huì)有更廣闊的應(yīng)用空間。本文所研究的是指紋識(shí)別系統(tǒng)的最前端——指紋采集模塊,結(jié)合MBF200自身的特點(diǎn),提出了與S3C2410間的SPI通信方式。這種方式結(jié)構(gòu)簡(jiǎn)單,使用方便,易于嵌入。
評(píng)論