引言
双音多频(DTMF)信号由贝尔实验室发明,最初是用于电话系统中电话机与交换机之间的一种用户信令,通常用于发送被叫号码。DTMF信号由高频群和低频群组成,高、低频群各包含四个频率。一个高频信号和一个低频信号叠加组成一个组合信号,代表一个数字。DTMF信令有16个编码。双音多频的拨号键盘是4×4的矩阵。每按一个键就发送一个高频和低频的正弦信号组合,因为任何2个频率之间没有谐波干扰,因此其抗干扰能力很强,远程传输之后的误判率很低。
交换机中DTMF、解码芯片采用CM8870实现通讯线路上双音多频信号的解码功能,该芯片将侦听到的双音多频信号转换为二进制四位代码,发往单片机,为单片机提供数据流的目的信息。双音多频信号是一组由高频信号与低频信号叠加而成的组合信号。双音多频信号解码是交换机中非常重要的组成部分,是否能够准确地解码出线路发送来的双音多频信号是建立通信链路的关键,它的工作情况直接决定了远程数据通讯的可靠性。本系统采用的双音频解码芯片CM8870集成了频带分离滤波器和数字解码器,可以将接收到的DTMF信号转换成8421码。
1CM8870解码功能实现
1.1CM8870芯片简介
CAMD公司的CM8870双音多频信号解码器为单片18脚DIP封装芯片,该芯片内含滤波器与数据解码功能,可滤除340~3400Hz外的非音频信号,同时将音频信号转换为二进制4位数字信号,内部CMOS工艺大大降低了芯片功耗,功耗仅为35mW。CM8870内置一个差分输入放大器、一个时钟产生器及一个三态锁存接口总线,减少了芯片外围组件,只需要接一个普通晶振即可正常工作。其特点如下:提供DTMF信号分离滤波和译码功能;功耗低于35mW;可以工作在工业温度范围内;可外接晶振,且内含震荡器产生基准频率信号;采用18引脚DIP,EIAJ,OIC,PLCC封装。
CM8870电路的基本特性是提供DTMF信号分离滤波和译码功能,输出相应的16种DTMF频率组合的4位并行二进制码。电路输出的二进制码D1~D4由数据输出允许段TOE控制,当TOE为高电平时,D1~D4输出与当前输入的DTMF信号相对应的二进制码;当TOE为低电平时,D1~D4端呈高阻状态。运放和R1,R2,C1组成一反相放大器,对输入的DTMF信号进行隔离放大,其增益.K=-R2/R1,改变R2的值可改变增益的大小,VREF为基准电压输出端,取VDD/2=2.5V;INH和PD为内部电路连接点,应接地;OSCl和OSC2为振荡器输入输出端,外接3.58MHz晶振与内部振荡器产生基准频率信号;STD为延迟控制输出端,当一组有效的双音频信号被接收时输出“1”,否则输出“O”;ESt为初始控制输出端,若电路检测出可识别的单音对,则此端变成高电平,若无输入信号或连续失真,则ESt返回低电平;SI/GT为控制输入端/时间监测输出端。功能框图如图1所示。
双音多频信号是用两个不同频率的信号组合来表示一个字符或数字。这两个频率一个选自低频段,一个选自高频段,每个频段分别包含四个不同的频率,因而总共可以组合成16种选择,而常用的只有12种,它们是O~9,以及#号和*号。CM8870能将DTMF信号译码成4位二进制码。
1.2CM8870的收号过程
CM8870组成收号电路,它的输入为来自模拟用户接口双音多频信号,输出为4位二进制数据,供处理器从数据总线口读入。其收号过程如下:模拟信号从IN一脚引入后,经双音滤波器初步滤除带外干扰信号,随后,此滤出信号在经高群滤波器和低群滤波器分别滤出其中的高频和低频分量,这两种分量分别通过过零检测后送给数字检测计算电路;该电路对音频信号进行进一步的优化,能排除外部噪声因偶然含有某些特定频率而被编码器编码,或者影响编码器的编码,从而引起后续的收号错误。当高、低频组信号同时被编码器检测到时,ESt脚将输出高电平作为有效检测DTMF信号的标志,而当DTMF信号消失时,ESt脚将输出低电平。为了防止外部噪声被CM8870误编码,编码器要求被编码的音频信号能维持一段时间,这段时间由外部的一个RC电路来决定。如前所述,当音频信号被检测到时,ESt输出高电平1,电容放电,VC上的电压值上升(假设信号在整个要求时间内部存在),VC升到一个门限值Vrst时,该音频信号被编码,变成了数字信号,该数字信号将被锁存起来,此时,GT就为高,使VC点的电压由门限值升到VDD,此后,只要ESt仍保持为高,GT就为高,外部的RC电路回到初始状态,随后,经过一段锁存 *** 作引起的延时后,STD脚输出高电平,表示信号锁存完毕。这时,若要从Q1~Q4上读这4位编码,应使TOE为高,打开锁存器,就完成了DTMF的收号任务。
2单片机控制CM8870设计
2.1SM895l控制框图
SM8951外围电路连接如图2所示,单片机通过P1.4管脚与模拟摘挂机电路相连,有设备呼叫通信时,单片机会通过该管脚检测到线路上有摘机动作,然后单片机控制铃流发生器向呼叫方发送拨号音,收到号码后,将该号码用DTMF、解码器解码并经过P2.7脚发给单片机,单片机对该号码进行分析,确定主叫方呼叫的对象,而后单片机摘机,判定终端交换机是否空闲,若空闲则发送呼叫号码,收到回应后,给被叫方发送振铃音,给主叫方发送回铃音,被叫一旦摘机,则单片机马上退出 *** 作,完成呼叫转移。
CM8870与SM8951单片机的接口电路如图3所示。SM8951单片机的PO.O~PO.3读取CM8870的译码数据,当CM8870接收到一个有效DTMF信号后,ESt端首先变为高电平,经积分电路使控制输入端SI电平升高,若SI端电平高于门限电平,CM8870内部的4位二进制码被更新,STD端变为高电平,SM8951单片机通过P2.7口检测到这一信息后就开始接收。若CM8870无DTMF信号输入或DTMF信号连续失真,则ESt端为低电平,SI端为低电平,STD端输出低电平。
双音频解码电路如图4所示。双音频信号输入点与一个三极管的集电极V1相连接,当V1导通时,从电话线上送来的双音频信号进入CM8870。如果CM8870接收到的是有效的DTMF信号,便解码出对应的8421码从数据输出端Q1~Q4输出,该数据进入单片机PO.0~P0.3口,完成数据采集、判断和处理。另外,从CM8870的第15脚出来的状态信号进入单片机的P2.7端口,通知单片机读取数据。
2.2单片机控制过程
单片机控制交换机通信时要时时监控通信链路中是否有摘机、挂机动作。摘机、挂机电路其实就是一个电子开关,控制电路板和电话线之间的连接。平时这个开关应该处于断开的状态,以免造成电话线占线;当需要实现远程控制时,如果振铃响5次而无人接听,这时就需要让电路板和电话线路接通,即完成摘机动作。V1就是一个电子开关,该开关的导通与否受到单片机P1.4口的控制。摘机挂机电路如果用继电器设计,电路要简单一些,但在实用中发现耗电大,5V的继电器吸合电流高达30μA,另外继电器也容易产生火花干扰。采用晶体管摘机挂机电路克服了这些问题。
软件设计流程图如图5所示。
当单片机控制CM8870作为主叫方时,单片机要先对CM8870进行初始化,然后控制摘机电路摘机,收到被叫方的拨号音后,单片机控制铃流发生器产生振铃,作为主叫方呼叫。等待一段时间后,看对方有没有接机。若对方摘机,则通信开始,否则挂机,通信结束。
当中继作为被叫方时,启动单片机后,程序要首先对CM8870进行初始化,然后随时检测是否有振铃音,如果有,由单片机控制摘机电路主动摘机,等待一段时间,确保已经摘机后,单片机控制铃流发生器产生振铃,作为主叫方呼叫。等一段时间后,完成呼叫转移功能,挂机,结束通信。
3结语
本系统基于SM8951单片机与CM8870双音多频解码芯片实现小型工控交换机功能,该小型交换机可用于以电力线或双绞线为传输载体的工控网络远程数据传输,依据PSTN公共电话交换网络协议与信令标准,采用电路交换原理实现交换功能。该小型交换机可置于网络通信的中继器中,也可置于末端的数据处理器中,通常,该交换机只负责转发数据,为数据通信建立传输链路,数据在交换机中的传输是双向的。交换机不是数据的最终目的地,而只是一个“驿站”。虽然随着数字通信技术的发展,交换技术日趋复杂,交换功能日益完善,但对于工控网络来说,基于有线网络的电路交换技术仍以其低成本,易实现、安全可靠性高等优点而被广泛使用。
欢迎转载,本文来自电子发烧友网(http://www.elecfans.com/)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)