當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件

摘 要: 介紹了以AT89S52單片機(jī)為控制核心,利用DTMF發(fā)送/接收一體芯片MT8880和公共電話網(wǎng)以及全球移動(dòng)通信網(wǎng)(GSM),并加上ASK方式的無線射頻收發(fā)技術(shù)實(shí)現(xiàn)遠(yuǎn)程控制。
關(guān)鍵詞: 單片機(jī); DTMF; 遠(yuǎn)程控制; 無線; ASK

公共電話網(wǎng)和全球移動(dòng)通信網(wǎng)(GSM)的語音和數(shù)據(jù)量的傳輸主要通過DTMF技術(shù)實(shí)現(xiàn)。本文介紹了一種基于DTMF收發(fā)技術(shù)和無線射頻技術(shù)相結(jié)合實(shí)現(xiàn)遠(yuǎn)程控制的方法。例如在辦公室打電話回家遠(yuǎn)程查詢、開啟或關(guān)閉家里的各種電器設(shè)備,使生活變得更加舒適安全便捷;也可以應(yīng)用于對(duì)人有毒害的工作場(chǎng)合,工人可以通過遠(yuǎn)程操作相關(guān)的設(shè)備完成特定的工作內(nèi)容。
1 DTMF技術(shù)及其硬件電路設(shè)計(jì)
1.1 DTMF電話原理介紹[1]
雙音多頻DTMF(Double Tone MultiFrequency)作為實(shí)現(xiàn)電話號(hào)碼快速可靠傳輸?shù)囊环N技術(shù),具有很強(qiáng)的抗干擾能力和較高的傳輸速度,可用作電話的音頻撥號(hào),也可以在數(shù)據(jù)通信系統(tǒng)中用來實(shí)現(xiàn)各種數(shù)據(jù)流和語音等信息的遠(yuǎn)程傳輸。
DTMF是用兩個(gè)特定的單音頻組合信號(hào)來代表數(shù)字信號(hào)以實(shí)現(xiàn)其功能的一種編碼技術(shù)。國際上采用的頻率有:697 Hz、770 Hz、852 Hz、941 Hz、1 209 Hz、1 336 Hz、1 477 Hz 和1 633 Hz 等8種。用這8種頻率可形成16種不同的組合,從而代表16種不同的數(shù)字或功能鍵,具體組合如表1所示。


DTMF信號(hào)的產(chǎn)生原理:雙音頻信號(hào)是兩個(gè)正弦波信號(hào)的疊加,選定兩個(gè)頻率f1和f2后很容易地得到這種信號(hào)的數(shù)學(xué)表達(dá)式:Asin(2×π×f1×t)+Asin(2×π×f2×t)。
1.2 電話通信的實(shí)現(xiàn)
1.2.1 振鈴音的檢測(cè)
當(dāng)用戶被呼叫時(shí),電話交換機(jī)發(fā)來鈴流信號(hào),振鈴為(25±3) Hz的正弦波,諧鈴失真不大于10%,電壓有效值為(90±15) V。振鈴以5 s為周期,即1 s送、4 s斷。根據(jù)振鈴信號(hào)電壓比較高的特點(diǎn),可以先使用高壓穩(wěn)壓二極管進(jìn)行降壓,然后輸入至光電耦合器。經(jīng)過光耦的隔離轉(zhuǎn)換,從光電耦合器輸出的波形是時(shí)通時(shí)斷的正弦波,經(jīng)過RC回路進(jìn)行濾波輸出標(biāo)準(zhǔn)的方波。方波信號(hào)就可以直接輸出至單片機(jī)的中斷計(jì)數(shù)器輸入口,完成整個(gè)振鈴音檢測(cè)和計(jì)數(shù)的過程,如圖1所示。
1.2.2 自動(dòng)摘掛機(jī)
程控電話交換機(jī)對(duì)電話摘機(jī)的響應(yīng)是電話線回路電流突然變大至約30 mA,即當(dāng)程控交換機(jī)檢測(cè)到電話線回路中的電流變大時(shí),則認(rèn)為電話機(jī)已經(jīng)摘機(jī)。
自動(dòng)摘掛機(jī)電路可以通過單片機(jī)控制一個(gè)繼電器的開關(guān),繼電器的控制端將一個(gè)約300 Ω的電阻接入電話線兩端,從而完成模擬摘掛機(jī),如圖1所示。

