DTMF信号收、发芯片在微机通信中的应用(DTMF信号发生器芯片MT5087和接收器芯片MT8870)

来源:互联网 发布:淘宝怎么设置优惠活动 编辑:程序博客网 时间:2024/04/29 11:58

摘要:采用DTMF信号实现远距离微机通信,具有传输距离长、数据准确以及抗干扰能力强等特点,文中介绍了DTMF信号的收、发芯片MT8870、MT5087的功能及引脚,并给出了DTMF信号发生器芯片MT5087和接收器芯片MT8870与单片机接口实现数据传输的应用电路。

    关键词:DTMF信号 远距离微机通讯 编码 解码 MT8870 MT5087

1 概述

由于双音多频DTMF信号具有抗干扰能力强、传输距离远、数据准确等特点,因而可广泛应用于通讯、遥控等领域。利用DTMF信号可实现双总线的远距离微机通讯,以完成控制或数据的传输。本文介绍采用DTMF信号发生芯片MT5087及接收芯片MT8870来实现与AT89C51单片机的硬件接口电路,该电路通过软件编程可实现远距离通讯,具有一定的应用价值。

2 DTMF信号发生器MT5087

MT5087是双音多频电话拨号器,通过该芯片可完成4×4矩阵编码。MT5087具有电源工作范围宽、输出电平可调、谐波失真小等特点。其引脚排列如图1所示。各引脚功能如下:

●VDD、VSS(1,6脚):电源端;

●C1~C4(3、4、5、9脚):内部具有下拉电阻的键盘比值向输入端;

●R1~R4(14~11脚):内部具有上拉电阻的键盘横向输入端;

●OSC1、OSC0(7,8脚):振荡器输入、输出端;

●TONE1(15脚):单音抑制输入端,为“0”时禁止单音输出;

●TONE0(16脚):双音频信号输出端,此端接内部NPN晶体管的发射极,外加接地电阻可构成射极输出器。

M5087的矩阵编码表如表1所列。

3 DTMF信号接收器MT8870

MT8870是双音多频接收芯片,可用来完成DTMF信号的接收、分离和译码;能输出由相应16和DTMF频率组合4位并行二进制码。MT8870的引脚排列如图2所示。各主要引脚功能如下:

●IN+、IN-:运放同相、反相输入端;

●FB:运放输出端;

●VREF:基准电压输出端;

●OSC1、OSC0:振荡器输入、输出端;

●EN:数据输出允许端。为“1”时允许数据输出;为“0”时禁止数据输出;

●D4~D1:16种DTMF信号所对应的4位二进制并行码数据输出端;

●DV:延迟控制输出,当一组有效的双音频信号被接收时输出“1”;否则输出“0”;

●EC0:初始控制输出端。若电路检测出可识别的单音对,则此端变成高电平,若无输入连续失真,则EC0返回低电平;

●CI:时间监控输出端。

表1同时也列出了MT8870的译码表。

表1 MT5087编码表及MT8870译码表

MT5087编码表双音频率(Hz)MT8870译码表C4C3C2C1R4R3R2R1NO.flfHD4D3D2D1十六制码LLL×HHH×1697120900011LL×LHHH×2697133600102L×LLHHH×3696147700113LLL×HH×H4770120901004LL×LHH×H5770133601015L×LLHH×H6770147701106LLL×H×HH7852120901117LL×LH×HH8852136610008L×LLH×HH9852147710019LL×L×HHH094113361010ALLL××HHH*94112091011BL×LL×HHH#94114771100C×LLLHHH×A69716331101D×LLLHH×HB77016331110F×LLLH×HHC82516331111F×LLL×HHHD941163300000

表2 P2输出编码表

No.P27P26P25P24P23P22P21P20十六进制码1000111101EH2001011103EH3010011103EH4000111011DH5001011012DH6010011013DH7000110111BH8001010112BH9010010113BH00100011127H*0001011117H#0100011147HA100011108EHB100011018DHC100010118BHD1000011187H

4 硬件接口电路

图3 所示是MT8870、MT5087与单片机进行接口以实现DTMF信号传输控制的硬件电路,在该硬件电器中,MT8870,MT5087的外转帐电路与通常的应用电路基本相同,接收电路中MT8870的10脚EN与15脚DV接在一起,当一个有效双音频信号被接收后,DV输出记电平。在脚EN为高电平时允许数据输出,同时经T1反相后以低电平送给AT89C51中断输入口INT1,以执行中断程序并接收码处理;发码电路MT5087的15脚TONE1接地是为使能双音频信号输出,TONE0为双音频输出,内接NPN晶体管的发射极,外接电阻R11可构成射极输出器并连至总线,若通讯距离较长,可考虑加一驱动级。矩阵键盘行R1、R2、R3、R4和列C1、C2、C3、C4与AT89C51的P2口连接。发码时,只有当行、列端分别有一个端为VDD/2电平时才选中一组双音频信号发出。该电路利用P2口线的内部上拉电阻与MT5087的内部上、下拉电阻配合来实现发码。

