楊爭輝,李多,葉樺
(東南大學自動化學院,南京210096)
基于AS602的智能指紋鎖系統設計與實現
楊爭輝,李多,葉樺*
(東南大學自動化學院,南京210096)
針對市場上指紋鎖存在著價格高、功耗高等問題,設計了一種低成本、低功耗的智能指紋鎖系統。STC12LE5A60S2作為核心處理器,對各模塊進行控制。選用AS602作為指紋處理器,FPC1011F作為指紋采集器。從軟硬件方面進行了低功耗設計,對密碼進行TEA加密設置。采用了有限狀態機模型來進行軟件設計,避免了大量標志位與多層判斷的問題。最后,對整個系統進行了綜合測試,結果表明,本智能指紋鎖系統運行穩定,安全可靠,指紋識別率高、識別速度快。
智能指紋鎖系統;AS602;低功耗;密碼加密(TEA算法);有限狀態機模型
隨著社會的發展,信息化程度越來越高,在這信息膨脹的時代,人們對于個人隱私與個人財產的保護意識也不斷加強。指紋鎖也應運而生,作為指紋識別技術應用門鎖的代表,兩個顯著的特征決定了指紋鎖將成為未來門鎖行業發展的制高點。一是安全性,指紋具有唯一性;二是方便性,相比其它生物類識別技術(臉譜、瞳孔、聲音、手掌等),手指更為適用,密碼開鎖容易忘記密碼,卡與鑰匙容易丟失與忘記攜帶,手指指紋更為方便。因此指紋鎖被廣泛運用于政府機構、銀行、高級公寓等需要絕對安全和隱私的場所[1]。
隨著電子商務的發展,家庭數字化的需求和消費類電子產品的普及,越來越多的家居民用領域需要智能指紋鎖系統。但由于平臺的規模、算法技術的獨創性保密性,使得指紋鎖的價格居高不下。因此,開發高性能、低成本、安全可靠的民用智能指紋鎖系統具有很強的現實意義和廣闊的市場空間[2]。
本智能指紋鎖系統主要有三大創新點:一是通過軟硬件設計來降低整個系統的功耗,硬件設計主要通過供電模塊電路設計實現,軟件設計則采用動態電源管理和優化編譯的方式來實現;二是通過語音提示與觸摸按鍵的方式來實現人機交互,幫助用戶更方便的進行操作;三是對存儲的密碼進行加密處理,再存入非易失存儲器中,避免了直接從非易失存儲器中讀取密碼的風險。
開門方式主要包含指紋開門,密碼開門和鑰匙開門(應急使用,會觸發警報)。指紋開門需要杜絕假指模即需要活體識別,對真皮層、體溫、血液流動都有著感應;密碼開門需要具備防尾隨功能,比如密碼為12345678,那么在正確密碼之后加入最多8位數字都可以打開門,比如增加至12345678(12345678)等等,這樣防止了密碼被偷窺的情況。
指紋最多可以錄入99枚,其中ID號為1~3的為管理員指紋,可用于授權指紋和密碼操作,ID為1的指紋可以授權所有用戶,ID為2、3的指紋可以授權除ID為1以外的所有用戶;其他ID號為用戶指紋,只能開門,不能添加、刪除指紋。
密碼最多可以錄入10組,位數為8位。
時間設置用于通過USB導出開門記錄。
整個系統還帶有語音導航功能,全智能語音提示操作系統幫助用戶更方便的進行操作。例如添加或刪除指紋、重設密碼等,避免了用戶的錯誤操作,老人小孩也能輕松操作;TOUCH PAD觸摸屏技術,背光非機械式觸摸面板,反應靈敏,觸感極佳。簡潔、流暢、硬朗的設計,彰顯出鎖具的高貴、典雅、安全、健康。
2.1FPC1011F指紋傳感器及其接口
FPC1011F是瑞典FINGERPRINT CARDS AB(簡稱FPC)公司推出的基于半導體硅電容效應的指紋傳感器。其采取了獨創的反射式測量法,就像回聲原理一樣,發出的聲音越大,回聲就越大,這就增強探測信號。保證取得穩定清晰的指紋圖像,同時探測信號增強也帶來了另一個好處,芯片表面的保護膜可以做得更厚(比同類厚10倍~25倍),擁有更厚的保護層這就意味著有更強的耐磨性(>100萬次)和抗靜電能力(大于15 kV)[3]。每個硅傳感器等效于電容的一個極板,手指則是另一個極板,由于手指谷與脊離傳感器陣列的距離不同,產生不同的電容值,經過運算放大電路,形成不同的電壓值,通過內部的A/D轉換,獲得高質量的數字指紋圖像[4]。FPC1011F在指紋采集質量、耐用性等方面,均得到業內人士的肯定,因此,本系統也采用FPC1011F作為指紋傳感器。
FPC1011F采用4線制SPI接口,與AS602指紋識別芯片連接通信,接口電路如圖1所示。

