基于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);
}
评论