摘 要:本文介紹了一種基于MSP430的嵌入式DTMF撥號解碼器實現方案。DTMF撥號部分使用4根I/O線的電阻網絡,配合軟件產生DTMF信號。利用MSP430F133內置的ADC,并采用改進的Goertzel算法,實現DTMF信號的實時解碼。該方案成本低、性能可靠,已經得到了實際應用。
引言
DTMF(雙音多頻)信號是電話網中常用的信令,無論是家用電話、移動電話還是程控交換機上,多采用DTMF信號發送接收號碼。DTMF技術還可以用于電力線載波通信等場合。可見,DTMF撥號和解碼在通信系統及其它方面有著廣泛的應用。通常DTMF信號的檢測采用專用芯片或DSP來實現,但其成本較高。本文介紹了一種低成本的基于MSP430F133的DTMF撥號解碼器實現方案。 MSP430F133是TI的一款16位RISC結構MCU,最短指令周期為150ns,含有8KB Flash ROM,256B RAM并內置12位ADC。
DTMF信號
DTMF信號是將撥號盤上的0~9、A~D及*/E、#/F共16個字符,用音頻范圍的8個頻率來表示的一種編碼方式。8個頻率分為高頻群和低頻群兩組,分別作為列頻和行頻。每個字符的信號由來自列頻和行頻的兩個頻率的正弦信號疊加而成。頻率組合方式如圖1所示。

根據CCITT Q.23建議,DTMF信號的技術指標是:傳送/接收率為每秒10個號碼,或每個號碼100ms。每個號碼傳送過程中,信號存在時間至少45ms,且不多于55ms,100ms的其余時間是靜音。在每個頻率點上允許有不超過±1.5%的頻率誤差。任何超過給定頻率 ±3.5%的信號,均被認為是無效的,拒絕承認接收。另外,在最壞的檢測條件下,信噪比不得低于15dB。
DTMF撥號
DTMF撥號部分的電路原理圖如圖2所示。電路主要由4根I/O線構成的電阻網絡和濾波器組成。電阻網絡構成4位的DAC,高通濾波器和低通濾波器組成一個帶通濾波器用來濾除雙音頻的諧波信號。在輸出端采用600Ω的1:1變壓器與電話線接口,電話線的輸出電平可通過改變Rx來進行調節。


軟件上使用查表方式模擬產生兩個不同頻率的正弦波。首先確定一個合適的采樣間隔,對每個頻率的正弦波進行采樣并規格化成0~7(3位數據),制成相應的正弦表。正弦表的制定要保證合成信號的頻率誤差在±1.5%以內,同時使采樣點數盡量少。為使波形失真度小,正弦表記錄的總信號時間對應原始信號的整數個周期,并且采樣起點選在正波形的峰值上。本設計采樣間隔選定為122us,保證頻率誤差均在±1%以內,各個頻率信號的采樣點數及頻率誤差見圖3所示。
DTMF撥號程序流程圖如圖4所示。
DTMF解碼
采用軟件方式進行DTMF解碼,首先要將模擬信號轉換成數字信號,然后再送入CPU處理。利用MSP430F133內置的12位ADC加上簡單的接口就可以實現模數轉換,ADC接口電路如圖5所示。其中
應選1%精度的金屬膜電阻。ADC參考電壓選內部2.5V:

DTMF解碼可以通過計算所接收到的信號在8個既定頻率點的頻譜值來確定是否為有效的DTMF信號及接收到的是哪個號碼。另外,需要通過一系列的有效性檢驗以防止誤判。
FFT可用來計算N點頻率處的頻譜值,但不適合于此處應用。因為它計算了許多不需要的值,計算量太大;而且為保證頻率分辨率,FFT的點數較大。另外,它不能按逐個樣點的方式處理,不利于實時實現。
由于只需要知道8個特定點的頻譜值,采用一種稱為Goertzel算法的DFT算法可以有效地提高計算效率。它相當于一個含兩個極點的IIR濾波器,8個頻點對應各自相匹配的濾波器,其傳遞函數為

然而Goertzel算法還是有一個缺點,那就是它計算的是頻率
處的頻譜值,而精確的頻率值
通常只能對應某個近似的整數k,為了達到要求的分辨率,就需要較大的樣點數N。改進的方法是:修改傳遞函數,不計算角頻率
處的頻譜值,而計算精確角頻率
處的頻譜值。這樣分辨率能達到數據自然加窗(矩形窗)的分辨率。它的傳遞函數為

改進的Goertzel算法運算步驟如下:
1. 對每個采樣點遞歸計算(n=0,1,…,N)
其初始條件是
2. 當N個樣點采集并計算完成后,計算8個頻譜值:
在選定采樣頻率為6Khz基礎上,選取N=86個樣點即可達到所需的頻率分辨率。這對應約15ms信號,可以保證一位號碼能接收到兩個完整的DTMF信號周期。
當8個頻譜值計算出來后,還要進行DTMF有效性檢驗,以判定是否為有效的DTMF信號。有效性檢驗包括以下幾項內容:(1)高、低頻段的最大幅值都必須大于某個門限值,而且二者之和也要大于某個門限值。(2)高、低頻段的最大幅值與各自頻段其它三個幅值相比,其差值必須大于某個門限值。(3)逆向絞度檢驗即低頻段最大幅值不得超過高頻段最大幅值8dB,標準絞度檢驗即高頻段最大幅值不得超過低頻段最大幅值4dB。(4)高、低頻段最大幅值之和與其它6個幅值之和之比,必須大于某個門限值。
若上述檢驗通過,判定當前周期DTMF信號有效,根據頻率組合可確定是對應哪個號碼。但要確認接收到一個有效的號碼,還要滿足兩個條件,一是要有兩個以上連續周期的有效且相同的DTMF信號,以保證信號持續時間,二是前面有足夠的靜音時間,以避免重復識別。
DTMF解碼程序流程圖如圖6所示。

