首页>>厂商>>寻呼设备厂商>>深圳菱科实业

8路FSK主叫号码识别电路的设计

王昌世 2002/11/25

  

关键字:主叫识别 BEL202协议 FSK MT88E39 单片机 巡检
Key Words: Caller ID Protocol FSK 88E39 MCS Circle Detect

摘要:本文主要讲述基于单片机硬件的8路并发的FSK主叫号码的识别电路的设计。
该文同时涉及了BEL202 协议、FSK以及借助双口RAM的计算机并行数据通信等技术

Abstract: The paper mainly descriped the design of eight channel hardware FSK Caller IDcircuit based on single chip microprocessor 。It simultaneously include BEL202 protocole,FSK and computer the parallel communication by dual port RAM technology,and so on.

1.主叫号码识别协议。

  主叫号码识别(俗称来电显示)现已成为电话通信的一项重要功能,在许多的CTI
呼叫中心和交换机中也都是不可缺少的。

  主叫号码识别(英译为Caller ID),又称主叫号码传输(Calling Number Delivery),
是一种按V.23或是BEL202数据流协议(在这里统称为Caller ID协议),把主叫电话号码等信息在电话的呼叫阶段传给被叫客户的一种方法。典型的Caller ID协议规范由下列三个层次组成。

1.1物理层

  通过物理层异步传输的所有数据都是由8位字符构成的。字符的格式如下:

S2 M B7 B6 B5 B4 B3 B2 L S1

  在这里: S1=开始位,S2=停止位,M=最高有效位,L=最低有效位,B=第2到7数据位。

1.2数据链路层

  链路层把数据帧组合成一个带有效验和的数据包,以区分噪声。这个数据包的格式如下:

通道占用 标志信号 信息类型 信息长度 信息 校验和

  (1) 通道占用信号: 这是一个接续的"0"和"1"(二进制位)交替信号(按字节,就是0x55) ,位数在96~315之间(对应80ms~262ms),以"1"开始,以"0"结束。

  这个信号的作用在于减少与真实的载波信号类似的信号干扰,接收端只有在正确收到这个信号,
后续的信号才会有效。

  (2)标志信号:这是一连串的停止位(即"1",就是持续的高电平),至少55位(对应45ms)。

  (3)信息类型:占一个字节,其值取决于应用情况,多见为"04h"。

  (4)信息长度 :占一个字节。是"信息"的字节长度。其值为3--255。

  (5)信息内容:是真正的内容所在(如电话号码等)。此字段完整的内容格式由"示意层(即presentation layer)"给出(1.3节讨论)。其内容长短随国家地区的不同而不同,且具体的内容格式大都比完整的内容格式少许多。

  (6)校验和:是从"信息类型"开始到"信息"结束的所有字节("校验和"本身除外)的字节和,不计溢出,占一字节,然后求补码。

1.3示意层

其完整的格式为:

参数类型 参数长度 参数字节 …… 参数类型 参数长度 参数字节

(1) 示意层的参数是可重复的 。

(2) "参数长度"取值为0~255。

(3) "参数字节"可为0,既可以没有。若有,其数制(指ASCII码等)也是可变的。

(4) 在实际应用中,可以只有"参数字节"而无"参数类型"和"参数长度"。例如,在我国的一些电信应用中。

1.4一个实例

  下面是一个实例,是从深圳电信局接受到的FSK数据( 十六进制数,其中电话号码和日期是ASCII码 )。

  1.4.1实例

  分别用手机(13662573614)和电话(3302729)拨打我公司外线电话3302732。

(1)用手机拨打

0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x04,0x13,0x31,0x32,0x32,0x37,0x31,0x35,0x33,
0x31,0x31,0x33,0x36,0x36,0x32,0x35,0x37,x033,x036,x031,x034,x017

(2)用电话拨打

0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,04,0f,0x31,0x32,0x32,0x37,0x31,0x35,0x34,
0x36,0x33,0x33,0x30,0x32,0x37,0x32,0x39,0xe7

  1.4.2数据分析

  (1)在1.4.1中,先导的28个字节"0x55",计226位(bit)的"0"和"1",即是在上述的"通道占用信号"。其位数在协议范围内。

  (2)"标志信号"在此占约144ms(用数字示波器捕获),即1200 BIT的"1"。接收时被芯片MT88E39屏蔽,无数据输出。

  (3)"0x04"是信息类型。

  (4)"0x13"是信息长度。

  (5)紧接着信息长度后的8个数据是拨打电话时的月、日、时和分的ASCII码(16进制),即12月27日15时31分。


  (6)时间后的11个数据是手机号码的ASCII码,也即是13662573614。

  (7)最后一个字节是效验和。

  (8)对1.4.2的分析同上,仅把11位的手机号改为7位电话号即可。要注意的是作为先导的"0x55"的个数比1.4.1中多一个。

  (9)很显然,在此数据格式中省略前述的"示意层"中的"参数类型"和"参数长度",仅有"参数字节"。

