智能电话的设计
商丘科技职业学院毕业论文(设计)
第一章 系统结构
该智能会议电话系统主要包括:基于ISD4002的语音单元、基于MT8880C的DTMF收发单元、外部存储设备单元、显示单元、键盘操作单元、输出控制单元、基于AT89S52的智能控制单元等几大部分组成。由于系统的单元电路比较多及控制单元采用的AT89S52芯片的I/O只有40个,单个这样的芯片并不能满足该系统的要求所以本系统的控制单元采用了两个芯片一片AT89S52及一片AT89C2051,这样两个芯片的I/O口加起来就有60个就能够满足使用要求了。系统的总体设计框图如图1所示。
图1 系统总体设计框图
通过系统的具体设计要求和系统的总体设计框图我们可以对系统有一个整体而全面的了解,下面对系统的各个单元电路分别进行详细的阐述和分析。 1 基于MT8880C的DTMF收发单元
本系统的一个重要的功能就是要能够实现模拟拨号及能够检测电话线上的音信号以便能够判断电话线的状态:现在是否能拨号、对方是否正在通话、对方是否摘机、对方电话是否有人接听等,这些信号都是双音多频信号。为了能够系统的了解双音多频信号,对于DTMF双音多频信号可以做一个简单的介绍。
智能电话的设计
1.1 DTMF信号的介绍
DTMF信号是双音多频信号的英文缩写,这种信号不是单一频率的信号而是由两种不同频率的信号叠加而成的。两个不同频率的信号一个取自高频群另一个取自低频群,高低频群各包括4个频率,所以由高低群频率可以组成16种不同的DTMF信号。这样的一种频率组合结构正好和电话机上的4×4矩阵键盘相对应,每一行代表一个低频,每一列代表一个高频,每按一个键就可以发送一个高频和低频的正弦信号组合。对于高频群和低频群中的各个频率信号的选择不是任意的,是经过考虑了电路中的各种干扰信号频率和信号音频率而选择的。16种不同的组合和电话机上的按键是一一对应的,详细的对应关系如表1所示。
对于DTMF信号的发送与接收也是有专门的芯片的,比较常用的一种芯片是MT8880C。该芯片具有功耗低、集成度高、可编程控制、容易和微机接口等功能和优点所以在众多的DTMF电路中普遍应用。 1.2 DTMF芯片MT8880C
首先对MT8880C芯片做一个简单的引述和介绍。MT8880是MITEL公司生产的DTMF发送与接收器,它是一种功能较强的DTMF发送与接收器可与多种单片机配接完成DTMF信号发送接收、信号音检测等功能。发送部分采用开关电容式D/A转换器,发送的DTMF信号失真小、频率精度高。接收器采用两组六阶开关电容式带通滤波器,分离出音调信号的低频群和高频群。解码器采用数字计数方式检测双音信号的频率并映射为相应的二进制码,且有多种工作模式。它的内部寄存器、控制接口和数据总线器便于实现与微处理器的直接接口和对电路进行工作模式控制,获得更多的功能和灵活性。通过微机接口可以由CP、RSO、R/W、CS、D0~D3等信号选择内部寄存器并控制电路的工作状态或工作模式[1]。MT8880C的管
商丘科技职业学院毕业论文(设计)
脚图如图2所示。
图2 MT8880C管脚图
其各脚的功能描述如下:
IN+、IN-:分别为内部放大器的同相输入端和反相输入端,即接收DTMF信号的输入端。 GS:内部放大器的输出端,外接一个负反馈电阻至IN-端。 UREF:内部参考电压输出端,该参考电压等于UDD/2。 UDD、USS:分别为电源的正、负端,供电电压为5V。 OSCl、OSC2:外接一个3.58MHz晶体,形成晶体振荡器。 TONE:双音频信号输出端。
R/W:读/写控制端,该端施以高电平时读MT8880,施以低电平时写MT8880。 RSO:用于选择内部各寄存器的控制端,该端施以高电平时选中控制寄存器或状态寄存器,施以低电平时选中发送数据寄存器或接收数据寄存器。更具体的对应关系必须根据R/W端的状态共同确定,具体的对应关系见表2所示。
IRQ:在双音频模式并且在中断模式时,当收到有效DTMF信号或准备发送DTMF信号时该端由高电平变到低电平;在呼叫处理模式且检测到有效信号音时,该端输出方波。
D0~D3:写入命令或读出状态的数据线。
MT8880C具有很强大的功能,共有6种工作模式下面介绍常用的3种模式。(1)双音频模式:在该模式下,芯片能接收并译码DTMF信号或产生并发送DTMF信号。接收信号从IN—端输入,发送信号从TONE端输出。(2)呼叫处理模式:在该模式下,芯片可以从输入信号中检测电话呼叫过程的各种信号音(回铃音、拨号音、忙音,拨号音是450Hz的连续信号,忙音为0.35秒通、0.35秒断,回铃音为1秒通、4秒断)。当信号频率落在320~510Hz范围以内时能从IRQ端输出方波,否则IRQ端为低电平。(3)中断模式:在该模式下,
智能电话的设计
若芯片同时被设置为接收或发送DTMF信号模式,那么当收到有效DTMF信号并译码后,IRQ端变为低电平;在准备发出DTMF信号时,IRQ端变为低电平。中断模式下,若芯片同时被设置为呼叫处理模式,在收到有效信号音时,IRQ端能输出对应的方波。
MT8880内部有5个寄存器:数据发送寄存器TDR、数据接收寄存器RDR、控制寄存器CRA及CRB、状态寄存器SR。芯片工作于何种功能,取决于在单片机的控制下写入控制寄存器CRA和CRB的内容,而芯片的某些状态可以根据读出状态寄存器SR的内容来判断。
当需要接收DTMF信号时,首先往控制寄存器CRA和CRB写入相应的控制字,把芯片设置为DTMF模式,通过读取状态寄存器中的D2位可以判断是否收到一个有效的DTMF信号并已译码。若已收到则读取内部“接收数据寄存器”的内容(从芯片的D0一D3脚读出)。当需要发送DTMF信号时,同样应先往控制寄存器CRA和CRB写入相应的控制字,把芯片设置为DTMF模式,通过读取状态寄存器中的D2位,可以判断是否发送完一个DTMF信号。若已发送完,则把下一个要发送的数字由D0~D3写入到内部“发送数据寄存器”。如果芯片同时又被设置为中断模式,则通过检测IRQ端状态,也能判断一个DTMF信号收到或发送完毕与否。如何选中“接收数据寄存器”或“发送数据寄存器”应根据表3的规定,给引脚RSO和R/W施以相应电平。如果要检测电话信号音(回铃音、拨号音、忙音),则应首先向控制寄存器CRA、CRB写入对应于该工作模式的控制字,然后检测IRQ端的方波信号,根据方波信号的间歇、间隔规律来判断是哪一种信号音。
控制寄存器CRA、CRB以及状态寄存器都只有4个位(比特),分别记为D0、Dl、D2、D3,要写控制寄存器或读状态寄存器,只要按照表3的规定给RSO引脚及R/W引脚施以相应电平就可以通过引脚D0~D3写入或读出。
控制寄存器和状态寄存器各个位的功能意义简述如下:(1)控制寄存器CRA。D0:把该位设置为“1”则芯片被设置成DTMF模式,允许收、发双音频信号。D1:把该位设置为“1”则芯片被设置为信号音检测模式(呼叫处理模式),当D2也设为“1”时,引脚IRQ端能输出与各种信号音对应的方波。D2:把该位设置为“1”则芯片被设置成中断模式,其具体功能见前述的3种模式介绍。D3:把该位设置为“1”,表明允许选择控制寄存器CRB,因此应在写入控制寄存器CRA后,接着写控制寄存器CRB。(2)控制寄存器CRB。D0:把该位设置为“0”时芯片工作于普通双音频模式,设置为“1”时芯片工作于突发模式,突发和暂停长度各为(51土2)ms。D2:把该位设置为“0”时允许产生双音频,否则只产生单音频。D3:行/列音选择,当D2为1(单音模式)时D3用于选择行音或列音(即音频频率的选择)。(3)状态寄存器SR。D0:发生中断时该位为“1”读取状态寄存器后自动清“0”。D1:准备发送新数据时为“1”读取状态寄存器后自动清“0”。D2:接收数据寄存器满(即收到有效数据)时为“1”读取状态寄存器后自动清“0”。D3:一定时间内检测不到DTMF信号时为“1”,检测到DTMF信号时清“0”[2]。
商丘科技职业学院毕业论文(设计)
1.3 MT8880C硬件电路
通过对MT8880C功能的整体描述可进行相关软件方面的设计,再配合硬件电路便可以完成DTMF信号的接收和发送,其硬件连接电路如图3所示。在上述电路中还包括了模拟摘机电路部分,模拟摘机电路完成拨号前的自动摘机功能,由于电话线上传来的信号的极性没有确定,圆桥可以稳定信号的极性,从正极输出端输出的永远是正极性,负极输出端输出的永远是负极性。模拟摘机电路工作与否由控理器传送到光耦第二个管脚的高低电平决定,当控理器传送过来的是低电平时,光耦合器导通使三极管导通从而使回路电流值突增,电话交换机检测到该电流,将线路电压变为十几伏的直流,模拟摘机得以实现。当摘机成功后便可以通过对MT8880C的寄存器进行操作来完成相应的双音多频收发功能。对于MT8880C的12脚输入的接口控制信号可以采用由单片机产生的方波脉冲也可以采用由3.58M的晶振产生的振荡信号经过一个104的电容耦合到12脚形成。对于后者来说由于该信号不依赖于单片机产生这样对于单片机的控制来说就比较的方便和简单,但是这样也存在着一些弊端,因为该脉冲不受单片机的控制所以对于单片机的控制来说就比较的被动了,也就是说单片机产生的对于MT8880的控制信号的时序要满足MT8880的硬件要求。
图3 MT8880C硬件连接图
2 基于ISD4002的语音电路单元
本系统的一个重要的功能就是进行自动电话通知,那就必须的要有一个能够存储语音
智能电话的设计
的芯片,以便能够将要通知的内容先录制下来然后再让系统自动的进行通知。在这个过程中就体现出了对语音芯片的功能要求,首先要能够在线录音,其次就是要能够多次的擦写以便进行录音内容的随时改变。对于这样的要求一般的语音芯片是不能够满足的,现在大多数的语音芯片多是一次性擦写的而且还需要专门的系统进行语音的录制,使用这种芯片对于本系统来说很不方便而且也是不现实的。这就需要使用一些专门的语音芯片来完成系统所需要的功能。
2.1 ISD4002语音芯片的介绍
ISD4002是美国ISD公司制造的一种新款语音芯片。与ISD其它系列语音产品不同的是,ISD4002是一种微控制器“从”设备,而“主”控制器可以是内置有SPI兼容接口的微控制器,也可以用I/O口仿真SPI通信协议。ISD4002系列工作电压为 3V,单片录放时间为2~4分钟,音质好,适用于移动电话及其它便携式电子产品中。该芯片采用CMOS技术,内含振荡器、抗混叠滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮陈列。芯片的所有操作必须由微控制器控制,操作命令可通过串行通信接口送入。ISD4004采用多电平直接模拟量存储技术,每个采样值直接存贮在片内闪烁存贮器中,因此能非常真实、自然地再现语音、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。采样频率可为4.0、5.3、6.4、8.0kHz,频率越低,录放时间越长,音质则有所下降,片内信息存于闪烁存贮器中,可在断电情况下保存100年(典型值),反复录音10万次。ISD4002的管脚图如图4所示。
图4 ISD4002管脚图
各个管脚的功能描述如下:
电源(VCCA、VCCD):为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并且分别引到外封装的不同管脚上。模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。
地线(VSSA、VSSD):芯片内部的模拟和数字电路也使用不同的地线。
同相模拟输人(ANAIN+):录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时,信号由耦合电容输入,最大幅度为峰峰值32mV,耦合电容和本端的3K电阻输
商丘科技职业学院毕业论文(设计)
人阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰峰值16mV。
反相模拟输入(ANAIN-):差分驱动时,为录音信号的反相输入端。信号通过耦合电容输入,最大幅度为峰峰值16mV。
音频输出(AUDOUT):提供音频输出,可驱动5K的负载。
片选(SS):此端为低,即向该ISD4002芯片发送指令,两条指令之间为高电平。 串行输入(MOSI):此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。
串行输出(MISO):ISD的串行输出端。ISD未选中时,本端呈高阻态。
串行时钟(SCLK):ISD的时钟输入端,由主控制器产生用于同步MOSI和MISO的数据传输。数据在SCLK上升沿锁存到ISD,在下降沿移出ISD。
中断(INT):本端为漏极开路输出。ISD在任何操作(包括快进)中检测到EOM或OVF时,本端变低并保持。中断状态在下一个SPI周期开始时清除。中断状态也可用RINT指令读取。
OVF标志用来指示ISD的录、放操作已到达存储器的末尾。EOM是只在放音中检测到内部的EOM标志时此状态位才置1。
行地址时钟(RAC):漏极开路输出。每个RAC周期表示ISD存储器的操作进行了一行ISD4002系列中的存贮器共1200行,该端可用于存储管理技术。 2.2 ISD4002语音芯片
对ISD的任何操作都是要通过控制器给其发送相应的命令来实现的,控制器要想和ISD互传数据就必须遵循ISD的通信协议。ISD采用的是的SPI通信协议。
SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作。ISD4002工作于SPI工作模式,因此对于ISD4002而言,在时钟上升沿锁存MOSI引脚的数据,在下降沿将数据送至MISO引脚。
通讯协议的具体内容如下:(1)所有串行数据传输开始于SS下降沿。(2)SS在数据传输期间必须保持低电平,在两条指令之间则保持高电平。(3)数据在时钟上升沿移入,在下降沿移出。(4)SS变低时,输入指令和地址后,ISD才能开始录放操作。(5)指令格式是5位控制码加11位地址码。(6)ISD的任何操作(含快进)如果遇到EOM(信息结束标志)或OVF(溢出)则产生一个中断,该中断状态在下一个SPI周期开始时被清除。(7)使用“读”指令使中断状态位移出ISD的MISO引脚时,控制及地址数据也应同步从MOSI端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。(8)所有操作在运行位(RUN)置“1”时开始,置“0”时结束。(9)所有指令都在SS上升沿开始执行[5]。上面是对SPI协议的整体描述,SPI的端口控制位如图5所示。SPI控制寄存器的功能描述如表3所示。由SPI控制存储器功能表可以非常清楚地了解其端口控制位的具体内容,再配合其指令表就可以完成对ISD4002的操作,以完成录放音操作。ISD4002的指令表如表4所示。但是在发送指令是需要注意的是:在发送指令时在两个指令之间SS必须保持高电平这一点
智能电话的设计
在使用中很关键。对于向ISD发送的任何信号数据都要严格的按照其通信协议来进行,协议就是不同设备之间进行通信的桥梁。
MISO
OVFEOM
P0
P1
P2
P3
P4
P5
P6
P7
P8
P9
×
MOSIC4C3C2C1C0×A9A8A7A6A5A4A3A2A1A0
图5 SPI端
口控制位图
从上面的资料中我们可以看出ISD上电后是需要等待一段时间才能给其发送命令的,下面以从00地址开始放音和录音为例分别说明两种情况的操作顺序。
从00地址开始放音的操作顺序是:1、发送POWERUP命令2、等待TPUD时间3、发送地址为00的SET PLAY命令4、发送PLAY命令。
从00地址开始录音的操作顺序是:1、发送POWERUP命令2、等待TPUD时间3、发送POWERUP命令4、等待2倍的TPUD时间5、发送地址为00的SET REC命令6、发送REC命令
[7]
。
商丘科技职业学院毕业论文(设计)
2.3 语音单元硬件电路
主控器通过I/O口和ISD进行通信,通过发送给ISD相应的命令来完成语音的录制和播放。语音的输入采用一个麦克风加一个前级放大电路组成,放大后输入到芯片的内部。输出部分采用一个专门的音频功放芯片LM386来实现语音输出的功率放大。ISD4002的硬件连接电路如图6所示。
出
图6 ISD4002的硬件连接电路
3 外部存储单元
系统要实现自动拨号进行电话通知就必须要有一个用来存储电话号码的器件,将要通知人员的电话号码事先记录起来作为电话通知的依据。考虑到使用的实用性设计中使用了一种掉电存储器,因为在实际的使用中要通知的对象一般是不会变的或者变化很小的,这样使用掉电存储器进行电话号码的存储就不会因为系统掉电而需要重新对设定的电话号码进行输入。当然,当我们想要重新更换通知人员的名单时我们也是可以通过软件很方便地进行任意的删除和增加的。设计中使用的掉电存储器是具有I2C接口的存储芯片24C32。 3.1 掉电存储器24C32介绍
该存储器有4K的存储空间,采用I2C协议和单片机之间进行数据传输。I2C总线上允许挂接多从机,采用发送不同的地址信息和严格的时序信号进行主机和从机之间的数据传输。具有I2C协议的从机其地址端都是可编程的,通过接地或接高电平来形成不同的地址,如果总线上只有一个从机一般都是将地址端全部接地,对于24C32芯片其可编程的地址端有四
智能电话的设计
位,高四位为固定的地址编号为1010,低四位中前三位为可编程地址端最低位为读写控制位,0表示写操作,1表示读操作。当要对器件进行读写操作时,要严格按照器件的读写时序图进行数据传送才能正确的读出或写入数据[11]。其管脚接线图如图7所示,器件地址位如表5所示。
图7 24C32外围接线图 器件上SDA为串行数据/地址端,SCL为串行时钟端,A0、A1、A2为器件地址输入端,器件地址就是通过它们的不同连接来形成不同的器件地址的,SP为写保护端如果SP接高电平则器件内所有内容都被写保护只能读不能写,当WP端悬空或接地时允许器件进行正常的读写操作。使用I2C协议传送数据是有协议定义的:(1)只有在总线空闲时才允许启动数据传输。(2)在数据传送过程中,当时钟线为高电平时数据线必须保持稳定状态,不允许有跳变。时钟线为高电平时,数据线上的任何电平变化都被看作是总线的起始或停止信号。时钟线维持高电平期间,数据线电平由高到低的跳变为I2C的起始信号,由低到高为停止信号。
3.2 掉电存储器24C32读写操作
数据的读写要严格按照器件的时序图进行,写操作分为两种情况:(1)字节写(2)页写,读操作分为三种情况(1)立即地址读(2)选择性读(3)连续读。
在字节写模式下主器件发送起始信号和从器件地址信息给从器件,从器件在收到后发出应答信号表明已收到信号,从器件发出应答信号后,主器件再发出24C32的字节地址,主器件在收到从器件的又一应答信号后再发送数据到被寻址单元,24C32再次应答,在收到主器件发出的停止信号后开始内部数据擦写,在24C32擦写过程中不再应答主器件的任何请求。字节写的时序图如图8所示。
商丘科技职业学院毕业论文(设计)
图8 字节写时序图
用页写操作24C32一次可以写入32个字节的数据,页写操作的启动和字节写一样,不同在于在传送了一个字节之后主器件并不产生停止信号,主器件被允许额外发送31个字节,在24C32接收到数据后会发出一个应答信号并将字节地址低位加一,高位保持不变。当24C32收到停止信号后,启动内部写周期把数据写入数据区,所有接收的数据在一个机器周期内写入器件内部。页写的时序图如图9所示。
图9 页写时序图
立即地址读很简单只需发送器件地址后便可以读数据了,立即地址读是从上次读/写操作地址后一位开始的。选择性读操作允许主器件对寄存器的任意地址进行读操作,主器件首先通过发送起始信号、器件地址和它想读的字节数据地址执行一个伪写操作,在24C32应答之后主器件重新发送起始信号和从器件地址,此时R/W位置1,从器件响应并发送应答信号,然后输出所要求的一个8位字节数据,主器件不发送应答信号但要产生一个停止信号。
连续性读操作可以以立即读或选择性读为起始,在24C32发送完一个数据后主器件发送一个应答信号告诉从器件需要更多数据,从器件在收到每个应答信号后都会发送一个8位字节数据,当主器件不发送应答信号而发送停止信号时结束。对于读操作的时序图就不再附图了,其时序和写操作的时序一样。
4 其他单元电路
上面的几个单元电路都是设计中非常重要和关键的电路单元,是设计中的难点和重点,只要将它们设计好了再配合上其他的辅助电路就能够实现本系统所要求的全部功能。下面对一些辅助电路单元也做一下简单的介绍。
4.1 显示单元
显示部分也是一个比较重要的部分,它主要用来完成操作提示的功能,为人们使用系
智能电话的设计
统提供了窗口能清晰地显示用户的每一步操作,是人机信息交流的一个重要辅助单元。设计中使用的显示屏是一个带有中文字库的黄屏单色液晶显示屏JCM12232,它能显示汉字、字母、数字以及一些符号,是一个非常好用的显示模块,用此模块来完成显示任务实用也方便。对于该模块的相关资料这里就不再多做介绍了,因为该模块和LCD1602的使用完全一样,只是1602不带中文字库而已。
4.2 键盘操作单元和主控制器单元
为了方便用户进行电话号码的增删和进行录放音等相关的操作,必须要有一个人机接口电路来传送用户向系统所输入的指令,矩阵键盘是一个非常简单而且使用的电路,几乎在所有的可操作的系统中都将会用到此电路,本次设计中使用的也是一个4×4的矩阵键盘来完成人机对话任务的,由于矩阵键盘的使用非常的普遍和简单并且此系统的设计在这一块也没有什么创新和改变,这里也就不多做介绍了。
主控制器使用的是AT89S51单片机还配有一个AT89C2051单片机。系统中的每一个单元电路都是需要微控制器进行控制才能工作的,由于单元电路比较多一个单片机其I/O口不能满足系统设计的要求,所以就又加了一个微控制器,这是硬件设计的要求。两个控制器同时工作在一个系统中虽不能像一个微控器那样操作简单而且还需要两个控制器之间进行通信增加了系统设计的难度,但是这样设计也是有好处的。两个控制器可以各自管理相应的电路单元,这样可以提高系统的执行能力减少了因单个控制器控制逻辑复杂而可能造成的死机或控制失误等情况。并且对于多主机之间的通信来说不是很复杂的只需要两个甚至一个I/O就可以通过软件的设计来完成。
商丘科技职业学院毕业论文(设计)
第二章 系统软件设计
由于系统在设计中使用了两个微控制器,一个作为主机另一个作为从机,所以系统软件的设计也是由两部分组成的。为了表述的清晰先对系统的软件设计做一个整体的分析和描述然后再将其各个部分的软件设计流程图进行介绍。其实两部分也是可以进行一起来描述的,因为我们在硬件的设计部分已经说明了,采用两个微控制器是因为单个的控制器其I/O口不够所以才采用了两个的,本来就是一个整体的,只是现在增加了两个控制器之间的通信部分。
1 整体系统软件设计
对于主机来说系统在初始化过程中首先对显示器进行初始化操作并发送相应的显示内容,用于提示用户。对于显示器的初始化,系统只是在上电初期对显示器进行初始化操作,在接下来的过程中系统将一直在进行键盘扫描。在没有键盘信息输入时系统什么都不做,只是在不停的扫描键盘查看是否有相应的功能键按下,这时候系统是最空闲的时候。系统中总共设计的功能模块有5个:录音模块、放音模块、增加号码模块、删除号码模块、一键电话通知模块。对于电话系统中的功能模块为了防止误操作系统中还设有一个确定程序,只有当按下相应的功能键后按下确定键才能够进行相应的操作。当按下了功能键后如果按下的是取消键则系统会自动的返回主页面继续进行键盘扫描。
1.1 录音模块
当按下录音键并确定后,系统首先要通过串口通信向从机发送一个事先定义好的信息码,当从机接收到这个信息码后从机对该信息码进行核对,核对正确后从机首先将录音操作设定好再给主机发送一个确定信息并且将相应的发光管点亮以提示用户现在已经可以开始录音了。在录音过程中从机还要一直检测主机是否有信息发送过来,在这个过程中只要主机给从机发送有数据,从机不管该数据的内容是什么都将会认为是停止信号而停止当前的录音操作。当停止录音后从机先将发光管熄灭指示现在的录音已经停止了另外还要给主机返回一个信息告诉主机现在录音操作已经停止了,主机接收到这个信息后也就会显示相应的信息表示现在的录音操作已经停止了,延时一段时间后系统自动就会返回原来的扫描键盘过程中。对于系统的任何一个功能处理过程,当系统处理完毕后都将会返回系统的主界面,而对先前处理过的内容系统都不会做任何的记忆。
1.2 放音模块
放音键的程序实现过程和录音键的程序实现过程基本上是一样的,不过对于放音来说因为放音不会改变系统的内容所以在系统的软件设计中对于放音操作没有设计相应的确定
智能电话的设计
程序,也就是只要按下了放音操作功能键系统就要进行放音并且直到放音结束为止,在放音过程中主机也是要时刻监视从机的放音过程的。放音指令首先由主机发出,发出后主机检测从机发送来的信息,通过从机发送过来的信息主机判断现在的放音情况,并通过显示器显示出来,当此操作处理完毕后也要返回到主界面。
1.3 增删号码模块
电话号码本也是本系统的一个主要功能,对于模拟拨号来说号码本是一个拨打电话的依据。为了能够方便的进行修改电话号码,系统中分别设立了两个功能键来分别进行增加号码和删除号码。对于增加号码和删除号码来说主要的都是对外存储器的读写操作。为了能够方便的进行读写操作和准确的将电话号码存储起来就必须要对存储器中的存储空间进行合理的划分,当要查看系统中存储的电话号码个数时能够迅速的通过读取一两个字节的内容就知道现在系统中电话号码的个数,当要进行增加号码时系统能够快速的就知道新的号码将要存放的地址等等对于这些操作都是要事先通过对存储器中的存储空间合理的分配才能够实现的。对于本次设计系统中的号码存储空间的划分主要分成了两部分:一部分用来存储系统信息,也就是系统中的电话号码个数和下一次要存储的地址,另一部分是用来真正存储电话号码信息的。对于电话号码存储信息部分本次设计也进行了精心的设计,对于每一个号码存储空间来说为了读写操作和管理的方便都将其长度固定为一个确定的值,如果输入的号码长度小于该空间则系统会在号码的结束部分放入一个结束标志信号以便于系统在读取时进行号码长度的辨别。还有就是对于每一个号码存储空间又被分为了两部分:前6个字节用来存储对方的姓名后6个字节用来存储对方的号码,对于后6个字节中存入的号码系统是将用户输入的号码进行了压缩后才存入的,这样6个字节就能够存入12位的电话号码这样将会大大的增加系统电话号码容量。对于号码空间中的对方姓名部分来说,系统默认的姓名都是某某某,因为系统没有办法通过一个简单的矩阵键盘来进行汉字的录入,即便是可以这样的录入速度也是非常的慢的而且也不方便,设计这一部分主要是为了以后对系统进行升级用的。对于存储号码来说可以再做一个和电脑能够通信的电路部分这样就能够将电话号码直接的输入到系统中,这样对于系统的应用将会十分的方便。
1.4 模拟拨号模块
模拟拨号部分也是本系统中非常关键的一个环节,首先要能够准确的对电话线上的信号音进行判断只有准确的判断出了信号音系统才能够确定下一步的操作。首先系统通过发送一个信息码给从机实现模拟摘机操作,从机检测到该信息码后进行核对和分析后进入模拟摘机操作。模拟摘机成功后主机调用信号音检测子程序,首先对电话线上的音信号进行判断,查看一下现在是否能够进行拨号,也就是查看一下电话线上面是否有拨号音。电话线上面如果有拨号音则说明电话线正常能够进行拨号操作。拨号操作也是一个比较复杂的操作,首先系统要先从外存储器中将数据读出,但是对于读出的数据是不能马上就进行拨
商丘科技职业学院毕业论文(设计)
号的,因为这部分数据在存入时是经过了压缩的,要先经过相应的算法解压后系统才能够识别,识别出来的信息包括两部分一部分是对方姓名,另一部分就是对方号码了。对于对方姓名用于显示,号码则就是要拨打的号码了。当拨完号码后系统还要调用信号音检测子程序检测电话线上面是否有回铃音或忙音,若为回铃音则表示号码拨通了等待对方接听,若为忙音则表示对方现在正忙那么就要先将该号码的地址存储起来以便进行下一步的重拨。当对方摘机后系统经过判别后就会给从机发送相应的信息码,使得事先录好的声音信息挂接到电话线上面这样对方就能够听到录音了。在播放录音的过程中主机仍然要一直的判别电话线上面的音信号,当对方挂机或者是录音播放完毕后系统自动的挂机,然后再进行下一个号码的读取和拨打直到拨打完毕为止。当拨打完了所有的电话号码后系统就会去查看是否有没有拨通的电话号码,如果有的话则再次的拨打直到把所有的没有拨通的号码再拨一遍为止。如果仍然有没有拨通的号码则系统将这些号码的地址记录下来,但是不会再次进行拨打了,等待着用户来查询。主机的软件设计流程图如图10所示。
2 从机软件设计
在整个系统中从机所负责的只是完成系统的其中一部分功能,从机和主机之间的通信主要是通过串口和事先所设计的通信信码来完成。通信信码是指在数据的传输过程中因为主机和从机之间的数据传输不只是针对一个特定的功能而是要通过通信实现对从机的所有功能的控制的,那么就必须要有一个严格的规定来进行约定,以使主从双方都能知道现在所要传送的是什么数据。设计中是通过先发送特定的信码将连接建立好后再进行具体的通信来实现的。比如现在想要进行放音操作放音单元是受从机控制的,可以先给从机发送一个具体的约定数据比如0XA0,当从机检测到此数据时就知道现在是要进行放音操作则执行相应的程序来完成操作。从机所负责的单元电路有录放音单元、输出控制单元、模拟摘机挂机单元等部分。从机的软件设计流程图如图11所示。从机在没有收到主机发送的信码时一直在检测串行口的接收数据状态,如果有数据传送过来则从机的接收器满,从机检测到后就读出该数据然后对该数据进行判断,判别出该信息是让从机进行什么操作的,然后便调用相应的子程序进行相应的操作。对于从机的任何一个操作,从机都要向主机进行报告,以使得主机能够时刻都知道从机的状态以便进行相应的控制。但是对于一些非常简单的控制来说从机是不向主机发送信息的,从机在收到这些指令后直接的进行相应的操作后就返回到原来的检测接收数据的状态。因为对于一些简单的操作主机和从机之间的数据通信内容是非常少的,出差错的可能性是非常的少的所以就没有必要再进行相应的应答操作了。当然也可以每进行一步就向主机报告一次,这样系统会更加的稳定,当然这样的话系统的软件部分也将会相应的复杂。就系统的安全性和软件的复杂性来讲在保证系统的安全性的前提下软件部分的设计也是要越简单明了越好,在控制不是非常复杂的情况下要充分的利用好硬件资源,这样系统的执行效率不仅会提高而且对系统的稳定性也是一种相应的保护。
智能电话的设计
图10 整体软件设计流程图
商丘科技职业学院毕业论文(设计)
图11 从机软件设计流程图
智能电话的设计
参考文献
[1]戴冬雪,侯俊英,赵彩风.MT8880的应用及控制方法的实现[J].佳木斯大学学报,2002,20(1):65~66
[2]易韦韦.双音多频信号发送/接收电路的结构及应用[J].电子元器件应用,2003,5
(12):23~24
[3]赵阳.MT8880的音信号检测在交换系统中的应用[J].电子工程师,2001,27(4) [4]鲁昆生,赵晓刚,孟忠江.MT8880与MCS-51系列单片机的最简单接口方法[J].无线电工程,2000,30(2):51~52
[5]张常年,王振红,李洋.ISD4004语音芯片的工作原理及在智能控制系统中的应用[J].国外电子元器件,2002,24(2):20~22
[6]冯志慧,徐利军,薛鹏涛等.一种基于单片机控制ISD4004语音芯片应用电路[J].微型计算机,2003,19(7)
[7]吴杰,张保平.ISD4002芯片在现场录放音系统中的应用[J].微处理机,2004,8(4):59~62
[8]古玉年.ISD4002系列2~4分钟单片语音录放电路及其应用[J].苏州职业大学学报,2002,2
[9]周结华,彭侠夫.基于公共电话网络实现智能家居的研究[J].现代电子技术,2009,4
[10]戴立新,王泽勇,王黎.等I2C总线接口的设计及验证[J].现代电子技术2009,2 [11]张晓健,徐菁.用单片机控制IC器件[J].电子世界2003,8:37~38
[12]金鹰,刘虎.一种具有来电显示及DTMF信号收发功能的智能控制模块设计[J].电子技术应用2008,4
[13]黎永光,金伟正.基于MT8880C的双音多频数传系统的研制[J]武汉工业学院学报2002,4
2