1 引言
主叫号码识别(俗称来电显示)已成为电话通信的一项重要功能,在许多CTI呼叫中心和交换机中也是不可缺少的。全世界的来电显示主要分为4大类:Bellcore FsK主要是中国、美国、加拿大使用;ETSI FSK主要是欧洲及我国台湾地区使用:JT FSK主要是日本使用:DTMF主要是我国台湾和印度地区。本文主要讨论FSK制式来电显示的解码方式,详细介绍基于专用电路、锁相解调和基于DSP的3种解调方式。
2 专用电路解调
主流的来话显示电路有Mitel公司的MT88E39、MT88E43、MT88E45等:Holtek公司的HT9032;NPC公司的SM8332;Freescale公司的MCl45447;EMC公司的EM92547A。笔者以HT9032为例介绍FSK解码方式,着眼于Type I或On-hook caller ID应用,符合Bell 202及V.23规范。HT9032将FSK解调器包含在一个电路中,引脚及功能与Freescale公司的MCl45447及EMC公司的EM92547A相兼容。
该电路硬件主要由HT9032与Atmel的Mega8型单片机组成,如图l所示。HT9032解调出的FSK基带信号送入单片机的捕获中断,信号码率为1200b/s,所以Mega8设定1.2 kHz时钟频率对信号进行采样判决。由于采样周期不可能是理想的1200 Hz,会使采样位置渐渐偏离码元中心,造成判决错误,所以每次下降沿捕获中断产生后,单片机记数时钟重新复位,矫正其采样相位。然后延时0.4 ms(2.4kHz),取码元中点,并开始按1.2 kHz速率采样,由此得到0、1比特流,将其按10bit合成字节信息,每个字节起始位是1,结束位为0,中间8位为信息。最后根据主叫识别的单数据消息格式提取所需的消息字,得到来电日期与来电号码。
主叫识别信息数据的格式有二种:单数据消息格式(SDMF)和复合数据消息格式(MDMF),前者结构简单,也比较常用,具体格式如下:
信道占用信号:由一组300个连续的“O”和“l”(二进制位)交替组成,第一个比特为“0”,最后一个为“1”。在通话状态下,信道占用信号不发送,接收端只在正确收到这个信号后才认为后面紧跟的为有效信号。
标志信号:由180个(挂机状态下)或80个(通话状态下)标志位(逻辑”1”)组成,即持续的高电平。
消息类型字:单数据格式情况下为“04H”,表示为主叫号码传送信息。
消息长度字:占一个字节,为消息字的数目。
消息内容:单数据消息格式消息字内容如下:日期,时间(月,日,时,分),共8个字节;主叫号码(如果允许显示);如果不允许显示主叫号码,将传送字符“P”;当终端交换机无法得到主机号码时,将传送字符“0”。
校验和:校验字的算法是将消息数据(即单数据格式的消息类型字、消息长度字和消息数据字)按256的模求和取补来得到校验字。
其HT9032解码输出比特信号为:
根据单数据消息格式分析后得到来电显示的时间为:08月14日13时47分,来电号码为:13386198301,校验位:0x12。所有数据(包括校验位)和按256的模求和为00,证明收到的数据完全正确。
3 锁相环解调
锁相环主要包括鉴相器、环路滤波器和压控振荡器。鉴相器可分为数字鉴相器与模拟鉴相器,数字鉴相器一般由异或门或边沿触发器组成,模拟鉴相器由乘法器组成,环路滤波器一般选用比例积分滤波电路。
设输入信号为:
式中,α(nT)为调制的数字信号,△ω为FSK信号频偏,设锁相环的带宽足够宽,环路锁定,则VCO输出信号频率与输入信号频率一致,也是调频波,如果鉴相器采用正弦鉴相器,VCO输出的电压为
式中,φe为稳态相差,为一常数,一般小于90°,反比于环路增益,由式(2)可得VCO输出频率为
压控振荡器输出频率与控制电压关系为:ω=ωc+AoVc,与(3)式相比可得
由此可知压控振荡器的控制电压与FSK的调制信号成正比,在实际电路中,只要加一些整形比较电路就可将其恢复为数字信号,完成FSK的解调。
在笔者开发的系统中,选用74HC9046型数字锁相环来完成FSK的解调,如图2所示。
PCI、PC2分别是门鉴相器和边沿触发鉴相器,这里选用PCI输出,环路滤波器选用无源比例积分滤波器,根据FSK制式来电显示信号的特点,设定74HC9046的参数如下,中心频率fc=1.7 kHz,跟踪带宽为2fL=1.5 kHz,环路滤波器带宽为l kHz,R1=10 kHz,C1=O.3μF,R2=∞(具体计算可参考74HC9046的数据手册),由于一般电容器的误差比较大,所以R1要根据实际情况微调才能保证环路能跟踪FSK信号。
输入信号用信号源来代替,其中心频率为1.7kHz。频偏正负0.5 kHz,调制速率1.2 kb/s。
由于采用数字锁相环,输入信号必须为TTL,所以要对输入信号进行放大限幅,限幅后的信号与锁相输出信号频率一致,但存在少许的相位差即稳态相差。当锁相环进入锁定状态后,其VCO的电压与基带信号一致,由于FSK制式来电显信号1代表1.2 kHz,0代表2.2 kHz,所以锁相解调输出的信号要经反相后才输入到单片机进行消息字的提取,单片机处理方法与基于专用电路解调方式中的相同,这里不再赘述。
4 基于DSP的解调
FSK信号的软件解调方法很多,差分解调是比较简单且易于实现的一种。其理论依据为设FSK信号的二个频率分别为ω1,ω2。ω=ωo+△ω,若△ω>o,则ω=ω2;若△ω<O,则ω=ω1。经过带通后的信号可表示为y(t)=Acos(ωo+△ω)t,相乘器输出为:
上式说明,若将输入信号延迟π/2或3π/2个相位,即ωoτ=π/2时,x(t)=-A2/2*sin(△ωτ);ωoτ=3π/2时。x(t)=A2/2sin(△ωτ)。可得到一双极性电压,将“0”和“l”鉴别出来。DSP的解调算法框图如图3所示。
算法确定后,在system view上进行了仿真,输入PN序列,速率为1.2 kb/s,FSK调制器中心频率为1.7 kHz,频偏正负O.5 kHz,为了延时整数个采样点,DSP采样率为34 kHz,是中心频率(ωo=1.7 kHz)的整数倍,所以得ωo*τ=π/2=1.7(4x34000)-1)=5samples,低通滤波器的截止频率为1.2 kHz。DSP算法仿真如图4所示,仿真输出波形如图5所示。
值得注意的是延时点的选取,在信号延时π(34000/1700/2=10 samples)时,获得的信号幅度要比π/2延时小很多,从(6)式也可以得出同样的结论。
基于仿真的可实现性,笔者采用了ADI公司的BF535型DSP。该DSP具有300MHz的主频,2个40 bit的MAC和2个32 bit的ALU,4个8 bit的视频处理单元,16个地址寻址单元。该DSP内部集成了308 KB的RAM,并具有丰富的外部接口,用其实现算法中的延时、滤波、相乘及消息字的提取绰绰有余,其实际代码只有ll KB。
5 结束语
基于专用电路的解调方式成本低廉、实用简单、性能可靠,适合小型来电显示机的设计,大部分来电显示产品都采用此种方式。
锁相环解码方式基于硬件FSK解调,在大多数通信解调电路中都采用这种方式,其优点是灵敏度很高,在信噪比低的情况下性能尤为突出,缺点是电路复杂,调试不便,而且对于大部分数字锁相环集成电路(例如74HC9046或4046),当VCO工作于高频(>6 MHz)时受温度影响很大,需要加温度补偿电路才可正常工作。
基于DSP的解码是纯软件解调方式,优点是设计灵活,修改方便,但是相对于专用电路解调方式来说成本过高,在信噪比差的情况下,算法要做相应的调整。