DTMF雙音多頻論文_第1頁
DTMF雙音多頻論文_第2頁
DTMF雙音多頻論文_第3頁
DTMF雙音多頻論文_第4頁
DTMF雙音多頻論文_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 計(jì)算機(jī)與信息工程學(xué)院程控交換課程設(shè)計(jì)題 目:專業(yè)班級(jí):指導(dǎo)老師:姓 名:1.硬件電路設(shè)計(jì)、制作及工藝 (20分)2.程序編寫、燒錄及運(yùn)行狀況 (20分)3.自檢運(yùn)行狀態(tài) (20分)4.系統(tǒng)調(diào)試、運(yùn)行及波形測(cè)試 (20分)5.設(shè)計(jì)報(bào)告 (20分)6.總分: 同組成員:一.DTMF簡(jiǎn)介在電話機(jī)中,有兩種撥號(hào)方式,即脈沖撥號(hào)和雙音多頻撥號(hào)。雙音多頻撥號(hào)方式中的雙音多頻是指用兩個(gè)特定的單音頻信號(hào)的組合來代表數(shù)字或功能,兩個(gè)單音 頻的頻率不同,所代表的數(shù)字和功能也不同,在雙音多頻電話機(jī)中有 16 個(gè)按鍵, 其中有 10 個(gè)數(shù)字鍵 09, 6 個(gè)功能鍵*、 #、 A、 B、 C、 D,按照組合的原理,它

2、 必須有 8 種不同的單音頻信號(hào),由于采用的頻率有 8 種,故又稱之為多頻,又因 以 8 種頻率中任意抽出 2 種進(jìn)行組合,又稱其為 8 中取 2 的編碼方式。 隨著通 訊事業(yè)的發(fā)展,數(shù)字傳輸?shù)闹饾u普及, DTMF 信號(hào)已經(jīng)不僅僅局限于終端信令的傳 輸,同時(shí)也廣泛應(yīng)用于 IP 網(wǎng)關(guān)、遠(yuǎn)程控制、局端信令傳輸,成為傳統(tǒng)業(yè)務(wù)和現(xiàn)代 科技應(yīng)用系統(tǒng)的橋梁。把現(xiàn)代科技的優(yōu)越性帶給世界上最通用、最經(jīng)濟(jì)、流動(dòng)性最 強(qiáng)、操作最簡(jiǎn)單的終端-標(biāo)準(zhǔn)電話機(jī)。根據(jù) CCITT 的建議,國際上采用 697 Hz、 770 Hz、 852 Hz、 941 Hz、 1209 Hz、1336 Hz、1477 Hz 和 1633

3、Hz,把這 8 種頻率分成兩個(gè)群,即高頻群和低頻群,從 高頻群和低頻群中任意各抽出一種頻率進(jìn)行組合,共有 16種不同組合,代表 16 種不同數(shù)字或功能, 具體如下表所示:二. MT8870簡(jiǎn)介1) MT8870 簡(jiǎn)介The MT8870D/MT8870D-1 is a complete DTMF receiver integrating both the bandsplit filter and digital decoder functions. The filter section uses switched capacitor techniques for high and low gr

4、oup filters; the decoder uses digital counting techniques to detect and decode all 16 DTMF tonepairs into a 4-bit code. External component count is minimized by on chip provision of a differential input amplifier, clock oscillator and latched three-state bus interface.2) MT8870 結(jié)構(gòu)框圖3). 引腳定義及其功能說明4).

5、控制電路(Steering Circuit)在MT8870完成音頻信號(hào)譯碼輸出時(shí), 將會(huì)把StD引腳置高以使MCU讀取并存儲(chǔ)數(shù)據(jù).當(dāng)MCU完成讀取后,MT8870將會(huì)準(zhǔn)備進(jìn)行下次音頻信號(hào)的譯碼.MT8870是通過St/GT引腳來獲知MCU的讀取情況.實(shí)際應(yīng)用中,MCU一般不會(huì)專門控制St/GT引腳,相應(yīng)的是通過延時(shí)電路來實(shí)現(xiàn)的.在StD有效時(shí),在一段時(shí)間后St/GT會(huì)自動(dòng)被置為有效電平以使MT8870重新進(jìn)入工作狀態(tài),經(jīng)典的電路如下所示 :5) 濾波段Separation of the low-group and high group tones is achieved by applying

6、 the DTMF signal to the inputs of two sixth-order switched capacitor bandpass filters, the bandwidths of which correspond to the low and high group frequencies. The filter section also incorporates notches at 350 and 440 Hz for exceptional dial tone rejection (see Figure 3). Each filter output is fo

