999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

滑動式指紋識別模塊TCS3C-TCD42A的單片機控制

2008-01-01 00:00:00宋志強
計算機時代 2008年1期

摘要:介紹了利用單片機Atmega48與指紋識別模塊TCS3C-TCD42A構(gòu)建小型指紋識別系統(tǒng)的全過程,簡要介紹了TCS3C-TCD42A模塊的功能和特點,給出了指紋識別系統(tǒng)結(jié)構(gòu)框圖。論述了單片機時指紋識別模塊的控制。包括單片機與模塊的接口方法、通信協(xié)議、主程序、接收中斷處理模塊和通信處理模塊的編程思路及注意事項。該系統(tǒng)在實際使用過程中,運行穩(wěn)定,通信性能良好,已經(jīng)成功應(yīng)用于指紋保管箱產(chǎn)品中。

關(guān)鍵詞:指紋識別模塊;串口通信協(xié)議;單片機;AUnega48

0 引言

隨著現(xiàn)代經(jīng)濟和社會的不斷發(fā)展,越來越多的場合需要身份確認(rèn),而傳統(tǒng)的身份識別技術(shù)已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足要求。指紋識別作為一種新興的鑒別個人身份的方法,已經(jīng)廣泛地在安全部門得到應(yīng)用。由于指紋具有不可復(fù)制性、惟—性、穩(wěn)定性的特點,所以得到了越來越多的應(yīng)用。目前世界上許多公司和科研機構(gòu)都在進行指紋識別技術(shù)的研究,并取得了一定的成果,推出了許多指紋產(chǎn)品。這些產(chǎn)品已經(jīng)開始在部分民用領(lǐng)域得到應(yīng)用,如用于指紋門禁,指紋考勤,指紋保管箱等。信息社會的到來,使指紋識別系統(tǒng)在身份認(rèn)證方面有著廣闊的應(yīng)用前景。

目前國內(nèi)大多采用光學(xué)按壓式和晶體電容按壓式兩種指紋傳感器,兩者共同的缺點是體積較大,無法應(yīng)用在體積較小的電子產(chǎn)品中。本文要介紹的是一款滑動式指紋識別模塊:TCS3C-TCD2A,它不要求用戶在驗證時按壓指紋,而只要將手指輕輕刷過傳感器表面,傳感器便能自動對手指進行連續(xù)的“快照”,然后這些快照被組合在一起,形成清晰的指紋影像。這種采集指紋的效果與按壓式指紋傳感器相當(dāng),但它無需用力按壓,使用更加方便。

1 TCS3C—TCD42A簡介

TCS3C-TCD42A是美國UPEK公司的產(chǎn)品(TouchStrip芯片組),其中TCS3C是—個長條狀的滑動式指紋傳感器。用于提取指紋圖像數(shù)據(jù)。TCD42A為高性能32位RISC芯片。為指紋處理和通信芯片,其內(nèi)部有4K的非易失性(NVM)內(nèi)存可供用戶存儲指紋信息。TCD42A集成了PeffectPrint算法捕獲手指滑過傳感器時的指紋數(shù)據(jù)后形成指紋圖像。該算法補償速度、平移、旋轉(zhuǎn)方面的變化,將其規(guī)格化為最優(yōu)質(zhì)的指紋圖像,配合其集成的PerfectMatch指紋模板提取和匹配算法,使用戶能夠獲得可靠的指紋識別效果。TCD42A還具有和上位機通信的功能,用戶按照通信協(xié)議,可開發(fā)出功能強大的指紋識別應(yīng)用系統(tǒng)。TCS3C和TCIM2A的實物圖如圖l所示。

TCS3C的特點如下:

(1)CMOS有源電容像點傳感技術(shù);

(2)最大手指滑動速度:20cm/S;

(3)圖像灰度:8位;

(4)圖像分辨率:508dpi;

(5)體積:17,65x 5xl 87ram;

