張團龍 付磊★ 王鵬
(1.內蒙古工業大學理學院,內蒙古 呼和浩特 010051;2.內蒙古工業大學招生就業處,內蒙古 呼和浩特 010051)
近幾年,人們的生活質量日漸提高,安全意識也在逐步地提高[1],人們對門鎖的要求越來越高,傳統的門鎖已經無法滿足人們的需求,各種智能門鎖如雨后春筍一般涌現出來,得益于指紋匹配算法性能的提高,指紋門鎖在智能鎖中的應用變得更加廣泛。研究表明指紋在我們的一生中都是一樣的,隨著年齡的增長,即使手指變大或者變小,但指紋永遠不會發生任何變化,因此指紋的唯一性滿足了人們在安防性能方面的要求。
王瑞琦[2]等人采用ARM架構STM32芯片微處理器進行控制,利用密碼識別與指紋識別雙重保險進行指紋鎖的設計。徐廣宇[3]等人采用STC系列芯片作為指紋鎖的主控,這種指紋鎖相較于ARM為控制芯片的指紋鎖系統成本更低,更適合大規模生產。目前市場上的指紋鎖主要應用在高端的場所中,中低端的應用產品較少,然而中低端的市場是巨大的,因此非常有必要開發一款性價比高的指紋門鎖。本文提出一種集成度較高,并且通過手機APP管理的指紋鎖系統,兼顧密碼與指紋雙重識別,設置分級管理機制,提高指紋鎖的安全性。黃慧靈[4]等人提出一款基于STC89C52單片機的指紋鎖系統,硬件主要搭載識別電路、鍵盤矩陣電路、顯示電路、報警電路。陳新芬[5]等人不僅僅設計了嵌入式的指紋密碼鎖,并且運用Proteus對系統進行了仿真,測試了系統的安全性和可靠性。陳鈺聞[6]等人針對傳統機械鎖、卡片鑰匙式電子密碼鎖等存在的問題,提出基于單片機的以指紋和密碼鎖共同控制的指紋鎖,使系統更加安全、便捷和智能化。黃楚[7]等人將光伏發電與指紋鎖相結合,然后制作了樣品并且進行了仿真測試,結果表明:這類具有光伏發電功能與指紋識別功能的密碼鎖的穩定性良好,在移動設備或在可接受太陽光直射的場合使用,能夠減少對供電設備的需求,使用更加便捷。王煉紅等人為了解決指紋鎖具有高性能卻無法低功耗的矛盾,提出一種新的架構,基于雙核的嵌入式系統,相對比現有設計方案來說, 具備更低的功耗以及更高的性能。
首先對指紋鎖系統進行電路的設計,然后我們使用AltiumDesigner設計了電路原理圖并繪制出PCB圖紙,使用KeiluVision4進行程序的開發,然后使用Proteus7.0進行電路的仿真,并且設計手機APP,通過手機APP與藍牙模塊進行通信,控制整個系統的指紋錄入與刪除。當開門的人輸入指紋時,嵌入式系統開始工作,STC8A單片機對預存的模塊信息進行同步的處理。
系統共有兩種工作模式:(1)用戶訪問模式;(2)管理員模式。在用戶訪問模式下,用戶通過APP將自己的指紋進行采集和錄入,錄入指紋后可以通過APP進行指紋的重命名,同時還可以通過APP進行密碼開鎖,當指紋匹配或者密碼成功,LED指示燈亮起,舵機轉動,拉動門閂;相反,未經過授權的用戶,輸入指紋,無法匹配成功,蜂鳴器響起。在管理員的模式下,可以通過手機APP進行指紋的錄入、刪除,同時還可以修改管理員登陸密碼,手機APP的使用讓指紋鎖的體積減小,提高了指紋鎖的安全性,使指紋鎖更加人性化。
系統框架設計如圖1所示。

圖1 系統框架設計
本指紋鎖系統使STC8A8K64S4A12芯片作為主控芯片(圖1),該系列單片機工作電壓為2.0~5.5V,相比STC15系列增加了I2C接口,并且ADC增加3個引腳(AVcc、Agnd、AVref)提高采集精度,擁有四路串口,9個定時器,12路PWM,1路II2C串行總線,具有內部晶振。我們使用Altium Designer設計了電路原理圖并繪制出PCB圖紙,如圖2所示。

圖2 芯片原理圖
傳感器使用了乙木F1020SC電容半導體指紋模塊,F1020SC模塊通過串口與主控進行通信。
對于電容式指紋傳感器,運用的原理是平板電容器的電容公式:

