文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)11-0044-03
隨著人們生活質(zhì)量的不斷提高,,如何在工作生活中實(shí)現(xiàn)安全有效的防盜成為人們所關(guān)心的問題。傳統(tǒng)的機(jī)械鎖由于其笨重,、開鎖麻煩以及容易被破解破壞,,已經(jīng)開始逐步退出市場[1]。本文設(shè)計(jì)的密碼鎖將鍵盤式電子密碼鎖與紅外遙控技術(shù)結(jié)合起來,,在保證實(shí)現(xiàn)輸入解鎖,、修改密碼功能的基礎(chǔ)下,還能進(jìn)行遠(yuǎn)距離遙控解鎖,。
1 密碼鎖系統(tǒng)的工作原理
本文設(shè)計(jì)的紅外遙控密碼鎖由紅外遙控發(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è)計(jì)
2.1發(fā)射模塊硬件設(shè)計(jì)
本設(shè)計(jì)采用紅外編碼發(fā)射芯片BA5104及其外圍電路構(gòu)成紅外發(fā)射器,,發(fā)射占空比為1/3的38 kHz方波,提供K1~K8 8個按鍵外加C1,、C2兩個用戶碼,,然而本設(shè)計(jì)要求有0~9 10個按鍵,外加各種諸如清除,、發(fā)射之類的功能按鈕,,顯然芯片本身提供的引腳遠(yuǎn)不能滿足設(shè)計(jì)需要。而當(dāng)K1~K8的值確定時,,C1的不同取值可以得到不同的編碼,。基于此可以將K1~K8中的一部分按鍵通過邏輯門與C1,、C2連起來,,使得在擴(kuò)展按鍵下芯片的輸入各不相同時就可以得到能滿足設(shè)計(jì)需要的編碼。發(fā)射模塊的電路原理圖如圖2所示,。K0~K13是設(shè)計(jì)的按鈕,,對應(yīng)圖中的開關(guān),根據(jù)從各個開關(guān)到BA5104所經(jīng)過的器件的不同,,以上14個開關(guān)可以分成四類,。LED1為發(fā)光二極管,當(dāng)有鍵被按下時開始發(fā)光,,按鍵彈起時發(fā)光停止,,以此判斷發(fā)射器是否正常工作。LED2為紅外發(fā)射二極管,,在按鍵按下時發(fā)射載有指令信號的方波。在實(shí)際電路中,,通過測試發(fā)現(xiàn)圖2所示的發(fā)射電路是完全可行的,,每一個按鍵的編碼都是唯一的,不會引起任何混亂。測試得到了表1所示的按鍵編碼表,。
2.2 接收模塊硬件設(shè)計(jì)
本設(shè)計(jì)采用CX20106A芯片作為接收器件,,其電路圖如圖3所示。該芯片接收到信號后經(jīng)過放大,、限幅,、濾波、檢波,、積分,、整形后以反向輸出的方式輸出指令信號,所以在接收部分的輸出端外加一個三極管構(gòu)成反向器,,以得到正常的數(shù)據(jù)信號,。
3 紅外遙控密碼鎖系統(tǒng)軟件設(shè)計(jì)
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è)計(jì)
在密碼鎖部分的程序設(shè)計(jì)中定義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ì)輸入,,經(jīng)編譯、校驗(yàn)后[5]得到時序仿真結(jié)果驗(yàn)證改密碼和開鎖的過程,。下面將給出部分仿真結(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)志被置高電平,開始計(jì)時,,當(dāng)計(jì)時滿足一定條件時重新進(jìn)入鎖定狀態(tài),;信號9是上鎖標(biāo)志,在輸入錯誤次數(shù)達(dá)到3次或開鎖狀態(tài)下計(jì)時時間到時啟動上鎖,;信號10是密碼寄存器,,從圖中可以看出,最開始儲存的密碼是000123,,在改密后變成了000024,。
本文使用FPGA器件并加入紅外遙控技術(shù)實(shí)現(xiàn)對密碼鎖的設(shè)計(jì),大大增強(qiáng)了密碼鎖的安全性,。經(jīng)過仿真測試,,驗(yàn)證了本設(shè)計(jì)方法能滿足密碼鎖的各種功能要求,實(shí)現(xiàn)了預(yù)期效果,。
參考文獻(xiàn)
[1] 武玉華,,路而紅,張磊.?dāng)?shù)字密碼鎖專用集成電路的設(shè)計(jì)[J].計(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è)計(jì)[M].北京:機(jī)械工業(yè)出版社,,2007.
[4] 王金明,,楊吉斌.?dāng)?shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL[M].北京:電子工業(yè)出版社,2011.
[5] Alter Corporation. Quartus Ⅱ Version 8.1 Handbook[EB/OL].(2008)[2013].http://www.altera.com.