2 FSK

  FSK即"频移键控",它的英译为"Frequency Shift Keying"。它是在电话线上进行二进制数据(当然,也包括"Caller ID"数据信号在内)调制传输的两种常用的方法之一,是一种用不同的载
波频率表示二进制数据的"0"和"1"的调制方法。DTMF(即双音多频)是另一种方法。


  这个过程可用微处理器(如TI 公司的MSP430)及其程序来实现,也可由专门的芯片来完成(本文既是),而后者对设计者来说则显得很简单。

  美国MITEL 公司的MT88E39就是这样的芯片(当然,还有其它产品,如,台湾Holtek 公司的HT9032C/D(C为16脚DIP或SOP 封装,D为8脚DIP或SOP封装)等,但原理大同小异)。

  2.2.1 MT88E39介绍

  MT88E39为16Pin SOIC封装。5个输入脚,8个输出,1对电源脚,1个内部连接脚,具体如下:

  (1) 第1、2脚,运放的模拟输入端IN+和IN-。可差分也可作单端输入。它通常接中继模块的输出端,FSK调制信号即由此输入。

  (2) 第6、7脚,所需晶振的连接端OSC1和OSC2。当直连外部时钟时,OSC1作输入,OSC2则悬空。OSC2也是时钟输出端。

  (3) 第13脚,低功耗运行控制输入端。高电平有效。此时,运放、振荡器及内部电路不工作。

  (4) 第14脚(MODE),工作模式选择输入端()。有模式0和 模式1两种。两钟模式的不同仅在数据输出与微处理器的接口方式上。模式0使用较多。

  (5) 第10脚(DATA),串行数据输出端。在无FSK信号输入时,其为高电平。在有信号时,每字节按低位在前,高为在后送出。

  (6) 第9脚(DCLK),在不同工作方式,有不同功能。在模式0,它是串行数据输出位同步时钟,在无FSK信号输入时,其为高电平,而在有信号时,其上升沿指示数据位以稳定,可以被读取。在模式1,它作输入端,需与微处理器的读信号相连。

  (7) 第11脚(/DR),一个数据字准备好标志信号,也即是输出字同步时钟。

  (8) 第12脚(/CD),在指定的时间内,载波被检测标志。

  (9) 第15脚(IC),内部连接端。行数据输出端。

  (10) 第3脚(GS),运放增益调整端。

  (11) 第4脚(Vref),参考电压输出端(2.5V)。

  (12) 第5脚(CAP),外接0.1μF电容器接入端(另一端接地)。

  (13) 第8、16脚(Vss、Vdd),一对电源脚。详细资料请见参考文献[4]。

3.电路设计

  如图1所示。这是一个在呼叫中心上使用的收号电路,八路可同时进行。


图1. 8路FSK主叫号码接收电路(点击放大)


3.1硬件电路

  由三部分组成:FSK解码,由单片机完成的FSK数据的串-并转换及八路巡环,由双口FIFO RAM(IDT7202)完成与上位机的通信接口(ISA 总线的工控机)。

  3.1.1FSK解码

  这是一个依据MITEL公司在文献[1]中所提供的典型应用电路来设计的。C1(104)用来提供FSK正弦调制信号通道。R1、R2用于放大器的增益调整。该增益调整对整个的电路的正常工作至关重要。增益过大容易引起误接收,增益偏小,则接收不到应有的信号。增益调整主要是针对不同的内外线摸块而引起的不同的模拟信号输出的情况。

  晶振为3.58M。此时,串行数据信号"DATA"的波特率为1200。

  禁用低共耗模式(PWND=0)。

  选择工作方式0。在此方式下,位同步信号"DCLK"的波特率为2400。其上升沿出现在DATA信号位的中间。

  3.1.2单片机电路

  所有四个口(P1-P3)均工作在I/O方式。P1口作DATA信号接收用,每线对应一路FSK信号,总共八路。

  P2口作DCLK信号检测用,也有八路。

  P0口作并行数据输出用,与数据缓冲双口FIFO相接。

  仅部分使用了P3口。

  3.1.3 FIFO电路

  此部分电路功能有二,即多路号码数据缓冲和上下位机接口。此FIFO的容量为1024*9bit(其中一位是奇偶效验为,这里未用),其有分别的读写数据线(即所谓双口),可双口同时读写。无地址线,通过内部的读写指针来控制顺序读写,配有硬件读写溢出保护。

  3.3.4电路调试

  (1)FSK主叫号码识别技术的关键在于对当地的电信部门所发FSK信号协议的了解,这项工作是你在硬件平台搭建好后要做的第一件事,此事做好后,我想整个的设计工作即完成60%。我们是用美国泰克(Traxi)的数字示波器来做这项工作的。具体做法是:

  ①示波器通道1接于电路中任意一路的"DCLK"端,并作为信号源。示波器通道2接于相应的"DATA"端。
  ②扫描时间取50ms或100ms,幅值取2V/格。选择"单次捕捉"和上升沿触发方式。
  ③给相应的线路打入一个外线电话。如果电路正常,示波器上会显示出二路同步波形,通道1为同步源。
  ④将波形展开加以分析。特别注意:每字节按低位在前,高为在后送出。

  (2)应特别注意增益电阻R2的调整。由于中继(或曰外线)模块的不同,其输出的FSK模拟信号的幅值有很大差异,R2的大小必须适应这种变化。因为对MT88E39过大或过小的模拟信号输入都会使其输出的FSK数据出错。