1.2.3 雙音頻解碼
本文使用電話專用的雙音頻編解碼芯片MT8880進(jìn)行輸入雙音頻信號(hào)的解碼。經(jīng)過專用集成電路的解碼,信號(hào)轉(zhuǎn)換成為不同的碼制信號(hào),可以直接被單片機(jī)讀取。

1.3 DTMF信號(hào)收、發(fā)芯片MT8880簡介[2]
MT8880是加拿大MITEL公司生產(chǎn)的DTMF收發(fā)一體的集成電路,該芯片集成度高,內(nèi)部含有一個(gè)帶增益可調(diào)放大器的DTMF接收器和一個(gè)DTMF發(fā)送器。接收器采用集頻帶分離濾波器和數(shù)字解碼為一體的結(jié)構(gòu)形式。其中濾波電路采取高頻群和低頻群兩個(gè)六階開關(guān)電容濾波器,解碼采用數(shù)字計(jì)數(shù)器技術(shù)來確定輸入DTMF信號(hào)的頻率,并譯成4位二進(jìn)制碼。發(fā)送器采用開關(guān)電容D/A變換器,可發(fā)出16種雙音多頻DTMF信號(hào)。接收部分用于完成DTMF信號(hào)的接收、分離和譯碼,并以4位并行二進(jìn)制碼的方式輸出。
1.4 MT8880與單片機(jī)控制接口
 MT8880使用標(biāo)準(zhǔn)的單片機(jī)控制接口,單片機(jī)可以精確地完成接收和發(fā)送功能,允許單片機(jī)訪問其內(nèi)部一個(gè)狀態(tài)寄存器、2個(gè)控制寄存器和2個(gè)數(shù)據(jù)寄存器。
MT8880內(nèi)部有2個(gè)數(shù)據(jù)寄存器,一個(gè)是只執(zhí)行讀操作的接收數(shù)據(jù)寄存器RDR;另一個(gè)是只執(zhí)行寫操作的發(fā)送數(shù)據(jù)寄存器TDR。另外,MT8880中還有2個(gè)4位的收、發(fā)控制寄存器CRA和CRB(這2個(gè)寄存器位于同一地址空間)。對(duì)CRB的操作通過CRA中的一個(gè)特定位b3來實(shí)現(xiàn),在寫CRA后,接著對(duì)同樣地址進(jìn)行特定操作以 把數(shù)據(jù)寫入CRB,再次寫時(shí)又指向CRA。在上電時(shí),內(nèi)部設(shè)置電路先要清除控制寄存器,因此作為防范措施,軟件應(yīng)設(shè)置清除寄存器的初始化程序;而MT8880中的4位狀態(tài)寄存器SR則用來反映收、發(fā)信號(hào)的工作狀態(tài)。寄存器的選擇與操作由RS0和R/W口線來控制,當(dāng)需要接收DTMF信號(hào)時(shí),首先往控制寄存器CRA和CRB寫入相應(yīng)的控制字,把MT8880芯片設(shè)置為DTMF模式,通過讀取狀態(tài)寄存器中的D2位,可以判斷是否收到一個(gè)有效的DTMF信號(hào)并已譯碼。若已收到則讀取內(nèi)部“接收數(shù)據(jù)寄存器”的內(nèi)容(從MT8880芯片的D0~D3腳讀出)。當(dāng)需要發(fā)送DTMF信號(hào)時(shí),同樣應(yīng)先往控制寄存器CRA和CRB寫入相應(yīng)的控制字,把MT8880芯片設(shè)置為DTMF模式,通過讀取狀態(tài)寄存器中的D1位,可以判斷是否發(fā)送完一個(gè) DTMF信號(hào)。若已發(fā)送完,則把下一個(gè)要發(fā)送的數(shù)字由D1~D3腳寫入到內(nèi)部“發(fā)送數(shù)據(jù)寄存器”。如果MT8880芯片同時(shí)又被設(shè)置為中斷模式,則通過檢測(cè)IRQ端狀態(tài),也能判斷一個(gè)DTMF信號(hào)收到或發(fā)送完畢與否。其應(yīng)用電路見圖1。
1.5 手機(jī)模塊與單片機(jī)控制接口
絕大多數(shù)的手機(jī)也與固定電話一樣有振鈴信號(hào),也可以收發(fā)DTMF信號(hào),只要對(duì)普通手機(jī)稍做改動(dòng)即可,即把手機(jī)的鈴流信號(hào)接出來,同時(shí)把手機(jī)的耳機(jī)口分成兩路(一路為DTMF輸出即耳麥線,另一路為DTMF輸入即話筒線),手機(jī)模塊與單片機(jī)的接口電路如圖2所示。