5 软件设计问题

在程序设计时,应考虑本身发码时对自身收码的屏蔽,即发码时应关掉INT1中断,发码结束后再开启中断。发送数据时P2口线的编码见表2所列。

6 结束语

应用DTMF信号进行远程数据通讯可以将通讯距离提高到几公里,但是,其数据传输速度可能会受到DTMF信号的限制,尽管如此,采用本文所给定的DTMF信号与AT89C51的接口电路在些特殊场仍具有一定的实用价值。

相关应用:

基于PIC单片机的家用电器电话遥控装置
王淑珍
(洛阳工业高等专科学校 河南 洛阳 471003)


摘 要:随着电话在家庭的普及,利用电话实现家用电器遥控是家电未来的发展方向。本文介绍了一种基于PIC单片机的家用电器电话遥控装置,该装置可以通过电话实现对家用电器控制,并能对家电的工作状况进行监控。介绍了该装置中所使用的Microchip公司PICl6F8X系列单片机的特性;该装置的工作原理及实现方法;详细描述了该系统各模块组成、原理及具体的电路及软件流程图。

关键词:电括遥控;PIC单片机;家用电器;智能控制

中图分类号:TP368.1 文献标识码:B 文章编号:1004-373X(2003)09-048-03

随着社会的发展和人们生活水平的提高,越来越多的家用电器进入了人们的生活,这些家用电器给人们的生活带来了很多的方便和享受,同时随着电话在家庭中的普及,利用电话实现家用电器遥控是家用电器未来的发展方向[1]。本文介绍一种基于单片机的电话遥控装置。利用该装置,用户可以通过任意一部双音频电话(包括手机和固定电话)遥控家中的电器。当用户要下班时,可以通过电话,提前打开空调、电饭锅,用户回到家里时,饭煮好了,房子里温度刚刚好。用户也可以通过电话随时开关、检查家里电器的使用情况等等。总之,电话通到哪里,用户就可以从哪里遥控家中的电器。

1 遥控装置的工作原理

基于PIC单片机控制家用电器电话遥控装置的工作原理是:当有电话打入时,振铃电路检测到电话振铃信号,等待系统默认的振铃次数后,启动自动摘机电路实现摘机,并送出提示音信号,用户输入预先设定的密码,控制装置通过双音多频解码电路读取输入密码,与预设在控制装置中的密码进行对比验证,如果密码错误,系统自动挂机;密码正确,则进入遥控状态。该装置通过双音多频解码电路获得用户发出的命令,并根据用户的命令执行开机、关机、定时等操作;用户还可以进行工作状态查询、密码修改操作。系统还具有定时时间的倒记时显示及手动操作等功能。当人在默认的振铃次数之前接听电话,不进入电话遥控状态,因此不影响电话的正常通话使用。

2 遥控装置的硬件组成

家用电器电话遥控装置的硬件组成如图1所示。主要由电话振铃检测电路、电话自动摘机电路、双音多频解码电路、显示电路、输出控制电路、电源电路和PIC单片机组成。

单片机是整个电话遥控系统的核心,系统所有电路都是在他的控制下工作,本装置采用的单片机是Microchip公司的PICl6F84r[2],他是RISC结构的CPU,采用精简指令集;内含1kXl4bE2PROM型程序存储器和64个8bE2PROM型数据寄存器;擦写次数可达100万次,数据保存时间大于40年;有13个可独立编程的双向I/O口,每个I/O口最大拉电流25mA,最大灌电流20mA;一个可带8位预分频器的8位定时器/计数器;具有自振式看门狗和程序保密位;PICl6F84采用CMOS工艺,功耗低,在5V/4MHz工作条件下,耗电小于2mA,可以在2.0~6.0V电压下工作。由于他内部含有64b的E2PROM型数据存储器,所以可以用于在掉电状态下保存系统密码和原工作状态。

下面具体的介绍遥控装置中的各部分电路的原理和功能。

2.1 电话振铃检测电路

振铃检测电路如图2所示。二极管VI~V4有2种作用:

(1)将不确定的线路供电正负变为固定的正负输出;

(2)将交流的振铃信号变换为脉动直流以供检测。

