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