引言
DTMF (雙音多頻)信號是電話網(wǎng)中常用的信令,無論是家用電話、移動電話還是程控交換機上,多采用DTMF信號發(fā)送接收號碼。DTMF技術廣泛地應用于電話機,遠程家用電器產(chǎn)品的控制,語音信箱,報警系統(tǒng)等領域??梢?,DTMF撥號和解碼在通信系統(tǒng)及其它方面有著廣泛的應用。通常DTMF信號的檢測采用專用芯片,DSP,16位或更高檔的MCU來實現(xiàn),但其成本較高。本文介紹了一種低成本的基于賽普拉斯的8位PSoC芯片的DTMF解碼器實現(xiàn)方案。
PSoC 簡述
PSoC是Cypress半導體有限公司生產(chǎn)的的可編程片上系統(tǒng)芯片。它主要由8位微處理器,可編程模擬模塊和數(shù)字模塊,外加硬件乘法累加器,I2C,F(xiàn)lash,SRAM等周邊外圍模塊組成,如圖2所示。
因此,PSoC除了能實現(xiàn)一般MCU的功能外,還可通過可編程模擬和數(shù)字模塊靈活地實現(xiàn)嵌入式系統(tǒng)所需的模擬與數(shù)字外圍功能。為了方便用戶簡單而快速地實現(xiàn)模擬數(shù)字外圍功能的設計,Cypress基于可編程數(shù)字模擬模塊構建了大量的用戶模塊,如可編程運算放大器,比較器,6至14位的模數(shù)和數(shù)模轉換器,濾波器,8/16 /24/32位定時器/計數(shù)器,脈寬調(diào)制器,觸摸感應等模塊。這些用戶模塊將PSoC內(nèi)部的寄存器配置,數(shù)字模塊和模擬模塊之間的內(nèi)部連線,底層API (Application Program Interface, 應用程序接口)函數(shù)都已設計好了。當用戶需要某個數(shù)字模擬外圍功能時,只需要簡單地調(diào)用相應的用戶模塊即可實現(xiàn)。
DTMF信號
DTMF信號是將撥號盤上的0~9、A~D及*/E、#/F共16個字符,用音頻范圍的8個頻率來表示的一種編碼方式。8個頻率分為高頻群和低頻群兩組,分別作為列頻和行頻。每個字符的信號由來自列頻和行頻的兩個頻率的正弦信號疊加而成。頻率組合方式如圖1所示。
根據(jù)CCITT Q.23建議,DTMF信號的技術指標是:傳送/接收率為每秒10個號碼,或每個號碼100ms。每個號碼傳送過程中,信號存在時間至少45ms,且不多于55ms,100ms的其余時間是靜音。在每個頻率點上允許有不超過±1.5%的頻率誤差。任何超過給定頻率 ±3.5%的信號,均被認為是無效的,拒絕承認接收。另外,在最壞的檢測條件下,信噪比不得低于15dB。
DTMF解碼
采用軟件方式進行DTMF解碼,首先要將模擬信號轉換成數(shù)字信號,然后再送入CPU處理。利用PSoC的可編程模擬運算放大器和8位ADC用戶模塊,加上簡單的接口就可以實現(xiàn)DTMF信號的模數(shù)轉換,ADC接口電路如圖3所示。可編程模擬運算放大器用戶模塊主要用來實現(xiàn)DTMF輸入信號的自動增益控制功能。
DTMF解碼可以通過計算所接收到的信號在8個既定頻率點的頻譜值來確定是否為有效的DTMF信號及接收到的是哪個號碼。另外,需要通過一系列的有效性檢驗以防止誤判。
FFT可用來計算N點頻率處的頻譜值,但不適合于此處應用。因為它計算了許多不需要的值,計算量太大;而且為保證頻率分辨率,F(xiàn)FT的點數(shù)較大。另外,它不能按逐個樣點的方式處理,不利于實時實現(xiàn)。
由于只需要知道8個特定點的頻譜值,采用一種稱為Goertzel算法的DFT算法可以有效地提高計算效率。它相當于一個含兩個極點的IIR濾波器,8個頻點對應各自相匹配的濾波器,其傳遞函數(shù)為:
然而Goertzel算法還是有一個缺點,那就是它計算的是頻率fk=kfs/N處的頻譜值,而精確的頻率值fi通常只能對應某個近似的整數(shù) k,為了達到要求的分辨率,就需要較大的樣點數(shù)N。改進的方法是:修改傳遞函數(shù),不計算角頻率處的頻譜值,而計算精確角頻率處的頻譜值。這樣分辨率能達到數(shù)據(jù)自然加窗(矩形窗)的分辨率。它的傳遞函數(shù)為
改進的Goertzel算法運算步驟如下:
1. 對每個采樣點遞歸計算(n=0,1,…,N)
Si(n)=2cos(2πfi/fs)× Si(n-1)- Si(n-2)+x[n]
其初始條件是Si[-1]= Si[-2]=0。
2. 當N個樣點采集并計算完成后,計算8個頻譜值:
|Y(i)|2=Si2[N]+ Si2[N-1]- 2cos(2πfi/fs)× Si[N] × Si[N-1]
在選定采樣頻率為7.8125Khz基礎上,選取N=84個樣點即可達到所需的頻率分辨率。這對應約11ms信號的采樣時間,這足以保證PSOC在100mS的信號碼傳輸周期里的非采樣時間里完成DTMF解碼和用戶應用系統(tǒng)的其它功能。
當8 個頻譜值計算出來后,還要進行DTMF有效性檢驗,以判定是否為有效的DTMF信號。有效性檢驗包括以下幾項內(nèi)容:(1)高、低頻段的最大幅值都必須大于某個門限值,而且二者之和也要大于某個門限值。(2)高、低頻段的最大幅值與各自頻段其它三個幅值相比,其差值必須大于某個門限值。(3)逆向絞度檢驗即低頻段最大幅值不得超過高頻段最大幅值8dB,標準絞度檢驗即高頻段最大幅值不得超過低頻段最大幅值4dB。
若上述檢驗通過,判定當前周期DTMF信號有效,根據(jù)頻率組合可確定是對應哪個號碼。為了避免重復識別,還需進行靜音檢測。
DTMF解碼程序流程圖如圖4所示。
解碼時需要大量的乘法運算,可以通過PSoC內(nèi)部的8位有符號硬件乘法器完成,從而實現(xiàn)DTMF的實時解碼要求。
結語
該方案所需PSoC的軟硬件資源少,性能可靠,可方便地集成于基于PSOC的單片系統(tǒng)產(chǎn)品實現(xiàn)低成本的遠程控制功能。
經(jīng)過幾十年發(fā)展,嵌入式技術已經(jīng)用在了我們生活中的方方面面,但是嵌入式始終都帶有小眾,專業(yè)性強的屬性,讓很多非嵌入式領域的同學望而卻步。近十幾年的發(fā)展,物聯(lián)網(wǎng)覆蓋了越來越多領域,包括了家居,商業(yè),工業(yè),農(nóng)業(yè)等領域,不僅吸引...
關鍵字: 嵌入式 物聯(lián)網(wǎng) 技術隨著IT技術飛速發(fā)展,互聯(lián)網(wǎng)已經(jīng)進入了“物聯(lián)網(wǎng)”時代。物聯(lián)網(wǎng)中需要的大量設備不在依賴人與人之間的交互產(chǎn)生聯(lián)系,更多通過協(xié)議、通信、程序設計等方式連接到一處。即 “物聯(lián)網(wǎng)”的目的則是讓所有的物品都具有計算機的智能但并不以通...
關鍵字: 嵌入式 物聯(lián)網(wǎng) 計算機萬物智聯(lián)時代,嵌入式技術及其應用的形態(tài)將更加豐富和多元,同時也將日益呈現(xiàn)深度物理融合、混合架構共存、群體智能協(xié)同、網(wǎng)絡安全攸關等諸多新的計算特性。顯然,經(jīng)典的嵌入式系統(tǒng)體系結構、軟硬件技術和開發(fā)方法都已很難應對新趨勢下的...
關鍵字: 嵌入式 物聯(lián)網(wǎng) 計算機物聯(lián)網(wǎng)是新一代信息技術的重要組成部分,是互聯(lián)網(wǎng)與嵌入式系統(tǒng)發(fā)展到高級階段的融合。通用計算機經(jīng)歷了從智慧平臺到互聯(lián)網(wǎng)的獨立發(fā)展道路;嵌入式系統(tǒng)則經(jīng)歷了智慧物聯(lián)到局域智慧物聯(lián)的獨立發(fā)展道路。
關鍵字: 嵌入式 物聯(lián)網(wǎng) 計算機隨著工業(yè)4.0、醫(yī)療電子、智能家居、物流管理和電力控制等快速的發(fā)展和推進,嵌入式系統(tǒng)利用自身的技術特點,逐漸成為眾多行業(yè)的標配產(chǎn)品。嵌入式系統(tǒng)具有可控制、可編程、成本低等,它在未來的工業(yè)和生活中有著廣闊的應用前景。在現(xiàn)在...
關鍵字: 嵌入式 物聯(lián)網(wǎng) 人工智能長久來看,嵌入式只會越來越火,隨著人工智能時代的發(fā)展,嵌入式必定又將迎來一次浪潮和技術的巨大變革。人工智能越是想要表達智能水平,就越要依靠嵌入式技術,嵌入式技術將朝著自動化控制和人機交互發(fā)展。嵌入式因其體積小、可靠性高、...
關鍵字: 嵌入式 物聯(lián)網(wǎng) 人工智能