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接口的时序CONTROL ENGINEERING China版权所有,在串行输入时钟的上升沿,从单片机命令数据线上送来的数据被锁进 CMX860。当串行时钟为高电平时,从CMX860送到单片机的响应数据有效。在数据传送期间,CSN线(使能端)必须保持低电平,而在两次传输之间保持高电平。具体传送过程中,首先由单片机发送给CMX860一个字节表示CMX860内部寄存器地址(CMX860内部寄存器说明及地址参见参考文献〔1〕),接着,由单片机发给CMX860的只写存储器一个或多个的数据字节,或者单片机从CMX860的只读存储器读出一个或多个数据字节控制工程网版权所有,从而完成对CMX860的控制编程。图3是由单片机向CMX860发出一个地址信号和一个数据信号的时序图。
下面是单片机与CMX860通信的几个子程序:
(1)单片机向CMX860写入一个字节信息子程序CONTROL ENGINEERING China版权所有,信息存在寄存器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读出一个字节信息子程序www.cechina.cn,信息存入寄存器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,A