《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的紅外遙控密碼鎖的設(shè)計(jì)
基于FPGA的紅外遙控密碼鎖的設(shè)計(jì)
來源:電子技術(shù)應(yīng)用2013年第11期
崔 巖,吳國(guó)興,顧媛媛,陸 惠,殷美琳
上海師范大學(xué)天華學(xué)院 實(shí)習(xí)實(shí)訓(xùn)處,上海201815
摘要: 介紹了一種基于可編程邏輯器件FPGA的電子密碼鎖的設(shè)計(jì)方法,具有性能可靠、使用方便以及良好的靈活性和可擴(kuò)展性等優(yōu)點(diǎn)。重點(diǎn)闡述了紅外遙控解碼、密碼鎖的解鎖、密碼修改等功能的實(shí)現(xiàn),給出了數(shù)字密碼鎖的電路原理圖及各模塊的波形仿真結(jié)果。
關(guān)鍵詞: FPGA 紅外遙控 電子密碼鎖
中圖分類號(hào): TN492;TN219
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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ì)量的不斷提高,如何在工作生活中實(shí)現(xiàn)安全有效的防盜成為人們所關(guān)心的問題。傳統(tǒng)的機(jī)械鎖由于其笨重、開鎖麻煩以及容易被破解破壞,已經(jīng)開始逐步退出市場(chǎ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)生與按鍵對(duì)應(yīng)的控制信號(hào),在信號(hào)發(fā)送前預(yù)先對(duì)按鍵信號(hào)進(jìn)行識(shí)別編碼,將數(shù)碼指令信號(hào)調(diào)制到載波上以串行數(shù)據(jù)的形式發(fā)送出去。接收器接收到來自于發(fā)射器的紅外信號(hào)后,經(jīng)過放大、濾波、解調(diào)等過程還原出基帶信號(hào)送入FPGA,通過相應(yīng)的密碼鎖解碼模塊,得到原始的按鍵信息并與原來設(shè)定的密碼進(jìn)行比對(duì),若密碼比對(duì)正確,則自動(dòng)開啟;若密碼輸入3次錯(cuò)誤,則自動(dòng)報(bào)警。系統(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個(gè)按鍵外加C1、C2兩個(gè)用戶碼,然而本設(shè)計(jì)要求有0~9 10個(gè)按鍵,外加各種諸如清除、發(fā)射之類的功能按鈕,顯然芯片本身提供的引腳遠(yuǎn)不能滿足設(shè)計(jì)需要。而當(dāng)K1~K8的值確定時(shí),C1的不同取值可以得到不同的編碼?;诖丝梢詫1~K8中的一部分按鍵通過邏輯門與C1、C2連起來,使得在擴(kuò)展按鍵下芯片的輸入各不相同時(shí)就可以得到能滿足設(shè)計(jì)需要的編碼。發(fā)射模塊的電路原理圖如圖2所示。K0~K13是設(shè)計(jì)的按鈕,對(duì)應(yīng)圖中的開關(guān),根據(jù)從各個(gè)開關(guān)到BA5104所經(jīng)過的器件的不同,以上14個(gè)開關(guān)可以分成四類。LED1為發(fā)光二極管,當(dāng)有鍵被按下時(shí)開始發(fā)光,按鍵彈起時(shí)發(fā)光停止,以此判斷發(fā)射器是否正常工作。LED2為紅外發(fā)射二極管,在按鍵按下時(shí)發(fā)射載有指令信號(hào)的方波。在實(shí)際電路中,通過測(cè)試發(fā)現(xiàn)圖2所示的發(fā)射電路是完全可行的,每一個(gè)按鍵的編碼都是唯一的,不會(huì)引起任何混亂。測(cè)試得到了表1所示的按鍵編碼表。

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

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

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

 

 

    圖4(b)中,信號(hào)1是解碼后送進(jìn)密碼鎖模塊的十進(jìn)制信號(hào);信號(hào)3、4、5、6依次是密碼鎖程序狀態(tài)機(jī)中的LOCK、CHPA、INPA、OPEN狀態(tài)。從信號(hào)6可以看出,此時(shí)的OPEN狀態(tài)出現(xiàn)了一個(gè)高電平,表示這時(shí)鎖已經(jīng)打開了;信號(hào)7是修改密成功標(biāo)志位,對(duì)照信號(hào)1可以明顯看出,當(dāng)修改密成功時(shí),信號(hào)7出現(xiàn)了一個(gè)正脈沖;信號(hào)8是記時(shí)開始標(biāo)志位,當(dāng)開鎖成功后,該標(biāo)志被置高電平,開始計(jì)時(shí),當(dāng)計(jì)時(shí)滿足一定條件時(shí)重新進(jìn)入鎖定狀態(tài);信號(hào)9是上鎖標(biāo)志,在輸入錯(cuò)誤次數(shù)達(dá)到3次或開鎖狀態(tài)下計(jì)時(shí)時(shí)間到時(shí)啟動(dòng)上鎖;信號(hào)10是密碼寄存器,從圖中可以看出,最開始儲(chǔ)存的密碼是000123,在改密后變成了000024。
    本文使用FPGA器件并加入紅外遙控技術(shù)實(shí)現(xiàn)對(duì)密碼鎖的設(shè)計(jì),大大增強(qiáng)了密碼鎖的安全性。經(jīng)過仿真測(cè)試,驗(yàn)證了本設(shè)計(jì)方法能滿足密碼鎖的各種功能要求,實(shí)現(xiàn)了預(yù)期效果。
參考文獻(xiàn)
[1] 武玉華,路而紅,張磊.?dāng)?shù)字密碼鎖專用集成電路的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2010,18(12):2842-2845.
[2] 鮑曉宇,黃松齡,劉國(guó).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.

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