許歡慶 金力 錢源 吳靜 孫大勇



摘要:文章利用嵌入式技術結合指紋芯片開發出了一套高性能、低成本、低功耗的指紋識別系統,具有良好的實用性和市場前景。與此同時,該文探究了指紋識別的原理,給出了嵌入式指紋識別系統的硬件設計及軟件實現方案,旨在為人工智能的普及化起到拋磚引玉的效果。
關鍵詞:生物特征識別技術;指紋識別;特征提?。磺度胧郊夹g
中圖分類號:TP311 ? ? ?文獻標識碼:A
文章編號:1009-3044(2022)28-0086-04
當今時代,信息技術的進步極大程度地改變了人們的生活方式,提高了人們的生活質量。與此同時,個人信息和隱私安全的保護也顯得尤為重要。傳統的加密方式和身份識別技術(例如密碼、口令、手勢等)因易被偽造和盜用,已經難以滿足當前網絡安全的需求,生物特征識別技術開始逐步走進大眾的視野,受到了前所未有的關注。
生物特征識別技術[1]是指通過采集每個人獨特的生理特性(指紋、虹膜、面相、DNA等)和行為特征(步態、按鍵習慣等)來進行個人身份的鑒別和確認。而其中,指紋識別技術因為采集方便快捷,傳感器設備相對價廉,且采集和運算技術相對成熟,存儲和處理的特征模板的數據量少,讀取、識別速度快,可靠性和穩定性也高,所以被廣泛應用于各個領域,圖1給出了生物識別技術的市場結構圖。
1 系統總體設計
本文以STM32F103ZET6嵌入式開發板作為核心控制器件,指紋傳感器采用AS608光學指紋模塊,同時外接TFT電容觸摸式彩屏方便顯示和控制。整個識別系統大致可分為錄入、匹配兩大過程。在錄入時,用戶將指頭腹部按壓在光學采集模塊外置的透明玻璃片上,傳感器利用光學成像原理,采集到用戶的指紋圖像,獲取圖像后,核心板根據指紋識別算法提取出指紋紋理中的特征數據存入內置Flash的特征數據庫中作為指紋模板,為后續的比對做準備。在錄好指紋信息后,便可以開始匹配的工作。匹配過程同樣是從傳感器采集用戶指紋圖像開始,接著把圖像送入數據緩存器中,核心板對圖像進行分割、增強、二值化、細化等預處理操作后提取出特征數據,將所得特征數據與之前錄入的特征數據庫中的數據進行比對,從而完成匹配過程,如圖2所示。
2 主要硬件設計
2.1 硬件整體設計
本系統的主要模塊包括STM32F103ZET6核心板[2]、AS608指紋傳感器、TFT可觸摸彩色顯示屏、串口通信模塊、蜂鳴器與按鍵模塊、電源模塊、flash模塊。系統的主要工作流程如下:
首先接通電源后,5V電壓通過AMS1117-3.3正向低壓降穩壓芯片輸出3.3V,給STM32F103ZET6芯片及AS608模塊供電,上電后AS608模塊開始工作,對按壓到鏡面上的指紋進行采集,并將采集到的指紋圖像通過UART異步串口通信協議傳輸給MCU,MCU對圖像進行預處理、特征提取[3-5]等運算,通過SPI總線協議對Flash進行讀寫,完成特征數據的錄入或匹配工作,再通過SPI總線協議將結果傳輸到TFT彩屏上顯示出來,同時可以通過手動觸摸TFT彩屏上的虛擬按鍵完成進一步的操作,如圖3所示。
2.2 核心板電路設計
本系統采用的主控板芯片為STM32F103ZET6,該芯片的配置十分強悍,并且還帶外部總線,用來外擴SRAM和連接LCD等,通過FSMC驅動LCD,可以顯著提高LCD的刷屏速度。除此之外,核心板還接入了Flash模塊、20腳JTAG接口電路、RS232串口下載電路、復位電路、穩壓模塊等[6]。
復位電路采用低電平復位方式,電阻R3和電容C12構成了上電復位電路,當復位鍵RESET按下或重新上電時,會輸出一個低電平信號使芯片復位,如圖4所示。
圖5所示的穩壓電路采用AMS1117-3.3正向低壓降穩壓芯片輸出3.3V電壓,給核心板供電。
模式設置端口電路是由STM32通過BOOT0和BOOT1來設置啟動方式:當想用串口下載代碼時,需要將BOOT0置1、BOOT1置0;若想讓核心板一按復位鍵就執行代碼,則需要將BOOT0置0、BOOT1置0或1均可。各啟動模式詳情如表1所示。
圖6所示為一鍵下載電路,BOOT0和RST信號取值由來自串口的DTR和RTS信號自動配置,無須手動切換狀態,直接串口下載代碼非常便捷。
Flash模塊采用W25Q128芯片,芯片容量為16M字節。芯片支持電壓 2.7V~3.6V,最大 SPI 時鐘可以到80MHz,具體電路如圖7所示。
3 主要軟件設計
3.1 軟件總體設計
本系統采用keil5軟件對STM32F103ZET6進行編程,使用JTAG進行仿真調試和下載。主要實現的功能包括錄入指紋、驗證指紋、彩屏顯示及觸控操作等,總體執行流程如圖8所示[7-8]。
3.2 識別模塊軟件設計
AS608模塊與MCU采用UART通訊方式收發數據,MCU發出命令指令,識別模塊反饋應答數據。在通訊協議及算法運行前,應通過指令設置好參數表的內容,并將其存于Flash的系統參數存儲區,以后每次上電時,初始化程序都要首先將參數表裝載到RAM中,并根據參數表內容初始化系統寄存器。參數表長128字節,各參數的屬性、用途與設置內容如表2所示。
MCU與指紋模塊間的通信數據必須按照一定的格式進行交換。在發送數據前,MCU需要先向指紋芯片發送相應的指令,指令需滿足命令包格式,依次為2字節的包頭、4字節的芯片地址、1字節的包標識、2字節的包長度、1字節的指令和2字節的校驗和,包頭內容為0xEF01,包標識內容為0x01。
在接收到指令后,指紋模塊需要按照指令內容返回相應的數據給MCU,發送的數據需滿足數據包格式,依次為2字節的包頭、4字節的芯片地址、1字節的包標識、2字節的包長度、數據內容和2字節的校驗和。其中包頭內容與指令包一致,包標識為0x02,芯片地址的初始默認值為0xFFFFFFFF,可通過指令進行修改。完成數據發送后,模塊將按照結束包格式發送結束信號給MCU,表示數據已全部發送,包標識為0x08。
指紋模塊還需要向MCU發送應答包來反饋指令的執行情況。應答包的內容包括2字節的包頭、4字節的芯片地址、1字節的包標識、2字節的包長度、1字節的確認碼、返回參數和2字節的校驗和,包標識為0x07,確認碼是應答包的核心內容,表達了指令執行的結果。若指令成功執行,則確認碼返回值為00H;若讀寫FLASH時出錯,則確認碼返回值為18H;若模塊不能接受后續數據包,則確認碼返回值為0EH;若端口操作失敗,則確認碼返回值為1dH;若指紋庫滿,則確認碼返回值為0x1F等。
在進行指紋錄入時,首先讀取AS608模塊觸摸感應狀態引腳,由于感應到觸摸時引腳輸出為高電平,所以將狀態感應引腳配置為下拉輸出模式。
在完成狀態感應的初始化后,開始按照指令包格式配置串口發送指令的包頭、指令碼、校驗和等數據,以便于指令的發送。
接著判斷串口中斷接收的數據包中是否包含規定格式的應答包,如果包含,則返回數據的首地址,以便讀取包頭、指令碼、確認碼等信息,否則返回 NULL。
最后,通過圖像獲取函數PS_GetImage發送錄入圖像指令,指令碼為0x01,根據探測手指的結果返回相應的確認碼:若成功完成指紋圖像錄入,則確認碼的返回值為00H;若接收數據包時出錯,則確認碼的返回值為01H;若并未檢測到手指,則確認碼的返回值為02H;若錄入指紋圖像失敗,則確認碼的返回值為03H。當成功完成錄入時,所獲取的圖像將存放于圖像緩沖區ImageBuffer中。
圖像的特征生成通過PS_GenChar函數進行,發送指令碼0x02對圖像緩沖區ImageBuffer中的原始圖像進行分析,并生成指紋特征文件存放于特征緩沖區CharBuffer1或CharBuffer2中,BufferID為特征緩沖區號,用來選定使用哪個緩沖區。然后接收片上系統反饋的應答包并根據應答包中所包含的確認碼判斷圖像的特征提取情況:若成功生成特征,則確認碼的返回值為00H;若接收數據包時出錯,則確認碼的返回值為01H;若指紋圖像較為混亂而無法生成特征,則確認碼的返回值為06H;若指紋圖像正常,但因特征點太少而無法生成特征,則確認碼的返回值為07H;若圖像緩沖區內沒有找到有效的原始圖像而無法進行分析,則確認碼的返回值為15H。
當成功生成指紋圖像特征后,通過執行PS_Match函數來精確比對兩個特征緩沖區CharBuffer1與CharBuffer2中兩枚指紋的特征文件是否能夠匹配。在完成包頭和芯片地址的發送后,指令包發送指令碼03H,命令SOC進行特征比對;接著根據對比結束后所反饋的應答包提取確認碼來判斷比對結果:若兩個緩沖區的特征文件能成功完成匹配則返回00H,若接收數據包出錯則返回01H,若兩個緩沖區中的特征文件差異較大,不能成功完成匹配則返回08H。
4 結束語
隨著信息技術的高速發展,人們越來越重視個人隱私的保護,對信息安全的要求逐步提升。生物特征識別技術很好地滿足了人們的需求,成為當下的研究熱點。本文在探究指紋識別原理的基礎上,給出了指紋識別中圖像預處理的四個關鍵步驟:圖像分割、圖像增強、二值化、細化的運算過程及指紋圖像特征提取與匹配的主要方案。利用上述研究成果,安徽中醫藥大學學生參加了全國大學生電子設計競賽并獲得省級一等獎,隨著本研究繼續深入地開展,旨在為人工智能的普及化做出力所能及的貢獻。
參考文獻:
[1] 郝海燕,龔杰.基于單片機的指紋考勤系統設計[J].內江科技,2021,42(7):47-48.
[2] 林佳智,常鳳筠,朱文斌,等.基于stm32系統與物聯網的AI多功能門禁系統研究[J].科學技術創新,2021(13):88-89.
[3] 邢月秀.無線設備指紋的提取與識別方法研究[D].南京:東南大學,2021.
[4] 李乃坤,李乃寧.簡易指紋考勤機的設計原理[J].電子世界,2020(17):99-102.
[5] 朱曉琴.基于單片機的圖書館電子閱覽指紋識別系統設計[J].自動化與儀器儀表,2021(11):111-115.
[6] 羅博威.基于單片機的指紋密碼鎖的設計[J].集成電路應用,2020,37(4):41-43.
[7] 雷求勝.Gabor濾波的指紋圖像增強的應用研究[J].單片機與嵌入式系統應用,2021,21(10):32-35.
[8] 艾馬德.基于心電圖和指紋的多生物識別方法[D].哈爾濱:哈爾濱工業大學,2019.
【通聯編輯:唐一東】