"); //-->
摘 要: 探讨了FSK来电显示技术及DTMF编解码技术,给出了具有来电显示和DTMF信号收发功能的智能控制模块的硬件结构和软件流程。采用AT89C52单片机控制HT9032C、MT8880等芯片,设计实现了基于电话网的DTMF信号的收发以及来电信息的采集智能控制模块,并通过RS232接口与上位机通信,提出了软硬件抗干扰的具体措施。
关键词: 来电显示; 频移键控; HT9032C; MT8880
随着电信事业的迅速发展以用电话的普及程度的提高,电话的用途不只局限于人与人之间的语音通信上,许多借助于电话和计算机网络所进行的功能扩展已对社会生活产生越来越重要的影响。
来电显示业务,其专业名称为主叫识别信息传送及显示业务,简称CID(Calling Identity Delivery)。其原理是交换机在给用户提供正常电话业务的同时,按照一定的时序向用户终端提供主叫号码、日期、时间等信息,在用户终端接收并显示。在监控领域,可以利用电话网的现有通信资源组建基于电话网络智能控制系统,利用DTMF信号传输控制数据,远程控制监控对象,实现应用于电话网络的、基于来电显示技术的智能控制。
1 主要技术简介
1.1 来电显示技术
来电显示数据传送有两种制式:频移键控(FSK)和双音多频(DTMF)。由于DTMF制式自身存在的缺点,它将逐步被FSK制式所取代。
在FSK制式中,来电信号的发送时序是在第一次振铃与第二次振铃之间,根据信号格式的不同数据消息格式可以分为:单数据消息格式(Single Date Message Format)和复合数据消息格式(Multiple Date Message Format)。前者的结构简单,但可容纳的信息内容较少;后者的结构比较复杂,可容纳的信息内容较多。
各地数据消息格式可能不一样。经实测,笔者所在地使用复合数据消息格式,因此本模块使用复合数据消息格式。
复合数据消息格式如图1所示,它由同步信号、标志信号、消息类型(80H)、消息长度、若干参数消息(由参数类型、参数长度、参数字构成)及校验字等组成。其中,参数类型有五种:01H、02H、04H、07H、08H。0lH表示来电日期和时间,02H表示主叫电话号码,04H表示主叫者的电话号码或姓名(来自长途线路),07H表示主叫姓名,08H表示话码被有意隐藏而不能显示。
数据包格式举例:
55H,55H,55H…… ;150对0、1相间的同步信号
80H,17H,01H,08H,30H,36H,30H,32H,31H,32H,32H,
35H,02H,0BH,31H,33H,39H,35H,32H,33H,34H,36H,37H,
31H,39H ;复合数据消息格式
BCC校验字 ;复合数据消息的所有字符按
256的模求和取补
上例消息格式中:80H表示复合数据消息格式;17H表示数据长度(从其后到校验字之前)为23字节,这个值是可变的,它随着各地的电话号码长度的不同而变化;01H表示第一消息类型,即时间类型;08H表示第一消息类型数据长度,月、日、时、分共8字节,且长度固定(本例为06月02日12时25分),采用ASCII码表示;02H表示第二消息类型,即电话消息类型;0BH表示电话号码长度,为11位,由于各地区的电话号码长度不一致,其长度是可变的(本例为13952346719)。
1.2 DTMF技术
DTMF是用两个特定的单音频组合信号来代表数字信号以实现其功能的一种编码技术,它具有很强的抗干扰能力和较高的传输速度,可广泛用于电话通信系统中。双音频解码电路是系统中的核心部分,它的工作状况直接决定了系统的可靠性。本设计中使用双音频解码集成芯片MT8880来完成DTMF信号的收发。
MT8880是MITEL公司生产的DTMF信号发送/接收芯片,该芯片功耗低、集成度高、可进行编程控制、可与多种单片机接口完成DTMF信号发送、接收、检测等功能。
2 硬件电路设计
本智能控制模块由MCU AT89C52、FSK解码芯片HT9032C、DTMF编解码芯片MT8880、RS232电平转换芯片MAX232、串行EEPROM芯片AT24C02、看门狗芯片IMP813、模拟摘机电路、电源电路等组成。系统原理框图如图2所示。
系统工作原理:在没有振铃的情况下,HT9032C的RDET端输出高电平,当有振铃时,RDET输出低电平直到振铃结束,RDET信号与单片机的P1.2相连。当有振铃信号时,单片机在第一次振铃结束后,设置HT9032C的PDWN信号端为低电平,使HT9032C脱离省电模式,并接收FSK信号,在MCU接收数据经校验后,将接收到的主叫来电号码通过光耦经MAX232电平转换后送上位机(PC机),若接收有错,则向上位机发送错误数据。
PC机验证来电号码有效后,则向下位机(AT89C52)发送控制命令,下位机设置DTMF编解码芯片MT8880内的控制寄存器,使其根据需要工作于DTMF编码或解码状态。控制和接收数据由PC机处理。看门狗电路防止程序跑飞或死机,AT24C02存储所需电话号码。系统中,MAX232和光耦采用隔离变压器单独供电。
3 软件流程
主程序中主要完成各芯片初始化、波特率设置、来电号码接收、DTMF信号接收和发送、串行EEPROM读写等工作;接收来电号码子程序中,主要完成振铃检测、750ms延时、检测同步信号、接收来电号码数据、向上位机发送数据。由于来电显示接收涉及比较精准的时序,因此在编程时应特别注意时序问题。本设计中,MCU串口设置了两种波特率,一种为1 200b/s,用于与HT9032C通信,接收来电显示数据;另一种为9 600b/s,用于与上位机的通信。主程序流程图和接收来电号码子程序流程图分别如图3、图4所示。
4 模块抗干扰措施及系统调试
本模块在电话网与PC机之间起桥梁作用,因此软件编程对时序要求比较严格,解决模块的抗干扰能力是本模块的重点和难点问题,若不能很好地解决模块的抗干扰能力,将直接导致无法进行FSK解码或解码经常出错,或无法正确收发DTMF信号。系统的干扰源主要有以下几种:电话线传输距离远,容易受外界电磁干扰;电话线相对“大地”电阻很小,模块和PC机相连受PC机“接地”影响;电话线上并机使用比较常见,模块接收数据受并线话机影响。
为了提高模块的抗干扰能力,主要从软硬件两方面去解决干扰源引起的解码失效问题。对于电磁干扰,主要从软件编程上加以解决:检测振铃信号时,采用延时并多次采样的方法解决干扰问题。如图1所示的70ms高电平标志信号最容易受电磁干扰,该信号检测失效,将引起串口接收启动,导致解码失效。为了解决这类问题,采用了检测同步信号和严格定时的方法,也就是在检测同步信号(30字节的01010101串)结束后,精确延时65ms后再开串口中断,这大大提高了模块的抗干扰能力。
PC机“接地”干扰的原因是:计算机系统“地”与“大地”直接相连,而电话线相对“大地”内阻很小,当电话线上出现FSK或振铃等交流信号时,信号被电容交流短路,这将导致不能正确解码或解码出错。解决这一问题的办法是:采用隔离电源对主控电路、RS232接口电路分别供电,效果很好。
本模块中,由于仿真器与PC机相联,PC机接“大地”,串口由隔离电源供电,因此系统调试时不会造成干扰的影响。否则,不能调试,这一点很重要。
笔者在进行模块调试时发现,当并线的电话没有人使用时,FSK解码非常稳定,但当并线电话频繁使用特别是第一次振铃结束时,并线电话一摘机,则经常出现解码失效。因此,笔者建议,本模块应专线专用,或要求在两次振铃期间不要摘机。
接收DTMF信号之前,必须对MT8880进行初始化,否则其工作不正常;然后将MT8880设置为BUST发送模式,利用MCU模拟MT8880芯片的时序,发送数据,产生所需的DTMF信号,通过接口电路将DTMF信号发送到电话线上。接收DTMF信号时,将MT8880设置为接收模式,利用MCU模拟MT8880芯片的时序,接收DTMF信号。
电话号码存储要用到EEPROM芯片AT24C02,该芯片使用串行I2C总线方式,但AT89C52芯片没有I2C总线接口。为了存储电话号码,要用AT89C52 P1.0、P1.1管脚模拟I2C总线接口时序,以便能对该芯片正确读、写。但要注意,在连续多字节读取时,一次最多只能读8个字节,多于8个字节时,要分两次读取。
本模块基于电信网络技术规范,利用MCU控制FSK解码芯片及DTMF芯片,实现主叫电话号码识别、DTMF数据收发,接收的来电号码及收发的DTMF数据可通过RS232口送往上位PC机,实现各种控制功能。本文提出的智能控制模块,其串口采用隔离变压器单独供电,硬软件上采用多种抗干扰措施,性能稳定,可靠性高,最大的特点是具有RS232接口,能方便地实现上下位机的通信,实现基于来电显示及DTMF技术的各种控制功能。
参考文献
[1] 徐玉峰,王珺艳,柴新禹.基于P89C668多功能智能报警控制系统的研制[J]. 电子技术应用,2005,31(11).
[2] 王萍,林善明,刘玉宏.单片机控制MODEM实现电话远程报警[J].微计算机信息,2002,18(8).
[3] 杨穗,杨恢先.智能来电显示器的设计[J].电子器件,2005,28(2).
[4] 赵太飞,赵珂.短消息电话中数据链路层的控制技术.电子技术应用,2003,29(1).
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。