雙音多頻" title="雙音多頻">雙音多頻信號(hào)(DTMF" title="DTMF">DTMF)是由一組低音頻信號(hào)和一組高音頻信號(hào)以一定方式的組合構(gòu)成,每組音頻信號(hào)各有4個(gè)音頻信號(hào),而每種組合有一個(gè)高音頻信號(hào)和一個(gè)低音頻信號(hào),共16種組合。過去主要用于電話撥號(hào)信息傳輸,具有很強(qiáng)的抗干擾能力。目前市場(chǎng)上銷售的DTMF專用芯片集編解碼于一體,MT8880" title="MT8880">MT8880具有收發(fā)功能。本文通過89C51" title="89C51">89C51單片機(jī)控制MT8880實(shí)現(xiàn)計(jì)算機(jī)間的遠(yuǎn)距離數(shù)據(jù)傳輸。
1DTMF技術(shù)介紹
1.1DTMF信號(hào)介紹
DTMF信號(hào)的產(chǎn)生原理:雙音頻信號(hào)是2個(gè)正弦波信號(hào)的疊加,選定2個(gè)頻率f1和f2后可得到這種信號(hào)的數(shù)學(xué)表達(dá)式:
f(t)=A.sin(2.pi.f1.t)+A.sin(2.pi.f2.t)
如果用合適的采樣頻率對(duì)這個(gè)信號(hào)進(jìn)行A/D轉(zhuǎn)換,則很容易計(jì)算出每一個(gè)采樣點(diǎn)的A/D值,而如果將這些采樣值形成一張表,在單片機(jī)里用同樣的采樣頻率將這張表中的數(shù)值用D/A轉(zhuǎn)換器輸出,就是雙音頻信號(hào)。在實(shí)際應(yīng)用中常用1b的DM編碼來實(shí)現(xiàn)A/D和D/A過程,其中A/D過程可以在PC機(jī)上完成,用程序生成對(duì)應(yīng)每一個(gè)DTMF信號(hào)的DM編碼表,D/A過程在單片機(jī)上完成。與單音編碼不同,DTMF信號(hào)是采用八中取二的方式來構(gòu)成一個(gè)音頻信號(hào),由虛假信號(hào)的干擾,所以應(yīng)用范圍特別廣泛。
對(duì)照表1可以發(fā)現(xiàn)DTMF信號(hào)由2個(gè)不同的頻率信號(hào)合成。分為高頻組和低頻組,包各含有4個(gè)頻率,可以構(gòu)成16種不同的信號(hào),依次對(duì)應(yīng)著16個(gè)不同的BCD碼。
1.2MT8880介紹
MT8880C是一個(gè)帶有呼叫處理濾波器的單片DTMF信號(hào)收發(fā)器。他的制造采用MITEL公司的低功耗、高穩(wěn)定性的ISO-CMOS技術(shù)。DTMF信號(hào)的接收部分采用DTMF信號(hào)接收單片機(jī)MT8870的工業(yè)制造標(biāo)準(zhǔn);發(fā)送部分采用開關(guān)電容進(jìn)行D/A轉(zhuǎn)換發(fā)送高精度、低畸變的DTMF信號(hào)。內(nèi)部寄存器提供一個(gè)群模式。在雙音頻群模式下DTMF信號(hào)可以通過精確的時(shí)序被發(fā)送出去??蛇x擇呼叫處理濾波器讓一個(gè)微處理器處理呼叫音頻信號(hào)。MT8880C還具有標(biāo)準(zhǔn)的微處理器總路線與6800系列的微處理器直接連接。
整合了收發(fā)功能的MT8880C單片機(jī)的結(jié)構(gòu)包括一個(gè)帶有可變?cè)鲆娴膬?nèi)部放大器的高性能接收器和一個(gè)帶有脈沖計(jì)數(shù)器的發(fā)射器。一個(gè)可以訪問MT8880內(nèi)部的寄存器的標(biāo)準(zhǔn)的微處理器接口。MT8880的內(nèi)部寄存器包括1個(gè)狀態(tài)寄存器、2個(gè)數(shù)據(jù)寄存器和2個(gè)控制寄存器,如圖1所示。
2系統(tǒng)硬件設(shè)計(jì)
2.1系統(tǒng)組成
系統(tǒng)由發(fā)送和接收2大部分組成。如圖2所示。實(shí)現(xiàn)PC機(jī)的兩機(jī)間的通信步驟如下:
(1)將PC的信號(hào)與串口芯片的MAX232相連,將PC中的電平信號(hào)通過MAX232實(shí)現(xiàn)電平轉(zhuǎn)換。
?。?)將從MAX232中轉(zhuǎn)換出來的信號(hào)接入89C51中進(jìn)行處理,將出來的信號(hào)引入DTMF芯片MT8880中進(jìn)行編碼,編碼后的信號(hào)經(jīng)由普通的電纜線與另一個(gè)MT8880芯片進(jìn)行連接,由MT8880進(jìn)行解碼處理。
?。?)將解碼后的信號(hào)接入89C51中進(jìn)行處理。
?。?)從89C51出來的信號(hào)再次經(jīng)過串口芯片MAX232進(jìn)行電平轉(zhuǎn)換,將轉(zhuǎn)換后的信號(hào)接入計(jì)算機(jī)的串口后就實(shí)現(xiàn)了兩機(jī)的通信。
2.2MT8880接收電路設(shè)計(jì)
當(dāng)MT8880作為DTMF接收器的時(shí)候,DTMF信號(hào)經(jīng)由IN+和IN-輸入,經(jīng)過運(yùn)算放大濾除信號(hào)中的撥號(hào)音頻率,然后發(fā)送到雙音頻濾波器,分離出低頻組和高頻組信號(hào),通過數(shù)字計(jì)數(shù)的方式檢出DTMF信號(hào)的頻率,并且通過譯碼器譯成4位二進(jìn)制碼。4位二進(jìn)制編碼被鎖存在接收數(shù)據(jù)寄存器中,此時(shí)狀態(tài)寄存器中的延時(shí)控制識(shí)別位復(fù)位,狀態(tài)寄存器中的接收數(shù)據(jù)寄存器滿標(biāo)識(shí)位置位,對(duì)外而言,當(dāng)寄存器中的延時(shí)控制識(shí)別位復(fù)位時(shí),IRQ/CP由高電平變?yōu)榈碗娖?。如果用IRQ/CP作為單片機(jī)的中斷信號(hào),IRQL由高電平變?yōu)榈碗娖剑駽PU發(fā)出中斷請(qǐng)求,當(dāng)CPU響應(yīng)中斷,讀出寄存器中的數(shù)據(jù)后,IRQ返回高電平。MT8880的D0~D3與單片機(jī)的P1.0~P1.3相連,P1.4-P1.7分別與CK,RSO,CS,R/W相連,電路圖如圖3所示。
2.3發(fā)送電路設(shè)計(jì)
當(dāng)MT8880作為發(fā)送器時(shí)數(shù)據(jù)總線上D0~D3四位二進(jìn)制碼被鎖存在發(fā)送數(shù)據(jù)寄存器中,發(fā)送的DTMF信號(hào)頻率由3.58MHz的晶振分頻產(chǎn)生。分頻器首先從基準(zhǔn)頻率分離出8個(gè)不同頻率的正弦波,行列計(jì)數(shù)器根據(jù)發(fā)送數(shù)據(jù)寄存器中的數(shù)據(jù),以八取二方式分離出一個(gè)高頻信號(hào)和一個(gè)低頻信號(hào),經(jīng)開關(guān)電容做D/A轉(zhuǎn)換,在加法器中合成DTMF信號(hào),并從TONE端輸出,電路圖如圖4所示。
3系統(tǒng)軟件設(shè)計(jì)
3.1MT8880的數(shù)據(jù)發(fā)送程序設(shè)計(jì)
MT8880的數(shù)據(jù)發(fā)送程序中用到了相應(yīng)的串口接收程序,其程序流程圖如圖5所示。
程序清單如下:
3.2MT8880的數(shù)據(jù)接收程序設(shè)計(jì)
MT8880的數(shù)據(jù)接收程序中用到了相應(yīng)的串口發(fā)送程序,其程序流程圖如圖6所示。
程序清單如下:
4結(jié)語(yǔ)
應(yīng)用MT8880使DTMF信號(hào)的收發(fā)功能于一體,完成DTMF信號(hào)的編碼與解碼,達(dá)到數(shù)據(jù)傳輸?shù)哪康摹4蟠蠛?jiǎn)化了設(shè)計(jì)的復(fù)雜性,可以降低成本,減少體積。