一種具有指紋識別功能IC卡讀寫器的開發
文章出處:http://hz-huyue.com 作者:中國電子網 人氣: 發表時間:2011年09月18日
隨著IC卡技術的空前發展,非接觸式IC卡技術具有快速便利、可靠性高、安全性好、抗干擾能力強、壽命長、防偽性好和一卡多用等優點,在門禁管理、身份認證、電子現金消費等方面得到了廣泛的應用。生物識別技術是近幾年來發展起來的一門新技術,利用人體的生物特征鑒別每個人的真實身份,主要包括虹膜、面孔、 指紋、掌紋等,其中以指紋識別技術最為成熟穩定。IC卡技術和指紋識別技術的結合使用,具有優勢互補的特點。以IC卡作為個人身份及指紋信息的存儲載體,利用指紋的唯一性達到個人身份鑒別的目的,為IC卡技術和指紋識別技術的應用提供了更加廣泛的發展空間。本文介紹了具有指紋識別功能的IC卡讀寫器的設計方法。
1 硬件電路設計
1.1 非接觸式IC卡工作原理
非接觸IC卡又稱射頻卡,是射頻識別技術、無線通信技術和IC卡技術有機結合的產物。它解決了卡無源和免接觸的難題,具有方便快捷、不易損壞的特點。本設計采用的IC卡是Philips公司的Mifare One智能卡。該卡片有容量為8K位的EEPROM,分為16個扇區,每個扇區為4塊,每塊16個字節,以塊為存取單位,每個扇區都有獨立的一組密碼以及訪問控制,具有聯沖突機制,支持多卡操作,讀寫距離10cm以內。本讀寫器的讀寫模塊采用自行設計的基于MF-RC531讀寫芯片的讀寫模塊設計方案。讀寫模塊天線和卡之間通過無線電感應交換數據。天線發出頻率固定的電磁波(13.6MHz),射頻卡接收到電磁波后,由卡中自帶的LC串聯諧振電路產生共振,從而使電容充電有了電荷,再接一個單向導電的電子泵,將電荷送到另一個電容內存儲,經過濾波整流后產生2V的電壓作為電源供卡片工作使用??ㄆ幚斫邮盏拿詈蛿祿⒔Y果返回給讀寫器。
1.2 指紋識別技術
指紋識別技術主要包括四方面的功能:采集指紋圖像、提取指紋特征、對比。采集指紋的設備有三類:光學傳感器、硅晶體傳感器、超聲波掃描設備。通過指紋采集設備得到人體指紋的灰度圖像后首先進行圖像預處理,主要步驟包括方向圖計算、圖像增強、二值化、細化等。經過預處理的指紋圖像消除了原圖像的噪聲、斷紋和紋線模糊等,極大地改善了圖像質量。然后進行特征提取和后處理。特征提取是通過指紋上的“節點”獲得的。“節點”包括指紋紋路的分叉、起始點或孤立點的坐標位置等。通常人的一個手指指紋有70個節點,用這種方法大約會產生490個數據,對這些數據進行后處理就生成指紋模板并存儲起來,大小一般不越過250字節,通常為100多個字節。指紋模板數據大小因指紋不同略有波動。
1.3 硬件電路設計
本具有指紋識別功能的IC卡讀寫器的硬件包括單片機、鍵盤、顯示模塊、EEPROM存儲器、IC卡讀寫模塊、指紋識別模塊、指示信號電路、上位機RS232通信接口、RS485網絡接口等,如圖1所示。 主板電路采用Cygnal公司的C8051F023單片機,它具有與MCS-51兼容、速度快、外圍接口豐富等特點,可以滿足本設計的需求,故選用它作為控制核心。主板簡化電路圖如圖2所示。單片機P3口與讀寫模塊MFRC531芯片D0~D7口相連,用做MCU和讀寫模塊之間的數據線;P25用于讀寫模塊的片選線,與模塊NCS腳相連;P17用于模塊的軟復位信號線,與MFRC531的RSTPD腳相連;外部中斷INT0(P10)與模塊中斷請求IRQ腳相連,對應模塊的請求中斷;MCU讀寫控制的/RD和WR分別與MFRC531的NRD和NWR相連;地址鎖存控制ALE與MFRC531的ALE相連;P14和P15分別用來控制指示燈和蜂鳴器;另外P3口還通過驅動芯片74HC245驅動分辨率為128×64的液晶顯示模塊;P27作為驅動芯片的片選;MCU的硬串口UART0與指紋識別模塊的串行通信口相連,用于對指紋識別模塊的控制;MCU的硬串口UART1作為上位機RS232通信端口或者RS485網絡通信端口使用;P04和P11作為軟串口用于對鍵盤模塊的控制,整個電路板的電源通過變壓器以及直流電流轉換芯片獲得5V及3.3V電壓。
2 軟件開發
讀寫器軟件開發主要包括四部分:對讀寫器模塊MFRC531應用程序的開發、對指紋識別模塊應用程序的開發、液晶顯示程序的開發以及其他相關輔助電路的開發。
2.1 讀寫IC卡工作流程
(1)讀寫模塊初始化,對MFRC531模塊初始化。初始化相應寄存器使模塊工作在符合ISO14443A協議的工作狀態下,并且具有ISO14443的幀和錯誤檢測功能,支持快速的CRYPTO1加密算法。
(2)復位應答,復位應答操作通知模塊在天線有效范圍內尋找MIFARE ONE卡片,不斷發出REQA的請求命令,天線范圍內的卡片發出回應命令ATQA,返回卡片類型代碼0004,代碼返回給MCU進行卡片類型識別處理。
(3)反沖突環操作,如果在讀寫器天線范圍內有多張卡片存在,需要經過反沖突環的操作,通過卡片的唯一序列號,選出其中的一張卡片。
(4)選擇卡片操作,在成功進行反沖突環的操作后,根據已經得到的卡片序列號,必須進行選擇卡片操作,建立與所選卡片的通信。
(5)三輪認證操作,對卡的某個固定存儲位置訪問時,為了保證對卡片操作的保密性和合法性,卡片和讀寫器之間需要三輪密鑰確認過程,成功確認后所有存儲器操作都是保密和合法的。 經過上述步驟后即可對卡片操作,可以執行讀、寫、增值、減值、重儲和傳送等命令。讀寫IC卡操作流程如圖3所示。
2.2 指紋識別流程及主要指令
(1)模塊初始化,MCU對指紋識別模塊初始化,設置其工作模式為命令工作模式,串口通信波特率為57600bps。
(2)生成模板,通過指紋傳感器錄入指紋圖像三次并生成指紋模板保存在模板緩沖區(Mb_Buffer)中。
(3)上傳模塊,將模板緩沖區中(Mb_Buffer)的內容上傳到MCU。
(4)下載模塊,從MCU下載一個指紋模板到模板緩沖區(Mb_Buffer)中。
(5)生成特征,通過指紋傳感器錄入一副指紋圖像并生成指紋征值,存在模塊的特征值緩沖區(Tz_Buffer)中。
(6)對比指紋,模板緩沖區(Mb_Buffer)與特征緩沖區(Tz_Buffer)中內容進行對比,并給出比對結果,返回給MCU。 指紋識別程序分指紋模板錄入和指紋現場對比兩種情況,圖4、圖5給出了流程圖。
2.3 兼容指紋識別的IC卡讀寫器應用程序
讀寫器根據不同的用途,主要分為發卡讀寫器和身份認證讀寫器。發卡讀寫器一般由系統控制中心發卡處使用。而身份認證讀寫器一般用在卡的使用終端,實現對持卡人合法性的認證。
發卡讀寫器應用的主要流程是:首先刷卡錄入用戶的指紋圖像,指紋采集過程需要對同一指紋錄入三次,對三次指紋綜合處理提取特征,生成指紋模板;然后將指紋模板上傳到MCU,讀寫器對指紋模板進行加密處理后寫入卡片;最后在卡中寫入用戶其他相關信息,完成發卡過程。 終端身份認證過程的主要流程是:持卡人刷卡后,讀寫器將卡中存儲的指紋模板信息解密后下載到指紋識別模塊的模板緩沖區中,然后通過傳感器采集持卡人指紋,指紋識別模塊生成指紋特征值,并將值存在該模塊的特征值緩沖區中并與模板緩沖區模板信息進行比對;根據比對結果判定持卡人的合法性,通過后才可以進行其他相關操作。 兼容指紋識別的IC卡讀寫器可以應用在需要身份認證的門禁系統、考試身份認證以及其他安全性要求比較高的身份認證管理系統中。
本文討論了一種具有指紋識別功能的IC卡讀寫器的設計方法。指紋識別技術和IC卡技術的結合使用,大大提高了系統的可靠性和安全性。衡量指紋識別性能的重要標志是識別率。識別率包括FRR(拒真率)和FAR(認假率)兩部分。FRR和FAR是一個反比的關系,根據不同的用途,權衡易用性和安全性,調整這兩個值的大小,以滿足系統設計需要。本讀寫器已經在實驗室研發成功,運行穩定,安全可靠,即將投入某門禁系統使用。