在傳感器上有無數面積S相同的小的電容器極板,當手指貼上傳感器,皮膚表面與傳感器上的電容器極板一一匹配,每個平板電容器的電容值都不同,量級在幾百pF。而這個電容值僅僅取決于傳感器上的極板到指紋表面的距離d。貼在指紋嵴上的電容距離小而電容大,貼在溝上的電容器距離大而電容小。此時,傳感器將給所有的電容充電,所有的電容都達到預先設計好的電壓值,然后開始用標準放電電流進行放電。指紋脊和谷下電容放電的速度不同,脊對應電容放電速度快,谷對應電容放電速度慢,利用采樣電路對放電率進行檢測,然后輸出一個8位信號,由于脊和谷具有較高的敏感性,原始指紋圖像形成效果良好(圖3)。

圖3 指紋采集原理
JDY10M(圖4紅色區域)的工作頻段為2.4GHz范圍,調制方式為GFSK,最大發射功率為8dB,最大發射距離為50m,具有功耗低、尺寸小、信號強、數據傳輸穩定的特性,可以通過串口(SPI、IIC)和MCU控制設備進行數據傳輸。本系統采用了其中的串口作為MCU和用戶手機APP之間的通信方式,較之于SPI、IIC通信,所依賴的引腳數量更少、消耗MCU的資源更少,進而有利于將MCU算力分配給系統控制上。

圖4 藍牙模塊
舵機負責拉住門鎖,收到由單片機接收到的信號,機臂拉伸打開門,舵機控制如圖5所示。本文中所使用舵機型號為SG90,力矩為1.5kg/cm,工作電壓為4.2~6V。舵機控制信號周期是20ms脈沖寬度調制信號(PWM),脈沖寬度范圍是0.5~25ms,對應的舵盤位置是0~180度,表示線性變化。也就是說,當向舵機施加一定的脈沖寬度時,輸出軸保持一定的角度。不管外部扭矩如何變化,在供給其他脈沖信號之前,輸出角度不會變化到新的對應位置。舵機內有用于生成周期20ms、寬1.5ms的脈沖信號的基準電路和用于比較外部信號和基準信號來評估產生舵機旋轉信號的大小和方向的比較器。單片機通過程序控制PWM信號的輸出,降低了整個系統軟件設計的復雜性,提高了程序的可維護性。不僅便于后續產品的重復更新,同時PWM輸出相對穩定,舵機可以在各種復雜條件下控制門的開關。

圖5 舵機模塊
蜂鳴器報警模塊主要部分:蜂鳴器、三極管、限流電阻三個部分。本文所采用的蜂鳴器為無源式蜂鳴器(圖6),相比于有源蜂鳴器,無源蜂鳴器由于其是由電位控制從而避免了因PWM波不穩定導致的發聲頻率紊亂。當J7端有一個高電平進入時,PNP三極管TP1截止,蜂鳴器不通電;當J7端進入一個低電平時,PNP三極管TP1導通,蜂鳴器通電,并發出聲音。圖中通過電阻R2和PNP三極管TP1進行電流放大,從而驅動蜂鳴器。電阻R1是一個上拉電阻,阻止蜂鳴器誤發聲;當BEEP引腳輸出低電平時,PNP三極管導通,蜂鳴器發聲;反之當BEEP引腳輸出高電平時,PNP三極管截止,蜂鳴器不發聲。

圖6 蜂鳴器原理圖
圖7為利用App Inventor開發平臺進行APP制作的成果。Google App Inventor用戶能夠通過該工具軟件使用谷歌Android系列軟件自行研發適合手機使用的任意應用程序。本上位機程序主要是基于APP Inventor的第一版本的配置文件,其底層文件主要是適配于安卓6.0以上的安卓手機,而目前安卓用戶的安卓版本大多數在6.0之上,因此依托該平臺開發的APP具有良好的普適性。在開發結構上,本APP采用模塊化設計:將整個APP拆解成藍牙通信部分、人機交互界面、底層文件三個部分。通過我們設計的手機APP,與指紋鎖的藍牙模塊進行連接,完成硬件部分與軟件部分的通信,方便進行人機交互,可以進行新用戶指紋注冊、指紋鎖名稱修改、管理員密碼修改以及直接開鎖等操作。

圖7 APP 功能
基于本系統設計的指紋鎖實現了在APP上進行指紋的采集、錄用、刪除、密碼開鎖和非法用戶使用報警等功能。相較于其他門鎖有集成度高、體積小、操作簡單和可拓展性強等優點。我們對本系統進行了綜合性的測試,實驗結果顯示該指紋鎖識別效率高且系統相對穩定。在研究指紋鎖系統的過程中,發現市場上的指紋鎖有很多的問題:指紋的識別精度低,核心技術無法獨立,整體技術水平低下。因此在未來可以作為物聯網產品,可以通過WIFI模塊與手機APP進行連接,實現對指紋鎖的遠程管理,具有較強的實用性。