《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的紅外遙控密碼鎖的設計
基于FPGA的紅外遙控密碼鎖的設計
來源:電子技術應用2013年第11期
崔 巖,吳國興,顧媛媛,陸 惠,殷美琳
上海師范大學天華學院 實習實訓處,上海201815
摘要: 介紹了一種基于可編程邏輯器件FPGA的電子密碼鎖的設計方法,具有性能可靠、使用方便以及良好的靈活性和可擴展性等優(yōu)點。重點闡述了紅外遙控解碼、密碼鎖的解鎖、密碼修改等功能的實現(xiàn),給出了數(shù)字密碼鎖的電路原理圖及各模塊的波形仿真結果。
中圖分類號: TN492;TN219
文獻標識碼: A
文章編號: 0258-7998(2013)11-0044-03
Design of a FPGA-based code lock with infrared remote control
Cui Yan,Wu Guoxing,Gu Yuanyuan,Lu Hui,Yin Meilin
Section of Practice and Training,Tianhua College of Shanghai Normal University,Shanghai 201815,China
Abstract: In this paper,a design method of electronic secret code lock which is based on FPGA is introduced. The system works stably and has high flexibility and scalability. Focusing on introducing design approach to achieve infrared remote control decoder chip, open the lock, change the passwords. The schematics and the simulation waveform are presented.
Key words : infrared remote control;electronic secret code lock;FPGA

    隨著人們生活質量的不斷提高,如何在工作生活中實現(xiàn)安全有效的防盜成為人們所關心的問題。傳統(tǒng)的機械鎖由于其笨重、開鎖麻煩以及容易被破解破壞,已經(jīng)開始逐步退出市場[1]。本文設計的密碼鎖將鍵盤式電子密碼鎖紅外遙控技術結合起來,在保證實現(xiàn)輸入解鎖、修改密碼功能的基礎下,還能進行遠距離遙控解鎖。

1 密碼鎖系統(tǒng)的工作原理
    本文設計的紅外遙控密碼鎖由紅外遙控發(fā)射模塊、接收模塊、鍵盤式密碼鎖模塊及液晶顯示模塊組成。在10 m的使用范圍內,通過紅外遙控發(fā)射器上的鍵盤輸入密碼,紅外發(fā)射器將產生與按鍵對應的控制信號,在信號發(fā)送前預先對按鍵信號進行識別編碼,將數(shù)碼指令信號調制到載波上以串行數(shù)據(jù)的形式發(fā)送出去。接收器接收到來自于發(fā)射器的紅外信號后,經(jīng)過放大、濾波、解調等過程還原出基帶信號送入FPGA,通過相應的密碼鎖解碼模塊,得到原始的按鍵信息并與原來設定的密碼進行比對,若密碼比對正確,則自動開啟;若密碼輸入3次錯誤,則自動報警。系統(tǒng)框圖如圖1所示。

2 紅外遙控密碼鎖系統(tǒng)硬件設計
2.1發(fā)射模塊硬件設計

    本設計采用紅外編碼發(fā)射芯片BA5104及其外圍電路構成紅外發(fā)射器,發(fā)射占空比為1/3的38 kHz方波,提供K1~K8 8個按鍵外加C1、C2兩個用戶碼,然而本設計要求有0~9 10個按鍵,外加各種諸如清除、發(fā)射之類的功能按鈕,顯然芯片本身提供的引腳遠不能滿足設計需要。而當K1~K8的值確定時,C1的不同取值可以得到不同的編碼?;诖丝梢詫1~K8中的一部分按鍵通過邏輯門與C1、C2連起來,使得在擴展按鍵下芯片的輸入各不相同時就可以得到能滿足設計需要的編碼。發(fā)射模塊的電路原理圖如圖2所示。K0~K13是設計的按鈕,對應圖中的開關,根據(jù)從各個開關到BA5104所經(jīng)過的器件的不同,以上14個開關可以分成四類。LED1為發(fā)光二極管,當有鍵被按下時開始發(fā)光,按鍵彈起時發(fā)光停止,以此判斷發(fā)射器是否正常工作。LED2為紅外發(fā)射二極管,在按鍵按下時發(fā)射載有指令信號的方波。在實際電路中,通過測試發(fā)現(xiàn)圖2所示的發(fā)射電路是完全可行的,每一個按鍵的編碼都是唯一的,不會引起任何混亂。測試得到了表1所示的按鍵編碼表。