2 射頻技術(shù)及其硬件電路設(shè)計(jì)
 微功率無線射頻技術(shù)主要用于特定環(huán)境下的數(shù)據(jù)傳輸,常用于現(xiàn)代家庭多路電源的集中控制、智能小區(qū)物業(yè)管理、防盜報(bào)警、無線水塔控制、無線抄表、航空、航模和遙控遙測(cè)等場(chǎng)合。
 本文采用的無線編解碼芯片是PT2262/2272,是臺(tái)灣普城公司生產(chǎn)的一種CMOS工藝制造的低功耗低價(jià)位通用編解碼電路,PT2262/2272最多可有12位(A0~A11)三態(tài)地址端管腳(懸空、接高/接低電平),任意組合可提供531 441個(gè)地址碼,PT2262最多可有6位(D0~D5)數(shù)據(jù)端管腳,設(shè)定的地址碼和數(shù)據(jù)碼從17腳串行輸出,可用于無線遙控發(fā)射電路。
本文使用的無線發(fā)射頭與無線接收頭是現(xiàn)成的模塊。單片機(jī)與無線發(fā)射頭的接口電路框圖如圖3所示。無線接收頭經(jīng)解碼輸出后驅(qū)動(dòng)電路框圖如圖4所示。

3 遠(yuǎn)程控制應(yīng)用實(shí)現(xiàn)
為了實(shí)現(xiàn)對(duì)多點(diǎn)設(shè)備的控制,無線編碼芯片PT2262的地址線選用A0~A7地址腳和D0~D3數(shù)據(jù)腳,這12個(gè)口線均通過單片機(jī)AT89S52來控制。由于單片機(jī)很容易實(shí)現(xiàn)“0”和“1”控制,所以單片機(jī)對(duì)A0~A7這8?jìng)€(gè)地址線的控制可實(shí)現(xiàn)256種狀態(tài),即最多可以控制256種設(shè)備(每一個(gè)PT2272解碼芯片輸出對(duì)應(yīng)于一種受控設(shè)備);同樣地,單片機(jī)對(duì)D0~D3這4條數(shù)據(jù)線的控制可實(shí)現(xiàn)16種狀態(tài),即對(duì)同一設(shè)備可實(shí)現(xiàn)最多16種方式的操作。本文實(shí)現(xiàn)的是異地遠(yuǎn)程呼叫處理工廠各個(gè)無人操作車間的測(cè)試儀器,并能遙控操作進(jìn)行相關(guān)的測(cè)試任務(wù)。系統(tǒng)框圖如圖5所示。

