新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于VHDL語言的智能撥號報警器的設計

        基于VHDL語言的智能撥號報警器的設計

        作者: 時間:2011-01-09 來源:網絡 收藏

        介紹了以EDA技術作為開發手段的報警系統的實現。本系統,采用FPGA作為控制核心,實現了遠程防盜報警。該具有體積小、可靠性高、靈活性強等特點。

          關鍵詞 FPGA ASIC DTMF

          目前,大多采用單片機作為控制核心,這種傳統方法的特點是硬件和軟件截然不同,中不可相互替代;而且硬件連線復雜,可靠笥較差。

          硬件描述)和可編程ASIC器件的廣泛應用第一次打破了硬件和軟件的屏障。VHDL語言、以EDA技術作為開發手段、采用現場可編程門陣列FPGA(Field Porogrammable Gate Array)作為控制核心實現的與電話線連接的遠程,與傳統相比較,不僅簡化了接口和控制,提供了系統的整體性能和工作可靠性,也為進一步提高系統集成創造了條件。

        1 系統原理及組成

          系統組成原理框圖如圖1所示。系統的控制核心是一片FPGA芯片,它由3個功能模塊構成:電話信號音識別模塊,DTMF收發時序仿真模塊和摘機/掛機控制模塊。3個模塊的功能分別為識別電話系統送來的信號音、控制DTMF撥號電路自動撥號、控制摘掛機電路完成摘掛機操作。

        本文引用地址:http://www.104case.com/article/151115.htm

         

        2 PFGA功能模塊設計

          智能撥號報警器的控制核心FPGA的三個功能模塊皆用VHDL語言編程實現,下面主要介紹FPGA的三個功能模塊的設計。

        2.1 電話信號音識別模塊JUDGE

          信號音判斷的實現原理是:由于電話系統信號音的撥號音、回鈴音和忙音的音源頻率均為450Hz(±25Hz)的正弦波,只是斷續比不同且在時間上有明顯的差異(撥號音為450Hz±25Hz連續信號,忙音為 0.35s通0.35s斷,回鈴音為1s通4s斷)。要判斷信號音,首先應將處理DTMF信號的MT8880芯片設置為呼叫處理模式,使電話呼叫過程中的各種信號音經MT8880濾波、限幅后得到方波,并由MT8880的IRQ端輸出。然后對MT8880輸出的IRQ信號計數5秒,撥號音的計數下限為(450-25)×5=2125,計數上限為(450+25)×5=2375,即計數范圍為2125~2375。同理,忙音的計數范圍為 1041~1212,回鈴音的計數范圍為425~475,無信號音的計數應為零。但在實際編程中,需要考慮一定的計時計數誤差,并且使程序簡化,因此采用不同信號音相鄰計數界限的中間值為區分不同的信號音。同時,為合理利用FPGA硬件資源,中間值應盡量選為2的n次方(整數)。最后設定為計數值大于 1792為撥號音,在1024~1791之間的忙音,在256~1023之間的回鈴音,小于255為無信號音。

          此原理設計的信號音識別模塊JUDGE如圖2所示。

        CLK為時鐘信號輸入端;IRQ與MT8880芯片的IRQ輸出端相連接,是IRQ信號的計數輸入端;PICK是摘機信號輸入端;BUSY為電話忙狀態標志信號輸出端;DIAL是撥號使能信號端。該模塊的功能為:在摘機信號PICK產生大約1s后,即 MT8880芯片被設置為呼叫處理模式后啟動該模塊。在該模塊的內部,設置了兩個計數器。一個為對CLK時鐘信號進行計數,產生5s控制信號;另一個對 IRQ送來的脈沖進行計數。兩個計數器由摘機信號PICK啟動,5s后判斷第二個計數器的計數值。如果計數值大于1792,則說明電話交換機系統處于可撥號的狀態,DIAL置為有效、BUSY置為無效,以觸發DTMF收發時序仿真模塊進行撥號操作。否則,電話處于不可撥號的狀態,DIAL無效、BUSY有效,驅動摘/掛機模塊產生掛機信號。撥號音識別的部分VHDL程序如下:

        process(irq,pick,stop)

        variable cnt:integer;

        constant lm_1792:integer:=1792;

        begin

        if(pick=‘0’);

        dial=‘0’;

        cnt:=0;


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 汝南县| 宿州市| 霍邱县| 福海县| 姜堰市| 寻甸| 枞阳县| 剑川县| 元氏县| 金华市| 凤台县| 云南省| 镇康县| 民乐县| 长顺县| 余庆县| 改则县| 惠水县| 西昌市| 青州市| 霍邱县| 扎鲁特旗| 瑞昌市| 商都县| 滦南县| 雅江县| 永春县| 额尔古纳市| 秦安县| 吉安县| 容城县| 台山市| 商南县| 通化县| 荥阳市| 凤冈县| 保山市| 临泽县| 疏附县| 布尔津县| 兰坪|