应答信号) (3)振铃。
表1 电话拨号数字对应的高低频率组
1.2 电话信铃的检测与识别
从上一节我们可以知道电话局向用户传送的多种信号,这一节我们来看一下如何
检测和识别这些信号。首先,来看一下这些信号的各自含义。
·振铃:铃流用来呼叫被叫用户。 ·拨号音:用来通知主叫用户可以拨号。 ·回铃音:表示被叫用户处于被振铃状态。 ·忙音:表示本次接续遇到机线忙或被叫用户忙。 ·阻塞音:呼叫必须的电话暂时无法使用,机线拥塞。
电话网信号识别的原理是利用CPU的中断和定时功能,检测输入信号的周期和一定时间内采集到的信号数量。由检测到的周期可计算出信号的频率,由定时窗口内采集到的信号脉冲数量可以算出信号的占空比。有了频率和占空比两个参数,就可以推断出信号的类型。
对于拨号音、阻塞音和振铃的情况,只需检测出信号的频率和占空比,就可以推算出它是振铃信号、拨号信号还是阻塞信号。对于拨号后的情况,要识别的信号有四种,其中三种为基本信号(回铃音、忙音和无效号码音),一种为传呼台2KHz应答信号。这些信号出现的时刻和持续时间都有很大差别。尤其是出现在信号前的语音信号,使得识别工作变得复杂、困难。
拨号后的前五种是与打电话相关的情况,后三种是与拨传呼机有关的情况。以打电话为例,拨号后如果是忙音,则挂机延时后再拨,如果是回铃信号,则进一步检测对方是否摘机应答,何时摘机?
根据拨号后出现的情况所述,给出打电话时的波形图,如图1.1所示。
图1.1电话信铃波形图 2 总体设计
设计此系统必须具有以下单元功能模块: (1)铃音检测、计数; (2)自动摘挂机; (3)密码校验; (4)双音频信号解码; (5)控制电器开关; 2.1系统总体设计框图
电话线
图2.1 系统总体设计框图
ERPROM 振铃检测与模拟摘/挂机电路 AT89C51单片机 集中控制器 DTMF解码电路 语音录放电路 语音控制电路 当需要遥控家用电器时,拨打相应的电话号码,振铃检测电路检测铃流信号,如果有人接听电话或振铃次数少于6次,对程控电话的使用不造成影响,当振铃次数达到6
次后(次数可以通过软件任意设定),单片机启动语音提示电路发出提示音,询问是否进入家电控制模式,按“0”键否,挂机退出,按“1”键是,摘挂机电路自动摘机进入控制状态并将摘机信号输入到单片机中,单片机接收到摘机信号后,启动语音提示电路发出提示音,提示操作者输入密码或是退出。输入的密码经DTMF接收,转换成二进制数并与事先存储在单片机中的密码比较,如果不相符,则语音提示密码错误,可再次重新输入,若三次密码错误则发提示音并自动挂机;如果密码相符则语音提示选择控制通道(按键1~8分别表示1~8号通道,分别控制8路电器)。通道选择后,按下“1”键表示开启该路电器,并有语音提示“该路电器已经开启”,按下“0”键表示关断该路电器,有提示音“该路电器已经关闭”,按下“*”键则可挂机退出。若超时则自动挂机(时间可由软件设定)。 2.2系统整体方案论证
由于该系统其它模块都是固定的,不需要做大的变动,而唯一可以有所不同的就在于语音控制电路部分。语音控制部分设计的不同就会导致整个系统设计方案的不同。所以主要分析语音控制电路,可以使用录音芯片作为信号音反馈,提高本系统的实用性,也可以不使用录音芯片,提示音使用程序产生,保证整体电路的廉价。下面给出两种不同的方案,并对其进行分析,最终选择其中一个方案。 2.2.1两种方案分析
方案一:使用录音芯片来完成语音控制电路功能
本文使用的录音芯片是ISD1420,使用录音芯片可以使操作者能及时了解到受控
家用电器的信息,使产品达到交互式与智能化。具有多种手动控制方式、分段管理方便、多段控制时电路简单、采样速度及录放音时间可调、每个单键均有开始停止循环多种功能等特点当利用ISD1420进行录音时,外部音频信号通过话筒输入和线路输入方式进入,通过芯片内话筒放大器中自带的自动增益调节,如果信号幅度在100mV左右即可直接进入线路输入端,音频信号经内部滤波器、采样电路处理后以模拟量方式存入专用快闪存储器中。放音时芯片内读逻辑电路从闪存中取出信号,经过一个低通滤波器送到功率放大器中,然后直接推动外部的喇叭放音。
方案二:提示音使用程序产生
该方案可以减少该系统成本费用,语音提示电路受单片机的控制产生相应的提示音提示,并通过反馈电路反馈至电话外线。从而使操作者对电器的操作达到交互式,并能即时了解有关的信息。但是该方案在程序中实现会非常麻烦,增加了编程的难度和软件调试的难度。 2.2.2最终选择方案
根据以上分析,决定采用方案一来完成语音控制并形成如下总体设计方案:
(1)DTMF解码电路采用FM 9270芯片接收从TEL0、TEL1输入的双音多频信号并将其
转换成二进制编码,然后输至单片机进行数据处理,进而实现控制功能。
(2)语音提示电路采用ISD1420芯片,可以使操作者能及时了解到受控家用电器的信
息,使产品达到交互式与智能化。
(3)主控制器采用AT89C51,它是一款与MCS51完全兼容且内部自带有4KB的Flash
存储器及256KB RAM单元的芯片,因此可以不需另外扩展EEPROM及静态RAM就可以实现所需功能。
3 硬件设计
主要器件:AT89C51单片机、ISD1420、 FM9270
3.1 AT89C51单片机
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器FPEROM的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.主要特性: ·与MCS-51 兼容
·4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 ·全静态工作:0Hz-24Hz ·三级程序存储器锁定 ·128*8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道
·低功耗的闲置和掉电模式
本设计中选用AT89C51作为中央的处理模块,下面对AT89C51作简要介绍:
AT89C51是Intel公司于20世纪80年代推出MCS-51系列单片机的一种型号。下面是AT89C51单片机的基本结构和有关引脚功能:
中央处理器CPU为单片机的核心;内部数据存储器RAM,用以存放各类数据;内部程序存储器ROM,用以存放程序指令或某些常数表格;每个8位的并行I/接口(P0,P1,P2和P3)均可用做输入或者输出;两个定时器/计数器,用做外部事件计数或定时;内部中断系统具有5个中断源,其中两个外部中断源;1个串行接口电路,可用于全双工
异步收发;内部时钟电路只需外接晶振和微调电容,最高工作频率达到12MHz。
AT89C51单片机采用40引脚双列直插(DIP)封装。 串行通讯
计算机的CPU与其外部设备之间常常要进行信息的交换,一台计算机与其他的计算机之间也往往要交换信息,所有这样的信息交换均称之为“通讯”。
通讯的方式可分为:并行通讯和串行通讯。串行通讯是指数据的各位是一位一位地按顺序传送通讯方式。它的突出优点是只需要一根传输线,甚至可以利用电话线作为传输线,这样就可以大大的降低了传输成本,特别适用于远程通讯。其缺点是传送速度较低。假设并行传送N位数据所需的时间为T,那么串行传送的时间至少为NT,而实际上总是大于NT。
①串行通讯的两种基本方式
围绕着当两个设备进行串行通讯时,如何才能保证接收机接收到正确的饿字符这个问题,通常采用通讯双方都认可的两种传送方式(即通讯方式)。
a异步传送方式
在异步传送中,字符是按 格式进行传送的。每帧格式如图所示。在帧格式中,先是一个起始为“0”,然后是5-8位数据,且规定低位在前,高位在后;接下来是奇偶校验位(可略),最后一位是停止位“1”。这种传送方式利用每一贝贞的起、止信号来建立发送与接收之间的同步。其特点是:没一帧内部各位均采用固定的时间间隔,但贝贞与贝贞之间的时间间隔是随机的。接收机完全靠每一贝贞的起始位与停止位来识别字符传送是正在进行还是已经结束,或是一个新的字符。这也是“异步”的涵义所在。
b同步传送方式
同步传送方式是一种连续传送的方式,它不必想异步传送方式那样要在每个字符都要加上起、止位,而是在要传送的数据块前加上同步字符SYN,而且数据没有间隙,使用同步传送方式,可以实现高速度、大容量的数据传送。在用同步 传送方式时,为了保证接收正确无误,发送方除了传送数据外,还要将时钟信号同时传送。
②波特率
在串行通讯中,有一个重要的指标叫波特率。它定义为每秒钟传送二进制数码的位数(亦称比特数),以位/秒作为单位。波特率反映了串行通讯的速率,也反映了对传输通道的要求:波特率越高,要求传输通道的频带就越宽。
在异步通讯中,波特率为每秒钟传送的字符数和每个字符位数的乘积。注意:波特率与时钟频率不是一回事。时钟频率波特率高得多,一般有两种选取的方法:即高16倍或高64倍。须知,由于异步通讯双方各自使用自己的时钟源,若时钟频率等于波特率,则只要频率稍微有偏差就会导致接受错误。如果使用较高频率的时钟,例如在一位数据内就有16或64个时钟,则捕捉正确的信号就可以得到保证。
就串行通讯中数据的传送方向而言,有所谓单工、半双工和全双工之分。