2.2 接收模塊硬件設計
    本設計采用CX20106A芯片作為接收器件,其電路圖如圖3所示。該芯片接收到信號后經(jīng)過放大、限幅、濾波、檢波、積分、整形后以反向輸出的方式輸出指令信號,所以在接收部分的輸出端外加一個三極管構成反向器,以得到正常的數(shù)據(jù)信號。

3 紅外遙控密碼鎖系統(tǒng)軟件設計
3.1 數(shù)據(jù)的讀取

      根據(jù)發(fā)射的規(guī)律,每個數(shù)據(jù)的幀頭都是110,為了減少芯片的工作量,可以設置一個解碼條件判斷幀頭是否是110。若是則進行解碼;否則丟棄該數(shù)據(jù),不進行任何操作[2]。這里定義4種狀態(tài)用來表示數(shù)據(jù)讀取過程中的各個狀態(tài)。在IDEL(初始化)狀態(tài)下,只要下一個信號不是系統(tǒng)復位信號,就轉入WAIT(等待數(shù)據(jù))狀態(tài),若此時系統(tǒng)發(fā)出復位信號,則繼續(xù)留在IDEL狀態(tài);在WAIT狀態(tài),若檢測到有數(shù)據(jù)輸入,則進入DAIN(接收數(shù)據(jù))狀態(tài)進行數(shù)據(jù)輸入,否則繼續(xù)停留在WAIT狀態(tài),當遇到復位信號時,返回IDEL狀態(tài);在數(shù)據(jù)輸入的DAIN狀態(tài)輸入了12 bit(即一幀)數(shù)據(jù),進入CHECK(檢測數(shù)據(jù))狀態(tài),判斷是否符合解碼條件,判斷結束后轉為WAIT狀態(tài),等待下次數(shù)據(jù)的輸入,若長時間沒有完成輸入,則轉回WAIT狀態(tài),繼續(xù)等待輸入數(shù)據(jù),同理遇復位信號轉入IDEL狀態(tài);在狀態(tài)機的后續(xù)程序中,根據(jù)CHECK的判斷結果按條件解碼,并根據(jù)表1輸出相應的十進制數(shù)據(jù)。
3.2 程序設計
      在密碼鎖部分的程序設計中定義5種狀態(tài)表示密碼鎖工作狀態(tài)之間的轉換。在上電初始,系統(tǒng)首先進入IDLE狀態(tài),并在時鐘脈沖的驅動下進入LOCK(鎖定)狀態(tài)。在LOCK狀態(tài)下,若輸入解鎖的按鍵,則從該狀態(tài)轉換成INPA(密碼輸入)狀態(tài);若輸入的是改密按鍵,則進入CHPA(改寫密碼)狀態(tài)。在CHPA狀態(tài)下,若輸入的是各種數(shù)字按鍵,則繼續(xù)停留在該狀態(tài)直到密碼輸入完成;若在其間兩次輸入密碼不同,則再次進入LOCK狀態(tài)。輸入時間超過一定限制時也將自動返回LOCK狀態(tài)。密碼輸入結束即轉入OPEN(開鎖)狀態(tài)。當系統(tǒng)處于OPEN狀態(tài)時,若輸入的密碼正確,則輸出開鎖信號;否則直接轉入LOCK狀態(tài)。對于數(shù)據(jù)接收到的指令信號,需要交給FPGA去識別判斷處理,控制液晶顯示屏顯示相應的信息,以便直觀地判斷出是否能達到密碼鎖預想的功能[3]。
