基于CM8870小型程控交换机设计
路连接如图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公共电话交换网络协议与信令标准,采用电路交换原理实现交换功能。该小型交换机可置于网络通信的中继器中,也可置于末端的数据处理器中,通常,该交换机只负责转发数据,为数据通信建立传输链路,数据在交换机中的传输是双向的。交换机不是数据的最终目的地,而只是一个"驿站"。虽然随着数字通信技术的发展,交换技术日趋复杂,交换功能日益完善,但对于工控网络来说,基于有线网络的电路交换技术仍以其低成本,易实现、安全可靠性高等优点而被广泛使用。