關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于狀態(tài)機(jī)的語(yǔ)音電子密碼鎖設(shè)計(jì)

基于狀態(tài)機(jī)的語(yǔ)音電子密碼鎖設(shè)計(jì)

——
作者: 時(shí)間:2007-11-02 來(lái)源:電子工程師 收藏

  引 言

  隨著電子技術(shù)的發(fā)展,具有防盜報(bào)警、語(yǔ)音提示等功能的代替密碼量少、安全性差的機(jī)械式密碼鎖已是必然趨勢(shì)。目前大部分密碼鎖采用單片機(jī)進(jìn)行設(shè)計(jì),電路較復(fù)雜,性能不夠靈活。本文采用先進(jìn)的EDA(電子設(shè)計(jì)自動(dòng)化)技術(shù),利用QuartusⅡ工作平臺(tái)和(超高速集成電路硬件描述語(yǔ)言),設(shè)計(jì)了一種新型的。該密碼鎖具有密碼預(yù)置、修改、語(yǔ)音提示和3次輸入錯(cuò)誤則系統(tǒng)進(jìn)入定時(shí)鎖定并報(bào)警等功能,用(現(xiàn)場(chǎng)可編程門陣列)芯片和語(yǔ)音芯片ISD2560實(shí)現(xiàn)。由于充分利用了芯片密度大、功耗低、可重復(fù)編程和具有嵌入式陣列塊的結(jié)構(gòu)特點(diǎn),且ISD2560具有抗斷電、音質(zhì)好、使用方便等優(yōu)點(diǎn),因而該密碼鎖體積小、功耗低、價(jià)格低、安全可靠、具有智能語(yǔ)音提示、維護(hù)和升級(jí)方便。

  1 軟件設(shè)計(jì)

  軟件用來(lái)實(shí)現(xiàn),相比較于VerilogHDL,具有更好的語(yǔ)法的嚴(yán)格性,但是其嚴(yán)格的語(yǔ)法一定程度上限制了錯(cuò)誤的產(chǎn)生,調(diào)試較容易。VHDL的系統(tǒng)抽象能力比Verilog HDL強(qiáng),在系統(tǒng)描述上占有一定的優(yōu)勢(shì),但在門級(jí)描述上稍顯遜色。

  

本設(shè)計(jì)軟件模塊框圖

  本設(shè)計(jì)軟件模塊框圖如圖1所示,共8個(gè)模塊。

  在本系統(tǒng)中,密碼由4位十進(jìn)制數(shù)組成,初始密碼為“0000”,可由用戶任意設(shè)定密碼。密碼輸入正確時(shí),則進(jìn)入開(kāi)鎖狀態(tài)。如果密碼連續(xù)輸入3次錯(cuò)誤時(shí),則系統(tǒng)進(jìn)入自我定時(shí)鎖定,并報(bào)警。在輸入過(guò)程中,系統(tǒng)可以發(fā)音提示(也可屏蔽掉)用戶輸入的數(shù)字,或者說(shuō)明當(dāng)前的狀態(tài)。

  下面介紹狀態(tài)機(jī)和ISD2560控制電路的實(shí)現(xiàn)。

  本設(shè)計(jì)的狀態(tài)圖見(jiàn)圖2。

  其中state為狀態(tài)代碼,并通過(guò)state_out[3..0]端口傳給其他電路。一開(kāi)機(jī),系統(tǒng)處在空閑狀態(tài),當(dāng)按鍵處理電路傳來(lái)確定使能的信號(hào)compare_en時(shí),狀態(tài)機(jī)等待effect_out腳的高電平脈沖信號(hào),如果等不到則進(jìn)入S2狀態(tài),即進(jìn)入密碼輸入一次錯(cuò)誤狀態(tài),如果等到則進(jìn)入pass狀態(tài)即開(kāi)門狀態(tài),如果3次輸入密碼錯(cuò)誤則系統(tǒng)進(jìn)入死鎖倒計(jì)時(shí)狀態(tài),拉高lock_pin腳,啟動(dòng)計(jì)數(shù)器。

  

本設(shè)計(jì)的狀態(tài)圖

  軟件流程圖見(jiàn)圖3。

  

