引言
据调查,市场上现有的来电显示器大致可以分为两类:一类是普通来电显示器;另一类是可以和上位机连接的高端来电显示设备。在单数据消息格式下,前者只能显示主叫号码、呼叫日期、时间等主叫识别信息,由于不能显示主叫用户的姓名,给用户的使用带来诸多不便。后者除了上述功能外,还具有主叫用户姓名显示、来电弹屏、语音报号、通话录音等多种功能,但需要上位机,待机耗电,且价格昂贵,适用范围受到一定的局限。
本设计通过对原有的普通来电器加以改进,增加了液晶显示模块和语音报号芯片。在单数据消息格式下,该来电显示器不仅可以显示主叫号码、呼叫日期、时间,而且可以显示主叫用户的姓名,使被叫用户轻松地知道来电者的身份,方便用户选择接听。该来电显示器对有350个以下电话号码的用户最为实用,可以大大提高工作效率,具有很高的实用价值。
1系统硬件设计
1.1系统总体设计
本系统采用Atmel公司的增强型单片机AT89S52作为控制芯片。如图1所示,系统由4个部分组成:FSK信号解调部分、来电信息显示部分、按键部分和语音播放部分。系统结构如图1所示。
图1系统结构框图
1.2系统各组成部分具体设计
1.2.1FSK信号解调部分
采用Holtek公司生产的FSK解码[2]芯片HT9032C。HT9032C是接收物理层主叫识别信息的低功耗CMOS集成芯片。它满足Bell 202和CCITT V.23 1200 b/s FSK数据传输标准,同时能检测振铃和载波。电话线经过接口电路接到HT9032C的TIP、RING、RDET1和RDET2引脚。当有振铃信号到来时,HT9032C的RDET脚触发下降沿。在第1次和第2次振铃之间,HT9032C把逻辑“1”=(1200±12) Hz、“0”=(2 200±22) Hz,传输速率为1200 b/s的FSK信号解调成串行异步二进制数据。当检测到有效载波信号时,CDET触发下降沿。在DOUTC脚只输出主叫识别信号;而在DOUT脚输出包括信道占用信号(由一组300个连续的0和1交替组成,第1位为0,最后1位为1,在通话状态下信道占用信号不发送),标志信号(由180个<挂机状态下>或80个<通话状态下>标志位<逻辑1>组成,即持续的高电平),以及主叫识别信号的所有信号。各脚的时序波形如图2所示。在VSS=0 V, VDD=5 V,晶振为3.58 MHz,工作温度Ta=0-70 ℃时,测得tDOSC=2 ms,tSUPD≥15 ms,tDAQ=14 ms,tDCH≥8 ms。
图2HT9032C的时序图
HT9032C与AT89S52的硬件连接电路如图3所示。HT9032C的RDET引脚接AT89S52的外部中断1,当有振铃信号时,RDET脚触发外部中断1。HT9032C的CDET引脚接AT89S52的外部中断0,当检测到有效解调后的主叫识别信号时,CDET脚触发外部中断0。HT9032C的DOUTC引脚接AT89S52的串行接地引脚。当检测到振铃和有效载波信号时,便打开串口中断,接收解调的FSK信号,得到来电信息。
图3HT9032C与AT89S52的硬件连接电路
HT9032C解调出的FSK基带信号送入AT89S52的捕获中断,信号的传送速率为1200 b/s,所以AT89S52设定波特率为1200 b/s,利用串口对信号进行采集,由此得到0、1比特流。将其按10位合成字节信息,每个字节起始位是1,结束位为0,中间8位为信息[2]。最后根据主叫识别的单数据消息格式提取所需的消息字,得到来电日期与来电号码。
1.2.2来电信息显示部分
采用带汉字字库的YB12232Z液晶显示模块,用来显示主叫用户姓名、主叫号码、日期、时间等信息。判断到来电信息后,可依次取出各个信息并相应进行显示。YB12232Z与AT89S52的连接如图4所示。
1.2.3按键部分
图4YB12232Z与AT89S52的连接
由于AT89S52具有8 KB在系统可编程Flash存储器、256字节RAM和32位I/O口线,所以该系统无需增加额外的存储器和按键控制部分。AT89S52的8 KB Flash存储器除了存储系统程序外,还可以存储至少350个用户的姓名和电话号码。按键(DEL、UP、DOWN分别用于删除、查阅主叫信息。)直接与AT89S52相连,用软件实现按键消抖。
1.2.4语音播放部分
采用录放一体化的高保真单片固态语音集成电路ISD1420实现自动语音播放来电号码[3]。ISD1420内部有128 KB的E2PROM用于存放语音信息,并可分成160段,每段存储0.125 s的语音信息,总共可存储20 s的信息。语音分段的信息是由ISD1420的地址线A0~A7的值决定的。在录制过程中,将可能要播放的语音库按每个0.5 s的单位进行录制。每个汉字或数字的语音信息对应一个地址。在判断到来电号码后,依次给定A0~A7的值就能构成一句话,从而播放来电号码。
2系统软件设计
系统的软件主要实现HT9032C FSK解调信号的采集、数据处理、来电用户姓名查询、来电信息数据显示、语音报号功能。主程序流程如图5所示。
图5主程序流程
3数据记录
3.1数据分析
HT9032C解码输出比特信号为:
0001000001,0001010001,0000011001,0110011001,
0000011001,0100011001,0000011001,0110011001,
0001011001,0000011001,0100011001,0110011001,
0000111001,0110011001,0001011001,0100011001,
0001011001,0010011001,0110011001,0010011001,
0111011001,0111101111
其写成字符串为:0x04,0x14,0x30,0x38,0x33,0x30,0x31,0x30,0x33,0x34,0x30,0x31,0x33,0x38,0x33,0x34,0x31,0x34,0x32,0x33,0x32,0x37,0xEF
经过分析,此消息数据为单数据消息格式,来电显示的时间为08月30日10时34分,来电号码为013834142327,校验字为0xEF。所有数据(包括校验位)和按256的模求和为00,证明收到的数据完全正确。
3.2上电时序
设计中,为了确保FSK解码芯片正常工作,需要PDWN引脚在VDD上电和晶振振荡稳定后,才能拉低,否则会导致复位不良。如果PDWN外接RC电路,可适当加大C值,以延长PDWN下降的时间。图6为C=0.1 μF,R=81 kΩ时,VDD、PDWN和晶振X1的波形。其中,VT为输入低限门槛电压。
图6VDD、PDWN和晶振波形
结语
本文采用模块化设计方案设计了一种来电显示器。其电路简单,性能可靠,且功耗低。该产品在试用中,收到了很好的效果,大大提高了用户的工作效率。