TCD2D42A的特點如下:

(1)32位RISC結(jié)構(gòu);

(2)處理速度可達(dá)96 MIPS;

(3)4KB的非易失性內(nèi)存可供存儲指紋特征數(shù)據(jù);

(4)體積:lOxloxl 26 mnl;

(5)接口方式:UART和USB。

2 指紋識別系統(tǒng)構(gòu)成

電路采用Atmega48單片機作為控制核心。Atmega48是一款8位微控制器,具有高性能、低功耗的顯著特點。由于采用RISC精簡指令集結(jié)構(gòu),其指令集大多為單周期指令,具有高速運行的特點。3V供電時。未使用內(nèi)部看門狗的情況下,Atmega48的典型掉電電流小于luA,而且該單片機在1.8V一5.5V的電壓范圍內(nèi)均能正常工作,片內(nèi)自帶4K字節(jié)的flash、256字節(jié)的E2PROM,以及512字節(jié)SRAM并內(nèi)置AD轉(zhuǎn)換器、看門狗、3個16位的定時/計數(shù)器。

Atmega48作為上位機負(fù)責(zé)和TCD42A的通信。由它下達(dá)指紋登錄、比對、刪除等命令給TCD42A。TCD42A返回結(jié)果給Atmega48,以便上位機及時給用戶提示,如LED閃爍、蜂鳴器蜂鳴、電機轉(zhuǎn)動等。指紋識別系統(tǒng)結(jié)構(gòu)框圖如圖2所示:

TCS3C與TCD42A通過一條12Pin,0.Snlnl間隔的軟排線連接,TCD42A通過一條7Pin,0.Smm間隔的軟排線和單片機連接。TCD42A的U_TXl和U_RXl分別和Atmega48的RXD和TXD連接進行串口通訊。

由于TCD42A需要一個至少持續(xù)20ms的BREAK信號(持續(xù)的低電平)重啟,所以將Atmega48的PD4作為TCD42A的Wakeup信號。TCD42A被喚醒后,發(fā)送復(fù)位應(yīng)答幀,表示已經(jīng)可以通信了。TCD42A與單片機之間按照下面的通信協(xié)議進行通信。在實際應(yīng)用中建議BREAK信號保持50ms以上。

3 通信協(xié)議

參照通訊網(wǎng)絡(luò)互聯(lián)的標(biāo)準(zhǔn)7層模式,TCS3C-TCD42A指紋識別模塊與上位機交互時,使用4層通信模型(參見表1)。

該模塊支持串u和USB口兩種通信方式。協(xié)議的字節(jié)順序為little_endian,即低地址存放最低有效字節(jié)(LSB)。TCD42A的UART是一個標(biāo)準(zhǔn)的通用異步收,發(fā)接口,此接口讓用戶進行指令發(fā)送和通訊。接口默認(rèn)的通信速率為9600bps,根據(jù)需要,還可以設(shè)置為19200bps、38400bps、57600bps、115200bps、230400bps。

3.1 字節(jié)填充與字節(jié)替換

在此通信協(xié)議中,一些字符被保留為特殊用途,如XON/XOFF,DLE。STX除幀頭(Ox02)不需要特殊處理外,不論上位機還是模塊在發(fā)送數(shù)據(jù)前,均需對字符XON、XOFF、DLE、STX作字節(jié)填充。填充規(guī)則如表2所示。

和字節(jié)填充相反,上位機或模塊在收到數(shù)據(jù)后,除第一個字節(jié)(0x02)不需要處理外,對于特殊的2個字符要作字節(jié)替換。字節(jié)替換規(guī)則為字節(jié)填充的反變換。

3.2 鏈路層

鏈路層的幀格式如下所示:

STX+Header+Data+CRC

STX是—個字節(jié)(Ox02),是幀的開始標(biāo)志。

Header的長度為3個字節(jié),其中:

Header:

Bits 0-3:幀類型,共有12中數(shù)據(jù)類型,如數(shù)據(jù)幀、請求等待時間擴展幀等;

Bits 4-7:保留,必須置為O;

Header:

Bits 0-2:數(shù)據(jù)長度高位(參見Header[2]);

Bit 3:保留,必須置為0;

Bits 4-7:為數(shù)據(jù)幀的模16計數(shù),系統(tǒng)復(fù)位后初始值為0,其他類型幀時將其置為0。

Header:數(shù)據(jù)長度低位,和Header[1]里的3位組成ll位的域。

Data:傳輸層和應(yīng)用層數(shù)據(jù),在字節(jié)填充前最大長度為2047個字節(jié)。

CRC的長度為2個字節(jié),其值是對Header和Data的字節(jié)在進行字節(jié)填充前作CRC校驗得到的。CRC類型為依照CCI'VI\"V,41標(biāo)準(zhǔn)的CRCl6。特別要說明的是,若CRC的2個字節(jié)中出現(xiàn)了上述的特殊字符,在發(fā)送數(shù)據(jù)時也要進行字節(jié)填充。

3.3 傳輸層

傳輸層的第一包數(shù)據(jù)格式如下所示:

Header+Packet+Length+Data

Header占1個字節(jié),它的各位功能如表3所示。

Bit 4為1時表示此幀為傳輸層服務(wù)幀;

Bit 4為0時表示此幀不是傳輸層服務(wù)幀。

Packet Length:此為可選擇的2個字節(jié),它和來自Header的2位合起來表示應(yīng)用層的長度;

Data:應(yīng)用層的數(shù)據(jù)。

3.4 應(yīng)用層

應(yīng)用層的幀格式如下所示:

Tag+Data

Tag的長度為4個字節(jié),在此描述為32位的整型值,其中:

Bits 28-31:

(CL_COMMAND)0000:表示此為上位機要求模塊執(zhí)行命令;

(CL RESPONSE)0001:表示模塊對上位機命令的響應(yīng);

(CL_GUI_CALLBACK)0010:表示此為模塊的GUI回調(diào)包;

(CL_GUI_RESPONSE)0011:表示上位機對GUI回調(diào)包的響應(yīng)。

Tag的剩余28位根據(jù)高4位的不同而具有不同的意義:

若高4位是CL COMMAND,則Bits 16-27為命令碼,其余位為0;

若高4位是CL_RESPONSE,則Bits 16-27為命令碼,Bits0-15為錯誤,狀態(tài)碼,狀態(tài)碼為0表示成功。

高4位是0010或0011時,Tag的其他位均為0。

3.5 具體數(shù)據(jù)包分析示例

若上位機發(fā)送列舉所有指紋命令給指紋識別模塊,實際發(fā)送的數(shù)據(jù)如下:

02 00 00 07 28 04 00 00 00 0D 10 03 FC 6A

具體數(shù)據(jù)意義分析如表4所示:

4 軟件設(shè)計

上位機的軟件開發(fā)采用IAR公司的IAR EmbeddedWorkbench V4,21 for Atmel AVR.它集成了開發(fā)嵌入式系統(tǒng)所需要的文件編譯、項目管理、鏈接和調(diào)試工具。IAR EmbeddedWorkbench系列適用于開發(fā)基于8位、16位、32位微處理器的嵌入式系統(tǒng),其集成開發(fā)環(huán)境具有統(tǒng)一的界面,為用戶提供了一個易學(xué)、易用的開發(fā)平臺。IAR公司提出了“不同架構(gòu),惟一解決方案”的理念,用戶可以針對多種不同的耳標(biāo)處理器,在相同的集成開發(fā)環(huán)境中進行基于不同CPU的嵌入式系統(tǒng)程序開發(fā),有效地提高了工作效率,節(jié)省了工作時間。IAR一貫使用精簡的優(yōu)化技術(shù),其生成的可執(zhí)行代碼的數(shù)量遠(yuǎn)遠(yuǎn)少于其他同類編譯器生成代碼的數(shù)量,可以運行于更小尺寸、更低成本的處理器上,從而降低產(chǎn)品的開發(fā)成本。