3.3 仿真結果及說明
    選用Verilog硬件描述語言進行編程,用Altera公司的QuartusII軟件開發(fā)系統(tǒng)進行軟件開發(fā)。QuartusII軟件開發(fā)系統(tǒng)擁有編譯、邏輯綜合、仿真等功能[4]。在QuartusII上進行設計輸入,經(jīng)編譯、校驗后[5]得到時序仿真結果驗證改密碼和開鎖的過程。下面將給出部分仿真結果及說明。
    為方便描述,將圖4(a)、圖4(b)中的所有信號分別按從上到下的順序依次編號為1,2,…。如圖4(a)所示,信號1是系統(tǒng)的時鐘信號;信號2是系統(tǒng)的復位信號,低電平有效;信號3是紅外解碼模塊的時鐘,由系統(tǒng)時鐘分頻得到;信號4是輸入的紅外編碼信號;信號5、6、7反映解碼模塊的各個狀態(tài)(WAIT、DAIN、CHECK狀態(tài))的變化;信號10是數(shù)據(jù)讀取模塊中的輸出標志位。從圖4(a)中可以看出,當信號4每組數(shù)據(jù)完成后,該標志位就出現(xiàn)一個高電平。信號9是解碼后送進密碼鎖模塊的十進制信號,從圖4(a)中可以看出,發(fā)射端發(fā)送的第一個數(shù)據(jù)解碼后是十進制的11,表示要執(zhí)行改密動作,緊接著輸入的是原始密碼1,2,3,下一個是13,該數(shù)據(jù)表示確認的功能按鍵,然后輸入2,4,確認,再次輸入2,4,確認,則將密碼成功修改為24,下一個數(shù)據(jù)是十進制的10,這是表示開鎖的功能按鍵,輸入2,4確認后,打開密碼鎖。

 

 

    圖4(b)中,信號1是解碼后送進密碼鎖模塊的十進制信號;信號3、4、5、6依次是密碼鎖程序狀態(tài)機中的LOCK、CHPA、INPA、OPEN狀態(tài)。從信號6可以看出,此時的OPEN狀態(tài)出現(xiàn)了一個高電平,表示這時鎖已經(jīng)打開了;信號7是修改密成功標志位,對照信號1可以明顯看出,當修改密成功時,信號7出現(xiàn)了一個正脈沖;信號8是記時開始標志位,當開鎖成功后,該標志被置高電平,開始計時,當計時滿足一定條件時重新進入鎖定狀態(tài);信號9是上鎖標志,在輸入錯誤次數(shù)達到3次或開鎖狀態(tài)下計時時間到時啟動上鎖;信號10是密碼寄存器,從圖中可以看出,最開始儲存的密碼是000123,在改密后變成了000024。
    本文使用FPGA器件并加入紅外遙控技術實現(xiàn)對密碼鎖的設計,大大增強了密碼鎖的安全性。經(jīng)過仿真測試,驗證了本設計方法能滿足密碼鎖的各種功能要求,實現(xiàn)了預期效果。
參考文獻
[1] 武玉華,路而紅,張磊.數(shù)字密碼鎖專用集成電路的設計[J].計算機測量與控制,2010,18(12):2842-2845.
[2] 鮑曉宇,黃松齡,劉國.PLD器件在紅外遙控解碼中的應用[J].電子技術應用,2000,26(1):67-70.
[3] 王冠,愈一鳴.面向CPLD/FPGA的Verilog設計[M].北京:機械工業(yè)出版社,2007.
[4] 王金明,楊吉斌.數(shù)字系統(tǒng)設計與Verilog HDL[M].北京:電子工業(yè)出版社,2011.
[5] Alter Corporation. Quartus Ⅱ Version 8.1 Handbook[EB/OL].(2008)[2013].http://www.altera.com.

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。