基于CMX860的来电显示电话测试仪的设计
1 引 言
目前,随着电信部门电话主叫识别(来电显示)业务的普遍开通,具有主叫识别功能的电话机越来越普及。根据这个情况,我们设计了一台可以测试主叫识别功能的多功能电话测试仪,采用了cml(consumermicrocircuit
limited)公司的cmx860作为其中来电显示测试电路的核心元件,单片机采用了sst89c58。
1.1 cmx860简介
cmx860是一块通用的低功耗电话机信令收发集成电路。cmx860包含dtmf编码解码器、v.23调制解调器,具有铃流检测、话机摘机检测等功能,它可以广泛应用于由线路提供电源的电话设备。
cmx860的主要特性有:(1)提供v.23 1200/75bps的fsk信号发送和接收;(2)双音多频及音频信令的发送和接收;(3)用户线端和电话机端驱动;(4)呼叫进程解码;(5)来电等候信号的产生和检测;(6)“c-bus”串行总线接口;(7)低功耗工作方式。

图1是cmx860的原理框图。cmx860包括ssop及soic两种封装,共28脚。具体管脚图及管脚
说明请参见cmx860用户手册。
1.2 sst89c58简介
单片机sst89c58与标准的8052引脚、指令和片内资源全兼容。sst89c58的优点是包含36kb高性能的flash,既可以存储程序,也可保存数据,简化了系统设计,省去了通常外部扩展的24xx系列或93xx系列的外部flash,元件数目减少,系统可靠性增加,总体成本降低。sst89c58的另一个优点是保密性好,不易被解密或仿制。
2 cmx860与单片机的连接
cmx860的一个显著特点是它的所有编程功能可以通过一个称为c-bus(c总线)的串行总线接口来完成。单片机通过c-bus与cmx860连接,c-bus串行总线可在单片机和cmx860内部寄存器间进行数据、控制或状态信息的传送。
2.1 cmx860与单片机的硬件连接
cmx860的c-bus接口兼容于大多数通用的单片机串行接口,而且可与单片机的通用i/o管脚连接。本系统采用sst89c58的p1口的p1.4、p1.5、p1.6、p1.7脚与cmx860的c-bus接口连接。具体连接如图2所示。

cmx860各引脚功能:csn脚作为使能脚,data脚从单片机接收串行数据信号,clk脚从单片机接收串行时钟信号,reda脚向单片机发送串行数据信号。
2.2 单片机对cmx860编程
根据c-bus接口的时序,在串行输入时钟的上升沿,从单片机命令数据线上送来的数据被锁进 cmx860。当串行时钟为高电平时,从cmx860送到单片机的响应数据有效。在数据传送期间,csn线(使能端)必须保持低电平,而在两次传输之间保持高电平。具体传送过程中,首先由单片机发送给cmx860一个字节表示cmx860内部寄存器地址(cmx860内部寄存器说明及地址参见参考文献〔1〕),接着,由单片机发给cmx860的只写存储器一个或多个的数据字节,或者单片机从cmx860的只读存储器读出一个或多个数据字节,从而完成对cmx860的控制编程。图3是由单片机向cmx860发出一个地址信号和一个数据信号的时序图。

下面是单片机与cmx860通信的几个子程序:
(1)单片机向cmx860写入一个字节信息子程序,信息存在寄存器a中。
out byte:mov r7,#8
outb1: clr clk;时钟信号置为低电平
rlc a;从a中读出一比特
mov date,c;将一比特信息放入data数据线上
setb clk;时钟信号置为低电平
rlca;从a中读出一比特
mov date,c;将一比特信息放入data数据线上
setb clk;时钟信号置为高电平,在时钟的上升沿时data数据线上数据被送入cmx860
djnzr7,outb1;总共输入8比特clr clkret
(2)单片机从cmx860读出一个字节信息子程序,信息存入寄存器a中。
in byte:mov r7,#8
inb1: clr clk;时钟信号置为低电平
nop
setbclk;时钟信号置为高电平
mov c,sout;在时钟信号为高电平时将rdda数据线上的数据比特读入单片机
rlca;将数据比特存入寄存器a中
djnzr7,inb1;共读入8个比特
clr clk
ret
(3)单片机向cmx860特定寄存器写入一个字节信息子程序。
write byte:clr csn;使能端置为低电平
mov a,addr;

3 电话主叫识别简介
3.1 主叫识别业务定义
主叫识别信息传送及显示业务,是向被叫电话机提供的一种新的服务项目,指在被叫用户终端设备上显示主叫号码、主叫用户姓名、呼叫日期、时间等主叫信息,并进行存储,以供用户查阅的一种服务。
3.2 实现主叫识别的方法
实现主叫识别的基本方法是发端交换机将主叫号码等信息通过信令系统传送给终端交换机,终端交换机将主叫识别信息以双音多频(dtmf)或频移键控(fsk)的方式传送给终端用户/终端设备。终端交换机将主叫识别信息在第一次振铃和第二次振铃间隙送给被叫用户终端。
3.3 主叫识别信息数据的传送时序
主叫识别信息数据的传送时序图见图4。

图4中,阶段a是交换机向终端电话发出的第一次振铃信号;阶段b是第一次振铃结束与数据传送开始之间的时间间隔,时长为0.5~1.5s;阶段c是交换机向终端电话发出的关于主叫识别信息的数据信号,时长应小于2.9s;阶段d数据传送结束与第二次振铃开始之间的时间间隔,时长大于200ms;阶段e是交换机向终端电话发出的第二次振铃信号,时长为1s。
3.4 主叫识别信息数据格式
主叫识别信息数据由信息头和信息体两部分构成,信息头由信息类型和信息长度组成,它们均为8比特,信息类型的值用来识别信息的类型,信息长度指明后来跟的信息值的长度,信息体包括交换机发送给终端用户的主叫用户信息,信息体可容纳1~255个8比特的消息字,每个字用带校验的ascii码表示。如图5所示。

4 电话测试仪中来电显示测试部分的硬件及软件实现
4.1 硬件实现
电话测试仪中来电显示测试部分模拟终端交换机向被测试电话机发出主叫用户信息,以检测被测电话显示的内容是否准确。其原理框图见图6。其中,主控部分包括sst89c58和cmx860等电路,产生并发送主叫用户信息;电源部分向主控部分及显示部分提供+5v及+9v电压;仿真部分模拟交换机的用户环路,连接电话机,并向电话机提供48v馈电;显示部分用来显示测试仪的状态及电话机向测试仪发出的各种信息如号码等;输入部分用于输入主叫用户信息及测试仪的控制命令。

4.2 软件实现
系统模拟交换机向电话机发送主叫识别信息,电话机接收后显示主叫信息。需要显示的主叫识别信息内容可以采用两种方法获得:(1)在编程时预先存入数据存储区,采用这种方法可以存储国标要求测试的所有内容;(2)由用户输入,用户可以根据需要在测试前输入信息,这样可以增加测试的灵活性。发送主叫识别信息有dtmf及fsk两种信号方式。用户可根据被测试电话机选择其中一种或两种信号方式。测试软件流程图如图7所示。流程图中输出来电显示信息部分按图4的流程。
5 结束语
我们采用cmx860为核心设计的可测试来电显示的多功能电话测试系统,目前已投入使用。
评论