圖1 FPC1011F接口電路
2.2AS602指紋處理芯片及其接口
AS602芯片是杭州晟元公司為指紋USBKEY等應用領域推出的32 bit RISC處理器內核的安全芯片。其內部集成指紋識別引擎,可以直接在芯片內部實現指紋身份認證。內嵌1 Mbyte大容量FLASH,支持USB 2.0協議的USB全速從控制器。芯片還集成了對稱和非對稱加解密硬核,可以硬件實現MD5算法、RSA算法。芯片支持多級基于硬件的保護機制,可以有效保護內部數據、代碼的安全性[5]。
本系統利用AS602芯片來進行指紋處理,而整個系統的邏輯功能則主要通過STC12LE5A60S2 MCU來實現。AS602支持UART模式,可以與微控制器進行信息傳送。AS602的基本配置電路與接口電路分別如圖2、圖3所示。

圖2 AS602的基本配置電路

圖3 AS602與MCU通信接口電路
圖3中主要分為3個部分:
(1)MCU_TXD2、MCU_RXD2是與微MCUSTC12LE5A60S2進行通信的串口端口。
(2)J2(USB)主要用來進行芯片調試
(3)USART1_DIO1/PA11、USART1_CLK/PA10、USART1_DIO2/PA12是AS602與指紋傳感器FPC1011進行通信的端口。
2.3電容式觸摸屏設計與實現
與傳統的機械按鍵相比,電容式觸摸感應按鍵不僅美觀時尚,而且壽命長、功耗小、成本低、體積小、持久耐用。人的手指觸碰后會改變其電容,從而通過檢測觸摸板的電容來確定是否有手指按下。其電容組成如下:

其中固有寄生電容CB由PCB材質和結構決定,它主要由銅盤與地之間的電容和電路形成的,一般就制作完成的觸摸板而言,該值是固定的。變化電容ΔC,主要指外界導體與PAD之間的寄生電容,通常也是檢測這個電容值的改變[6]。本系統采用SC12A芯片來進行觸摸按鍵管理。SC12A是帶自校正的容性觸摸感應器,可以檢測12個感應盤是否被觸摸。它保持自動校正,無需外部干預。它的按鍵輸出經過完全的消抖處理,采用多接口I2C串行接口/BCD碼輸出。所有按鍵共用一個靈敏度電容,可以通過選用不同的靈敏電容來改變觸摸按鍵板的靈敏度。接口電路如圖4所示。

圖4 SC12A芯片接口電路

表1 觸摸板電容結構常數(自上而下)
CDC是靈敏度設置電容,取值范圍是15 pF~100 pF,電容值越小靈敏度越高。但靈敏度越高,容易受到噪聲干擾,本系統中CDC電容選取為20 pF。
經過查閱,當CDC取最小值15 pF時,芯片可檢測到的最小電容為0.2 pF,即變化電容ΔC。

利用式(2)可以分別計算出每層介質的電容值:式中:C為電容量;d為極板間極距;ε0為空介電常數(8.85 pF/m2);εr為極板間介質的相對介電常數;S為極板的有效面積。

表2 觸摸板各介質電容值(自上而下)
各介質電容相當于串聯構成變化電容,利用公式(3)可以計算出最終的變化電容ΔC

經過計算ΔC≈0.428 pF?ΔCmin,大于最小變化電容并有一定的余量。方案可行。
2.4低功耗電源管理設計與實現
嵌入式系統低功耗設計的目標是在滿足用戶對性能需求的前提下,盡可能降低系統的能耗,延長設備的待機時間。隨著市場對可移動式嵌入式設備在體積和性能方面要求的不斷提升,嵌入式設備小體積、高性能與有限的電池能量之間的矛盾日益突出,嵌入式系統低功耗設計是解決這一矛盾的有效手段。它包括硬件低功耗設計和軟件低功耗設計兩個方面[7]。
本系統有3種供電方式:6 V電池(2組4節5號電池并聯)、9 V電池、USB供電。
6 V電池:為整個系統的主要供電方式。
9 V電池:應急使用,防止6 V電池電量耗盡。
USB供電:系統調試使用。
這3種電源經過電源選擇模塊后為整個系統供電。經過3個穩壓芯片的電壓調整,分成3組電源分別為MCU和電容觸摸、外圍電路、指紋識別模塊供電。電源模塊框圖如圖5所示。