系統(tǒng)的工作流程如下:單片機(jī)主板可以接入固定電話線也可以接入一個(gè)手機(jī)模塊(專為沒有預(yù)裝固定電話的區(qū)域使用),操作員在異地拔打本地電話號(hào)碼(或手機(jī)號(hào)碼),單片機(jī)主板會(huì)自動(dòng)檢測(cè)振鈴信號(hào),然后自動(dòng)摘機(jī),并提示操作員輸入密碼。當(dāng)單片機(jī)主板驗(yàn)證通過后,操作員就可輸入地址碼(對(duì)應(yīng)于一臺(tái)測(cè)試儀器,如001號(hào))和操作碼(當(dāng)前測(cè)試機(jī)的測(cè)試任務(wù),如A字符,代表打開測(cè)試機(jī)電源),單片機(jī)主板識(shí)別后,通過編碼芯片送給無線發(fā)射頭,無線發(fā)射頭按特定的規(guī)則送出地址碼和操作碼,每一臺(tái)測(cè)試機(jī)上的無線接收頭都能接收到該無線信號(hào),但只有與編碼芯片的地址匹配的那臺(tái)測(cè)試機(jī)才會(huì)響應(yīng)并執(zhí)行操作碼。
4 軟件實(shí)現(xiàn)
軟件部分主要分為三部分:(1)正確檢測(cè)到固定電話的振鈴音并自動(dòng)摘機(jī)或手機(jī)模塊自動(dòng)接通接聽中的鈴流信號(hào);(2)對(duì)DTMF信號(hào)的接收和發(fā)送處理,實(shí)現(xiàn)身份認(rèn)證、向用戶發(fā)送提示音、接收用戶輸入的控制指令等。(3)控制編碼芯片地址線和數(shù)據(jù)線,從而把控制指令無線傳輸出去。
4.1 固話振鈴音的檢測(cè)及處理
針對(duì)固定電話、結(jié)合圖1,單片機(jī)AT89S52的TEST腳檢測(cè)到固定電話振鈴檢測(cè)信號(hào)波形,AT89S52只要判斷TEST腳的電平變化即可以正確檢測(cè)外線是否有電話撥入,然后控制TRI腳吸合繼電器實(shí)現(xiàn)模擬摘機(jī)。
針對(duì)手機(jī)模塊、結(jié)合圖2,本文選用的是一款諾基亞手機(jī)(手機(jī)設(shè)為自動(dòng)接聽模式),經(jīng)局部改造提到鈴流信號(hào)線送入單片機(jī)AT89S52的GSM-RING的IO腳上,常態(tài)下為高電平,當(dāng)有電話打過來時(shí),GSM-RING的IO腳上得到的波形如圖6所示。所以單片機(jī)只要AT89S52判斷GSM-RING的IO腳的電平變化情況就可以了。