7、llowed by a single order switched capacitor filter section which smooths the signals prior to limiting. Limiting is performed by high-gain comparators which are provided with hysteresis to prevent detection of unwanted low-level signals. The outputs of the comparators provide full rail logic swings

8、at the frequencies of the incoming DTMF signals.濾波器頻率響應(yīng)如下圖所示:6) 譯碼對(duì)照表7) MT8870典型應(yīng)用下圖說明了 MT8870 的典型應(yīng)用電路示例.8) 典型時(shí)序圖三.雙音多頻模塊說明1) 模塊的電原理圖如下所示:2) 電路工作原理電路主要完成典型 DTMF 接收器的主要功能: 輸入信號(hào)的高、 低頻組帶通濾波、 限幅、頻率檢測(cè)與確認(rèn)、譯碼、鎖存與緩沖輸出及振蕩,監(jiān)測(cè)等,具體說就是 DTMF 信號(hào)從芯片的輸入端輸入,經(jīng)過輸入運(yùn)放和撥號(hào)音抑制濾波器進(jìn)行濾波后,分兩路分別進(jìn)入高、低頻組濾波器以分離檢測(cè)出高、低頻組信號(hào)。如果高、低頻組信號(hào)同

9、時(shí)被檢測(cè)出來,便在 EC0 輸出高電平作為有效檢測(cè) DTMF信號(hào)的標(biāo)志;如果 DTMF 信號(hào)消失,則 EC0 即返至低電平,與此同時(shí) EC0 通過外接 R 向 C 充電,得到 CI, GT。(通常此兩端相短接)積分波形,若經(jīng) tGTP 延時(shí)后,CI, GT 電壓高于門限值 VTst 時(shí),產(chǎn)生內(nèi)部標(biāo)志,這樣,該電路在出現(xiàn) EC0 標(biāo)志時(shí),將證實(shí)后的兩單音送往譯碼器,變成 4 比特碼字并送到輸出鎖存器,而 CI 標(biāo)志出現(xiàn)時(shí),則該碼字送到三態(tài)輸出端 D01D04,另外 CI 信號(hào)經(jīng)形成和延時(shí),從 CID端輸出,提供一選通脈沖,表明該碼字已被接收和輸出已被更新,如若積分電壓降到門限 VTst 以下,使

10、 CID 也回到低電平。需要指出,在本系統(tǒng)中, 8870 芯片主要對(duì)四路用戶電路進(jìn)行號(hào)碼檢測(cè)接入,為了不影響電路的正常工作,則由模擬開關(guān)來接通或斷開 DTMF 信號(hào),模擬開關(guān)的第二個(gè)作用是它對(duì)話音信號(hào)進(jìn)行隔離,阻止話音信號(hào)進(jìn)入 8870 芯片,防止誤動(dòng)作的發(fā)生,在實(shí)際應(yīng)用中,采取排隊(duì)等待方式工作的情況下,在具體設(shè)計(jì)這方面的電路時(shí),可要全面考慮電路的設(shè)計(jì),使之能正常工作而不出現(xiàn)漏檢測(cè)現(xiàn)象。四.二次開發(fā)區(qū)1) DTMF檢測(cè)整體模塊結(jié)構(gòu)圖通過跳線區(qū)的跳線,我們可以有選擇性的將四路用戶中的某一路信號(hào)引入 M202, M202 是一個(gè)號(hào)碼檢測(cè)模塊,當(dāng)某路用戶摘機(jī)撥號(hào)時(shí),與之相對(duì)應(yīng)的DTMF 信號(hào)檢測(cè)模塊

11、從該路模擬語音發(fā) Vi_VX 上檢測(cè)到雙音多頻信號(hào),若有雙音多頻信號(hào) Vi_DTMFSTD 輸出高電平, 否著輸出低電平。 若由總線引入的 DTM使能信號(hào) Vi_DTMFTOE 為高則允許 BCD 號(hào)碼鍵值輸出到總線上,若為低 MT8870的 Q4Q1 為高阻態(tài)。本模塊在此還提供了二次開發(fā)單元,用戶可通過二次開發(fā)切換開關(guān),將此模塊切換到開發(fā)模式,對(duì) MCS51 進(jìn)行編程,實(shí)時(shí)觀察按鍵撥號(hào)號(hào)碼和鍵值。需要注意的是: 5 個(gè)切換開關(guān)全部松開時(shí)是二次開發(fā)模式,全部按下時(shí)是系統(tǒng)模式,切不可部分按下部分松開。 2) MCU 引腳連接示意圖五.DTMF檢測(cè)示例程序1) 程序流程圖如下圖所示:2) 注意事項(xiàng)