4.1 主程序

軟件程序包括主程序和中斷服務(wù)程序。采用模塊化設(shè)計方法,各模塊之間相對獨立,這樣可以使得程序結(jié)構(gòu)清晰,便于今后進一步擴展系統(tǒng)的功能。主程序流程圖如圖3所示。其中初始化完成開中斷、設(shè)置定時器和串口、初始化驅(qū)動集成電路、指紋識別模塊復(fù)位等工作。電量檢測及處理模塊進行電池電量檢測,若電池電量不足發(fā)出報警聲音以提示用戶更換電池。程序根據(jù)用戶按下的登錄、驗證或刪除鍵由通信處理模塊進行不同的處理。若用戶在按下登錄或者驗證鍵后不作任何操作,程序在達(dá)到最大等待時間(10S)后將自動關(guān)機。蜂鳴器提示模塊、LED指示模塊將根據(jù)通信處理模塊的結(jié)果提示用戶操作結(jié)果。電機驅(qū)動模塊用于驅(qū)動電機,在等待2s后自動關(guān)機。

為了能讓單片機及時響應(yīng)和控制指紋識別模塊,盡量減少通信所占用的CPU時間,筆者在設(shè)計單片機通信程序時。將通信程序分為接收中斷處理模塊和通信處理模塊2部分,并將這2個模塊巧妙地進行組合,從而構(gòu)成整個單片機的通信程序。

4.2 接收中斷處理模塊

接收中斷處理模塊主要負(fù)責(zé)接收指紋識別模塊發(fā)送到單片機接收緩沖區(qū)的數(shù)據(jù),字節(jié)替換在此模塊內(nèi)進行。單片機接收到規(guī)定的字符數(shù)后,置接收完畢標(biāo)志,以表明接收緩沖區(qū)中有待處理的數(shù)據(jù)并請求通信處理模塊對其進行處理。接收中斷處理模塊流程圖如圖4所示。

4.3 通信處理模塊

通信處理模塊放在主程序中調(diào)用,根據(jù)用戶的按鍵不同,向指紋識別模塊發(fā)送不同的命令。發(fā)送的命令主要有列舉指紋用戶、登錄指紋、驗證指紋、刪除指紋等。特別要說明的是由于程序規(guī)定最大用戶數(shù)為10,所以在登錄指紋用戶前要先向指紋識別模塊發(fā)送列舉指紋用戶命令,只有在指紋用戶數(shù)小于最大用戶數(shù)時才可以登錄。由于此系統(tǒng)用于指紋保管箱,所以在驗證用戶也需要列舉用戶。如果指紋識別模塊內(nèi)沒有指紋用戶的話,任何人都可以開箱(指紋保管箱在初始狀態(tài)下是沒有指紋用戶的,所以任何人都可以開箱)。

通信處理模塊負(fù)責(zé)向指紋識別模塊發(fā)送命令和響應(yīng)來自模塊的數(shù)據(jù)包。串口發(fā)送采用查詢方式。筆者認(rèn)為此處沒有必要采用中斷,因為程序的開銷是差不多的。在發(fā)送數(shù)據(jù)之前,要先對數(shù)據(jù)進行CRC校驗和字節(jié)填充。通信處理模塊在接收到指紋識別模塊送來的一串完整數(shù)據(jù)后,進行CRC校驗,在通過CRC校驗后根據(jù)不同的數(shù)據(jù)作出不同的響應(yīng)。若超時沒有收到數(shù)據(jù)或者CRC校驗錯誤,則通信處理模塊重發(fā)命令或者響應(yīng)幀。