圖5 電源模塊框圖
其中MUC可以工作在低功耗方式下,對于MCU外圍電路及指紋識別模塊,當MCU處于低功耗模式時,MCU可以通過控制器使能端無效的方式來切斷電源,以減少功耗。這樣就可以最大程度上的減少整個系統的功耗。
3.1MCU與AS602的通信協議
智能指紋鎖系統中,AS602指紋識別芯片始終處于從屬地位(Slave mode),主機(Host)MCU需要通過不同的指令讓模塊完成各種功能。MCU可以通過UART串口協議與AS602通信,UART波特率為57.6 kbit/s,數據格式:8 bit數據位,2 bit停止位,無校驗位。
主機的指令、模塊的應答以及數據交換都是按照規定格式的數據包來進行的。主機必須按照一定格式封裝要發送的指令或數據,也必須按相應格式解析收到的數據包。
整個系統主要用了表3中的8個指令集。

表3 AS602指令集
由于沒有操作系統的支持,如果采用面向過程的方法,必然會引入大量的標志位,出現大量、多層的判斷、轉移語句,導致程序的可讀性變差[8]。有限狀態機的靈活運用可以減少程序中的判斷步驟,縮短程序執行時間,提高單片機處理的實時性[9]。因此,對于指令的發送、解析、應答采用狀態機的方式進行處理,這樣可以減少標志位與多層判斷。
3.2TEA密碼加密的軟件設計與實現
如果將開鎖密碼采用直接存儲的方式,存在從EEPROM中直接讀取密碼的風險。考慮到密碼存儲的安全性,本系統將密碼通過TEA加密算法加密后,再存入EEPROM中。當需要密碼驗證時,則從EEPROM中提取出密碼進行解密再進行比對。由于將密鑰固化在code中燒寫進單片機中,因此,其他人很難得知密鑰,這樣就大大提高了系統的安全性。
TEA算法采用擴散和混亂方法,對64 bit的明文數據塊,用128位密鑰分組進行加密,產生64 bit的密文數據塊,其循環輪數可根據加密強度需要設定[10]。
TEA加密算法過程[11]:
(a)初始化:
待加密的數據分成2部分v(0)和v(1),各32bits,y=v(0),z=v(1),Sum=0;
Delta=0X9E377989;
密鑰128比特分成相等4部分:k(0),k(1),k(2),k(3)
a=k(0),b=k(1),e=k(2),d=k(3),n=32;
(b)若n>0則轉第c),否則轉d)。
(c)Sum=Sum+Delta;
y=y+(z<<4)+a^z+Sum(^z>>5)+b;
z=z+(y<<4)+c^y+Sum(^y>>5)+d;
n=n—l,轉第b)步。
(d)v(0)=y,v(1)=z,加密結束,密文在v(0)和v(1)中,共64位。同時,對對AES,RC5,TEA三種加密算法進行代碼實現與性能比較(硬件平臺:STC12LE5A60S2,22.1184 MHz晶振)。

表4 AES,RC5,TEA加密算法性能比較
對表4中測試得到的數據進行分析:
(a)就資源(RAM、ROM)消耗而言,AES,RC5算法遠大于TEA算法
(b)就時間(加密、解密)消耗而言,AES算法遠高于RC5,TEA算法,RC5,TEA相差幾個毫秒
考慮到本系統采用STC12LE5A60S2單片機,1280字節的RAM,60K字節程序空間。選擇TEA加密算法。與AES相比,不存在S盒的“陷門”問題,具有更好的安全性能。另外,無論是硬件實現還是軟件實現,TEA都比AES、RC5更簡單。因此,整個系統采用TEA算法對開鎖密碼進行加密處理。
3.3低功耗的軟件設計與實現
動態電源管理在降低嵌入式系統功耗發揮著不可替代的作用,屬于操作系統級別的管理方式。動態電源管理的本質是一種電源管理的機制或策略,能夠在系統運行時,動態地管理電源[12]。本系統采用STC12LE5A60S2作為MCU。STC12LE5A60S2單片機可以運行3種省電模式以降低功耗,它們分別是:空閑模式,低速模式和掉電模式。正常工作模式下,STC12C5A60S2系列單片機的典型功耗是2 mA~7 mA,而掉電模式下的典型功耗是<0.1 μA,空閑模式下的典型功耗是<1.3 mA[13]。因此,可以采用動態電源管理的方式減少整個系統的功耗。如果3 s內無任何操作,則將MCU切換到掉電模式,并將外圍電路穩壓芯片的使能端設為低電平,停止供電(參見硬件部分的電源管理),使整個系統處于休眠狀態,從而大大降低了系統功耗。休眠模式可以通過外部中斷進行喚醒。
其次,對程序進行適當優化,如:減少冗余代碼,算法優化等等,來實現低功耗的軟件設計。
4.1功能測試
對整個系統進行綜合性的功能測試,完全可以達到前述智能指紋鎖系統功能需求。可以準確的錄入、刪除指紋,識別指紋ID進行指紋開鎖;也可以添加、刪除開鎖密碼,利用密碼開鎖。每步操作都會有相應的語音提示,若長時間沒有操作,會進入休眠狀態。

