基于公用电话网的远程控制器的设计.doc
基于公用电话网的远程控制器的设计基于公用电话网的远程控制器的设计学 生:xx,xx, 指导老师:xx ,xx班级: xxxxxxx1 1 总体设计总体设计该远程控制器由单片机构成主控部分,进行主要的信息处理,接收外部操作指令形成各种控制信号,并完成对于各种信息的记录,其中包括振铃检测、模拟摘挂机控制、忙音检测、双音频 DTMF 信号识别,及语音提示电路。本系统的原理框图如图一所示:DTMF 信号识别被控电器语音提示模拟摘挂机振铃检测 忙音检测(图一)本系统力求使用最简单的电路、最便宜的电路芯片实现了完善的功能。本系统还有许多可以添加的功能,具有很强的市场前景。本装置可并联于电话机的两端,不会影响到电话机的正常使用。用户通过其他电话机或手机拨通本装置所连接外线的电话号码,通过市局交换机向电话机发出振铃信号。本装置如果检测到振铃五次,即五次响铃后无人接,自动摘机,语音提示按键选择何种操作(如留言,提取留言,查询电器状态,控制电器等,其中后三者要求密码验证身份) ,完成操作后自动挂机。2 2 系统设计可行性分析系统设计可行性分析公用电话网2.1 总体设计分析根据电话远程智能控制系统的具体设计要求:(1) 通过电话网对异地的电器实现控制(开/关);(2) 控制器可以实现自动模拟摘挂机;(3) 控制器设置密码校验;(4) 用户在进行各种操作时均有语音提示我设计此系统必须具有以下单元功能模块:(1) 铃音检测、计数;(2) 自动摘挂机;(3) 密码校验;(4) 在线修改密码;(5) 双音频信号解码;(6) 输入信息分析;(7) 控制电器开关;(8) 电器状态查询;(9) 忙音检测;(10)语音提示;根据电话机和交换机发出的不同信号音以及电话线各种状态的不同要求,我结合实际情况对具体的单元功能模块作出软件或硬件上的不同分工,具体如下。理论上交换机所发出的各种信号音都可以通过软件编程而识别,即通过单片机发出的脉冲信号来检测信号音单位时间内的脉冲个数计算出其频率,从而完成信号音识别。但是从系统的可靠性和程序的结构设计上分析,我选择了硬件来解决振铃音检测、忙音检测、双音频信号解码、语音提示等功能模块。 自动摘挂机和电器的控制必须使用具体硬件电路来实现。振铃音计数、忙音计数、密码校验、在线修改密码、输入信息分析、电器状态查询等功能模块使用软件编程方式要比硬件电路简单的多,实现也很容易。综上所述,我设计信号音检测、自动摘挂机、控制电器、双音频解码等功能模块使用硬件电路实现。而信号音计数、密码校验、在线修改密码、信息分析、电器状态查询等功能模块使用软件编程完成。下面就硬件以及软件实现的单元电路分别进行具体分析。2.2 硬件模块本作品使用了大量的硬件电路完成部分功能模块,其目的就是充分利用硬件电路的可靠性、稳定性,使整体电路达到比较高的稳定性。2.2.1 自动摘挂机因为程控电话交换机对电话摘机的响应是电话线回路电流突然变大为约30mA 的电流,交换机检测到回路电流变大就认为电话机已经摘机。自动摘挂机电路可以通过单片机控制一个继电器的开关,继电器的控制端连接一个大约300 的电阻接入电话线两端,从而完成模拟摘挂机。2.2.2 振铃音的检测当用户被呼叫时,电话交换机发来铃流信号。振铃为 25±3 伏的正弦波,谐铃失真不大于 10%,电压有效值 90±15V。振铃以 5 秒为周期,即 1 秒送,4秒断。根据振铃信号电压比较高的特点,可以先使用高压稳压二极管进行降压,然后输入至光电耦合器。经过光耦的隔离转换,从光电耦合器输出的波形是时通时断的正弦波,经过 RC 回路进行滤波输出很标准的方波。方波信号就可以直接输出至单片机的中断计数器输入口,完成整个振铃音检测和计数的过程。2.2.3 控制电器此部分比较简单,通过单片机控制多路继电器的开关即可,常用的电路已经很成熟,在此就不累述了。2.2.4 双音频解码此部分是整个系统的关键,它的工作情况直接决定了系统的可靠性。经过翻阅大量的文献资料,我发现使用电话专用的双音频编解码芯片进行输入双音频信号的解码,是比较常用的一种方法。使用集成电路不但外围电路简单,而且可靠性强。经过专用集成电路的解码,信号转换成为不同的码制信号,可以直接被单片机读取。一般常用的电话双音频编解码集成电路有8870、8880、8888 等,经过反复论证比较,我决定使用双音频解码集成片MT8870 来完成此功能模块。2.3 软件模块经过比较,我决定使用 AT89S51 作为控制的单片机芯片,具体有关AT89S51 的介绍书籍很多很详细,不在这里累述。2.3.1 信号音计数本单元可以使用 AT89S51 的两个计数器的外部中断方式来实现对不同信号音的计数。2.3.2 密码检测本单元可以在系统初始化的时候,在单片机内部的存储器的内部开辟一块空间放置密码。当用户输入密码的时候,单片机把输入的密码写入另外的一块空间,然后利用减法运算比较两者是否相等。这样就可以实现密码检测的功能。2.3.3 信号分析处理本单元可以利用查表方式,也可以用简单的语句,稍微长一点的语句实现,例如 CASE 语句等。经过翻阅大量的技术资料,对具体要求实现的功能进行完整的系统分析,我认为我的电话遥控系统设计基本符合实际情况,可以完成设计任务所要求实现的基本功能3 3 功能模块设计功能模块设计3.1 振铃检测电路在电话线路未来铃流前,电话线路由电话交换机提供大约 48V 的直流电压。当用户被呼叫时,电话交换机发来铃流信号。振铃信号为 25±3 伏的正弦波,谐铃失真不大于 10%,电压有效值 90±15V。振铃以 5 秒为周期,即 1 秒送,4秒断。在本电路检测铃流信号时,以五次铃响为准,即五次振铃后无人摘机,便由单片机控制自动模拟摘机。图二原理说明:电话振铃信号通过电容 C1 隔直、D1 稳压二极管、R1 限流电阻输入至光电耦合器 4N25 的输入端 1 口,C1、D1 和 R1 共同组成振铃信号变换电路,它们使输入电压和电流不会太大,对后面的光电耦合器起保护作用。光电耦合器 4N25起的是隔离作用,光电耦合器是一种电信号的耦合器件,它一般是将发光二极管和光敏三极管的光路耦合在一起,输入和输出之间不可共地,输入电信号加于发光二极管上,输出信号由光敏三极管取出。光电耦合器以光电转换原理传输信息,它不仅使信息发出端(一次侧)与信息接收并输出端(二次侧)是绝缘的,从而对地电位差干扰有很强的抑制能力,而且有很强的抑制电磁干扰能力。速度高、价格低、接口简单。 振铃信号通过光耦 4N25 的 4 脚输出振铃正弦波,R2 和 C2 共同组成滤波电路,信号到了开关三极管 T1 的基极就变成了方波。经过二个反向器的整形输出到单片机 AT89C51 的 T0/P3.4 口,中断方式采用外部中断,计数 5 次产生 T0 中断,控制继电器模拟摘机,完成振铃音检测。原器件选取:1、C1 隔直电容,因为是过滤直流,滤出低频信号,而且振铃信号的电压还比较高,因此选取 1F 耐压 100V 的瓷片电容(由于条件限制,本人用两个 2F耐压 60V 的电解电容负极相连代替之);2、D1 为稳压二极管,选取 36V 的稳压二极管;3、R1 是 4N25 的限流电阻,取 33 k;4、IC1 选取光电耦合器 4N25;5、R2 和 C2 共同组成振铃信号音滤波电路,根据电话振铃的技术指标:频率25Hz 的正弦波,1 秒通,4 秒断,=RC 可以推出 0.024(S)。为了使振铃信号音输出很好的方波波形,如图 3.2 所示,计算后选取R2=10k,C2=100F,=1s;6、LED1 为振铃指示灯,黄色 5mm 发光二极管;7、反向器由 74LS04 中的二组反向器组成,起整流作用;3.2 模拟摘挂机电路设计主要思路:根据国家有关标准规定:不论任何电话机,摘机状态的直流电阻应300,有“R”键的电子电话机的摘机状态直流电阻应350。在挂机状态下,其漏电流5A。当用户摘机时,电话机通过叉簧接上约 300 的负载,使整个电话线回路流过约 30mA 的电流。交换机检测到该电流后便停止铃流发送,并将线路电压变为十几伏的直流,完成接续。根据有关技术指标,模拟摘挂机电路设计如图三所示:图三模拟摘挂机电路主要由一个三极管开关电路控制继电器的开关,继电器控制接入电话线两端的 200 电阻。摘挂机信令由单片机通过使 TXD/P3.1 口变为高电平,使三极管 P1 处于导通状态,从而开启继电器 J1,J1 使电阻 R3 接入电话线两端。因为 R3 的电阻为 200,使回路电流变大,控制电路向交换机发出模拟摘机的信号,交换机响应摘机信号,完成电话线路接通。整个电路完成自动模拟摘机过程。根据设计原理,原器件选取如下:1、 R2 是三极管限流电阻,取 2k;2、 T1 三极管是起模拟开关控制继电器的作用,取 9013;3、 J1 是继电器控制开关,取 JRC 4001F(DC5V);4、 R3 是摘机电阻,取 220;3.3 双音频解码原理简介:双音多频 DTMF 信号解码电路由 MT8870 主要承担。MT8870 内部结构图如图四所示。它的连线如图五所示, 2、3 脚接收来自电话机的双音多频脉冲信号该双音多频信号先经其内部的拨号音滤波器,滤除拨号音信号,然后经前置放大后送入双音频滤波器,将双音频信号按高,低音频信号分开,再经高,低群滤波器,幅度检测器送入输出译码电路,经过数字运算后,在其数据输出端(1114 脚)输出相对应的 8421 码。(图四)(图五)MT8870 的数据输出端 Q4 Q1 连到 AT89C51 的 P1 口的 P1.4 P1.7,CPU 经 P1口识别 4 位代码。电话按键与相应译码(Q4Q1)输出见表一。其中,A,B,C,D 4 个按键常被当作 R/P,REDIAL,HOLD,HANDSFREE 等功能使用。注意,需要特别指出的是,对于“0”号码,MT8870 输出的 8421 码并非是“0000”,而是“1010”;另外,“*”,“#”字号码,MT8870 输出的 8421码分别为“1011”和“1100”。有些技术资料会出现错误,包括比较权威的手册,所以我是在实验中,记录下测量的每一组数据后,才把这些数据应用于程序当中。为了使单片机 AT89C51 获取有效数据,MT8870 的 STD 有效端经反相后接 CPU 的/INT0 引脚。当 MT8870 获取有效双音多频信号后,STD 电平由低变高,再反相为低,CPU 检测后,指示 P1 口接收有效二进制代码。(表一)而无效的双音频信号(电话线路杂音、人们的语音信号等)是不会引起 MT8870的 STD 端变化的。DTMF 接收器的外围电路如图 3.4 所示。其中,接在电源处的电容对抗干扰有一定的作用。在实际应用中,存在这样一个问题:MT8870 的使能控制端不允许中断时,将使 MT8870 的 STD 端中断关闭。其解决办法是,将STD 端接与非门的一输入,与非门的另一输入端接一不定电平端 P。当 STD 有效(即中断开放)时,P = 1 则/INT0 中断关闭;P = 0 时则/INT0 中断允许。本单元元器件列表:1、 U2 为音频变压器;2、 C2 为隔直电容,取 1UF2、 R1 和 R2 是输入平衡电阻,取 100K,C2 隔直电容,取 0.1F;3、 芯片外部晶振选择 3.579MHz;4、 U3 是双音频解码芯片,选取 MT8870;5、 C4 选取 0.1F;6、 R3 是输出平衡电阻,选取 100K;3.4 语音提示电路原理说明:为使用户使用方便,本系统在进行各种操作时,均有语音提示。提示语音由以语音芯片 ISD4004 为核心的语音电路产生,并通过变压器耦合到电话线上。此外,ISD4004 可以存储 8 到 16 分钟语音,在存完提示语音后还有大量空间,因此可以用来存储留言。ISD4004 有如下特点:ISD4004 系列工作电压 3V,单片录放语音时间 8 至 16 分钟,音质好,适用于移动电话机及其它便携式电子产品中。芯片采用 CMOS 技术,内含振荡器、防混清滤波器、平滑滤波器、自动静噪、音频放大器及高密度多电平闪烁存贮陈列。芯片设计是基于所有操作由微控制器控制,操作命令通过串行通信接口(SPI 或 Micro wire)送入。芯片采用多电平直接模拟量存贮技术,每个采样值直接存贮在片内的闪烁存贮器中,因此能够非常真实、自然地再现语音,音乐、音调和效果声,避免了一般固体录音电路固置化和压缩造成的量化噪声和多属声。采样频率可为 4.0,5.3,6.4,8.0KHz,频率越低,录放时间越长,而音质则有所下降,片内信息存于闪烁存贮器中,可在断电情况下保存 100 年(典型值)反复录音 10 万次。其内部框图如图六:(图六)ISD4004 工作时必须有微控制器驱动,它与微控制器的接口为 SPI 模式,其指令表如表二所示。SPI 协议是一个同步串行数据传输协议,协议假定微控制器的 SPI 移位寄存器在 SCLK 的下降沿动作,因此对 TE63480 而言,在时钟上升沿锁存 MOSI 引脚数据,在下降沿将数据送至 MISO 引脚。协议具体内容如下:1、 所有串行数据传输开始于 SS 下降沿。2、 SS 在传输期间必须保持为低电平,在两条指令之间保持为高电平。3、 数据在时钟上升沿移入,在下降沿移出。4、 SS 变低,输入指令和地址后,TER 行能开始录放操作。5、 指令格式是 8 位控制码加 16 位控制码。6、 TER 的任何操作(含快进)如果遇到 WOM 或 OVF,则产生一个中断,该中断状态在一下个 SPI 周期开始时被清除。7、 使用“读”指令会使中断状态位移出 TER 的 MISO 引脚时,控制及地址数据也同步从 MOSI 端移入。因此,要注意移入的数据是否与器件当前进行的操作兼容,当然,也允许在 SPI 周期里,同进执行读状态和开始新的操作(即新移入的数据与器件当前操作可以不兼容)8、 所有操作在运行位(RUN)置 1 时开始,置 0 时结束。9、 所有指令都在 SS 端上升沿开始执行。(1)信息快近用户不必知道的确切地址,就能快进跳过一条信息。信息快进只用于放音模式。放音速度是正常的 1600 倍,遇到 EOM 后停止,然后内部地址计数器加 1,接向下条信息开始处。(2)上电顺序器件延时 TPUD(8KHz)采样时,约为 25 毫秒)后才能开始操作。因此,用户发完上电指令后,必须等待 TAUD,才能发出一条操作指令。例如:从 00 处放音,应遵循如下时序:1、发 power up 命令;2、等待 TPUD(上电延时) ;3、发地址值为 00 的 SETPLAY 命令;4、发 PLAY 命令。器件会从 00 地址开始放音,当出现 EOM 时,立即中断,停止放音。如果从 00 处录音,则按以下时序;1、发 power up 命令;2、等待 TPUD(上电延时) ;3、发 power up 命令;4、等待 2 倍 TPUD;5、发地址值为 00 的SETREC 命令;6、发 REC 命令。器件便从 00 地址开始录音,一直到出现OVF(存贮器末尾)时,录音停止。指令8 位控制码,16 位地址码操作摘要POWERUP00100xxx(xxxxxxxxxxxxxxxx)上电:等待 TPUD 后器件可以工作SET PLAY11100xxx(A15A0)从指令地址开始放音,须后跟 PLAY 指令,使放音继续PLAY 11110xxx(xxxxxxxxxxxxxxx)从当前地址开始放音(直至 EOM 或OVF)SET REC10110xxx(A15A0)从指定地址开始录音,须后跟 REC 指令,使录音继续REC110110(xxxxxxxxxxxxxxx)从当前地址开始录音(直至 OVF 或停止)SET MC11101xxx(A15A0)从指定地址开始快进,须后跟 MC 指令,使快进继续MC11111xxx(xxxxxxxxxxxxxxx)执行快进,直到 EOM,若再无信息,则进入 OVF 状态STOP0x110xxx(xxxxxxxxxxxxxxx)停止当前操作STOP PWRDN0X01Xxxx(xxxxxxxxxxxxxxx)停止当前的操作并掉电RINT0X110xxx(xxxxxxxxxxxxxxxx)读状态;OVF 和 EOM(表二)该功能模块的电路图如图七所示:4 4 系统调试系统调试因为本系统功能模块比较多,因而调试起来十分繁琐。首先是当系统与电话机并联时,电话机中出现较大杂音,听起来象电流造成的声音,经检查发现使用的稳压电源纹波较大,该用电池供电后,杂音消失。在调试振铃检测电路时,发现指示灯与电话铃声不同步,振铃过去后指示灯要延迟大约一秒钟才会灭,经分析是光耦输出侧滤波电路中的电阻太大,电容放电时间过长,将原来的 10K 改成 5.1K 后,问题解决。在调试模拟摘机电路时,开始发现单片机发出摘机信号后,继电器没有动作,无法完成模拟摘机,而在控制端直接接 5 伏高电平时却可以,原来是使用的三极管 9014 饱和导通电流太小,驱动不了继电器,改用 8050 后,便能可靠地控制继电器动作了。DTMF 双音频解码部分是本系统的难点之一,主要是 MT8870 与电话线的接口问题,因为电话线上有较高的直流电压,直接与芯片相接可能会损坏芯片,所以如何将 DTMF 信号安全可靠地送到 MT8870 的接收端成为比较麻烦的地方。而所搜集的资料上也极少介绍到,介绍到的几乎都是用整流桥将信号整流后送入 MT8870 的接收端,开始我们也这样连接,但始终不能成功。后来买到音频变压器后,放弃原来的连接方法,通过音频变压器将信号隔离耦合输入到MT8870 的接收端,终于获得了成功。在解决了 DTMF 双音频解码这个难题后,马上遇到了令一个难题,那便是语音芯片 ISD4004 的控制。它使用 3 伏供电,而受条件限制使得我们只能用电池对整个系统供电。由于 ISD4004 工作与 SPI 串行方式,在其控制中对时序要求非常严格,找到的资料包括数据手册都介绍不祥,由于本次设计时间很短,在完成理论设计后所剩的时间已不多,因此此功能模块目前仍未能完全调试成功。5 5 心得体会心得体会本次创新设计我们选的题目是一个综合性和实用性都较强的题目,也是进大学以来所做过的课程设计中最有意义的一次。一是因为贴近我们的专业课程,能将所学到的书本知识运用到实际应用中来,大大增强了自己的动手能力,对电子产品的开发设计和实际操作有了一定的掌握。同时,感觉到学习理论知识和世界运用是有很大差别的,学好了不一定就能顺利地做好,而只有动手做出来了,才能真正理解和掌握理论知识。二是因为符合我们的兴趣爱好,做自己感兴趣的事最有动力也是最能集中注意力的,一天的时间总是感觉一晃就过去了,连坐几个小时不起身也不觉得累,看着自己的设计方案一步步变成现实,的确是一件很开心的事。在实习中我们常会遇到一些自己觉得比较困惑的的问题,这时,向老师请教,大家一起讨论,互通有无,使我们从中受益非浅。虚心向别人学习,取人之长,补己之短,是一种很重要的学习方法。最后,我们要感谢我们的指导老师孙克辉老师在整个设计过程中对我们的耐心指导和严格要求,还有所有提出了宝贵意见、帮助了我的同学,在此一并致以感谢!参考文献:1,单片微机原理及应用 ,丁元杰,机械工业出版社;2,电子技术课程设计使用教程 ,陈明义,中南大学出版社;3,“DTMF 接收器在程控电话机上的应用” ,古和平,江西省科学院;4,“ISD4004 系列 816 分钟单片语音录放电路及其应用,古玉年,苏州职业大学;5,MT8870 数据手册;ISD4004 数据手册。