4. 单片机程序设计

4.1程序算法

  (1)依据FSK传输协议,接收数据。

  (2)在定时器T0的中断服务程序中,定时用查询方式检测由MT88E39输出的FSK信号。当判断到"DCLK"有上升沿产生后立刻地采集"DATA"数据位信号。T0的定时时间需与MT88E39的DATA和DCLK的时序相匹配,必须保证在八路电话同时接通的情况下,在DATA的数据位的半周期(约为417us)内,能依次检测到8路DCLK信号的变化(即上升沿),而不遗漏。以180us定时中断为宜。选择单片机89C51的主频为24MHz。

  (3)在连续收到至少20个55h数据(即通道占用信号)后,程序才往下执行,否则表明此次FSK数据出错,应退出本次收号。

  (4)"04h"是FSK的标志字,在此字后的一个字节是数据长度。

  (5)在主程序中,在处理完某一路的一帧FSK数据后,才将其写入FIFO把字节数据(主叫的日期和号码)写入FIFO。

  (6)每次所写数据前要加入同步码(如"AA"),每个数据中还应加入线(或路)号(对于两路以上),用于
标识一个完整的话路数据。

  (7)循环执行。

  (8)在程序中建立以下的变量:

  ① FLAG*(*代表0~7的数字,对应0~7个FSK接收通道,下同)是位标志。记录上一次被采到的"DCLK"的状态。FLAG*=0,表示DCLK的"逻辑0";FLAG*=1,表示DCLK的"逻辑1";
  ②位标志STATE*记录是否受到"0x04"标志字,受到,则STATE*=1,否则,TSATE*=0。
  ③COUNT*记录收取某个字节时已收到的比特数。
  ④AACOUNT*记录收到的"0x55"的个数。
  ⑤CCOUNT*保存收到的信息长度值。
  ⑥BCOUNT*作为程序中通用的计数器。
  ⑦38h(还有39h~3fh)单元用于存放当前接收的字节。


图2a. 主程序流程图(点击放大)


图2b. 中断服务程序流程图(点击放大)


4.2程序流程

见图2。

5.注释

  (1)BELLCORE 即美国贝尔电信研究所。"BEL202"是该所制定的有关"CALLER ID"方面的协议文件。有关"BEL202"更详细的信息,请参考"BELLCORE Technical Manual"。

  (2)V.23是CCITT(国际电话与电报顾问委员会)于1988年制定的一个建议,是有关"公用交换电话网中使用的标准化600/1200波特调制解调器"的,详见文献[5]。

6.结束语

  此设计已在我公司生产的"CTI2000呼叫中心"设备中使用多年,效果良好。

主要参考文献

[1]《Applicaion Report SPRA462--Inplementing Caller ID on Fixed-point DSPS》((USA)Texas
Instruments Company/网址http://www.ti.com/)
[2]《Caller ID on TMS320C2xx》((USA)Texas Instruments Company)
[3]《FSK Modulation and Demodulation With the Msp430 Microcontroller》((USA)Texas
Instruments Company)
[4]《CMOS MT88E39 Calling Number Identifcation Circuit Advance information (CNIC1.1)》((USA)Mitel

深圳菱科实业公司供稿 CTI论坛编辑


分类信息: