DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2376|回复: 1
打印 上一主题 下一主题

[待整理] 基于PSTN的家用电器远程控制系统设计

[复制链接]
跳转到指定楼层
楼主
发表于 2015-5-1 19:13:29 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
摘要   本系统以Philips公司单片机P89LPC932为主控制器,以双音多频解码电路芯片MT8870为核心,通过公众电话网实现对家用电器的远程多路智能控制;同时利用语音芯片APR9600具有的语音提示功能,使用户在使用系统的过程中达到一种人性化的效果。本文详细介绍系统中振铃检测电路、模拟摘挂机电路、双音频信号(DTMF)解码电路、语音提示电路及通道控制电路几个部分。
关键词 P89LPC932 MT8870 PSTN 电话远程控制 APR9600
1 系统工作原理
  当需要遥控家用电器时,拨打相应的座机电话号码,振铃检测电路检测铃流信号。如果有人接听电话或振铃次数少于5次,对程控电话的使用不造成影响;当振铃次数达到5次后(次数可以通过软件任意设定),单片机启动语音提示电路并发出提示音,询问是否进入家电控制模式。按“0”键否,挂机退出,按“1”键是,摘挂机电路自动摘机进入控制状态并将摘机信号输入到单片机中。单片机接收到摘机信号后,启动语音提示电路发出提示音,提示操作者输入密码 (系统支持在线修改密码)。输入的密码经DTMF接收,转换成二进制数并与事先存储在单片机中的密码比较。如果不相符,则语音提示密码错误,可再次重新输入,若三次密码错误则发提示音并自动挂机;如果密码相符,则语音提示选择控制通道(按键1、2分别表示1、2号通道)。通道选择后,按下“1”键表示开启该路电器,并有语音提示“该路电器已经开启”;按下“0”键表示关断该路电器,有提示音“该路电器已经关闭”;再按“0”键则可挂机退出。若超时则自动挂机(超时时间由软件设定)。
2 系统组成
  本系统由5部分组成,即振铃检测电路、模拟摘机电路、DTMF解码电路、通道控制电路和语音提示电路。其中振铃检测和解码均采用外部中断来实现,系统组成原理框图如图1所示。
3 系统硬件电路设计
3.1 振铃检测电路
3.1.1 原理分析
  公用电话网的传输线路为二线模拟线路,采用直流环路信号方式,能向模拟话机提供直流馈电、振铃信号、话音数据、音频数据、双音频数据等。我国规定的标准为,话机在不通话时,电话线中的直流电压是48 V。当有电话呼入时,同时还有(25±15) V、25 Hz的正弦信号加在电话线上,所以向用户振铃的铃流电压为(75±15) V、25 Hz的交流电压。振铃以5 s为周期,即1 s送,4 s断。根据振铃信号电压比较高的特点,可以先使用高压稳压二极管进行降压,然后输入至光电耦合器。经过光耦的隔离转换,从光电耦合器输出的波形是频率较高的方波信号,然后再将该方波信号转化成便于LPC932计数的低频方波信号。


图1 系统组成原理框图
3.1.2 方案设计
  采用稳压管、光电耦合器和反向器(晶体管9018),将一个周期的振铃信号转化成一个周期的方波信号,送入LPC932的INT0进行计数,其电路如图2所示。


图2 振铃检测电路
  当有振铃信号时,电话线上的铃流信号为(75±15) V、25 Hz的交流信号。其中直流电压为48 V左右,交流电压为(25±15) V、25 Hz的正弦信号。当该信号进入振铃检测电路后,首先用高压电容C1进行隔直,电阻R1起限流作用。交流信号经过R1后通过稳压管D1降压,然后输入到光电耦合器进行转换。转换后的信号经C2和R2滤波整流后,会变成标准低电平和带纹波高电平的长周期脉冲信号;但是输出的波形不好,且高电平的状态还与交换机有关,所以在后面加上了一个晶体管反向器作为整形,这样就可以得到很完整的波形了,即电话每振铃一次就产生一个周期的方波信号。将该信号输入LPC932的中断口进行计数,方便、可靠。
3.2 模拟摘机电路
3.2.1 原理分析
  在设计该电路之前,首先介绍一下电话摘机的工作原理。用户话机的摘挂机状态,是通过对直流环路上电流的通断来实现的。用户挂机空闲时,直流环路断开,馈电电流为0;反之,用户摘机后,直流环路接通,馈电电流在20 mA以上。因为程控电话交换机对电话摘机的响应,会使电话线回路电流突然变大约30 mA,所以交换机检测到回路电流变大就认为电话机已经摘机。
3.2.2 电路设计
  通过单片机控制晶体管9013的通断,进而控制继电器的通断来实现模拟摘机。其电路如图3所示。


图3 模拟摘机电路
  晶体管开关电路控制继电器的开关,继电器控制音频信号输入到解码电路进行解码。当挂机时,P1.3的电平通过CPU控制为低电平,T1截止,电路无法形成回路,没有电流(理想状态),交换机则认为电话线处于挂机状态。摘挂机信令由单片机通过使P1.3口变为高电平实现。改变晶体管T1的基极电压,使T1处于导通状态,从而吸合继电器K1,使音频信号通过K1输入到解码电路进行解码。这时电话线回路电流突然变大约30 mA,所以交换机检测到回路电流变大就认为电话机已经摘机,整个电路完成自动模拟摘机过程。
3.3 DTMF解码电路
3.3.1 原理分析
  当用户在电话机的键盘上输入密码或按下控制按钮后,这些信息均采用双音频方式通过电话线发出。DTMF解码电路的主要作用是接收从TEL0、TEL1输入的双音多频信号,并将其转换成二进制编码,然后输至单片机进行数据处理,进而实现控制功能。
  本方案采用双音多频(DTMF)解码芯片MT8870来对双音频信号进行解码,将其转化成二进制数据并输入CPU进行数据处理。
3.3.2 电路设计
  由MT8870组成的解码电路如图4所示。


图4 由MT8870组成的DTMF解码电路
  本电路采用的是MT8870双音多频解码芯片,能实现双音多频信号(DTMF)的解码。当接收DTMF信号时,模拟摘机后从TEL0、TEL1进入的双音多频信号经过耦合隔离变压器耦合入MT8870的输入脚IN-;DTMF信号经运放、拨号音滤波器、高频组及低频组分离带通滤波器送到数字算法与编码变换器进行确认,译成相应的4位二进制码,存入接收数据寄存器,需要时通过数据总线Q1~Q4输出,送入LPC932的P0口。其中输入脚IN-和增益选择端GS之间的反馈电阻可以调节运放的增益。
3.4 语音提示电路
3.4.1 原理分析
  APR9600语音录放芯片,是继美国ISD公司以后采用模拟存储技术的又一款音质好、噪音低、不怕断电、可反复录放的新型语音电路。单片电路可录放32~60 s,串行控制时可分256段以上,并行控制时最大可分8段。与ISD公司同类芯片相比,它具有价格便宜,有多种手动控制方式,分段管理方便,多段控制时电路简单,采样速度及录放音时间可调,每个单键均有开始、停止、循环多种功能等特点。
  在APR9600芯片的内部,录音时外部音频信号通过话筒输入和线路输入方式进入。话筒可采用普通的驻极体话筒。在芯片内话筒放大器中带有自动增益调节(AGC),可由外接阻容件设定响应速度和增益范围。如果信号幅度在100 mV左右即可直接进入线路输入端,音频信号由内部滤波器、采样电路处理后以模拟量方式存入专用快闪存储器Flash中。由于Flash是非易失器件,断电等因素不会使存储的语音丢失。
  放音时芯片内读逻辑电路从Flash中取出信号,经过一个低通滤波器送到功率放大器中,然后直接推动外部的喇叭放音。厂家要求外接喇叭为16 Ω,实际实验用8~16 Ω均可。一般音量下输出功率为12.2 mW(16 Ω)。
  3.4.2电路设计
  (1) 录音电路设计
  在语音提示电路的设计过程中,首先要对APR9600进行语音的录入,把系统所需要的语音信息录入到芯片中。根据需要,系统只需要8段语音提示信息,所以本电路选择APR9600的并行工作模式。APR9600芯片的并行工作模式十分简单,每段都有对应的键控制,按哪一键就录/放哪一段,可以方便地对任意一段重新录音而不影响其他段,而且可对任意一段循环放音等。每段录音的最长时间是等分的,最多可以分8段,刚好可以满足本系统的需要。其录音电路原理如图5所示。


图5 APR9600录音电路
  并行8段控制需要将芯片的MSEL1端置1(高电平)、MSEL2端置1(高电平)、M8端置1。模式置好后开始录音,置RE端为0,按住M1即听到“嘀”一声,BUSY指示灯亮即开始录音第1段,松开键时又听到“嘀”一声,BUSY指示灯熄灭即录音停止。M2~M8分别录其他7段。录音时可以不按顺序,先录任意一段均可,不满意可重新录音。每段的最长时间为7.5 s(以全片60 s录音计),录满时指示灯熄灭并响“嘀嘀”两声。当然,实际每段录音可以长短不一。置RE端为1即是放音状态,按一下M1即放音第1段,放音期间再按一下M1即停止放音,如果压住M1键不放即循环放音第1段直到松开键。M2~M8分别控制另外7段。CE键为停止键,放音期间按一下该键也能停止放音。
  (2) 放音电路设计
  在语音芯片APR9600的录音工作完成之后,接下来的任务就是把语音芯片接入系统中,通过CPU控制它的放音,根据需要适时地将提示音经过功率放大器LM324放大后反馈到电话线上,最终到达用户的话机,起到语音提示的作用。其电路原理如图6所示。


图6 APR9600的放音电路
  因为系统总共有8段提示音,而单片机LPC932并没有8个多余的I/O口,所以本单元电路使用LPC932的3个I/O口来实现语音提示功能。笔者选用3—8译码器74LS138将现有的3个I/O口扩展成8个I/O口,用来控制8段提示音的放音,即P1.4、P1.5、P1.6分别连接3—8译码器的A、B、C,根据需要选通系统所需要发出的那段提示音(控制M1~M8中的某一个为低),被选通的提示音信号从SP+和SP-发出。将该语音信号输入到LM324进行功率放大,再将放大后的语音信号输入到电桥电路,通过桥堆反馈到电话线上,并最终到达用户的话机上,从而实现语音提示的功能。
3.5 通道控制电路
3.5.1 原理分析
  电话远程控制系统对受控设备的控制,要通过单片机对继电器的闭合才能实现。在继电器驱动时,继电器控制端线圈工作电流比较大,不能直接用CPU的I/O口驱动继电器,因此,在CPU与继电器之间必须设置一个继电器驱动电路。
3.5.2 方案设计
  本方案采用晶体管9013作为开关电路来控制继电器的关闭与开启,从而实现对通道的控制,电路如图7所示。


图7 通道控制电路
  当CPU的P1.5脚输出高电平时,晶体管导通,继电器吸合,通道开启;当P1.5脚输出低电平时,晶体管截止,继电器断开,该路通道关闭。这样就实现了对通道的控制,其中二极管D1的作用是保护晶体管9013,避免被继电器吸合、关断时产生的瞬时高压击穿。
  其工作原理为: 继电器K在晶体管T导通时,上面电压为上正下负,电流方向由上向下。在T关断时,K中线圈电流突然中断,线圈会产生感应电势,其方向是力图保持电流不变,即总想保持K电流方向为由上至下。这个感应电势与电源电压迭加后加在T两端,容易使T击穿。为此加上D1,将K产生的感应电势短路掉,让电流沿顺时针方向在二极管和继电器的小回路里面流动,从而保护T和继电器本身。
4 系统软件设计
  系统包括振铃检测电路、模拟摘挂机电路、双音频信号(DTMF)解码电路、语音提示电路及通道控制电路等多个模块。这些模块都是通过中央控制器LPC932来协调控制的,这使得各个模块的联系非常紧密,它们之间是相互联系、影响的,而不是完全独立互不影响的独立模块。所以LPC932的功能引脚要合理的安排,才能使各个模块之间相互协调的工作。系统主要模块的软件设计如下:
  该系统软件主程序的内容主要包括: 对中断方式和中断优先级的设置,对LPC932的控制I/O口的初始化,各种标志的初始化,以及解码芯片MT8870的初始化,原始密码设置,密码接收存储区清零,模拟摘机之前振铃次数的初始化等。其程序流程如图8所示。


图8 主程序流程
5 结论
  本系统是将公众电话网与单片机系统有机结合的综合设计,有效地利用了现有的电信网络资源,通过单片机LPC932实现了远程控制,突破了传统的无线遥控技术。电话遥控作为一个较新的课题与常规的遥控方式相比,显示出一定的优越性,不需进行专门的布线,不占用无线电频率资源,避免了电磁污染。
参考文献
[1] 周立功,等.LPC900系列Flash单片机应用技术[M].北京:北京航空航天大学出版社,2004.
[2] 李传南,王剑刚,李宝华,等.单片机与DTMF信号收发芯片MT8870的直接接口设计[J]. 电子与自动化,1999(2):23224.
[3] Pearce G J. Telecommunication Switching[M]. New York,NY, USA: Plenum Press, 1981.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-24 03:01 , 耗时 0.099238 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表