4.2 DTMF信號(hào)的收發(fā)處理
當(dāng)固定電話或手機(jī)模塊自動(dòng)摘機(jī)后,則啟用DTMF收發(fā)處理程序(主要是對(duì)MT8880芯片的處理),關(guān)鍵的程序代碼如下[3]:
“讀MT8880狀態(tài)或數(shù)據(jù)寄存器”函數(shù):
//功能說明:讀取MT8880狀態(tài)寄存器
//輸出參數(shù):返回MT8880的狀態(tài)寄存器值
//DTMF_REG為與MCU的接口寄存器,在"DTMF.H"有定義
uchar DTMF_CPR(void)
{
uchar uc_data;
DTMF_Q2=1; //Q2=1產(chǎn)生Q2的上升沿
_nop_(); //Q2的高電平持續(xù)
_nop_();
uc_data=DTMF_REG; //讀MT8880狀態(tài)寄存器
uc_data=uc_data&0x0f; //屏蔽高四位,只取低4位
DTMF_Q2=0; //Q2=0完成一個(gè)Q2時(shí)鐘
return(uc_data);
}
“寫MT8880控制或數(shù)據(jù)寄存器時(shí)序”函數(shù):
//功能說明:MT8880的Q2時(shí)序控制
void DTMF_CPW(void)
{
DTMF_Q2=1; //Q2=1產(chǎn)生Q2的上升沿
_nop_();//Q2的高電平持續(xù)
_nop_();
DTMF_Q2=0; //Q2=0完成一個(gè)Q2時(shí)鐘
}
“MT8880發(fā)送前的初始化”函數(shù):
//功能說明:發(fā)送前的初始化(對(duì)MT8880控制寄存器的
//操作)
void DTMF_send_init(void)
{
DTMF_REG=0x49;
//寫1001到MT8880控制寄存器CRA(允許發(fā)送)
DTMF_CPW(); //寫入控制器寄存器
DTMF_REG=0x40;//寫0000到MT8880控制寄存器CRB
DTMF_CPW(); //寫入控制器寄存器
}
“MT8880接收前的初始化”函數(shù):
//功能說明:接收前的初始化(對(duì)MT8880控制寄存器
//的操作)
void DTMF_rec_init(void)
{
DTMF_REG=0x4C;
//寫1100到MT8880控制寄存器CRA(使能中斷模式,
//接著寫CRB)
DTMF_CPW(); //寫入控制器寄存器
DTMF_REG=0x40; //寫0000到MT8880控制寄存器
//CRB
DTMF_CPW(); //寫入控制器寄存器
}
“MT8880接收1位DTMF”函數(shù):
//功能說明:接收1位DTMF信號(hào)
//返回參數(shù):接收到數(shù)據(jù)存于A
//DTMF_REG為與MCU的接口寄存器,在"DTMF.H"有定義
//READSR為讀狀態(tài)寄存器SR時(shí)臨時(shí)存儲(chǔ)器,在"DTMF.H"
//有定義
uchar DTMF_rec_1byte(void)
{
uchar uc_data;
DTMF_REG=0x6f;//CS=0 RS0=1 RW=1 Q2=0
READSR=DTMF_CPR(); //讀狀態(tài)寄存器SR
while(SRB2!=1);
//判斷SR的b2=1嗎?=1說明收到有效數(shù)據(jù)
DTMF_REG=0x2f;
uc_data=DTMF_CPR(); //讀取數(shù)據(jù)
return(uc_data);
}
“MT8880發(fā)送1位DTMF”函數(shù):
//功能說明:發(fā)送1位DTMF信號(hào)
//輸入?yún)?shù):待發(fā)送數(shù)據(jù)給A
//DTMF_REG為與MCU的接口寄存器,在"DTMF.H"有定義
//READSR為讀狀態(tài)寄存器SR時(shí)臨時(shí)存儲(chǔ)器,在"DTMF.H"
//有定義
void DTMF_send_1byte(uchar uc_data)
{
DTMF_ON();
DTMF_Q2=0;
DTMF_RSO=0;
DTMF_RW=0;
DTMF_REG=uc_data;
DTMF_CPW();
delay_ms(130);
//突發(fā)模式,送出后延時(shí)的100 ms再讀狀態(tài)寄存器
DTMF_REG=0x6f;//CS=0 RS0=1 RW=1 Q2=0
READSR=DTMF_CPR();
}
4.3 對(duì)編碼芯片地址線和數(shù)據(jù)線的控制
已正確識(shí)別用戶通過DTMF技術(shù)輸入的控制指令后,單片機(jī)只要控制8位地址線和4位數(shù)據(jù)線這12個(gè)IO口的高低電平就可以啟動(dòng)無線傳輸。而在無線接收端是由硬件電路自動(dòng)完成的,不需要軟件控制。
本文介紹的技術(shù)已在實(shí)際項(xiàng)目中運(yùn)用,系統(tǒng)運(yùn)行穩(wěn)定。如果增加語音提示功能,則整個(gè)系統(tǒng)能做得更加完善和更加人性化。要實(shí)現(xiàn)語音提示功能,只要增加一塊語音錄放芯片就可以了。
參考文獻(xiàn)
[1] 王鈞銘,王錦.電話機(jī)原理與維修[M].北京:電子工業(yè)出版社,2005.
[2] 馬忠梅.單片機(jī)C語言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2007.
[3] MITEL公司.MT8880英文數(shù)據(jù)手冊(cè)[M].2000.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