基于VHDL語(yǔ)言的智能撥號(hào)報(bào)警器的設(shè)計(jì)
介紹了以EDA技術(shù)作為開發(fā)手段的智能撥號(hào)報(bào)警系統(tǒng)的實(shí)現(xiàn)。本系統(tǒng)基于VHDL語(yǔ)言,采用FPGA作為控制核心,實(shí)現(xiàn)了遠(yuǎn)程防盜報(bào)警。該報(bào)警器具有體積小、可靠性高、靈活性強(qiáng)等特點(diǎn)。
關(guān)鍵詞:VHDL語(yǔ)言 FPGA ASIC DTMF
目前,智能撥號(hào)報(bào)警器大多采用單片機(jī)作為控制核心,這種傳統(tǒng)設(shè)計(jì)方法的特點(diǎn)是硬件和軟件截然不同,設(shè)計(jì)中不可相互替代;而且硬件連線復(fù)雜,可靠笥較差。
硬件描述語(yǔ)言(VHDL)和可編程ASIC器件的廣泛應(yīng)用第一次打破了硬件和軟件的屏障。基于VHDL語(yǔ)言、以EDA技術(shù)作為開發(fā)手段、采用現(xiàn)場(chǎng)可編程門陣列FPGA(Field Porogrammable Gate Array)作為控制核心實(shí)現(xiàn)的與電話線連接的智能撥號(hào)遠(yuǎn)程報(bào)警器,與傳統(tǒng)設(shè)計(jì)相比較,不僅簡(jiǎn)化了接口和控制,提供了系統(tǒng)的整體性能和工作可靠性,也為進(jìn)一步提高系統(tǒng)集成創(chuàng)造了條件。
1 系統(tǒng)原理及組成
系統(tǒng)組成原理框圖如圖1所示。系統(tǒng)的控制核心是一片F(xiàn)PGA芯片,它由3個(gè)功能模塊構(gòu)成:電話信號(hào)音識(shí)別模塊,DTMF收發(fā)時(shí)序仿真模塊和摘機(jī)/掛機(jī)控制模塊。3個(gè)模塊的功能分別為識(shí)別電話系統(tǒng)送來(lái)的信號(hào)音、控制DTMF撥號(hào)電路自動(dòng)撥號(hào)、控制摘掛機(jī)電路完成摘掛機(jī)操作。
2 PFGA功能模塊設(shè)計(jì)
智能撥號(hào)報(bào)警器的控制核心FPGA的三個(gè)功能模塊皆用VHDL語(yǔ)言編程實(shí)現(xiàn),下面主要介紹FPGA的三個(gè)功能模塊的設(shè)計(jì)。
2.1 電話信號(hào)音識(shí)別模塊JUDGE
信號(hào)音判斷的實(shí)現(xiàn)原理是:由于電話系統(tǒng)信號(hào)音的撥號(hào)音、回鈴音和忙音的音源頻率均為450Hz(±25Hz)的正弦波,只是斷續(xù)比不同且在時(shí)間上有明顯的差異(撥號(hào)音為450Hz±25Hz連續(xù)信號(hào),忙音為 0.35s通0.35s斷,回鈴音為1s通4s斷)。要判斷信號(hào)音,首先應(yīng)將處理DTMF信號(hào)的MT8880芯片設(shè)置為呼叫處理模式,使電話呼叫過程中的各種信號(hào)音經(jīng)MT8880濾波、限幅后得到方波,并由MT8880的IRQ端輸出。然后對(duì)MT8880輸出的IRQ信號(hào)計(jì)數(shù)5秒,撥號(hào)音的計(jì)數(shù)下限為(450-25)×5=2125,計(jì)數(shù)上限為(450+25)×5=2375,即計(jì)數(shù)范圍為2125~2375。同理,忙音的計(jì)數(shù)范圍為 1041~1212,回鈴音的計(jì)數(shù)范圍為425~475,無(wú)信號(hào)音的計(jì)數(shù)應(yīng)為零。但在實(shí)際編程中,需要考慮一定的計(jì)時(shí)計(jì)數(shù)誤差,并且使程序簡(jiǎn)化,因此采用不同信號(hào)音相鄰計(jì)數(shù)界限的中間值為區(qū)分不同的信號(hào)音。同時(shí),為合理利用FPGA硬件資源,中間值應(yīng)盡量選為2的n次方(整數(shù))。最后設(shè)定為計(jì)數(shù)值大于 1792為撥號(hào)音,在1024~1791之間的忙音,在256~1023之間的回鈴音,小于255為無(wú)信號(hào)音。
基于此原理設(shè)計(jì)的信號(hào)音識(shí)別模塊JUDGE如圖2所示。
CLK為時(shí)鐘信號(hào)輸入端;IRQ與MT8880芯片的IRQ輸出端相連接,是IRQ信號(hào)的計(jì)數(shù)輸入端;PICK是摘機(jī)信號(hào)輸入端;BUSY為電話忙狀態(tài)標(biāo)志信號(hào)輸出端;DIAL是撥號(hào)使能信號(hào)端。該模塊的功能為:在摘機(jī)信號(hào)PICK產(chǎn)生大約1s后,即 MT8880芯片被設(shè)置為呼叫處理模式后啟動(dòng)該模塊。在該模塊的內(nèi)部,設(shè)置了兩個(gè)計(jì)數(shù)器。一個(gè)為對(duì)CLK時(shí)鐘信號(hào)進(jìn)行計(jì)數(shù),產(chǎn)生5s控制信號(hào);另一個(gè)對(duì) IRQ送來(lái)的脈沖進(jìn)行計(jì)數(shù)。兩個(gè)計(jì)數(shù)器由摘機(jī)信號(hào)PICK啟動(dòng),5s后判斷第二個(gè)計(jì)數(shù)器的計(jì)數(shù)值。如果計(jì)數(shù)值大于1792,則說(shuō)明電話交換機(jī)系統(tǒng)處于可撥號(hào)的狀態(tài),DIAL置為有效、BUSY置為無(wú)效,以觸發(fā)DTMF收發(fā)時(shí)序仿真模塊進(jìn)行撥號(hào)操作。否則,電話處于不可撥號(hào)的狀態(tài),DIAL無(wú)效、BUSY有效,驅(qū)動(dòng)摘/掛機(jī)模塊產(chǎn)生掛機(jī)信號(hào)。撥號(hào)音識(shí)別的部分VHDL程序如下:
process(irq,pick,stop)
variable cnt:integer;
constant lm_1792:integer:=1792;
begin
if(pick=‘0’);
dial=‘0’;
cnt:=0;
評(píng)論