基于DTMF技術與射頻技術的遠程控制的實現
3、遠程控制應用實現
為了實現對多點設備的控制,無線編碼芯片PT2262的地址線選用A0~A7地址腳和DO~D3數據腳,這12個口線均通過單片機AT89S52來控制。由于單片機很容易實現“0”和“1”控制,所以單片機對A0~A7這8個地址線的控制可實現256種狀態,即最多可以控fitJ 256種設備(每一個PT2272解碼芯片輸出對應于一種受控設各);同樣地,單片機對DO~D3這4條數據線的控制可實現16種狀態,即對同一設各可實現最多16種方式的操作。本文實現的是異地遠程呼叫處理工廠各個無人操作車間的測試儀器,并能遙控操作進行相關的測試任務。系統框圖如圖5所示。
圖5 遠程控制應用系統框圖
系統的工作流程如下:單片機主板可以接人固定電話線也可以接人一個手機模塊(專為沒有預裝固定電話的區域使用),操作員在異地拔打本地電話號碼(或手機號碼),單片機主板會自動檢測振鈴信號,然后自動摘機,并提示操作員輸人密碼。當單片機主板驗證通過后,操作員就可輸人地址碼(對應于一臺測試儀器,如001號)和操作碼(當前測試機的測試任務,如A字符,代表打開測試機電源),單片機主板識別后,通過編碼芯片送給無線發射頭,無線發射頭按特定的規則送出地址碼和操作碼,每一臺測試機上的無線接收頭都能接收到該無線信號,但只有與編碼芯片的地址匹配的那臺測試機才會響應并執行操作碼。
4、軟件實現
軟件部分主要分為三部分:(1)正確檢測到固定電話的振鈴音并自動摘機或手機模塊自動接通接聽中的鈴流信號;(2)對DTMF信號的接收和發送處理,實現身份認證、向用戶發送提示音、接收用戶輸人的控制指令等。(3)控制編碼芯片地址線和數據線,從而把控制指令無線傳輸出去。
4.1固話振鈴音的檢測及處理
針對固定電話、結合圖1,單片機AT89S52的TEST腳檢測到固定電話振鈴檢測信號波形,AT89S52只要判斷TEST腳的電平變化即可以正確檢測外線是否有電話撥人,然后控制TRI腳吸合繼電器實現模擬摘機。
針對手機模塊、結合圖2,本文選用的是一款諾基亞手機(手機設為自動接聽模式),經局部改造提到鈴流信號線送人單片機AT89S52的GSM-RING的lO腳上,常態下為高電平,當有電話打過來時,GSM-RING的lO腳上得到的波形如圖6所示。所以單片機只要AT89S52判斷GSM-RING的lO腳的電平變化情況就可以了。
圖6手機模塊鈴流信號波形
4.2 DTMF信號的收發處理
當固定電話或手機模塊自動摘機后,則啟用DTMF收發處理程序(主要是對MT8880芯片的處理),關鍵的程序代碼如下[3]·
“讀MT8880狀態或數據寄存器”函數:
〃功能說明:讀取MT8880狀態寄存器
〃輸出參數:返回MT8880的狀態寄存器值
//DTMF REG為與MCU的接口寄存器,在"DTMF H"有定義
uchar DTMF_CPR(void)
{
uchar uc_data;
DTMF_Q2=1;
noD();
_nop_();
uc_data=DTMF_REG;IlC_data=uc_data&0x0f;pTMF_07v"=0;
return(uc_d·ata);
}
“寫MT8880控制或數據寄存器時序”函數:
//功能說明:MT8880的Q2時序控制
void DTMF_CPW(void)
{
DTMF_Q2=1; //Q2=1產生Q2的上升沿
non_();//Q2的高電平持續
_nop_();
uc_data=DTMF_REG;//讀MT8880狀態寄存器
uc_data=uc_data0x0f;//屏蔽高四位,只取低4位
DTMF_Q2=0;//Q2=0完成一個Q2時鐘
return(uc_data);
}
評論