《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的紅外遙控密碼鎖的設(shè)計
基于FPGA的紅外遙控密碼鎖的設(shè)計
來源:電子技術(shù)應(yīng)用2013年第11期
崔 巖,吳國興,顧媛媛,陸 惠,殷美琳
上海師范大學(xué)天華學(xué)院 實習(xí)實訓(xùn)處,上海201815
摘要: 介紹了一種基于可編程邏輯器件FPGA的電子密碼鎖的設(shè)計方法,具有性能可靠、使用方便以及良好的靈活性和可擴(kuò)展性等優(yōu)點。重點闡述了紅外遙控解碼、密碼鎖的解鎖、密碼修改等功能的實現(xiàn),給出了數(shù)字密碼鎖的電路原理圖及各模塊的波形仿真結(jié)果。
關(guān)鍵詞: FPGA 紅外遙控 電子密碼鎖
中圖分類號: TN492;TN219
文獻(xiàn)標(biāo)識碼: 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

    隨著人們生活質(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.

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