文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)11-0044-03
隨著人們生活質(zhì)量的不斷提高,如何在工作生活中實現(xiàn)安全有效的防盜成為人們所關(guān)心的問題。傳統(tǒng)的機(jī)械鎖由于其笨重、開鎖麻煩以及容易被破解破壞,已經(jīng)開始逐步退出市場[1]。本文設(shè)計的密碼鎖將鍵盤式電子密碼鎖與紅外遙控技術(shù)結(jié)合起來,在保證實現(xiàn)輸入解鎖、修改密碼功能的基礎(chǔ)下,還能進(jìn)行遠(yuǎn)距離遙控解鎖。
1 密碼鎖系統(tǒng)的工作原理
本文設(shè)計的紅外遙控密碼鎖由紅外遙控發(fā)射模塊、接收模塊、鍵盤式密碼鎖模塊及液晶顯示模塊組成。在10 m的使用范圍內(nèi),通過紅外遙控發(fā)射器上的鍵盤輸入密碼,紅外發(fā)射器將產(chǎn)生與按鍵對應(yīng)的控制信號,在信號發(fā)送前預(yù)先對按鍵信號進(jìn)行識別編碼,將數(shù)碼指令信號調(diào)制到載波上以串行數(shù)據(jù)的形式發(fā)送出去。接收器接收到來自于發(fā)射器的紅外信號后,經(jīng)過放大、濾波、解調(diào)等過程還原出基帶信號送入FPGA,通過相應(yīng)的密碼鎖解碼模塊,得到原始的按鍵信息并與原來設(shè)定的密碼進(jìn)行比對,若密碼比對正確,則自動開啟;若密碼輸入3次錯誤,則自動報警。系統(tǒng)框圖如圖1所示。
2 紅外遙控密碼鎖系統(tǒng)硬件設(shè)計
2.1發(fā)射模塊硬件設(shè)計
本設(shè)計采用紅外編碼發(fā)射芯片BA5104及其外圍電路構(gòu)成紅外發(fā)射器,發(fā)射占空比為1/3的38 kHz方波,提供K1~K8 8個按鍵外加C1、C2兩個用戶碼,然而本設(shè)計要求有0~9 10個按鍵,外加各種諸如清除、發(fā)射之類的功能按鈕,顯然芯片本身提供的引腳遠(yuǎn)不能滿足設(shè)計需要。而當(dāng)K1~K8的值確定時,C1的不同取值可以得到不同的編碼?;诖丝梢詫1~K8中的一部分按鍵通過邏輯門與C1、C2連起來,使得在擴(kuò)展按鍵下芯片的輸入各不相同時就可以得到能滿足設(shè)計需要的編碼。發(fā)射模塊的電路原理圖如圖2所示。K0~K13是設(shè)計的按鈕,對應(yīng)圖中的開關(guān),根據(jù)從各個開關(guān)到BA5104所經(jīng)過的器件的不同,以上14個開關(guān)可以分成四類。LED1為發(fā)光二極管,當(dāng)有鍵被按下時開始發(fā)光,按鍵彈起時發(fā)光停止,以此判斷發(fā)射器是否正常工作。LED2為紅外發(fā)射二極管,在按鍵按下時發(fā)射載有指令信號的方波。在實際電路中,通過測試發(fā)現(xiàn)圖2所示的發(fā)射電路是完全可行的,每一個按鍵的編碼都是唯一的,不會引起任何混亂。測試得到了表1所示的按鍵編碼表。
2.2 接收模塊硬件設(shè)計
本設(shè)計采用CX20106A芯片作為接收器件,其電路圖如圖3所示。該芯片接收到信號后經(jīng)過放大、限幅、濾波、檢波、積分、整形后以反向輸出的方式輸出指令信號,所以在接收部分的輸出端外加一個三極管構(gòu)成反向器,以得到正常的數(shù)據(jù)信號。
3 紅外遙控密碼鎖系統(tǒng)軟件設(shè)計
3.1 數(shù)據(jù)的讀取
根據(jù)發(fā)射的規(guī)律,每個數(shù)據(jù)的幀頭都是110,為了減少芯片的工作量,可以設(shè)置一個解碼條件判斷幀頭是否是110。若是則進(jìn)行解碼;否則丟棄該數(shù)據(jù),不進(jìn)行任何操作[2]。這里定義4種狀態(tài)用來表示數(shù)據(jù)讀取過程中的各個狀態(tài)。在IDEL(初始化)狀態(tài)下,只要下一個信號不是系統(tǒng)復(fù)位信號,就轉(zhuǎn)入WAIT(等待數(shù)據(jù))狀態(tài),若此時系統(tǒng)發(fā)出復(fù)位信號,則繼續(xù)留在IDEL狀態(tài);在WAIT狀態(tài),若檢測到有數(shù)據(jù)輸入,則進(jìn)入DAIN(接收數(shù)據(jù))狀態(tài)進(jìn)行數(shù)據(jù)輸入,否則繼續(xù)停留在WAIT狀態(tài),當(dāng)遇到復(fù)位信號時,返回IDEL狀態(tài);在數(shù)據(jù)輸入的DAIN狀態(tài)輸入了12 bit(即一幀)數(shù)據(jù),進(jìn)入CHECK(檢測數(shù)據(jù))狀態(tài),判斷是否符合解碼條件,判斷結(jié)束后轉(zhuǎn)為WAIT狀態(tài),等待下次數(shù)據(jù)的輸入,若長時間沒有完成輸入,則轉(zhuǎn)回WAIT狀態(tài),繼續(xù)等待輸入數(shù)據(jù),同理遇復(fù)位信號轉(zhuǎn)入IDEL狀態(tài);在狀態(tài)機(jī)的后續(xù)程序中,根據(jù)CHECK的判斷結(jié)果按條件解碼,并根據(jù)表1輸出相應(yīng)的十進(jìn)制數(shù)據(jù)。
3.2 程序設(shè)計
在密碼鎖部分的程序設(shè)計中定義5種狀態(tài)表示密碼鎖工作狀態(tài)之間的轉(zhuǎn)換。在上電初始,系統(tǒng)首先進(jìn)入IDLE狀態(tài),并在時鐘脈沖的驅(qū)動下進(jìn)入LOCK(鎖定)狀態(tài)。在LOCK狀態(tài)下,若輸入解鎖的按鍵,則從該狀態(tài)轉(zhuǎn)換成INPA(密碼輸入)狀態(tài);若輸入的是改密按鍵,則進(jìn)入CHPA(改寫密碼)狀態(tài)。在CHPA狀態(tài)下,若輸入的是各種數(shù)字按鍵,則繼續(xù)停留在該狀態(tài)直到密碼輸入完成;若在其間兩次輸入密碼不同,則再次進(jìn)入LOCK狀態(tài)。輸入時間超過一定限制時也將自動返回LOCK狀態(tài)。密碼輸入結(jié)束即轉(zhuǎn)入OPEN(開鎖)狀態(tài)。當(dāng)系統(tǒng)處于OPEN狀態(tài)時,若輸入的密碼正確,則輸出開鎖信號;否則直接轉(zhuǎn)入LOCK狀態(tài)。對于數(shù)據(jù)接收到的指令信號,需要交給FPGA去識別判斷處理,控制液晶顯示屏顯示相應(yīng)的信息,以便直觀地判斷出是否能達(dá)到密碼鎖預(yù)想的功能[3]。
3.3 仿真結(jié)果及說明
選用Verilog硬件描述語言進(jìn)行編程,用Altera公司的QuartusII軟件開發(fā)系統(tǒng)進(jìn)行軟件開發(fā)。QuartusII軟件開發(fā)系統(tǒng)擁有編譯、邏輯綜合、仿真等功能[4]。在QuartusII上進(jìn)行設(shè)計輸入,經(jīng)編譯、校驗后[5]得到時序仿真結(jié)果驗證改密碼和開鎖的過程。下面將給出部分仿真結(jié)果及說明。
為方便描述,將圖4(a)、圖4(b)中的所有信號分別按從上到下的順序依次編號為1,2,…。如圖4(a)所示,信號1是系統(tǒng)的時鐘信號;信號2是系統(tǒng)的復(fù)位信號,低電平有效;信號3是紅外解碼模塊的時鐘,由系統(tǒng)時鐘分頻得到;信號4是輸入的紅外編碼信號;信號5、6、7反映解碼模塊的各個狀態(tài)(WAIT、DAIN、CHECK狀態(tài))的變化;信號10是數(shù)據(jù)讀取模塊中的輸出標(biāo)志位。從圖4(a)中可以看出,當(dāng)信號4每組數(shù)據(jù)完成后,該標(biāo)志位就出現(xiàn)一個高電平。信號9是解碼后送進(jìn)密碼鎖模塊的十進(jìn)制信號,從圖4(a)中可以看出,發(fā)射端發(fā)送的第一個數(shù)據(jù)解碼后是十進(jìn)制的11,表示要執(zhí)行改密動作,緊接著輸入的是原始密碼1,2,3,下一個是13,該數(shù)據(jù)表示確認(rèn)的功能按鍵,然后輸入2,4,確認(rèn),再次輸入2,4,確認(rèn),則將密碼成功修改為24,下一個數(shù)據(jù)是十進(jìn)制的10,這是表示開鎖的功能按鍵,輸入2,4確認(rèn)后,打開密碼鎖。
圖4(b)中,信號1是解碼后送進(jìn)密碼鎖模塊的十進(jìn)制信號;信號3、4、5、6依次是密碼鎖程序狀態(tài)機(jī)中的LOCK、CHPA、INPA、OPEN狀態(tài)。從信號6可以看出,此時的OPEN狀態(tài)出現(xiàn)了一個高電平,表示這時鎖已經(jīng)打開了;信號7是修改密成功標(biāo)志位,對照信號1可以明顯看出,當(dāng)修改密成功時,信號7出現(xiàn)了一個正脈沖;信號8是記時開始標(biāo)志位,當(dāng)開鎖成功后,該標(biāo)志被置高電平,開始計時,當(dāng)計時滿足一定條件時重新進(jìn)入鎖定狀態(tài);信號9是上鎖標(biāo)志,在輸入錯誤次數(shù)達(dá)到3次或開鎖狀態(tài)下計時時間到時啟動上鎖;信號10是密碼寄存器,從圖中可以看出,最開始儲存的密碼是000123,在改密后變成了000024。
本文使用FPGA器件并加入紅外遙控技術(shù)實現(xiàn)對密碼鎖的設(shè)計,大大增強(qiáng)了密碼鎖的安全性。經(jīng)過仿真測試,驗證了本設(shè)計方法能滿足密碼鎖的各種功能要求,實現(xiàn)了預(yù)期效果。
參考文獻(xiàn)
[1] 武玉華,路而紅,張磊.?dāng)?shù)字密碼鎖專用集成電路的設(shè)計[J].計算機(jī)測量與控制,2010,18(12):2842-2845.
[2] 鮑曉宇,黃松齡,劉國.PLD器件在紅外遙控解碼中的應(yīng)用[J].電子技術(shù)應(yīng)用,2000,26(1):67-70.
[3] 王冠,愈一鳴.面向CPLD/FPGA的Verilog設(shè)計[M].北京:機(jī)械工業(yè)出版社,2007.
[4] 王金明,楊吉斌.?dāng)?shù)字系統(tǒng)設(shè)計與Verilog HDL[M].北京:電子工業(yè)出版社,2011.
[5] Alter Corporation. Quartus Ⅱ Version 8.1 Handbook[EB/OL].(2008)[2013].http://www.altera.com.