





摘 要:針對目前“嵌入式指紋識別系統在性價比及指紋算法的效率和準確性上存在不足”的問題,介紹了一種基于STM32芯片及SX-T13模塊實現嵌入式指紋識別系統的設計方法。指紋采集部分采用CMOS光學傳感器。軟件設計采用模塊化編程,設計的嵌入式自動指紋考勤機體積小、可移動,能獨立完成指紋采集、存儲、比對和顯示等考勤功能,通過串口可以與PC相連。保證考勤數據的真實性,真正體現公開、公平和公正,能進一步提高企業管理的效率和水平。
關鍵詞:指紋識別;SMT32;指紋傳感器;識別算法
文章根據企業和學校人員管理的需求,設計了一款基于ARM平臺的嵌入式自動簽到系統。通過錄入指紋來對已存儲的指紋進行對比、查詢,并具有對采集的指紋進行注冊、記錄、顯示和報警等功能,該系統能夠通過和原始數據進行分析和計算,實現快速的統計,并得出需要的結果。
1 嵌入式處理器簡介
嵌入式系統是以應用為目的,并且軟硬件均可以裁剪的計算機系統,主要用于應用系統對成本、體積、功耗、功能以及可靠性等方面要求較高的場合。它由嵌入式微處理器、外圍器件及用戶的程序三方面組成,用于對其他設備的監視、管理和控制作用。
2 硬件組成
系統硬件主要包括:指紋采集模塊(光學指紋傳感器、高速DSP處理器、高性能指紋比對算法、大容量FLASH芯片、串口接口模塊、電源模塊)、指紋數據存儲模塊(SRAM)、指紋程序存儲模塊(FLASH)、UART模塊、處理結果顯示模塊等。
2.1 SX-T13指紋識別模塊
SX-T13模塊內部集成運用了第7代指紋識別算法,結合傳統算法通過提取特征點數據和抽象圖像數據,實現了高識別率和低誤識率;該模塊的通過率可高達97%以上,做到了十萬分之一以下的誤識率。其支持外部存儲功能,將有效指紋存儲到外部FLASH芯片中,通常版配置512K flash,除去應用程序占用的內存,剩余空間可存儲304個有效用戶,能夠滿足大多數場合的需求。
2.1.1 光學指紋傳感器
SX-T13指紋識別模塊采用光學指紋傳感器,它利用光的折攝和反射將指紋的紋形投射到電荷耦合器件上,將指紋的紋形進行數字化,形成多灰度指紋圖像送入指紋設備進行算法處理。
光學指紋傳感器經歷了長期的實踐檢驗,因此,系統具有較高的穩定性、成本低、體積小、能提供500 dpi的圖像、能夠采集大片區域的指紋圖像等優點。
2.1.2 高速DSP處理技術
SX-T13指紋識別模塊內部的數字信號處理器采用高速DSP芯片,該芯片具有以下特點:(1)采用多總線結構。(2)采用流水線操作。(3)擁有專用的硬件乘法器。(4)具有多機并行運行特性。(5)具有低功耗的特性。(6)擁有高度的運算精度。
2.1.3 接口介紹
SX-T13是一個從模塊,主控端通過發送相應指令去操作它,模塊使用的通訊方式為3.3V TTL串口,連接電腦時需要進行電平轉換。
2.2 電源供電
電源部分使用了工頻電源,通過變壓器T_220-6降壓到6V,然后經D_bridge橋式整流,濾波后變為直流8V,然后經過7805穩壓后為12864液晶提供電源,再通過AMS1117-3.3V穩壓后為整個電路提供所需要的3.3V供電電壓。整個電源供電電路如圖3所示,其中S2為總電源開關,S1是電源切換開關,作用是實現USB和電池供電的轉換,當沒有連接USB時采用電池供電,而連接時,則用USB接口供電。電路如圖1所示。
2.3 液晶顯示電路
液晶電路由12864構成,它主要完成人機交互的作用,例如:當用戶調取當前已經簽到的人數時,具體數據可以通過液晶窗口進行顯示。蜂鳴器的作用是,當用戶錄入指紋成功時,蜂鳴器響一聲,同時在液晶上顯示“簽到成功,謝謝!”當錄入指紋失敗時,蜂鳴器連響兩聲,并在液晶上顯示“簽到失敗,請重試!”具體電路如圖2所示:
2.4 矩陣鍵盤電路
SX-T13指紋識別模塊具有獲取用戶總數、刪除所有用戶、刪除特定用戶、用戶注冊、獲取未使用的用戶ID、1:N比對等30個功能命令,本設計將常用的十六個功能都對應到相應的按鍵上,以便用戶進行相應的操作。
3 系統軟件設計
3.1 系統應用程序設計
嵌入式指紋識別系統的應用程序在以STM32F103VET6為主控器的ARM開發板上運行,主控程序的流程如圖4所示。
3.2 應用程序開發環境介紹
MDK是Keil公司針對基于ARM核的系列微控制器進行嵌入式應用程序的開發而研發的工具。它便于處于各種層次的開發者使用,可以使專業的應用程序研發工程師和入門者共同使用一個平臺。
ARM編譯工具鏈包含:ARM Macro匯編器、ARM鏈接器、ARM C/C++ 編譯器、Microlib,具有針對ARM架構的各種的微控制器編譯器,工程師可以輕松地編寫C或者C++應用程序。
開發板上電以后,主程序開始對指紋簽到系統的各個組成部分進行初始化,包括LCD和指紋采集模塊,并開始查詢上位機系統是否發出命令指示,上位機的指令有:用戶注冊、查詢用戶總數、對比用戶、刪除用戶等;上位機與下位機的通訊通過中斷方式進行,這樣的優點是優先級高,響應速度快,實時處理等。
3.3 指紋模塊響應過程
當指紋模塊接收到采集命令后,點亮內置光源并進入采集模式,開始自動檢測手指是否放在模塊感應屏上面,如果在三秒內檢測不到手指,則傳感器就判斷沒有手指放在感應屏上面,于是結束本次采集任務,當檢測到手指以后即開始采集指紋圖像。
3.4 指紋識別算法
文章設計對指紋識別處理過程包括三步:預處理指紋圖像、提取指紋特征值和指紋匹配。
3.4.1 指紋圖像預處理
由于受外界各種因素的影響,使采集到的指紋圖像出現紋線間的粘接、紋線斷裂、模糊等不良情況,因此,在提取圖像特征值之前需對指紋圖像進行預處理。
指紋圖像的預處理過程如下:
(1)指紋圖像分割。將采集到的指紋圖像中紋線粘接、斷裂、模糊的部分去除,保留比較清楚的圖像部分,為后面的處理減輕負擔。
(2)指紋圖像增強。將采集到的指紋圖像感興趣的部分進行有選擇的突出,衰減不重要的信息,消除圖像中的噪聲干擾,將采集的紋線結構變得清晰化,以保證后續提取信息的精確可靠。
(3)指紋圖像進行二值化處理。采集到的原始圖像具有不同的像素灰度,而提取特征值只是關心像素是不是脊線上的點,因此將采集到的圖像進行二值化,指紋的脊線為黑色,谷線為白色。這樣處理后,不僅減少了數據的存儲量,而且使后面的處理減少了干擾。
(4)指紋圖像細化。因為指紋識別只是對指紋脊線的走向和特征感興趣,而不關心脊線的粗細,細化就是沿著脊線以一個像素寬度描述出脊線的原始狀態,將指紋圖像進行細化后,使圖像變得更加清晰。
3.4.2 指紋特征值提取
指紋的匹配很復雜,指紋匹配的算法就是將采集到的指紋圖像上的特征點與指紋數據庫中的指紋特征值進行比對。指紋的特征點就是:交叉點、分歧點、端點、橋型、口型等,端點和分歧點占所有指紋特征的68.2%和23.8%,所以在大多數的指紋識別中,只提取端點和分歧點作為特征值。
分析指紋圖像的端點和分歧點8個鄰域中的像素點的,用“1”表示脊線上的點,用“0”表示背景,端點周圍8個像素中只有一個值為“1”,則像素值從0變到1,或者從1變到0的次數為2,而分歧點的像素值順序變化的次數為6,連續點的變化次數為4,由此可以提取指紋圖像的特征值。
3.4.3 指紋特征匹配
提取出指紋圖像的細節特征值后,指紋識別系統就可以根據這些特征值的匹配結果來進行識別的,指紋識別系統的精度好壞就跟匹配算法有直接關系,因為匹配用的是提取的特征值集合,因此必須解決兩個集合之間的幾何不變性。本設計中用的指紋模塊采用的是特征點組的匹配方法:就是以三個特征點為一組,構成三角形進行圖像的匹配,根據三角形的參數就可以得出兩個特征點集合的相似性。這種方法不僅利用了特征點的屬性,而且充分利用了特征點的空間位置,因此對于各種干擾和噪聲有很好的抑制作用。
4 系統測試
為了檢測設計好的簽到系統的可靠性和可行性,對該系統進行了指紋識別系統的測試。經檢測,整個系統達到了設計時的效果,系統的軟件和硬件都運行正常,能夠完成指紋注冊、比對、刪除等功能。系統穩定可靠,通過率高,誤識率低。
5 結束語
文章采用 SX-T13 指紋識別模塊和基于ARM Cortex-M3處理器的STM32系列單片機,設計了一款自動指紋識別簽到系統。該簽到系統體積小、可移動,具有指紋采集、存儲、比對和顯示等功能,通過USB接口可以連接PC或USB存儲設備,并能將數據自動存儲和備份。實驗結果表明該系統的硬件和軟件都運行正常,達到了預期的目標。通過USB接口可以將考勤信息上傳,通過連接PC機可以實現異地簽到,隨著功能的不斷完善,基于ARM嵌入式微控器的指紋識別考勤系統將具有長遠的發展前景。
參考文獻
[1]段少雄.高效指紋考勤系統的研究與設計[J].計算機工程,2003,29(9).
[2]唐業,等.基于智能卡的分布式考勤管理系統的研究與實現[J].計算機應用與軟件,2005,22(5).
[3]孫冬梅,裘正定.生物特征識別技術綜述[J].電子學報,2001,29(12):1744-1748.
[4]黃林波.基于ARM的指紋識別模塊的研究與開發[D].哈爾濱理工大學,2005,3.
[5]顏浩洋.嵌入式指紋識別系統的硬件設計[D].重慶大學,2007,5.