圖6 智能指紋鎖系統實物圖
4.2功耗測試
電池:南孚AA 1.5 V無汞堿性電池,型號:LR6,數量:8(4節串聯形成一組,兩組并聯)。

表5 初次測試結果單位:mA

表6 不同休眠模式的測試結果
待機時間理論分析:

表7 各模式理論工作時間
在軟件設計過程中,休眠采用掉電模式,假設:每天開鎖操作進行3次,功能設置進行3次,其余時間處于休眠狀態。經過計算,8節(4節4節并聯)理論工作時間達到0.42年。
本智能指紋鎖系統以STC12LE5A60S2作為核心處理器,AS602作為指紋處理芯片,FPC1011F作為指紋采集器,。通過語音提示與電容式觸摸屏來實現人機交互。利用TEA加密算法,對開鎖密碼進行加密,提高整個系統的安全性。經過功能測試,本系統可以實現功能需求。從軟硬件方面都進行了相應的低功耗設計,其中包括芯片選型、電源管理、控制策略等,經過功耗測試,本系統可以實現低功耗目標。其結果表明,本文設計的智能指紋鎖系統運行穩定,安全可靠,指紋識別率高、識別速度快,低功耗。
[1]王鑫.指紋鎖的市場需求與發展[J].中國公共安全(綜合),2014,(24):110-111.
[2]楊偉鈞.基于DSP的指紋鎖的設計與實現[D].廣東工業大學,2008.
[3]Fingerprints公司.FPC1011F Area Sensor Package[Z].Product Specification,2009.
[4]陳文燕,劉良勇.指紋傳感器FPC1011F在ARM9指紋采集系統中的應用[J].中北大學學報(自然科學版),2011,32(5):642-647.
[5]鐘文東,林喜榮,戴曉清,等.采用AS602的指紋鑰匙應用系統的設計與實現[J].電子產品世界,2013,(4):62-65.
[6]陳斌.電容式觸摸按鍵設計與專用芯片應用[J].電子世界,2014,(16):281-281.
[7]梁晶.嵌入式系統低功耗設計研究與實現[D].華中科技大學,2004.
[8]管庶安.單片機程序的狀態機模型[J].武漢工業學院學報,2004,23(2):1-2,9.
[9]黃新林,王鋼,劉春剛,等.有限狀態機在單片機編程中的應用[J].哈爾濱理工大學學報,2008,13(4):7-9.
[10]謝林栩.基于TEA加密算法在網絡傳輸中保護文件數據安全的應用[J].廣西師范學院學報(自然科學版),2010,27(2):76-80.
[11]朱璇,唐曉茜,殷建軍,等.基于單片機的智能加密電子密碼鎖設計[J].輕工機械,2009,27(4):76-78,82.
[12]姚偉.嵌入式系統低功耗軟件技術研究[J].計算機技術與發展,2011,21(1):112-115.
[13]宏晶科技有限公司.STC12C5A60S2系列單片機數據手冊[DB/OL].http://www.stcmcu.com/datasheet/stc/STC-AD-PDF/ STC12C5A60S2.pdf,2013.

楊爭輝(1991-),男,漢族,山東省萊州市人,東南大學碩士研究生在讀,研究方向為模式識別與智能系統,ZhengHuiY@foxmail.com;

葉樺(1961-),男,漢族,江蘇省南京市,東南大學自動化學院,教授,碩士生導師,研究方向為模式識別與智能系統,zhineng@seu.edu.cn。
The Design and Implementation of a Fingerprint Lock Based on AS602
YANG Zhenghui,LI Duo,YE Hua*
(School of Automation,Southeast University,Nanjing 210096,China)
Due to the high power consumption and high price of fingerprint lock on the market,the design of finger?print lock has the advantage of low cost,low power consumption.STC12LE5A60S2 is chosen as microprocessor to control different modules.AS602 is chosen to identify fingerprint,which controls the fingerprint sensor FPC1011F. The design of low power consumption consists of two parts:one is low power design of hardware and the other is low power design of software.TEA is used to encrypt the passwords.Finite state machine is used in programming to re?duce the judgment step and time.According to the results of the tests,the system is stable,safe and has reliable fin?gerprint identification rate,high recognition speed,low power consumption.
fingerprint lock;AS602;lower power consumption;encryption algorithm(TEA);finite state machine
TM925.92
A
1005-9490(2016)02-0495-06
EEACC:721010.3969/j.issn.1005-9490.2016.02.049
2015-05-14修改日期:2015-06-08