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