指紋登錄時用戶至少需要在指紋傳感器上劃三次指紋,上位機控制LED提示用戶。指紋識別模塊對三次錄入的指紋綜合處理提取特征,生成指紋模板存于TC42A。如果用戶的指紋質(zhì)量不好。則手指劃動次數(shù)會超過3次。為了提高登錄的成功率,程序沒有限制手指劃動的次數(shù),只要模塊端不上傳登錄失敗數(shù)據(jù)包,用戶可一直登錄,直到超過最大等待時間。

5 結(jié)束語

本文給出了單片機與指紋識別模塊之間進行異步串行通信的解決方案。此方案在實際使用過程中,運行穩(wěn)定,通信性能良好。從整個系統(tǒng)的設(shè)計可以看出:基于TCS3C-TCD42A的指紋識別模塊采用Atmega48作為上位機,具有體積小巧、價格低廉的特點。目前該系統(tǒng)已經(jīng)成功應(yīng)用于指紋保管箱產(chǎn)品中。本文提出的基于TCS3C-TCD42A的指紋識別系統(tǒng)是把采集、處理、控制于一身的系統(tǒng),可以做得很小,也適合用于防盜門、高檔的汽車門、汽車遙控器、手機、PDA等產(chǎn)品中。

主站蜘蛛池模板: 国产综合日韩另类一区二区| 超碰91免费人妻| 乱人伦视频中文字幕在线| 日韩天堂网| 国产农村妇女精品一二区| 在线视频一区二区三区不卡| 制服丝袜国产精品| 欧美一区日韩一区中文字幕页| 波多野结衣一区二区三区AV| 国产一级在线观看www色| 国产福利一区二区在线观看| 欧美高清三区| 青草视频免费在线观看| 99偷拍视频精品一区二区| 亚洲成人在线免费观看| 在线免费看片a| 婷婷六月激情综合一区| 57pao国产成视频免费播放| 亚洲日韩Av中文字幕无码| 国产视频只有无码精品| 国产亚洲视频中文字幕视频| 婷婷综合亚洲| 国产成人免费| 毛片卡一卡二| 午夜性爽视频男人的天堂| 青青草原国产精品啪啪视频| 久久99精品久久久久纯品| 免费人成在线观看成人片 | 国产综合网站| 直接黄91麻豆网站| 伊人国产无码高清视频| 国产欧美日韩精品综合在线| 久久青草视频| 69视频国产| 欧美精品在线免费| 久久9966精品国产免费| 91精品视频在线播放| 国产成人亚洲综合a∨婷婷| 天堂成人在线| 中文字幕在线欧美| 88av在线播放| 91欧美亚洲国产五月天| 亚洲视屏在线观看| 中国毛片网| 精品久久久无码专区中文字幕| 亚洲国产清纯| 欧美一级视频免费| 手机精品福利在线观看| 免费一看一级毛片| 欧美中出一区二区| 一级成人a做片免费| 国产精品亚洲专区一区| 九色在线观看视频| 亚洲一区二区三区麻豆| 精品成人免费自拍视频| 欧美日韩中文字幕在线| 新SSS无码手机在线观看| 在线欧美国产| 国产精品久久久久久搜索| 91伊人国产| 538国产在线| 国产精品无码AV中文| 喷潮白浆直流在线播放| 91精品国产无线乱码在线| 岛国精品一区免费视频在线观看| 国产欧美日韩资源在线观看| 亚洲人成成无码网WWW| 国产精品毛片一区| 国产av一码二码三码无码| 国产成人啪视频一区二区三区| 8090午夜无码专区| 一级看片免费视频| 日本亚洲欧美在线| 91精品情国产情侣高潮对白蜜| 精品少妇人妻一区二区| 毛片最新网址| 亚洲天堂在线免费| 国产特级毛片| 国产AV无码专区亚洲精品网站| 国产人碰人摸人爱免费视频 | 多人乱p欧美在线观看| 欧美一级夜夜爽www|