当没有振铃信号时,线路上的供电电压为48V(老式交换机为60V),经二极管VI~V4整流后不足以使稳压管V5导通,振铃信号输出端电压接近oV,当振铃信号到来时,线路上的90V交流振铃信号经过二极管V1~V4整流变换成为峰值90V的脉动直流电,其峰值足以击穿稳压管V5,经R1对C1充电,振铃输出端电压升高,CPU可以根据振铃信号的高低检测有无振铃。电路中稳压管V6限制振铃信号的幅度不超过CPU端口的允许电压,保护CPU。

2.2 电话自动摘机电路

自动摘机电路如图3所示。当CPU检测到系统设定的振铃次数之后,送出摘机信号,驱动三极管V7导通,电阻R2接入电路,实现摘机。当CPU检测到正确的密码,并按照用户设定要求工作后;或者检测到密码错误,CPU取消摘机信号,三极管截止,系统挂机。

2.3 双音多频解码电路

解码电路是将用户所按电话的密码信号解码后送入单片机,单片机实现对家电的控制。双音多频解码电路如图4所示。系统采用常用的双音多频解码芯片MT8870[3],该芯片外围电路简单、功耗小、抗干扰能力强。由电话线送进来的双音多频(DTMF)信号经电容隔直后送到入MT8870,由MT8870内部放大后送入两级滤波器,第一级为拨号音滤波器,滤除350Hz和440Hz的信号,防止拨号音干扰电路正确解码,然后将信号送人高频群和低频群信号滤波器,取出高频音和低频音,送入数字计数电路解调出高频音和低频音的频率,当检测到正确的高频音和低频音信号后,解调出对应按键并将解调值锁存,置STD信号为高,输入到单片机中,单片机将TOE置高并通过Q1~Q4引脚读入指令代码。收到代表拨号值的4位数值后对信号进行处理。

2.4 家用电器电源控制电路

家用电器电源控制电路如图5所示,在该遥控装置中有多路电源控制电路。

其工作原理是单片机根据遥控和设定开关输入的控制指令,控制电器的电源通断。当电源控制电路的输出管脚送出的开关控制指令为高电平,MOC3041截止,TI截止,电器被关闭;当电源控制电路送出的开关控制指令为低电平,MOC3041导通,T1导通,电器被打开。通过MOC3041内部的过零触发电路,保证T1在电压过零时导通和截止,对供电系统干扰最小。R4和C1是T1的保护电路。

3 遥控装置的控制程序

本遥控装置的控制程序的主要工作是对电话信号进行检测以及接收用户指令控制家用电器的工作。系统程序主要包括管理监控主程序和定时中断子程序。

3.1 管理监控主程序

管理监控主程序流程图如图6所示。

CPU检测振铃信号状态和按键状态,当检测到有效振铃信号后,启动计数程序,计数到设定振铃次数后,CPU送出摘机信号控制电路自动摘机并送出摘机提示音信号,提示用户输入密码。当检测到有*键按下时,也同样送出摘机提示音信号,提示用户输入密码(对*键的检测是为了方便用户在家中控制电器,用户直接操作接在线路上的电话机即可)。单片机检测MT8870送出的STD信号,当STD信号有效时,从MT8870读入指令代码并与预设密码比较,如果两者不一致,则送出警告提示音信号,用户可以重新输入密码,若连续3次密码错误,系统自动挂机,不能进行遥控设定,如果输人密码与预设密码一致,则送出确认提示音信号,用户可以输入开机、关机、定时工作等指令,也可以输入查询指令查询系统工作状态或输入更改密码指令、更改设定密码。设定或查询完成后,按#键则系统挂机,连续一定时间不输入任何指令信号,系统也会自动挂机,让出电话线路。

3.2 定时中断程序

定时中断程序完成定时工作方式下的计时和本地按键设定状态的查询和执行(流程图略)。

4 结 语

所介绍的基于PIC单片机的家用电器电话遥控装置已经投入应用,证明该装置性能稳定、工作可靠,而且不影响电话的正常使用。但不足的是,利用该装置控制家用电器,必须将电器的电源和本装置相连接,因此线路显得杂乱,并且每种电器各种功能设定都不相同,使用本系统无法具体控制器详细设定,只能控制其电源开关。解决的方法有2种:

(1)将本系统和家用电器结合起来,将本装置嵌入在家用电器的控制器中,成为家用电器的一个功能,也能够实现对电器各项设定的完全控制,但这种方式需要与家用电器的生产厂家相结合来实现,这也是将来的发展方向。

(2)所介绍的控制器不直接用于控制家用电器,而是在该控制器上设计一个无线发射和接收装置,在每一个家用电器的电源端设置一个具有无线接收和发射的控制器。主控制器将用户的命令直接发射给家用电器控制器,同时还可将家电的工作状态反馈给用户。该方案适用于
对现有的家用电器控制,笔者目前已将该装置开发成功。