离线电话自动通知系统由上位机自动通知控制软件和下位机离线电话自动通知装置构成。其中,上位机自动通知控制软件主要完成电话号码和通知信息的管理,它只是一个信息管理系统,而具体电话通知的工作是由离线电话自动通知装置独立自动完成的。
众所周知,各个部门经常有重要事情需要进行通知。开会固然好,但比较耗时;如果发信息,有时候表达得不够清楚。的方法就是打电话通知,既节省被通知人的时间,又能够把信息表达清楚,可是要工作人员一个个打电话来通知所有人也是一件麻烦事情。在这种情况下,就有必要研制一种无需人控制即能实现自动通知的电话通知系统。
目前,多数类似的通知系统都是基于CTI卡实现的。这种系统需要由计算机进行实时控制才能够实现拨打电话和播放通知语音,因此在实现通知任务时计算机需要开机,这样就不利于在下班时间或假期无人职守时进行通知。本文设计了一个主要由离线电话自动通知装置构成的电话自动通知系统,其通知过程不需要PC机实时管理。
离线电话自动通知装置主要由通知信息存储模块、语音数据存储与播放电路、电话呼叫及状态检测模块、DTMF信号检测模块、串口通信及系统控制模块等组成。其中,通知信息存储模块用来完成通知信息(包括被通知的电话号码、通知语音和提示音的存储以及本次通知状态信息)的存储,硬件上主要使用串口闪存芯片实现;语音数据存储与播放电路用来完成语音信息的D/A转换,再通过语音信号耦合电路将音频信号与电话线路进行信号耦合输出;电话呼叫及状态检测模块用来完成电话号码的拨叫和呼叫状态的检测,用于判断接听状态,其中包括DTMF信号生成与呼叫及状态检测电路(使用DTMF编解码芯片完成)、模拟摘挂机电路及摘挂机检测电路;DTMF信号检测模块用来检测电话拨通之后,播放通知语音过程中接听方是否按下确认键(使用另外一片DTMF编解码芯片完成);串口通信及系统控制模块,由串口电平转换电路和由MCS51系列MCU(AT89S52)构成的控制单元组成,用来完成通知过程的控制和数据通信。
电话通知信息主要由电话号码数据和语音信息编码数据构成。其中,电话号码数据为ASCII码,信息量不多;语音信息编码数据则使用PCM编码格式,也可以使用其他的压缩编码形式。如果使用压缩编码,单片机程序还要设计相应的解码程序,会加重单片机的执行负担,因此建议使用PCM编码格式。
针对电话系统的语音质量要求不高的特点[2],本文使用了8位的量化位数和8 kHz的采样频率,因此其数据量不大,2分钟的语音数据量为1×8000×120=960000 B,再加上电话号码信息所用的1 MB闪存,系统使用16 Mb(2 MB)的闪存就能够很好地满足电话通知的要求。这里采用SPI接口的闪存芯片W25X16 [3],由于AT89S52没有SPI接口,所以使用P1口,通过软件方式来模拟SPI口实现与W25X16的通信。
MCU将闪存W25X16中的语音数据通过P1口线读出后,以8000 Hz的频率通过P0口发送给D/A转换器DAC0832,进行语音还原输出;模拟语音经过放大器LM393AH进行电流电压转换后,送至语音信号耦合电路输入线TONE,将语音信号耦合到电话线路上,从而实现电话通知的语音播放。
上位机控制软件中主要包括:电子名片管理模块,可以完成联系人基本信息和电话号码的管理(包括增删改查等功能);名片分组管理模块;电话通知信息管理模块,具有通知语音的录制、被通知对象(即电话号码)的选取以及将数据下载到离线通知装置等功能;通知信息查询模块,可以完成通知状态的查询和补通知控制,也可以对当前或历史通知内容和状态进行查询。
电话通知信息和通知指令来自上位机控制软件.上位机在将预通知的电话号码和语音数据打成通知命令数据包后,通过串口发送给下位机,使下位机启动脱离计算机管理的离线自动通知过程。另外,上位机还可以发送获取通知状态命令包,由串口通信中断服务程序完成当前通知状态的上传任务。