基于ARM智能撥號(hào)器的設(shè)計(jì)和實(shí)現(xiàn)
MT8880_WriteCRACRB(dBytesCRA, dBytesCRB);//將1101,0000 分別寫入到CRA 和CRB
dLength = strlength(pSendNum); //保存要寫入到MT8880 的被叫號(hào)碼的長(zhǎng)度
for(dL = 0; dL dLength; dL++) { //連續(xù)發(fā)送dLength 個(gè)DTMF 信號(hào)
switch(*pSendNum++) { //判斷ARM 處理器傳來(lái)的字符型的電話號(hào)碼
case '1':{
dBytesSend[3] = 0; //D3D2D1D0=0001
dBytesSend[2] = 0;
……
break;}
case '2':{
dBytesSend[3] = 0; //D3D2D1D0=0010
……
break;}
……
default:
{
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)的操作。將另撰文詳說(shuō)。
五、小結(jié)
首先對(duì)智能撥號(hào)器的硬件組成進(jìn)行了詳細(xì)的研究和說(shuō)明,并對(duì)部分軟件代碼進(jìn)行了解釋。該系統(tǒng)已經(jīng)測(cè)試使用,它具有成本低、功耗小、便于攜帶、功能易于擴(kuò)展等特點(diǎn),在一定的應(yīng)用背景下有很好的使用前景。
評(píng)論