12、1. 讀取數(shù)據(jù)時(shí),先將相應(yīng)的端口寄存器置1.2. 檢測(cè)到DTMF_STD信號(hào)有效時(shí),置DTMF_EOC信號(hào)有效以讀取BCD碼.3. 注意并妥善處理MT8870的保護(hù)時(shí)間(guard time)4.先進(jìn)行基本的LED燈和蜂鳴器測(cè)試以確保硬件正常.5. 注意本次課程設(shè)計(jì)單片機(jī)使用的是 24M Hz的晶振頻率.6. 本次課程設(shè)計(jì)所用的MCU為STC89C51RD+, 其 P4 口地址為 0xC0.3).程序源碼附于文檔附錄中.附錄 :DTMF檢測(cè)二次開發(fā)源碼如下:/* * Name : dtmf.c * Date : 2015.06.24 * Describe : dtmf 測(cè)試實(shí)驗(yàn) * CopyR

13、ight: freedom. * Note : use for C51. * : DTMF 部分請(qǐng)參考官方文檔 : MT8870DE/DE-1(Integrated * DTMF Receiver).MITEL*/#include <reg52.h>#include "delay.h"/* STC89C51 還有 P4 口, 地址是 0xC0 . */sfr P4 = 0xC0;/* define LED pins */#define LED_ON 0#define LED_OFF 1sbit led_1 = P04; sbit led_2 = P05;sbit

14、 led_3 = P06; sbit led_4 = P07;sbit led_5 = P27; sbit led_6 = P26;sbit led_7 = P25; sbit led_8 = P23;sbit led_9 = P24; sbit led_10 = P22;sbit led_11 = P21; sbit led_12 = P20; /* led_13 led_16 use for show BCD */sbit led_13 = P17; sbit led_14 = P15;sbit led_15 = P16; sbit led_16 = P14;/* define DTMF

15、pins */#define DTMF_Q P1 /* 僅使用低四位 */sbit dtmf_Q1 = P13;sbit dtmf_Q2 = P12;sbit dtmf_Q3 = P11;sbit dtmf_Q4 = P10;sbit dtmf_EOC = P31; /* 輸出使能端 */sbit dtmf_STD = P31; /* 有效解碼輸出的指示端口 */sbit buzzer = P42;unsigned int clocks;/* 對(duì)于每個(gè)鍵值對(duì)應(yīng)的蜂鳴器頻率 * 由于耳朵對(duì)兩個(gè)音的倍數(shù)敏感而非它們的相差值, 所以這個(gè)數(shù)組并不十分科學(xué) */code int freq_table12