解碼時每次迭代需要八次乘法,由于F133沒有硬件乘法器,要用"移位加"做乘法,因此優化乘法運算將大大提高計算效率。優化從幾個方面考慮:盡量使用寄存器尋址方式,充分利用150ns指令;另外每個頻點的乘數
是固定已知的,因此"移位加"可以不用逐位循環并判斷的方式,而用按位完全展開的方式以省去判斷動作;此外,在前端增加簡單的增益控制可以保證后續運算不發生溢出,省去溢出處理。經過上述優化,實現了DTMF的實時解碼。
結語 該DTMF撥號解碼器方案成本低、性能可靠,已經得到了實際應用。
參考文獻
1. Oppenheim A.V.等著,劉樹棠等譯. 離散時間信號處理(第二版),西安交通大學出版社,2001
2. DTMF Tone Generation and Detection: An Implementation Using the TMS320C54x,Texas Instruments,2000
3. MSP430x1xx Family User's Guide, Texas Instruments,2003
附作者簡介:
李鋒垚:碩士,研究方向信號與信息處理;
文敏: 工程師,主要從事通信設備的研發;
牛王強:碩士,研究方向檢測技術與自動化裝置;
謝明果:碩士,研究方向通信與信息系統。
聯系方式:
聯系人:李鋒垚
地址:西安市勞動南路88號旺園公寓2棟1918室
郵編:710068
電話:029-2374742 手機:(0)13570241965
電子郵件:sunto.lee@163.com
- 實現方案(8083)
低價MSP430補8位空白 TI嵌入式布局成形
766
DTMF撥號解碼器有什么優點?
MSP430串行通信的相關資料推薦
MSP430單片機實現遠程升級
MSP430單片機實現遠程升級
MSP430單片機開發學習軟件IAR_EW_MSP430_5502+視頻教程
MSP430簡介
MSP430系列嵌入式系統是什么
msp430 launchpad資料匯總貼
嵌入式SD卡圖片瀏覽器的設計過程是什么?
嵌入式tcpip方案
嵌入式學習
EEPROM是連接在HDMI接口與解碼器的IIC信號上的,請問這個EEPROM是做什么用的呢?需要給他燒寫程序嗎?
kaldi解碼器在嵌入式平臺運行方法
【CANNON申請】基于嵌入式藍牙方案智能家居
【曬方案】關于MSP430與CC2530的通信
具有電容式觸摸接口.LED顯示屏和SD卡存儲的MP3編碼器/解碼器
具有電容式觸摸接口和OLED顯示屏的音頻電容式觸控設計模塊
基于MSP430 LaunchPad的音頻電容式觸控參考設計
基于MSP430大量工程文件資料
ImageCraft MSP430 ANSI C Tools
34基于DTMF的解碼器設計
71基于DTMF的解碼器設計
34嵌入式系統撥號接入Internet的設計與實現
9NAND Flash在MSP430嵌入式系統中的應用
21基于MSP430單片機的光纖旁路保護器的實現
30單片機實現的嵌入式因特網終端設計
25基于MSP430的自控式骨矯形器的設計與實現
11用MSP430實現的嵌入式因特網終端設計
1695
一種新的基于改進的ADALINE神經網絡的DTMF解碼器方案
2450
基于MSP430的低功耗便攜式測溫儀設計
1538
嵌入式SD卡圖片解碼器設計方案
1336
基于嵌入式WinCE與MSP430單片機多串口通信設計
88來電顯示DTMF解碼器9270D的單片機測試方案
116基于MSP430的電容式單觸摸傳感器設計指南
74MSP430單片機定時器設計應用
135MSP430實現PCB的電容式接觸傳感
33基于PSoC的嵌入式DTMF解碼器實現方案
2226
基于MSP430的嵌入式DTMF撥號解碼器方案設計
1852
基于MSP430與DTMF技術的醫院呼叫對講系統的設計
41基于MSP430的函數信號發生器設計方案
4709
基于MSP430的DTMF呼叫對講系統設計
3MSP430教程Chapt13-Flash編程
6淺談IPP嵌入式音頻解碼器的設計與優化
615基于MSP430的智能窗戶設計方案
2095
msp430和stm32區別是什么
12066msp430中如何連續對位進行取反_MSP430系列通用串行通信模塊的異步模式
1MSP430學習筆記-時鐘篇
27使用MSP430I2040的單相和直流嵌入式計量(功率監視器)
1適用于MSP430 MCUs的IAR嵌入式工作臺IDE版本7+
0
電子發燒友App




評論