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