16、 = 200, 250, 300, 350, 400, 450, 500, 550, 600, 650, 700, 750,; /* LED 和 蜂鳴器 測(cè)試, LED 為跑馬燈測(cè)試 */int simple_test(); /* 設(shè)置 第 led_i 的值為 value, 如你所見, value = 0 or 1. */int led_set_i(int i, int value); /* 顯示 8421 碼 */int led_show_BCD(int bcd); /* 啟動(dòng) 蜂鳴器, 設(shè)置頻率為 freq Hz */int buzzer_start(int freq); /* 關(guān)閉 蜂鳴

17、器 */int buzzer_stop();int main() int dtmf_bcd; /* LED 和 蜂鳴器 測(cè)試, LED 為跑馬燈測(cè)試 */ while(1) simple_test(); while(1) /* 設(shè)置 DTMF_Q (P1 低四位) 為讀取狀態(tài) */ P1 |= 0x0F; /* DTMF 芯片的 EOC 使能端設(shè)置為 關(guān)閉 */ dtmf_EOC = 0; /* 當(dāng)檢測(cè)到合適的音頻信號(hào)時(shí), dtmf_STD 被拉高為 1 * 在一段保護(hù)時(shí)間后(guard time), dtmf_STD 重新恢復(fù)到 0 * 這是通過簡(jiǎn)單的延時(shí)電路實(shí)現(xiàn)的, 對(duì)于 R = 300

18、K, C = 0.1 pF, * V_TSt = 2.4 V, VDD = 5V, t_GTA = 20 ms * 保護(hù)時(shí)間 guard time = 20ms + t_DP, t_DP 未知 . */ if(dtmf_STD = 1) /* DTMF 芯片的 EOC 使能端設(shè)置為 開啟 */ dtmf_EOC = 1; /* 取得音頻信號(hào)對(duì)應(yīng)的 BCD 碼值 */ dtmf_bcd = DTMF_Q & 0x0F; /* 點(diǎn)亮與 BCD 碼對(duì)應(yīng)的鍵盤 LED 燈 (12個(gè)鍵盤 LED 燈) */ if(dtmf_bcd > 0 && dtmf_bcd <

19、13) led_set_i(dtmf_bcd, LED_ON); /* 顯示 BCD 碼值 */ led_show_BCD(dtmf_bcd); /* 啟動(dòng)蜂鳴器, 其頻率與 BCD 碼相關(guān) */ /* 以 freq_tablei 的頻率啟動(dòng)蜂鳴器 */ buzzer_start(freq_tabledtmf_bcd % 12); /* 此語句可省略. * 延時(shí) 100 ms, 無論如何, 蜂鳴器會(huì)在一個(gè)頻率至少工作 100 ms, * 這是為了防止過低的 guard time 和 過高的 信號(hào)速率帶來的 * 信息淹沒 */ delay_ms(100); /* 使 MCU 等待 STMF 芯片

20、的 "保護(hù)時(shí)間" (guard time) * 保護(hù)時(shí)間過后, dtmf_STD 等于邏輯低 */ while(dtmf_STD = 1) ; /* 熄滅與 BCD 碼對(duì)應(yīng)的鍵盤 LED 燈 (12個(gè)鍵盤 LED 燈) */ if(dtmf_bcd > 0 && dtmf_bcd < 13) led_set_i(dtmf_bcd, LED_OFF); /* 停止蜂鳴器 */ buzzer_stop(); return 0; /* LED 和 蜂鳴器 測(cè)試, LED 為跑馬燈測(cè)試 */int simple_test() int i; for(i =

21、 1; i < 13; i +) led_set_i(i, LED_ON); led_show_BCD(i); buzzer_stop(); /* 以 freq_tablei 的頻率啟動(dòng)蜂鳴器 */ buzzer_start(i % 12); delay_ms(500); led_set_i(i, LED_OFF); buzzer_stop(); return 0; /* 設(shè)置 第 led_i 的值為 value, 如你所見, value = 0 or 1. */int led_set_i(int i, int value) switch(i) case 1 : led_1 = valu

22、e; break; case 2 : led_2 = value; break; case 3 : led_3 = value; break; case 4 : led_4 = value; break; case 5 : led_5 = value; break; case 6 : led_6 = value; break; case 7 : led_7 = value; break; case 8 : led_8 = value; break; case 9 : led_9 = value; break; case 10 : led_10 = value; break; case 11 :

23、 led_11 = value; break; case 12 : led_12 = value; break; case 13 : led_13 = value; break; case 14 : led_14 = value; break; case 15 : led_15 = value; break; case 16 : led_16 = value; break; default : break; /* 之外的為錯(cuò)誤值, 不做響應(yīng) */ return 0; /* 顯示 8421 碼 */int led_show_BCD(int bcd) led_13 = (bcd & (1

24、<< 3) = 0 ? LED_OFF : LED_ON; led_14 = (bcd & (1 << 2) = 0 ? LED_OFF : LED_ON; led_15 = (bcd & (1 << 1) = 0 ? LED_OFF : LED_ON; led_16 = (bcd & (1 << 0) = 0 ? LED_OFF : LED_ON; return 0; /* 啟動(dòng) 蜂鳴器, 設(shè)置頻率為 freq Hz */int buzzer_start(int freq)float MC; /* 一個(gè)機(jī)器周期所占的秒數(shù)

25、, 這里假定一個(gè)指令周期為 12 個(gè) clock */ MC = 1.0 / CRYSTAL_FREQ_MHZ * 12; MC /= 1000; MC /= 1000;/* clocks : 蜂鳴器信號(hào)的一個(gè)周期所需的 C51 機(jī)器周期, 不要試圖在其他函 *數(shù)更改此值 */ clocks = (1.0 / freq) / MC / 2; TH0 = (65535 - clocks) / 256; TL0 = (65535 - clocks) % 256; TMOD = 0x01; /* 設(shè)置 T0 為 16位定時(shí)器 */ EA = 1; /* 開 CPU 中斷 */ ET0 = 1; /* 開 T0 中斷 */ TR0 = 1; /* T0 開始計(jì)時(shí) */ return 0; /* 關(guān)閉 蜂鳴器 */int buzzer_stop() EA = 0; /* 關(guān) CPU 中斷 */ ET0 = 0; /* 關(guān) T0 中斷 */ TR0 = 0; /* 關(guān)閉 T0 計(jì)時(shí) */ return 0; /* 使用 中斷號(hào) 1 (定時(shí)器 0) 為 蜂鳴器服務(wù) */v

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論