孫賽偉 田曉光 田廣強(qiáng)
摘要:密碼鎖在生活中很常見,但其中大多數(shù)的密碼鎖均以陣列式按鍵作為輸入裝置,陣列式按鍵的密碼鎖有體積大、按鍵易損壞、密鑰易傳播的缺點(diǎn)。本文介紹一種以STM32為主控芯片的密碼鎖,其輸入裝置僅有一個(gè)按鍵,密鑰組成方式特殊,在僅具有一個(gè)按鍵的情況下能靈活的實(shí)現(xiàn)密鑰輸入與修改操作。單按鍵式密碼鎖在很大程度上減小了密碼鎖的體積,操作簡(jiǎn)單,使用價(jià)值較高。
關(guān)鍵詞:STM32;密碼鎖;密鑰組成;單按鍵;體積
中圖分類號(hào):TS914.2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)02-0161-02
1 前言
現(xiàn)在人們的生活水平越來越高,人們對(duì)自己的人身及財(cái)產(chǎn)安全也越來越重視。隨著科技的進(jìn)步與發(fā)展,我們生活中的鎖具也在逐漸變化的越來越智能與安全。生活中常見的密碼鎖的解鎖方式多是數(shù)字組合或者采用能識(shí)別人體特征的裝置來解鎖,比如常見的電子密碼鎖、指紋鎖、感應(yīng)卡片鎖、聲控鎖、人臉識(shí)別鎖等。這些鎖具的應(yīng)用大大增加了人們生活的安全系數(shù),保證了我們的財(cái)產(chǎn)及人身安全,讓不法分子無機(jī)可乘。但這些鎖在體積上變得越來越大,結(jié)構(gòu)也變得越來越復(fù)雜,使得工人在安裝與維修的過程中遇到的問題也復(fù)雜多樣。在一些小體積裝置上使用密碼鎖變得越來越難。本文介紹一種小型的智能安全密碼鎖,其具有獨(dú)特的解鎖方式,僅利用單個(gè)按鍵來完成密鑰輸入,在不影響安全性的情況下極大的減小了智能鎖的體積。
2 硬件設(shè)計(jì)
單按鍵密碼鎖的硬件由六個(gè)部分組成(如圖1所示):輸入裝置、微控制器、顯示設(shè)備、開關(guān)鎖控制電路、警報(bào)裝置、供電電路。
2.1 輸入裝置設(shè)計(jì)
輸入裝置是人機(jī)交互的一種必要設(shè)備,目前市場(chǎng)上最常見的密碼鎖多采用普通陣列式按鍵作為密鑰輸入裝置,用戶根據(jù)前期設(shè)置的數(shù)字密碼在陣列式按鍵上按壓對(duì)應(yīng)的數(shù)字按鍵即可解開密碼鎖。而新型單按鍵密碼鎖采用單個(gè)按鍵作為輸入裝置,大大減少了按鍵的數(shù)量。由于采用了單個(gè)按鍵作為密鑰輸入裝置,這就需要重新定義一種新的密鑰組成方式?,F(xiàn)有的單個(gè)按鍵作為輸入裝置的設(shè)計(jì)方案是通過利用按按鍵的次數(shù)與頻率組成密鑰即按壓按鍵一次計(jì)數(shù)加一。例如密碼為“5432”,按動(dòng)按鍵方式為:連續(xù)按壓5次、連續(xù)按壓4次、連續(xù)按壓3次、連續(xù)按壓2次,密碼數(shù)與密碼數(shù)之間有明顯停頓[1]。
通過按按鍵的頻率與次數(shù)組成密鑰實(shí)際上是在單個(gè)按鍵上實(shí)現(xiàn)數(shù)字密鑰的特點(diǎn)。但在輸入的過程中一個(gè)數(shù)字需要按按鍵多次反而增加了密碼鎖的使用復(fù)雜度,在密鑰組成中有大數(shù)字的情況下以按按鍵次數(shù)轉(zhuǎn)化為數(shù)字會(huì)變得非常繁瑣。而本文在設(shè)計(jì)密鑰組成方式時(shí)采取長(zhǎng)短電信號(hào)組合作為密鑰組成的特征元素,類似于摩爾斯電碼的單個(gè)字符組成方式。摩爾斯電碼由美國(guó)的摩爾斯在1844年發(fā)明,他有一個(gè)可輸入長(zhǎng)短電信號(hào)的信號(hào)發(fā)生裝置,由操作者以不同時(shí)間間隔按壓信號(hào)發(fā)生裝置產(chǎn)生的長(zhǎng)短電信號(hào)作為輸入密鑰。例如輸入一個(gè)字母X操作者需要操作信號(hào)發(fā)生裝置“長(zhǎng)按-短按-短按-長(zhǎng)按”形成“嗒-嘀-嘀-嗒”的長(zhǎng)短電信號(hào)組合。我們也以長(zhǎng)短信號(hào)組合作為密鑰組成,且重新定義長(zhǎng)短電信號(hào)。以發(fā)生電平變化持續(xù)時(shí)間小于1S定義為短電信號(hào)大于1S定義為長(zhǎng)電信號(hào)。例如初步設(shè)置密鑰組成為:長(zhǎng)電信號(hào)、短電信號(hào)、短電信號(hào)、長(zhǎng)電信號(hào)、長(zhǎng)電信號(hào),按照這種長(zhǎng)短電信號(hào)組合按下按鍵,并且在一定時(shí)間內(nèi)連續(xù)輸入密鑰,即可解鎖密碼鎖。這種密鑰組成方式使的密碼鎖使用起來更加方便,易錯(cuò)率低。
密碼鎖在使用按鍵輸入時(shí)會(huì)出現(xiàn)按鍵抖動(dòng)的現(xiàn)象。這是由于采用的機(jī)械式按鍵是依靠觸點(diǎn)的接觸來判斷接通與斷開,但在按鍵發(fā)生動(dòng)作的瞬間會(huì)出現(xiàn)一連串的抖動(dòng),此時(shí)微控制器就會(huì)誤認(rèn)為多次按下按鍵。為消除按鍵抖動(dòng)的影響并保持輸入密鑰的穩(wěn)定性,我們結(jié)合硬件消抖與軟件過濾按鍵抖動(dòng)的方法。硬件消抖能將按鍵按下或松開時(shí)產(chǎn)生的抖動(dòng)在信號(hào)輸入系統(tǒng)之前消除掉,這樣節(jié)約了CPU資源,提高了系統(tǒng)的響應(yīng)速度。硬件消抖常采用基本RS觸發(fā)器硬件消抖、電容濾波消抖、中斷法消抖[2]。由于我們采取的按鍵為反彈式的單個(gè)按鍵,所以選取電容濾波消抖最為合適。電容濾波消抖相比于其他兩種方法其電路簡(jiǎn)單,消除抖動(dòng)效果顯著。通過在反彈式按鍵的兩個(gè)接線端并聯(lián)一個(gè)電容,利用電容的充放電特性延時(shí)平波,然后再經(jīng)過施密特反向器就可以得到平滑的脈沖波。軟件消抖即在按鍵動(dòng)作發(fā)生時(shí)執(zhí)行一個(gè)延時(shí)程序,在延時(shí)程序執(zhí)行完畢后程序再一次檢測(cè)按鍵狀態(tài)。這樣通過利用延時(shí)程序隔斷了抖動(dòng)的影響。相比于普通陣列式按鍵密碼輸入裝置,單按鍵輸入裝置更容易過濾非正常的輸入信息,增加了輸入密鑰的正確性。
2.2 微控制器
微控制器的選用應(yīng)考慮密碼鎖的體積,主控芯片應(yīng)以體積小功耗低反應(yīng)速度快為選取標(biāo)準(zhǔn)。常見的密碼鎖多以AT89C51單片機(jī)作為控制芯片,但AT89C51單片機(jī)內(nèi)存小,功耗較高且接口資源有限。FPGA(Field-Programmable Gate Array)系列芯片價(jià)格昂貴,開發(fā)周期長(zhǎng)。而STM32具有體積小性價(jià)比高的特點(diǎn),基于ARM32位的Cortex-M3系列的內(nèi)核,工作頻率可達(dá)到72MHZ片上集成16K至512k的Flash儲(chǔ)存器,最大64K字節(jié)的SRAM存儲(chǔ)器,其IO口、串口通訊接口豐富。STM32系列芯片具有多種配套的軟件和開發(fā)工具,其程序均是模塊化的,接口相對(duì)簡(jiǎn)單些,工作速度快。選擇STM32在一定程度上降低了產(chǎn)品的開發(fā)設(shè)計(jì)周期與成本。
2.3 顯示設(shè)備與警報(bào)裝置
顯示設(shè)備是為了提示用戶正確而規(guī)范的操作,我們利用顯示屏實(shí)時(shí)提供信息提示。顯示屏采用市場(chǎng)中常見的LCD12864字符型液晶顯示屏,它具有4位或8位并行、2線或3線串行的多種接口,內(nèi)置豐富的中文字庫。它可一次顯示多個(gè)字符,構(gòu)成全中文的人機(jī)交互界面。LCD12864顯示屏與普通顯示屏相比較具有以下幾個(gè)特點(diǎn):(1)顯示畫面清晰,無畫面抖動(dòng)與亮度閃爍的情況,易于使用者實(shí)時(shí)觀查顯示屏上的提示信息。(2)能夠便捷的與STM32系列芯片連接,片上資源豐富,易于開發(fā)與制作。(3)LCD12864價(jià)格低廉,節(jié)約了硬件成本,而且耗電量小,使用時(shí)間長(zhǎng)久。
警報(bào)裝置的應(yīng)用是在一些不法分子試圖打開密碼鎖或他人非正常操作時(shí)能夠警示其操作,提高密碼鎖的安全性。
2.4 開關(guān)鎖控制電路
用戶經(jīng)過提示后逐步輸入密鑰,密鑰輸入完畢后系統(tǒng)判斷密鑰是否正確,若輸入正確微控制器發(fā)出開門信號(hào),開關(guān)鎖控制電路接收到信號(hào)后驅(qū)動(dòng)機(jī)械設(shè)備即可將密碼鎖打開。開關(guān)鎖控制電路必須能經(jīng)受強(qiáng)電磁干擾,必免控制設(shè)備由于強(qiáng)電磁干擾造成開鎖信號(hào)判斷錯(cuò)誤或者電路紊亂等問題。
3 系統(tǒng)設(shè)計(jì)
當(dāng)密碼鎖上電后,系統(tǒng)檢測(cè)門鎖的狀態(tài),若密碼鎖為開啟狀態(tài)則系統(tǒng)在LCD12864液晶顯示屏上顯示“密碼鎖鎖已開啟”,若檢測(cè)到密碼鎖處于關(guān)閉狀態(tài)則LCD12864液晶顯示屏上顯示“請(qǐng)輸入密鑰”。在輸入密鑰的過程中LCD12864液晶顯示屏實(shí)時(shí)提示用戶“正在輸入密鑰中”,由于是通過單個(gè)按鍵的按壓形成的長(zhǎng)短電信號(hào)作為輸入密鑰,則在密鑰輸入的過程中必須保證密鑰的連續(xù)性輸入即在一定時(shí)間內(nèi)要完成密鑰輸入。當(dāng)兩次電信號(hào)輸入時(shí)間間隔超過初始設(shè)定的時(shí)間值時(shí),系統(tǒng)會(huì)自動(dòng)認(rèn)為用戶輸入密鑰的過程屬于非正常輸入狀態(tài)。被判定為非正常輸入狀態(tài)后系統(tǒng)自動(dòng)返回到初始輸入狀態(tài)并在LCD12864液晶顯示屏上提醒用戶“請(qǐng)重新輸入密碼”。若一次性連續(xù)輸入密鑰則進(jìn)行下一步——密鑰比對(duì),微控制器將輸入的密鑰與初始設(shè)定的密鑰進(jìn)行比對(duì),當(dāng)輸入密鑰與初始設(shè)定密鑰相同時(shí)則對(duì)開關(guān)鎖控制電路發(fā)出開鎖信號(hào),若輸入密碼不正確則將重新提醒用戶“請(qǐng)重新輸入密鑰”。在輸入密鑰時(shí)間超時(shí)與輸入密鑰錯(cuò)誤累加為三次的情況下密碼鎖發(fā)出警報(bào),警示用戶密碼鎖正處于非正常操作狀態(tài),警示時(shí)間過后方可再一次重新輸入。整體的解鎖流程如圖2所示。
當(dāng)我們要對(duì)單按鍵密碼鎖的密鑰重新修改時(shí),為了防止非常規(guī)性的操作,需要設(shè)置一定的密鑰修改保護(hù)措施,具體密鑰修改流程如圖3所示。首先密碼鎖應(yīng)處于解鎖的狀態(tài)下,才能對(duì)密鑰進(jìn)行修改,在解鎖狀態(tài)下長(zhǎng)按三次按鍵形成三次長(zhǎng)電信號(hào)即可進(jìn)入密鑰修改模式。在密鑰修改模式下LCD12864液晶屏首先提示使用者輸入原始密鑰。當(dāng)輸入原密鑰不正確時(shí)則需要再一次重新提醒輸入原始密鑰,若輸入兩次原始密鑰錯(cuò)誤則自動(dòng)退出密鑰修改模式。若輸入原密鑰正確則LCD12864液晶顯示屏提示下一步輸入兩次新密鑰,在按操作提醒后輸入兩次新密鑰,兩次輸入的新密鑰相同時(shí)則系統(tǒng)自動(dòng)保存新密鑰,若不相同則自動(dòng)退出密鑰修改模式。
4 Proteus仿真
我們通過電路仿真軟件Proteus對(duì)單按鍵密碼鎖進(jìn)行模擬仿真,證明了單按鍵密碼鎖設(shè)計(jì)的可行性,可以在單個(gè)按鍵作為輸入設(shè)備的情況下靈活的對(duì)密碼鎖進(jìn)行密鑰鎖解鎖與密碼修改等控制。在沒有實(shí)際制作硬件并測(cè)試時(shí)電路仿真減小了設(shè)計(jì)周期,并能多次調(diào)試發(fā)現(xiàn)設(shè)計(jì)中的不足之處。
5 應(yīng)用前景
基于STM32的單按鍵密碼鎖可廣泛應(yīng)用在一些中小型電子設(shè)備及生活用品上,不同于陣列式按鍵密碼鎖其體積小便于安裝與使用。例如應(yīng)用到生活中的柜鎖、門鎖、車鎖等。獨(dú)特的密鑰組成方式增加了密碼鎖使用的安全性。
6 結(jié)語
單按鍵密碼鎖設(shè)計(jì)以硬件簡(jiǎn)單、體積小、使用簡(jiǎn)便為特點(diǎn)。該設(shè)計(jì)方案運(yùn)用了STM32芯片、LCD12864液晶顯示屏、單個(gè)按鍵等常用的電子元件。實(shí)現(xiàn)了在簡(jiǎn)單的結(jié)構(gòu)和電路下設(shè)計(jì)出安全性高且易于操作的密碼鎖。該密碼鎖的創(chuàng)新點(diǎn)是密鑰輸入裝置為單個(gè)按鍵,密鑰以不同數(shù)量不同排序的長(zhǎng)短電信號(hào)組成。不同于已有的陣列式按鍵密鑰輸入方式。新穎的密鑰輸入方式在一定程度上增加了密碼鎖的安全性與實(shí)用性,具有較高的使用價(jià)值。
參考文獻(xiàn)
[1] 李崗.單按鍵密碼鎖[J].電子制作,2003(06):61-63.
[2] 楊偉.單片機(jī)按鍵消抖技術(shù)及其擴(kuò)展應(yīng)用[J].電子測(cè)試,2016(03):96-97.
[3] 劉佳樂.基于單片機(jī)的電子密碼鎖設(shè)計(jì)[J].中國(guó)新技術(shù)新產(chǎn)品,2018(23):7-8.
[4] 徐慶偉,郭振鐸,劉洲峰.基于STM32的電子密碼鎖設(shè)計(jì)[J].中原工學(xué)院學(xué)報(bào),2018, 29(06):61-65.
[5] 王英輝,劉世行,黃英凡,王澤楠.一種智能密碼鎖的設(shè)計(jì)與研究[J].中國(guó)新技術(shù)新產(chǎn)品,2019(01):9-10.
Design of Single-button Password Lock Based on STM32
SUN Sai-wei ,TIAN Xiao-guang ,TIAN Guang-qiang
(College of Mechanical and Electrical Engineering, Huanghe Jiaotong University,Jiaozuo Henan? 454150)
Abstract:Password locks are very common in life, but most of them use arrayed keys as input devices. The arrayed keys have the disadvantages of large size, easy to damage keys and easy to spread keys.This paper introduces a password lock with STM32 as the main control chip. Its input device has only one key, and the key composition is special. It can flexibly implement key input and modification operation with only one key.The single-button password lock reduces the size of the password lock to a great extent. It is easy to operate and has high value in use.
Key words:STM32;password lock;key composition;single button;volume