軟件流程圖

  當(dāng)計(jì)數(shù)滿時(shí)則計(jì)數(shù)電路拉高unlock腳電平,狀態(tài)機(jī)檢測(cè)到unlock腳下為高電平時(shí),則表示鎖定時(shí)間結(jié)束,復(fù)位lock_pin的電平,在下一個(gè)時(shí)鐘上升沿到來(lái)時(shí),進(jìn)入下一個(gè)狀態(tài)即idle狀態(tài)。只有pass狀態(tài)下從按鍵處理電路傳來(lái)modify_pin為高電平時(shí),才能進(jìn)入modify狀態(tài),即密碼修改狀態(tài)。當(dāng)檢測(cè)到modify_pin腳電平復(fù)位為低電平時(shí)則表明修改密碼完成,狀態(tài)機(jī)在下一個(gè)時(shí)鐘上升沿到來(lái)之時(shí),進(jìn)入下一個(gè)狀態(tài)即idle狀態(tài)。如果在pass狀態(tài)時(shí),狀態(tài)機(jī)檢測(cè)到close_pin腳電平被拉高時(shí),則表明用戶要關(guān)門,此系統(tǒng)在下一個(gè)時(shí)鐘上升沿到來(lái)之時(shí),返同空閑狀態(tài)。

  狀態(tài)機(jī)還控制紅綠黃3個(gè)發(fā)光二極管與buzz-er蜂鳴器,仿真波形如圖4所示。當(dāng)系統(tǒng)處在空閑狀態(tài)、S2狀態(tài)、S3狀態(tài)時(shí)黃燈亮(S2、S3為第2次、第3次輸入密碼錯(cuò)誤的狀態(tài));系統(tǒng)處在修改密碼的狀態(tài)即modify狀態(tài)時(shí),3個(gè)燈一起亮;當(dāng)處于pass狀態(tài)時(shí),綠燈亮;當(dāng)系統(tǒng)處于鎖定狀態(tài)即locked狀態(tài)時(shí),紅燈亮,且蜂鳴器發(fā)出報(bào)警的聲音,直至跳出該狀態(tài)。

  

仿真波形

  本設(shè)計(jì)采用計(jì)數(shù)器方法在ce腳上產(chǎn)生一個(gè)低電平脈沖以控制ISD2560芯片放錄音。當(dāng)innum收到一個(gè)新的數(shù)值時(shí),則開(kāi)始計(jì)數(shù);當(dāng)計(jì)數(shù)器計(jì)到一半時(shí),使ce腳輸出低電平;當(dāng)計(jì)數(shù)大于最高數(shù)的一半時(shí),則復(fù)位ce腳電平,直到下次計(jì)數(shù)開(kāi)始。當(dāng)語(yǔ)音數(shù)據(jù)有多段時(shí),先將要播放的語(yǔ)音段數(shù)存到一個(gè)變量中,并將各段地址存到另一個(gè)多位的變量中,然后開(kāi)始放音并檢測(cè)eom腳的電平。當(dāng)檢測(cè)到eom腳的低電平脈沖時(shí),就表明放音結(jié)束,就讓段數(shù)變量減1,然后給地址線再賦新值,并且使能計(jì)數(shù)器,再次使ce腳產(chǎn)生一個(gè)低電平脈沖,繼續(xù)放音。這樣直至語(yǔ)音段數(shù)變量為0時(shí),則表明語(yǔ)音播放完畢,系統(tǒng)不再響應(yīng)芯片eom腳的上升沿脈沖。圖5為ISD2560控制電路的仿真波形圖。

  

ISD2560控制電路的仿真波形圖

  表1為與innum對(duì)應(yīng)的發(fā)音。

  

與innum對(duì)應(yīng)的發(fā)音

  本設(shè)計(jì)采用模塊化編程,各模塊分工明確,各自實(shí)現(xiàn)各自的功能,并通過(guò)信號(hào)線彼此相連,這樣的好處是調(diào)試、修改、移植程序方便。使用資源和生成總的模塊電路圖分別如圖6和圖7所示。

  

使用資源和生成總的模塊電路圖

  2 硬件電路

  硬件部分主要包括中央處理器 芯片——EP1C3T144C6、輸入小鍵盤、輸出4位數(shù)碼管、ISD2560語(yǔ)音芯片、LM386音頻放大和揚(yáng)聲器,如圖8所示。FPGA芯片用米直接控制其他元件的工作,對(duì)小鍵盤的輸入,通過(guò)一定的算法實(shí)現(xiàn)的功能。通過(guò)控制ISD2560的控制腳的電平狀態(tài),達(dá)到控制其發(fā)音從而實(shí)現(xiàn)智能語(yǔ)音提示的效果。3個(gè)發(fā)光二極管分別用于顯示當(dāng)前的狀態(tài),蜂鳴器用于誤碼報(bào)警。

  

硬件電路
 

  3 結(jié)束語(yǔ)

  本設(shè)計(jì)中采用了Altera公司的EP1C3T144C6芯片進(jìn)行設(shè)計(jì),可以極大地減少其他分立元件或其他芯片的使用,有效地縮小了印制電路板面積,提高了系統(tǒng)的可靠性,大大縮短了系統(tǒng)開(kāi)發(fā)的周期。由于采用VHDL進(jìn)行設(shè)計(jì),用軟件實(shí)現(xiàn)硬件電路,具有良好的可移植性,可隨時(shí)在線更改邏輯設(shè)計(jì)及有關(guān)參數(shù),允分體現(xiàn)FPGA的優(yōu)越性,具有一定的實(shí)用性。

蜂鳴器相關(guān)文章:蜂鳴器原理


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