《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 基于VHDL語言的智能撥號報警器的設計

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

2009-04-13
作者:劉桂華, 馬建國

  摘? 要: 介紹了以EDA技術作為開發手段的智能撥號報警系統的實現。本系統基于VHDL語言,采用FPGA作為控制核心,實現了遠程防盜報警。該報警器具有體積小、可靠性高、靈活性強等特點。

  關鍵詞: VHDL語言? FPGA? ASIC? DTMF

?

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

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

1 系統原理及組成

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

?

?

  系統工作原理:當有人進入室內時,人體檢測傳感器便采集盜竊信號,盜竊信號啟動摘機/掛機控制模塊控制摘掛機電路,實現電話摘機。電話信號音識別模塊識別摘機后電話系統的狀態是否處于可撥號狀態。若為可撥號狀態,DTMF收發時序仿真模塊控制DTMF撥號電路以雙音頻DTMF方式撥預定的電話(或傳呼機)號;若為不可撥號狀態,通過摘機/掛機控制模塊實現電話掛機,延時后再重撥。

2 FPGA功能模塊設計

  智能撥號報警器的控制核心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硬件資源,中間值應盡量選為2n(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') then

?????????? dial<='0';

?????????? busy<='0';

?????????? cnt:=0;

??? elsif(stop and cnt<=lm_1792) then??

????? dial<='0'; /*電話遇忙,發忙狀態標志*/

????? busy<='1';????????

??? elsif(stop and cnt>=lm_1792) then

????? dial<='1'; /*電話接通,撥號使能有效*/

????? busy<='0';

??? elsif(irq'event and irq='1') then

?????? ?cnt:=cnt+1; /*電話音檢測計數*/?

???? end if;

???end process;

?

?

2.2 DTMF收發時序仿真模塊RECEI-SEND

  MITEL公司生產的集成芯片MT8880 是專門用于處理DTMF信號的專用集成電路,具有接受和發送DTMF信號的雙重功能。在本系統中,MT8880的作用是:把電話系統送來的DTMF信號處理成FPGA能夠識別的邏輯信號; 將FPGA送出的用于撥號的TTL邏輯信號轉換成電話系統能夠識別的DTMF信號。

  RECEI-SEND用于控制MT8880以實現按DTMF方式自動撥預定的電話號碼。RECEI-SEND模塊與MT8880芯片的互連接口如圖3所示。二者的接口信號線直接連接并由RECEI-SEND模塊模擬產生MT8880芯片的各個接口信號,完成DTMF信號的接收以及對電話線路撥號。MT8880的工作模式由內部寄存器(CRA、CRB、SR、TDR和RDR)中的控制字決定,內部寄存器的數據寫入和讀出都由R-W、CS、CP、RS。信號控制。當MT8880芯片被訪問時,CP腳應出現一次帶上升沿的高電平,其周期應為1μs~1000μs。這是關鍵信號,其它信號均以此信號作為依據。因此,FPGA中的RECEI-SEND模塊模擬產生CP及其它信號的時序。圖4為RECEI-SEND模塊寫MT8880內部寄存器CRA、CRB的時序。圖5是RECEI-SEND模塊控制MT8880發送DTMF信號時序。RECEI-SEND模塊的VHDL程序結構如圖6所示。

2.3 摘/掛機控制模塊PICK

  電話摘/掛機的實現是由摘/掛機控制模塊PICK控制摘/掛機電路來完成的。設計的PICK模塊如圖7所示。CLK是系統時鐘輸入;EN是人體檢測傳感器采集的盜竊信號輸入;RESET是系統復位信號輸入;STOP為撥號完成的掛機控制信號輸入;BUSY為遇忙信號輸入;PICK為摘/掛機信號輸出。當有盜竊發生時,EN輸入信號有效,該模塊使摘機輸出信號PICK有效,從而驅動摘/掛機電路產生摘機動作。如果摘機后電話信號音識別模塊JUDGE送來的是系統忙的信號,即BUSY輸入信號有效時,輸出掛機信號PICK。兩秒鐘后重新啟動摘機,直到電話信號音為可撥號狀態。撥號完成后,STOP信號有效,PICK模塊產生掛機信號。當RESET有效時,掛機輸出信號有效。摘/掛機控制模塊PICK的部分VHDL程序如下:

  process(clk,stop,busy,en,delay)

  begin

?   if(clk'event and clk='1') then

?    if( reset='1' or stop='1') then

?????????????????????????????????? ? /*復位或撥號完成后掛機*/

?????????? pick<='0';????????????????

????elsif(en='1') then???????????? /*報警信號觸發摘機*/

???? if(busy='0') then???????

???????? pick<='1';

??? elsif(delay='1' ) then?????? ?/*遇忙延時后重新摘機*/

???????? pick<='1';

??? else

???????? pick<='0';???????????? ?/*遇忙掛機*/

???????? end if;

????? end if;

?? end if;

end process;

?

3 系統設計和邏輯仿真

  FPGA中的3個功能模塊用VHDL語言描述進行綜合仿真后,連接起來的系統電路原理圖如圖8所示。系統的工作過程:STEAL報警信號輸入PICK模塊,產生PICK摘機信號,控制摘機/掛機電路。摘機后,RECEI-SEND模塊將呼叫處理控制字寫入MT8880芯片中,將MT8880設置為呼叫處理模式。然后電話信號音識別模塊JUDGE對MT8880芯片的輸出信號IRQ計數,判別電話音是否為撥號音。若非撥號音,產生電話忙信號BUSY至PICK模塊,輸出掛機信號PICK,電話掛機。然后摘機后重判,若為撥號音,則JUDGE模塊輸出撥號信號DIAL至RECEI-SEND模塊,RECEI-SEND模塊模擬與MT8880直接接口進行數據通訊的DTMF收發時序,控制MT8880按預先設置的電話進行自動撥號。撥號后延時,由JUDGE模塊判別電話音是否為電話回鈴音,若為電話回鈴音電話回鈴音,則延時掛機。若不是電話回鈴音,則掛機后重撥。

?

?

  本系統采用的FPGA芯片為XILINX 公司的XCS30/XL,邏輯門數為1.3萬門, 用FOUNDATION2.1軟件工具開發。設計輸入完成后,進行整體的編譯和邏輯仿真,然后進行轉換、布局、布線、延時仿真生成配置文件,最后下載至FPGA器件,完成結構功能配置,實現其硬件功能。FPGA的系統邏輯功能仿真波形如圖9所示。各信號的邏輯功能和時序配合完全達到設計要求。

?

?

  本系統是用FPGA實現的智能報警器,全部通過編譯仿真和系統測試。由于系統的很多邏輯功能由一片FPGA實現,外圍器件很少,所以系統體積小、可靠性高,且器件的可編程性使得系統功能易于完善。隨著可編程ASIC器件的應用范圍不斷擴大,越來越多的產品在開發過程中都使用VHDL語言,它使我們得以脫離底層電路,站在更高的層次上考慮各種邏輯和時序關系,從而快速完成設計。

?

參考文獻

1 The Programmable Logic Data Book.Xilinx Inc. 2000

2 孟憲元. 可編程ASIC集成數字系統.北京:電子工業出版社,1998

3 常 青,陳輝煌.可編程專用集成電路及其應用與設計實踐經驗.北京:國防工業出版社,1998

4 侯伯亨,顧 新.VHDL硬件描述語言與數字邏輯電路設計(修訂版)西安:西安電子科技大學出版社,1999

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:[email protected]。
主站蜘蛛池模板: 国产精品99久久久久久www | 国产精品久久久久久麻豆一区 | 日本三级香港三级人妇 m | 99久久精品免费看国产一区二区三区 | 国产一区二区在线观看视频 | 男人的天堂亚洲 | 欧美精品人爱c欧美精品 | 欧美特级午夜一区二区三区 | 日本一本黄 | 免费一级大片 | 久久亚洲精品视频 | 一区二区中文字幕在线观看 | 国产日韩精品一区二区在线观看 | 国产精品久久久久久一级毛片 | 美女亚洲综合 | 欧美精品成人一区二区视频一 | 美日韩一区二区三区 | 91青青国产在线观看免费 | 欧美xo影院 | 污全彩肉肉无遮挡彩色 | 亚洲精品午夜久久久伊人 | 女同日韩互慰互摸在线观看 | 国产黄色在线播放 | 女初高中福利视频在线观看 | 久久99久久99精品观看 | 美女福利视频午夜在线 | 分享一个无毒不卡免费国产 | 美国毛片免费观看 | 亚洲国产精品网 | 国产片在线天堂av | 成人怡红院视频在线观看 | 各种偷拍盗摄视频在线观看 | 一本一道久久综合狠狠老 | 步兵社区| 日韩在线欧美在线 | 国内精品a | 国产20岁美女一级毛片 | 最近中文字幕精彩视频 | 国产成人亚洲精品一区二区在线看 | 日本一级高清不卡视频在线 | 久久er精品热线免费 |