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