资源描述
内蒙古工业大学本科毕业设计说明书学校代码: 10128学 号: 030901067 本科毕业设计说明书(题 目:电话语音查询与控制系统的设计与实现学生姓名: 学 院:信息工程学院系 别:通信工程专 业:电子信息工程专业班 级:通信042班指导教师: 二 八 年 六 月摘 要电话语音查询与控制系统,它既能对用户所有可访问的数据进行查询,也可以完成对大型电机(如热水器、空调、电冰箱)进行重点的温度监测和远程控制,以此优化管理,提高工作效率。本文设计了电话语音查询与控制系统,本系统是由上位机(PC机)、下位机(PIC16F54单片机)、电话语音卡、执行机构、外线(普通市话线路)和内线等组成。电话语音查询部分是由用户通过电信网拨打系统热线连接电话语音卡或者内线直接连接电话语音卡,从而检测振铃或摘机、录放音、收发DTMF码等功能,经过上位机的数据库给用户提供所查询的结果。电话语音控制系统是基于PIC16F54单片机来控制执行机构的运行。本系统还具有良好的可扩展性,比如对产生小数据量的设备进行远程监测的能力;自动远程报警的功能;还能及时提醒此时该进行哪项工作等等,因此本系统能够有效地管理监控中心某些工作的进度。关键词:电话语音卡;PIC16F54单片机;MAX232AbstractThe telephone pronunciation inquiry and the control system can not only carry on the inquiry to the data which might be enquired by the users,but it can also accomplish the key temperature monitoring and the remote control on the the large-scale electrical machinery such as the water heater, the air conditioning, and the electric refrigerator in order to optimize the management and improve work efficiency . This article has designed the telephone pronunciation inquiry and the control system,which is composed by the superior machine (pc machine), the lower position machine (the PICI6F54 monolithic integrated circuit), the telephone sound card, the implementing agency, the outwire (ordinary public opinion line) and the inside connection and so on. The telephone pronunciation inquiry is partially a kind of telephone sound card which is connected through the telecommunication network dialing system hot line by the users or the inside line directly, thereby it can detect ringing or pick, tape recorders, send and receive DTMF code, and other functions and provide the inquiry result to the users by the superior machine database. The telephone voice control system controls the implementation of the operation based on the PIC16F54 microcontroller. This system also has the good extendibility, for instance, the ability to have a remote detecting about the equipment producing the small quantity data, remote automatic alarm function, pair process carries on the long-distance monitor, automatic long-distance warning function, and also a timely reminder at this time to carry out work,etc. Therefore, the system can be effective Monitoring Centre to manage some of the progress.Key words: Telephone sound card; PIC16F54 (SCM) ;MAX232图表清单图11 电话语音查询与控制系统的组成2图21 TWI_16A十六线智能型模拟电话语音卡实物图4表21 电话拨号数字对应的高低频率组7图22 DTMF拨号系统图8图31 PCI插槽实物图10图32 PCI插槽引脚图11图33 PIC16F54引脚图12表31 PIC16F54引脚排列说明13图34 PIC16F54外部上电复位电路图14图35 PIC16F54晶振电路图15表32 晶体振荡器外部电容选择15图36 RS232 (DB9)引脚16图37 MAX232引脚图17图38 上、下位机连接图17图39 光敏二极管型光电耦合器18图310 PIC16F54与光电偶合器的连接图18图41 主程序流程图20图42 子程序路程图21引 言随着社会信息化程度的不断提高,许多企业利用基于CTI技术的电话语音系统来改善服务。电话语音系统不仅可以有效、快速地改善企业服务,提高客户的满意度,而且可以降低企业营运成本,完善营业网络和营销手段,挖掘潜在用户,增加企业的综合竞争力,是一种新型的具有市场前景的系统。由于我们只能在控制中心才能查询和控制整个系统的监测情况,所以在工作中,特别是在检修控制的设备时,常常需要几个人在相距较远的监控中心和被控制设备之间来回忙碌,当发现问题时不能尽快采取有效措施予以解决从而导致不必要的经济损失。为了避免不必要的经济损失本文将设计交互式电话语音查询和控制系统。它既能对该用户所有可访问的数据进行查询,也可以完成对一些大型机电进行重点的温度监测和远程控制,以此优化管理,提高工作效率。它还能够根据用户需求扩展出一些个性化功能:添加具有可以拨发DTMF码的用于监测的 下位机,使用DTMF码接通并转入信息到系统中,这样使其能够具有对那些产生小数据量的设备进行远程监测能力;自动远程报警的功能,系统可以能够定时远程提醒值班人员该进行哪项工作(如夜间巡视),因此,它能够有效地管理监控中心某些工作的进度。第一章 电话语音查询与控制系统概述电话语音查询与控制系统已经广泛应用于话费查询、电话银行、证券委托、自动缴费、语言信箱、自动声讯服务、民航、公共考务、铁路等部门及各种公共场所自动回答顾客提问等领域。各政府部门和企业应用语音卡应用软件,提高看办公效率,提供了全天二十四小时服务,突破了地域限制,方便了广大用户。1.1 电话语音查询与控制系统工作原理图11 电话语音查询与控制系统的组成电话语音查询和控制系统主要由上位机(PC机)、下位机、执行机构、电话语音卡、外线(普通市话线路)和内线等组成。系统结构框图如图1所示。用户可以在任何地方使用双音频电话或手机等通讯工具拨打监控中心的系统电话,振铃信号通过电话网,经语音卡接口传人上位机,系统感知振铃后接通电话,并播放提示音。当用户按下电话键盘后,电话语音卡将传送来的双音多频(DTMF)码转换为PC机能识别的计算机命令后传给上位机,上位机进行判断该命令是查询命令还是控制命令。若收到的是查询命令,则对相应的测控数据库进行查询,上位机将查询后的结果转换合成为语音信息,再经语音卡接口和电信网播放给用户收听;若收到的是控制命令,上位机通过通讯将此信息下传到下位机中,驱动相应的执行机构,然后上传控制命令的执行情况,上位机将其转换合成为语音信息播放给用户,并显示状态信息参数,将控制日志记录到数据库中,以便以后的统计和分析。如果系统检测到挂机信号或等待双音频信息的时间过长,系统将挂断电话机。1.2 Visual C+6.0语言简介 VC+是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用c+的一个开发平台。 VC+是Windows平台上的C+编程环境,学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大。Windows下编程需要了解Windows的消息机制以及回调(callback)函数的原理;MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等1、Visual C+语言从C语言发展而来,产生与1983年,经过20年的发展已经逐步走向成熟,Visual C+语言是目前最受欢迎的面向对象程序设计语言之一。研制Visual C+语言的一个首要目标是“根除” C语言中存在问题,是Visual C+语言成为一个更好的C语言。Visual C+语言的另一个重要目标是支持面向对象的程序设计,因此在Visual C+中引入了类的机制。最初的Visual C+语言被称为“带类的C语言”,1983年正式取名为Visual C+语言。Visual C+语言的标准化工作从1989年开始,于1994年制定了ANSI C+标准草案。以后又经过不断完善,成为目前的Visual C+语言。2、Visual C+语言的主要特点表现在两个方面:一是全面兼容C语言;二是支持面向对象的方法。Visual C+语言的确是一个更好的C语言。它保持了C语言的简洁、高效和接近汇编语言等特点,对C语言的类型系统进行了改革和扩充,因此C+语言比语言更安全,Visual C+语言的编译系统能检查出更多的类型错误。Visual C+最有意义的方面是支持面向对象的特征。虽然与C语言的兼容使得C+语言具有双重特点,但它在概念上是和C语言完全不同的语言。3、VC应用程序框架提供的强大功能,为开发提供了极大的方便,利用它可以很轻松地生成应用程序的框架.许多常用功能,例如文档的创建,文件的打开,保存等操作的大部分代码都由应用程序框架来完成.这些操作对于开发软件的用户而言是透明的。通过VC自带的强大的Debug调试工具,跟踪应用程序框架代码,从而得出应用程序框架操作的部分流程.具体实现是:利用Visual C+应用程序生成器生成应用程序框架代码,启动Classwizard,在各个类中加入欲跟踪的接口函数,编辑接口函数,设置断点,再启动Debug进行单步跟踪调试。第二章 TWI_16A十六线智能型模拟电话语音卡电话语音卡,即“电脑与电话语音处理卡”,是CTI(Computer Telecommunication Integration)技术的产品。电话语音卡包含有模拟电话语音处理卡和数字中继接口语音处理卡。本系统使用的是模拟电话语音卡,不管是模拟语音卡还是数字中继接口语音卡都具有相互独立的多个通道。作为公用电话网与电脑的关键借口设备,电话语音卡负责检测和执行各种电话信息。图21 TWI_16A十六线智能型模拟电话语音卡实物图2.1电话语音卡的性能特点采用PCI总线标准,具有高稳定性、高可靠性的特点:即插即用,主机资源(中断,内存)由操作系统直接分配,无需人工干预;支持双向均衡录音(即发话方和受话方可以同时录音,且大小一致);自动完成模拟线路呼出拨号全过程,并能准确识别是人或录音电话或传真机 的应答;准确的主叫号码(Caller ID)自动侦测,支持 DTMF 制式;准确的信号音检测,支持标准的或自定义的双音频信号音的检测,包括忙音、 拨号音、回铃音等。信号音的频率、占空比、周期均可以软件设置;所有通道都有独立的会议资源,无需配置额外的电话会议卡即可实现任意多方的交互式电话会议;DTMF 过滤功能。处于会议中的通道可以自动消除来话中的 DTMF 信号,从而使 DTMF 信号音不出现在会议中; 可对所有通道进行线路故障监测,所有线路都可以实现电压监测(通道处于外线、搭线、音控、录放音时,可以检测是否有电话线插入);板卡提供支持各种电话语音功能(如录音、放音、接受和发送双音频码等)的底层驱动软件。2.2电话语音卡实现的功能大部分语音卡只有能播放实现录制好的语言的功能,并且大部分用语音卡的单位对数字播报的要求多,故这部分的重点就是怎样从数据库中提取有效数据以及将这些数据合成语音数据。其中合成语音数据主要也是应用语音卡自带的API函数将单个数字组合成连串的语音数据。在本系统使用的语音卡中,将要播放的语言文件利用语音卡API函数转化为字符串,再利用一个API函数就可以将该字符串用语音通过电话播放给用户。而每个数字有对应的一个语音文件,如0,19分别对应10个语音文件。程序在提取数据库中的数据部分后,再分离出每个数字,然后根据数字的位置,用语音卡API函数将数字语音文件和数字单位语音文件组成有意义的数字语音字符串。 2.2.1检测及控制函数1、int TV_ChannelType(int);功能:查询某通道的类型参数:通道号返回:参阅CT_INTERNAL 内线通道CT_EXTERNAL 外线通道CT_EMPTY 空通道2 、int TV_OffHookDetect(int);功能:判断某一内线、搭线或者音控通道是否已挂机参数:通道号返回值为0: 表示挂机; 返回值为1: 表示摘机;返回值为2: 表示电压位于摘机和挂机之间3 、int_TV_RingDetect(int);功能:判断某一外线、搭线通道是否在振铃参数:通道号返回:0:没有振铃;0:振铃次数2.2.2电话语音卡的录、放音功能电话语音卡的录音分为提示语音录制和通话录制两部分。1、提示语音的录制:在用户拨通系统热线电话号码时,应由电脑自动播放出相应的 提示语音,以提示用户一步一步地操作。这些提示语音都应该是实现通过程序控制语音卡录制好的语言文件,即语音卡能识别的 语音文件,故要编写一个语音录制与播放程序,实现录音与放音功能时调用函数程序。2、通话录制:电话语音卡不仅录制提示语音文件,还可以录制与用户的通话,负责服务台和其它电话信号记录下来。为了方便查询操作,要求录音时要把通话的详细信息记录下来。这些信息包括:通话内容、通道号、主叫号码、通话起止时间。这些信息存放在上位机数据库中,以便于事后对证查询。3、 录放音函数(1) long TV_StartRecord(int, char far *, int);功能:某一通道开始录音 参数: 1、通道号2、录音缓冲区指针 3、录音字节数返回:上次录音时没有录完的字节(2) long TV_StopRecord(int);功能: 强制停止某一通道的录音参数: 通道号返回: 停止录音时还没有录完的字节数说明: 某一通道录音没有结束时可以用此函数强制停止录音。(3) long TV_ StartPlay(int, char far * , int)功能:某一通道开始放音参数:1.通道号 2.放音缓冲区指针 3.放音字节数 返回:上次放音时没有完成的字节数(4) long TV_ StopPlay (int) 功能: 强制停止某一通道的放音 参数: 通道号 返回: 停止放音时还没有放完的字节数 说明: 某一通道放音没有结束时可以用此函数强制停止放音2.2.3电话语音卡接受和发送双音频码的功能双音多频信号(DTMF)是由组(fb)和高频组(fa)两组频率信号构成,每个数字信号由低频组和高频组的任意一个叠加而成。双音多频信号(DTMF),电话系统中电话机与交换机之间的一种用户信令,通常用于发送被叫号码。双音多频的拨号键盘是44的矩阵,每一行代表一个低频,每一列代表一个高频。每按一个键就发送一个高频和低频的正弦信号组合,比如1相当于697和1209赫兹(Hz)。交换机可以解码这些频率组合并确定所对应的按键。根据CCITT的建议,DTMF的编译码定义如表1所示,表2-1 电话拨号数字对应的高低频率组数字键盘高频组/ Hz1209133614771633低频组/ Hz697123A770456B852789C941*0#D1、 DTMF信号的应用DTMF 信号即双音多频信号,用于电话语音系统来代替号盘脉冲信号。如图2-2 所示。主叫用户电话语音卡上位机图22 DTMF拨号系统图主叫用户摘机按键拨号后,电话号码所对应的DTMF信号通过电话线传到电话语音卡中的DTMF接受电路,电话语音卡识别被叫电话号码后,传到上位机播放提示语音。DTMF信号还用于自动控制系统,如果把DTMF的发送电路用于主控系统,接受电路用于被控系统,就可以方便地组成有线或无线通信系统,如图2所示,其通道数视需要而定,16通道以内每通道只需编一位号码即可,若需要更多通道,则可象电话号码编号一样编为两位或两位以上的号码。2、DTMF码函数(1) int TV_ DtmfAbsent(int)功能:获得某一通道检测到的某个按键按下的时间长短参数:通道号返回: 0,表示某个按键正在被按(2) int TV_ GetDTMFChar (int);功能: 获取某一通道接收到的一个DTMF码参数: 通道号 返回:接收到的 DTMF码说明:如果返回-1,则表示没有接收到DTMF码(3) int TV_ ReceiveCallingID(int, char far * ) 功能:取出主叫号 参数:1. 通道号 2.存放主叫号码的缓冲区 返回:接收的码 2.3电话语音卡的模块应用电话语音卡的模块应用包括外线、内向、搭线、声控、录放音等部分。1.外线:相当于一部电话机,对此“电话机”的操作由电脑来控制,对其进行的操作可对比对普通电话机的操作。 2.内线:一般作为坐席使用,语音卡对于内线的功能类似于交换机,这部“交换机”的操作由电脑来控制,对于内线的操作,可对比交换机的操作。 3.搭线:监听,录音。搭接在电话线路上,可以根据线上电压的变化来判断被监听方电话的摘挂机,一般据此启动录音程序,以及其他相关操作。 4.声控:监听,录音。与搭线应用相似,不同点在于它根据线上声音是否满足其门限来判断摘挂机,从而进行录音及其他操作。 5.录放音:接放音线(一头是RJ11,也就是电话口那个水晶头;一头是音源输入/输出口,也就是插耳机或迈克的口),录音模块可以接迈克录音,放音模块可以接音箱放音。第三章 电话语音查询与控制系统的硬件部分3.1电话语音卡与上位机的通信在该系统中电话语音卡是电信网与上位机(PC机)通信桥梁,它与电信网的连接是通过串口线引出接线盒(也就是37转25线),该接线盒能接16个RJ11接口,用来插水晶头。与上位机连接直接把电话语音卡的数据插槽插到PC机的PCI插槽中,所以下面主要介绍上位机的PCI插槽。3.1.1 PCI插槽简介PCI插槽是一种由英特尔(Intel)公司1991年推出的用于定义局部总线的标准。此标准允许在计算机内安装多达10个遵从PCI标准的扩展卡。最早提出的PCI总线工作在33MHz频率之下,传输带宽达到133MB/s(33MHz 32bit/s),基本上满足了当时处理器的发展需要。随着对更高性能的要求,1993年又提出了64bit的PCI总线,后来又提出把PCI 总线的频率提升到66MHz。下面图中白色的为PCI插槽。图31 PCI插槽实物图3.1.2 PCI插槽引脚图32 PCI插槽引脚图PCI信号定义说明:1.AD31:0(PCIADDRESS/DATABUS)地址与数据总线讯号,在FRAME#启动后地址才有效,在PCLK第一个CLOCK动作初始化时,FRAME#动作后,输出为地址与数据,写入周期,输入为数据,读取周期TRDY#与IRDY#会动作,高阻抗时,为数据转换周期或RESET#动2.C/BE3:0#(PCICOMMAND/BYTEENABLES)FRAME#启动后,CLOCK第一个CLOCK,周期为PCI命令,再下一个周期为允许命令,命令在FRAME#后有效,数据在RDY#与IRDY#后有效 3.DEVSEL#(PCIDEVSELSELECT)确定外部外围连结之响应讯号,高阻抗时,为停止周期或RESET#动作时 4.FRAME#(PCICYCLEFRAME)PCI总线起始讯号 5.IRDY#(INITIATORREADY)数据读取写入讯号 6.LOCK#(PCIBUSLOCK)总线锁住讯号 7.PAR(PCIBUSPARITY)地址与位传送之同位检错讯号 8.PCLK(PCICLOCK)PCI时脉讯号 9.REQ4:0#(PCIBUSREQUEST)PCI总线需求讯号 10.RESET#(RESET)系统重置讯号 11.SERR#(SYSTEMERROR)系统错误侦测讯号可产生NMI不可屏蔽中断 12.STOP#(PCIBUSSTOP)PCI总线放弃或重试数据传送之讯号 13.TRDY#(TARGETREADY)PCI总线数据读取传送讯号 3.2 PIC16F54单片机PIC16F54是一种低成本、高性能、8位、全静态和基于闪存的CMOS单片机。它采用的RISE构架仅有33条简单指令。它的性能大大高于同等价位的其他产品。PIC16F54装备的特殊功能降低了系统成本和所需功耗。上电复位(POR)和器件复位定时器(DRT)使其不再需要外部复位电路。有四种振荡器配置可供选择,包括节省功耗的LP(低功耗)振荡器和节省成本的RC振荡器。节省功耗的休眠模式、看门狗定时器和代码保护功能会增加系统的成本和功能,但会增加系统的可靠性。图33 PIC16F54引脚图 3.2.1 PIC16F54单片机的主要特性 集成CMOS静态设计方案 8位数据总线 ROM大小:2K字 内部RAM大小:80字节 工作电压:2.3V6.3V 工作频率:020MHz 上电复位 四种可选震荡器: RF-低成本RC振荡器 LP-低功耗低速晶振器 XT-标准晶振/谐振器 HF-高速晶振/谐振器 数据保存时间40年 12个I/O口引脚3.2.2 PIC16F54单片机的引脚说明表3-1 PIC16F54引脚排列说明名称功能输 入类 型输出类 型说 明RA0-RA3 RB0-RB5RA0-RA3RB0-RB5TTLCMOS双向I/O引脚RB6/ICSPCLKRB6TTLCMOS双向I/O引脚ICSPCLKST串行编程时钟RB7/ICSPDATRB7TTLCMOS双向I/O引脚ICSPDATSTCMOS串行编程I/OT0CKIT0CKISTTimer0 时钟输入。必须连到 VSS 或 VDD,不使用时可以降低电 流消耗。/ VppST低电平有效器件复位./Vpp引脚上的电压不能超过 Vpp,以避免意外进入编程模式。VPPHV编程电压输入OSC1/CLKINOSC1XTAL振荡器晶振输入CLKINST外部时钟源输入OSC2/CLKOUTOSC2XTAL振荡器晶振输出。在晶振模式连接到晶体或谐振器。CLKOUTCMOS在 RC模式,OSC2引脚可以输出CLKOUT,其频率为OSC1的 1/4。VDDVDD电源逻辑电路和 I/O 引脚的正向电源VSSVSS电源逻辑电路和 I/O 引脚的接地参考点图注: I=输入 I/O=输入/输出 CMOS=CMOS 输出O=输出 =未用 XTAL=晶体输入/输出 ST=施密特触发器输入 TTL=TTL输入 HV=高电压3.2.3 PIC16F54单片机的外围电路1、上电复位 (POR)外部上电复位电路如线图(对于VDD 缓慢上电的情况): 图34 PIC16F54外部上电复位电路图 仅当V上电速率缓慢时,才需要外部上电复位电路。当V掉电时,二极管D 帮助电容迅速放电; 当引脚由于静电放电或电超载被击穿时,阻值为100到1 k的R1 将限制电流从外部电容 C流入引脚。2、 PIC16F54单片机的晶体电路单片机是一种时序电路,必须供给脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接17、18脚。OSC1:振荡器晶振输入。OSC2:振荡器晶振输出。 在晶振模式连接到晶体或谐振器。图35 PIC16F54晶振电路图V=3.0V5.0V 表3-2晶体振荡器外部电容选择晶振频率C1C2HF20MHz5pF10pF10pF20pF10MHz10pF50pF20pF100pF4MHz10pF50pF20pF100pFXT10MHz10pF30pF10pF50pF4MHz10pF50pF20pF100pF1MHz10pF30pF20pF50pFLF1MHz3pF5pF3pF5pF455KHz10pF30pF20pF50pF32KHz10pF20pF15pF30pF3.2.4 利用RS232实现上位机与下位机的通信1、RS-232简介 RS-232标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。目前在PC机上的COM接口,9芯D型插座如下图所示图3-6。 图36 RS232 (DB9)引脚RS232 (DB9)引脚定义:1脚 :DCD ,载波检测。主要用于Modem通知计算机其处于在线状态,即Modem检测到拨号音, 处于在线状态。 2脚:RXD,此引脚用于接收外部设备送来的数据;在你使用Modem时,你会发现RXD指示灯在闪烁,说明RXD引脚上有数据 进入。 3脚:TXD,此引脚将计算机的数据发送给外部设备;在你使用Modem时,你会发现TXD指示灯在闪烁,说明计算机正在通过TXD引脚发送数据。 4脚:DTR,数据终端就绪;当此引脚高电平时,通知Modem可以进行数据传输,计算机已经准备好。 5脚:GND,信号地;此位不做过多解释。 6脚:DSR,数据设备就绪;此引脚高电平时,通知计算机Modem已经准备好,可以进行数据通讯了。 7脚:RTS,请求发送;此脚由计算机来控制,用以通知Modem马上传送数据至计算机;否则,Modem将收到的数据暂时放入缓冲区中。 8脚:CTS, 清除发送;此脚由Modem控制,用以通知计算机将欲传的数据送至Modem。 9脚:RI , Modem通知计算机有呼叫进来,是否接听呼叫由计算机决定在 TXD和RXD上:RS-232对逻辑电平的规定是很特别,规定如下:逻辑1(MARK)=315V 逻辑0(SPACE) =+3+152、 用RS-232实现上位机(PC机)与下位机(单片机)的通信由上可知RS-232是用正负电压来表示逻辑状态,单片机串行口采用正逻辑TTL电平,这样单片机和PC机的COM1或者COM2就不能直接连接。为了能够同计算机接口或终端的TTL器件连接,必须在RS-232与TTL电路之间进行电平与逻辑关系的转换。目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平转换,MC1489、SN75154芯片可实现EIA电平到TTL电平转换,而MAX232芯片可完成TTLEIA双向电平转换,MAX232系列芯片集成度高,+5V电源(内置了电压 增值电路及负电源电路),只需要外接5个容量为0.1uF1uF的小电容即可完成两路RS-232与TTL电平之间转换。MAX232引脚图如图3-8所示: 图37 MAX232引脚图 通过MAX232来完成电路连接,PC机串行口经MAX232电平转换后与PIC16F54串行口相连,电路图如图所示; 图38 上、下位机连接图3.2.5下位机的受控器在该系统中下位机是用来控制执行机构的运行,由于单片机输出的是微弱的 电信号,而执行机构是强电物,所以让下位机控制执行机构运行要得用可控硅来控制执行机构的开关。本系统使用光电耦合器来控制执行机构的运行。1、光电耦合器的概述光电耦合器是一种以光为耦合媒介传输电信号的电-光-电转换隔离器件。它由发光源和受光器两部分组成 ,彼此间用透明绝缘体隔离。在光电耦合器的输入端加电信号使发光源发光 ,光的强度取决于激励电流的大小。此光照射到受光器上后 ,因光电效应产生光电流 ,由受光器输出端输出。这样就实现了电-光-电转换。 图39光敏二极管型光电耦合器2、 下位机与光电耦合器的连接 图310 PIC16F54与光电偶合器的连接图 光电耦合器和下位机的PB4引脚连接,当PB4来一个高电平时光电耦合器的发光源导通,从而发光源发光。由于下位机输出的是5V电压,而光电耦合器的发光源最高电压为2V,所以中间加一个阻抗降低二极管收到的电压。此光照射到受光器上后 ,因光电效应产生光电流 ,由受光器输出端输出。光电耦合器的另一端接的是执行机构,执行机构可以是热水器、空调等。3.3本章小结这一章所讲的内容主要是电话语音卡与上位机的通信,PIC16F54单片机及其它两端的通信过程。首先介绍了电话语音卡与上位机(PC机)之间的通信,在电话语音系统中电话语音卡是核心部分,因为没有电话语音卡就不能实现自动应答功能,从而就实现不了电话语音系统。其次介绍了控制部分的核心器件下位机(PIC16F54单片机)以及它与上位机通信过程和它控制执行机构的过程。由于上位机的用的电压表示方式与下位机的电压表示方式不一样,从而必须使用它们之电平转换器,由于MAX232芯片能在单片机与PC机之间双向转换,所以该系统使用了MAX232电平转换器。在该系统中下位机控制执行机构的运行,而由于单片机输出的是微弱的电信号,而执行机构是强电物,所以让下位机控制执行机构运行要得用可控硅来控制执行机构的开关,又引入了光电耦合器。在本章中解决了整个系统的通信过程。第四章 系统软件部分4.1系统流程图1、主程序流程图图41主程序流程图2、子程序流程图图42 子程序路程图4.2 VC+中基于MFC的多线程应用 多线程是现代操作系统中出现的概念。随着面向对象编程思想和一些面向对象高级语言的广泛采用,编写多任务的应用程序已经是一件很普通的工具。用进程和线程的观点来研究软件的设计是当今普通采用的方法。进程和线程概念的出现,对提高软件的并行性有着重要的意义。现在的应用软件越来越注重多线程任务的处理。因此了解多线程多任务对每个程序员都是需要了解的。4.2.1多任务、多进程和多线程 当前流行的Windows操作系统,其重要特征之一是引入了多进程和多线程机制,支持多任务调度和处理,由此提供了多任务空间。所谓多任务通常包括两大类:多进程和多线程。进程是指在系统中正在运行的预告应用程序;线程是进程之内独立执行的一个单元,是系统分配处理器时间资源的基本单元。一个进程至少包括一个线程,通常将该线程称为主线程。一个进程从主线程的执行开始进而创建一个户多个附加线程,通常将该线程称为主线程。一个进程从主线程的执行开始进而创建一个或多个附加线程,每个线程完成一个特定的任务,多个线程并行地运行在同一个进程中,最终完成多个任务。这就是所谓基于多线程的多任务。 1、MFC多线程分类在 MFC中 ,线程分为两种:用户接口线程(User Interface Thread)和工作者线程( WorkerThread) 。前者常用来独立地处理用户输入和响应用户事件。后者常用于任务处理不要求用户输入的后台任务 ,执行这些后台任务并不会耽搁用户对应用程序的使用 ,即用户操作无需等待后台任务的完成。用户接口线程常用于接收用户的输入 ,处理相应的事件和消息。2、多线程的优先级在 Windows95 和 WindowsNT操作系统中 ,任务是有优先级的 ,共有 32 级 ,从 0 到 31 ,系统按照不同的优先级调度线程的运行。其中 ,015 级是普通优先级 ,线程的优先级可以动态变化。高优先级线程优先运行 ,只有高优先级线程不运行时 ,才调度低优先级线程运行 ,优先级相同的线程按照时间片轮流运行。1630 级是实时优先级 ,实时优先级与普通优先级的最大区别在于 ,相同优先级进程的运行不按照时间片轮转 ,而是先运行的线程就先控制 CPU ,如果它不主动放弃控制 ,同级或低优先级的线程就无法运行。4.2.2 多线程同步在有若干个线程并行运行的环境里 ,线程之间经常要同时访问一些共享资源 ,不同线程之间的同步是至关重要的。目前流行的 Windows操作系统 ,提供了几种同步对象 ,包括临界区、互斥量、信号量和事件等。这些同步对象能够让各个线程协调工作 ,实现同步 ,使程序运行起来更安全。下面简要介绍这几个同步对象。1、临界区临界区是保证在某一个时间只有一个线程可以访问数据的方法。使用它的过程中 ,需要给各个线程提供一个共享的临界区对象 ,无论哪个线程占有临界区对象 ,都可以访问受到保护的数据 ,这时候其它的线程需要等待 ,直到该线程释放临界区对象为止 ,临界区被释放后 ,另外的线程可以强占这个临界区 ,以便访问共享的数据。注意 ,临界区只可由单个进程的线程使用。2 、互斥量互斥量与临界区很相似 ,但是使用时相对复杂一些 ,它不仅可以在同一应用程序的线程间实现同步 ,还可以在不同的进程间实现同步 ,从而实现资源的安全共享。互斥量允许在任意时刻有且仅有一个线程或进程访问某资源。互斥量必须处于两种状态之一:有信号的和无信号的。当互斥量处于有信号状态时 ,第一个等待该互斥量的线程将被唤醒 ,并重新将该互斥量置为无信号状态 ,以免多个线程被同时唤醒。在多个线程同时等待同一个互斥量对象的情况下 ,当互斥量处于有信号状态时 ,总是优先级最高的那个线程先被唤醒 ,优先级低的线程被迫继续等待。3、信号量信号量对象允许多个线程访问某个共享资源 ,采用一计数器来实现信号量。每当有一个或多个资源变成可用的 ,可用的资源计数就减 1。信号量能自动地进行测试和设置操作。当从一个信号量请求资源时 ,操作系统负责检查该资源是否可用 ,如果可用 ,就将其计数器减 1 ,并允许线程访问该资源。当计数为 0 时 ,任何试图从该信号量请求资源的线程都被迫等待 ,等待计数重新变成大于 0 ,这时线程才被允许访问信号量对象控制的资源。信号量与互斥量或临界区是有区别的 ,通过信号量 ,可以同时有若干线程得到由一个信号量对象控制的资源的访问权 ,而互斥量或临界区在任意时刻只能有一个线程访问所控制资源。4、事件事件同步对象与前面的同步对象有很大的不同。互斥量和信号量通常用来控制对数据或资源的访问 ,而事件是用来发信号以通知其他的线程某一操作已经开始或完成。有两种不同类型的事件对象:人工重置事件和自动重置事件。人工重置事件用于一次向多个线程同时发信号以表示某一操作已经开始或完成 ,而自动重置事件用于向单个线程表明某一操作已开始或完成。4.3 ORACLE数据库简介Oracle 是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器(CLIENT/SERVER)体系结构的数据库之一。4.3.1 ORACLE数据库特点1、Oracle 7.X以来引入了共享SQL和多线索服务器体系结构。这减少了Oracle的资源占用,并增强了Oracle的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。2、提供了基于角色(ROLE)分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。3、支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。4、提供了与第三代高级语言的接口软件,能在C,C+等主语言中嵌入SQL语句,对数据库中的数据进行操纵。4.3.2 ORACLE数据库的基本指令SQL语言是一种标准的语言,数据库基本功能是增、删、改、查。下面介绍Oracle数据库基本指令: CREATE:使用该语句可以创建一个数据库对象;INSERT:使用该语句可以在表中插入数据;SELECT:使用该语句可以从数据库中检查信息;DELET、TRUNCATE、DROP:使用这些语句可以删除数据库对象;UPDATE:使用该语句可以更新数据库对象。 下面举简单的例子说明这些语句的使用方法: CREATE TABLE tbl_1(name varchar(12),age number(3););INSERT into values(Zhangsan , 20); INSERT into values (Lisi , 22); (1)SELECT name ,age from tbl_1; name age -Zhangsan 20 Lisi 22(2)SELECT name ,age from tbl_1; where age=20 ; name age-Zhangsan 20(3) SELECT age from tbl_1;age- 20 22 (4) SELECT *from tbl_1; name age-Zhangsan 20 Lisi 22DELET from tbl_1;TRUNCATE from tbl_1;DROP TABLE tbl_1; commit ; SELECT name age+2 from tbl_1; name age+2 - Zhangsan 22 Lisi 24结 论 本文将电话技术、计算机网络技术和语音技术结合起来,构建了一个自动语音服务系统。它是一个综合性的提供自动语音服务的人机对话系统,将分散的信息资源整合起来,并通过一个统一的号码向社会提供服务。用户可以通过普通的固定电话或手机等移动设备拨打特服号码,系统会自动接受产生应答,具有方便、快捷、高效等诸多有点。 本系统的设计采用Visual C+可视化面向对象程序设计语言进行软件的程序设计完成电话语音系统判断和查询功能。 根据本系统的特点,我们可以进一步扩展出一些功能:添加具有可以拨发DTMF码用于监测下位机,使用DTMF码接通并转入信息到系统中,这样使其能够具有对那些产生小数据量的设备进行远程监测的能力;当上位机处理到偏离要求的参数时,通过语音卡向电信网拨发系统管理员的电话或手机号码,从而形成自动远程警报的功能;系统能够定时远程提醒值班人员此时该进行哪项工作,因此它能够有效地管理监控中心某些工作进度。本文在设计时由于时间仓促,并且由于设计者能力有限,难免有一些漏洞,希望各位老师指出错误,我将虚心地接受并加以改进。参考文献1 Laboratory for Natural Language Engineering, Department of Computer Science, University of Durham Science Site, Stockton Road, DH1 3LE Durham, UK Received: 14 May 1996 Accepted: 20 May 1997. 2 Bearer-Independent Call Control . BT Technology Journal. Springer Netherlands. ISSN 1358-3948 (Print) 1573-1995 (Online). Volume 19, Number 2 / 20013 Level Translators MAX Series Introduction. 2000 .Maxim Integrated Products.4 王有绪,许杰,李拉成.PIC系列单片机接口技术应用系统设计M. 北京航空航天大学出版社 . 20015 刘瑞新 . Visual C+面向对象程序设计教程M. 机械工业出版社.2002.6 丁锦滔.PIC单片机速成教程 M. 电子制作杂志社 . 2000.7 郑莉,董渊,张瑞丰 . C+语言程序设计M. 清华大学出版社M.2003. 8 裴旻. 一种电话语音查询与控制系统的设计与实现.学位论文.2002 .38-41.9 http:/ 10 刘文海.Oracle 9i 简明教程刘文海M. 上海交通大学出版社M. 2003.11 高龙.电话语音卡 1K . 2008-06.12 杨建平.CTI技术及其应用.微型机与应用,200,19(18):4-7.13 李强,贾云霞. Visual C+6.0编程实践M。北京:中国水利水电出版社.2004附 录主程序清单#include#include”date1.h”#include “PlayV(str)”class CSystem public: bool RingDetect() bool OffHook()void PlayV(string str);Date TimeCount();bool isHangUp();bool isTimeOver(Date d1,Dat
展开阅读全文