基于MT8880的ARM智能撥號(hào)器的設(shè)計(jì)和實(shí)現(xiàn)
放大器的輸出端可獲得峰值 1V左右的雙音頻信號(hào)。MT8880可以接收呼叫過程中的各種信號(hào)音,以及 16種雙音頻信號(hào)。接收信號(hào)音和 DTMF信號(hào)共用同一通道,并且 MT8880不能同時(shí)接收 DTMF信號(hào)和信號(hào)音,要分時(shí)復(fù)用。信號(hào)音與 DTMF信號(hào)經(jīng)耦合線圈,再經(jīng)電解電容 C1和電阻R1,將電話線上的信號(hào)輸入到 MT8880的輸入端IN-。MT8880接收與發(fā)送的 DTMF信號(hào)由模擬摘機(jī)電路耦合[2-5]。MT8880作為 DTMF接收器時(shí),將電話線傳送來的信號(hào)經(jīng) MT8880轉(zhuǎn)換成數(shù)字信號(hào),由ARM處理器讀入 [6]。
利用雙音多頻(DTMF)技術(shù)可通過電話線實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)傳輸任務(wù),其不足之處是速度太慢(約 80波特)。本系統(tǒng)可實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)傳輸?shù)墓δ埽恍枰ㄟ^軟件編程在系統(tǒng)(被呼叫用戶)接收到振鈴后控制模擬摘機(jī)電路工作,實(shí)現(xiàn)模擬摘機(jī),并設(shè)置芯片 MT8880工作在接收數(shù)據(jù)模式下。而呼叫用戶在呼叫后,MT8880立即進(jìn)入發(fā)送模式下,等待用戶發(fā)送數(shù)據(jù)。四、軟件編程
本系統(tǒng)通過軟件編程實(shí)現(xiàn)與 MT8880的部分端口的通信。系統(tǒng)選用 IAR作為軟件開發(fā)環(huán)境,IAR的 Embedded Workbench 系列是一種增強(qiáng)型一體化嵌入式集成開發(fā)環(huán)境,其中完全集成了開發(fā)嵌入式系統(tǒng)所需要的文件編輯、項(xiàng)目管理、編譯、鏈接和調(diào)試工具。IAR公司獨(dú)具特色的 C-SPY調(diào)試器,不僅可以在系統(tǒng)開發(fā)初期進(jìn)行無目標(biāo)硬件的純軟件仿真,也可以結(jié)合 IAR公司推出的 J-Link硬件仿真器,實(shí)現(xiàn)用戶系統(tǒng)的實(shí)時(shí)在線仿真調(diào)試 [3]。
在軟件編程時(shí)要注意 MT8880上電延時(shí) 100ms以上,初始化時(shí)要將寄存器清零后才能使用[2]。
1. DTMF接收和命令解釋程序 這段程序是系統(tǒng)模擬摘機(jī)后的程序,ARM處理器發(fā)送被叫號(hào)碼到 MT8880芯片,部分程
序如下,為了方便升級(jí)開發(fā),均有詳細(xì)注釋://設(shè)置MT8880 模式為雙音頻工作模式(發(fā)送數(shù)據(jù)) 即配置CRA=1101,CRB=0000
dBytesCRA[3] = 1;
dBytesCRA[2] = 1;
……
dBytesCRB[3] = 0;
……
MT8880_WriteCRACRB(dBytesCRA, dBytesCRB);//將1101,0000 分別寫入到CRA 和CRB
dLength = strlength(pSendNum); //保存要寫入到MT8880 的被叫號(hào)碼的長度
for(dL = 0; dL dLength; dL++) { //連續(xù)發(fā)送dLength 個(gè)DTMF 信號(hào)
switch(*pSendNum++) { //判斷ARM 處理器傳來的字符型的電話號(hào)碼
case '1':{
dBytesSend[3] = 0; //D3D2D1D0=0001
dBytesSend[2] = 0;
……
break;}
case '2':{
dBytesSend[3] = 0; //D3D2D1D0=0010
……
break;}
……
default:
{本文引用地址:http://www.biyoush.com/article/166897.htm
break;
}
}
MT8880_WriteDataReg(dBytesSend); //寫發(fā)送數(shù)據(jù)寄存器
for(iTemp = 5000; iTemp; --iTemp) {
MT8880_ReadStateReg(dBytesSReg); //讀取狀態(tài)寄存器的值
if(dBytesSReg[1] == 1) //判斷狀態(tài)寄存器的第二位是否為1
break; //即發(fā)送數(shù)據(jù)寄存器滿,準(zhǔn)備發(fā)送數(shù)據(jù)
}
2.信號(hào)音處理程序
首先將芯片 MT8880設(shè)置為呼叫處理、中斷模式,信號(hào)音處理程序分為四大部分:一是撥號(hào)前檢測(cè)是否允許撥號(hào) ,即檢測(cè)信號(hào)音是撥號(hào)音還是忙號(hào)音;二是撥號(hào)后檢測(cè)是否接通,即檢測(cè)信號(hào)音是回鈴音、忙號(hào)音還是占線音;三是撥號(hào)接通后檢測(cè)是否應(yīng)答,即檢測(cè)回鈴音是否消失;四是檢測(cè)各種信號(hào)音:撥號(hào)音、忙號(hào)音、回鈴音。
各種信號(hào)音的特點(diǎn):撥號(hào)音在 5秒內(nèi)是連續(xù)音;忙號(hào)音在 5秒內(nèi) 0.35秒通,0.35秒斷;回鈴音在 5秒內(nèi)是 1秒通,4秒斷。
3.串行通信程序主要功能是接收上位機(jī)的命令,執(zhí)行相應(yīng)的操作。將另撰文詳說。
五、小結(jié)
首先對(duì)智能撥號(hào)器的硬件組成進(jìn)行了詳細(xì)的研究和說明,并對(duì)部分軟件代碼進(jìn)行了解釋。該系統(tǒng)已經(jīng)測(cè)試使用,它具有成本低、功耗小、便于攜帶、功能易于擴(kuò)展等特點(diǎn),在一定的應(yīng)用背景下有很好的使用前景。
本文作者創(chuàng)新點(diǎn):系統(tǒng)使用 ARM7作為微處理器,功耗低,設(shè)計(jì)簡(jiǎn)化,且功能易于擴(kuò)展。采用 USB作為調(diào)制解調(diào)類外設(shè)與計(jì)算機(jī)的接口,實(shí)現(xiàn)枚舉設(shè)備等,數(shù)據(jù)傳輸穩(wěn)定可靠,且較串口接口更利于使用和攜帶。
評(píng)論