MBF200在指紋采集系統(tǒng)中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:介紹MBF200的性能、結(jié)構(gòu)及工作原理。實(shí)現(xiàn)基于MBF200的SPI型指紋采集系統(tǒng)設(shè)計(jì)。該采集系統(tǒng)具有自動(dòng)檢測(cè)指紋、結(jié)構(gòu)簡(jiǎn)單、使用方便的特點(diǎn)。
關(guān)鍵詞:DSP SPI MBF200 指紋采集系統(tǒng)
引 言
1 MBF200結(jié)構(gòu)與性能
MBF200是富士通公司的電容式固體指紋采集傳感器,能采集到500dpi的指紋圖像。它的傳感器是256×300的陣列,可以在3.3V~5V的寬電壓范圍內(nèi)操作。MBF200的性能主要有以下幾點(diǎn):
① 集成了一個(gè)8位A/D變換器。A/D變換器的輸入可以是MBF200的指紋傳感器陣列的輸出,也可以是由
MBF200的AIN引腳接入的模擬信號(hào)。
② 帶有3種總線接口,即8位微處理器(MCU)總線接口、集成的USB全速接口及串行周邊設(shè)備接口(SPI),使芯片的應(yīng)用設(shè)計(jì)更加靈活。
③ 特有自動(dòng)指紋檢測(cè)功能。
MBF200的內(nèi)部結(jié)構(gòu)如圖1所示。
無論在哪一種總線接口模式下,對(duì)MBF200的控制都是通過寫它的控制寄存器來完成的,包括CTRLA、CTRLB、CTRLC。MBF200共有19個(gè)寄存器。
值得提出的是,MBF200的時(shí)鐘有兩種選擇。根據(jù)圖1可以看出:“多諧振蕩”和“晶體電路”就是它的兩組可選的時(shí)鐘源。CTRLB中的位1(XTALSEL)是用來在這兩者之間進(jìn)行選擇的。XTALSEL=0,表示選用內(nèi)部的“多諧振蕩”作為MBF200的時(shí)鐘;XTALSEL=1,表示時(shí)鐘源來自芯片的XTAL1引腳,此時(shí),芯片既可以外接有源晶體,也可以接無源晶體。CTRLB的各位含意會(huì)在后面介紹。
在MBF200的三種接口之中,SPI接口是比較簡(jiǎn)捷的一種,包括SCK、MISO、MOSI和SCS四條信號(hào)線。此時(shí),它的時(shí)鐘源可以從外部輸入;也可以在外接一個(gè)晶體后,利用MBF200內(nèi)部的晶體電路來獲得時(shí)鐘源。圖1中,在選擇了SPI模式后,它的其它兩種模式(USB、MCU)是自動(dòng)禁止的。實(shí)際上,MBF200與控制芯片的SPI接口時(shí),它只能工作在SPI的從模式下(slave),只有當(dāng)MBF200工作于USB模式下時(shí),它才是作為一個(gè)SPI的主設(shè)備(master)。
MBF200的一些狀態(tài)寄存器,如DTR、DCR、PGC、THR等,需要在進(jìn)行指紋采集之前被初始化。MBF200共有19個(gè)寄存器。這里僅僅對(duì)兩個(gè)比較重要的寄存器CTRLA、CTRLB進(jìn)行說明。
1.1 CTRLA(控制寄存器A)
寫該寄存器來初始化圖像轉(zhuǎn)換;讀該寄存器來讀取A/D轉(zhuǎn)換的結(jié)果。
GETSUB、GETIMG和GETROW三位選定了一種圖像存取模式并且初始化了A/D轉(zhuǎn)換器的轉(zhuǎn)換序列。 AINSEL位選定了A/D轉(zhuǎn)換器的來源。向GETSUB、GETIMG和GETROW中的任意一位寫入一個(gè)“1”,都將放棄當(dāng)前對(duì)應(yīng)模式的圖像攝取并重新開始新的該模式的圖像攝取,而且這三位每次最多只能有一位被置成“1”。如果這三位中有多于一位被置成“1”,那么圖像的轉(zhuǎn)換就不會(huì)開始。當(dāng)GETIMG被置成“1”后,MBF200會(huì)完成以下一系列動(dòng)作:
◇行地址被置成0;
◇列地址被置成0;
◇自動(dòng)開始圖像的行攝取;
◇第一個(gè)象素的A/D轉(zhuǎn)換自動(dòng)開始。
當(dāng)向CTRLA中寫“0”時(shí),除了會(huì)清除AINSEL之外,并不會(huì)使MBF200放棄當(dāng)前的圖像。讀CTRLA的狀態(tài)可以得到A/D的轉(zhuǎn)換的結(jié)果。的上升沿會(huì)使A/D轉(zhuǎn)換器開始下一次轉(zhuǎn)換。
1.2 CTRLB(控制寄存器B)
CTRLB必須在程序的最開始對(duì)它的位0和位2置“1”,以使能MBF200。
控制寄存器A、B的各位含意如表1所列。
2 MBF200的SPI接口特點(diǎn)
SPI協(xié)議是一個(gè)同步串行數(shù)據(jù)傳輸協(xié)議,協(xié)議假定微控制器的SPI移位寄存器在SCLK的下降沿動(dòng)作。對(duì)于MBF200而言,在時(shí)鐘上升沿鎖存MOSI引腳的數(shù)據(jù),在下降沿將數(shù)據(jù)送至MISO引腳,如圖2所示。MBF200的SPI通信協(xié)議的具體內(nèi)容如下:
◇MOSI線上的數(shù)據(jù)在SCK的上升沿被采樣;
◇MISO線上的數(shù)據(jù)在SCK的下降沿發(fā)生改變;
◇SCK在空閑狀態(tài)時(shí),可以為高電平,也可以為低電平;
◇串行傳輸過程中,高位在前(最先被移出)。
3 MBF200的SPI接口應(yīng)用
下面結(jié)合MBF200的SPI接口特點(diǎn),介紹如何以TMS320VC5402(簡(jiǎn)稱5402)作為主控制器,完成MBF200對(duì)指紋數(shù)據(jù)的采集。5402的McBSP是與SPI兼容的。這里,把5402配置成SPI的主設(shè)備(master),MBF200工作在SPI協(xié)議下的從模式(slave)。多通道緩沖串行口McBSP的功能是提供器件內(nèi)外數(shù)據(jù)的串行交換。同以前的串口相比,McBSP串口具有相當(dāng)大的靈活性。表2給出了有關(guān)5402的McBSP引腳說明[1]。
5402提供的時(shí)鐘停止模式可用于SPI協(xié)議通信。當(dāng)McBSP被配置為時(shí)鐘停止模式時(shí),發(fā)送器和接收器在內(nèi)部是同步的,即可將發(fā)送數(shù)據(jù)幀時(shí)鐘(BFSX)用作從器件使能(即),而將發(fā)送數(shù)據(jù)位時(shí)鐘(BCLKX)用作SPI協(xié)議中SCK。由于接收數(shù)據(jù)位時(shí)鐘(BCLKR)和接收數(shù)據(jù)幀時(shí)鐘(BFSR)在內(nèi)部分別與BFSX和BCLKX相連,因此,該引腳不能用于SPI模式。
當(dāng)McBSP被配置為一個(gè)主設(shè)備時(shí),發(fā)送輸出信號(hào)(BDX)被用作SPI協(xié)議的MOSI信號(hào),而接收輸入信號(hào)(BDR)則被用作MISO信號(hào)。McBSP用作主設(shè)備時(shí),與MBF20的SPI接口如圖3所示。DSP的CLKX用作SPI的串行位同步時(shí)鐘;BDX用作SPI的主控制器的輸出;BDR用作SPI的主控制器的輸入;BFSX用作SPI的串行幀同步信號(hào)。當(dāng)5402的McBSP被用于時(shí)鐘停止模式,并且設(shè)置CLKSTP=10,CLKXP=1時(shí),McBSP的SPI時(shí)序與MBF200的時(shí)序吻合,如圖4所示。
4 采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
4.1 硬件設(shè)計(jì)
5402外擴(kuò)RAM和ROM。RAM用來存放指紋數(shù)據(jù),ROM用來存放DSP程序。采集系統(tǒng)的各部分連接如圖5所示。其中,MAX3111是提供一個(gè)RS232接口,通過這個(gè)接口,指紋采集系統(tǒng)可以向外(如PC機(jī))提供指紋數(shù)據(jù)。DSP和MBF200都是3.3V供電。MBF200無需外接晶體,而是選用內(nèi)部12MHz振蕩器來提供時(shí)鐘。
4.2 軟件設(shè)計(jì)
要完成MBF200與5402之間的SPI接口通信,還必須在5402上運(yùn)行程序。這個(gè)程序?qū)τ?402的工程師來說很簡(jiǎn)單,軟件流程如圖6所示。只是有一點(diǎn)值得注意:當(dāng)利用5402接收指紋數(shù)據(jù)時(shí),由于MBF200在某一行沒有完成之前,幀信號(hào)必須一直有效,就是說這一幀的長(zhǎng)度為256×8位。所以,只能用5402的DMA來接收,DMA的接收幀長(zhǎng)應(yīng)該配置為128×16位。5402的部分匯編程序如下:
……;(MCBSP的初始化)
*打開自動(dòng)緩沖單元(ABU),打開DMA進(jìn)行128字×16位幀的DMA接收,通道0
STM #DMSRC1,DMSA ;設(shè)置源地址為DRR10
STM #DRR10,DMSDN
STM #DMDST1,DMSA ;設(shè)置目的地址為3200H
STM #3200H,DMSDN
STM #DMCTR1,DMSA ;設(shè)置緩沖區(qū)的大小為80H個(gè)單字
STM #80H,DMSDN
STM #DMSFC1,DMSA
STM #0001000000000000B,DMSDN
STM #DMMCR1,DMSA
STM #0101000001001101B,DMSDN
STM #DMIDX0,DMSA
STM #0001H,DMSDN
STM #0000001000000011B,DMPREC
……;(這里是INT0的中斷服務(wù),用于接收MBF200的數(shù)據(jù))
RET
全部代碼已經(jīng)通過了調(diào)試,可以取得MBF200 的指紋數(shù)據(jù),實(shí)現(xiàn)指紋采集的目的。圖7是由MBF200采集到的指紋圖像。該圖是將原始數(shù)據(jù)通過RS232傳送給PC機(jī),然后利用Matlab工具把這些數(shù)據(jù)轉(zhuǎn)化成圖像的。
結(jié) 語
基于MBF200的指紋采集系統(tǒng)使用起來很方便,易于嵌入到其它的系統(tǒng)當(dāng)中。該采集系統(tǒng)已經(jīng)用于一款指紋鎖的設(shè)計(jì)之中。