| 网站首页 | 下载中心 | 雁过留声 | 电子入门 | 电子制作 | 家电影音 | 卫星电视 | 电子网址 | 电子资料 | 
Google
 
您现在的位置: 电子爱好者 >> 电子制作 >> 器件电路 >> 正文 用户登录 新用户注册
[图文]MT8888双音多频发送接收器应用           ★★★ 【字体:
MT8888双音多频发送接收器应用
作者:imefan    文章来源:网络    点击数:    更新时间:2009-3-3    

  本文介绍了双音多频(DTMF)发送接收器件MT8888的主要功能、基本组成和工作原理。最后给出了MT8888与单片机80C32接口的硬件电路及软件程序。
1、基本功能
  MT8888是一种具有Intel微处理器接口的功能较强的双音多频(DTMF)发送和接收器件。可用于寻呼系统、交换机系统和移动通信、转帐卡系统、互接拨号器、数字通信和计算机等领域。其主要功能有:(1)完整的DTMF发送和接收功能;(2)高速Intel微处理器接口;(3)可工作于自动音频突发模式;(4)可调整保护时间;(5)呼叫音检测到-30dBm。
  MT8888引脚排列如图1所示。各引脚功能如下:

图1 MT8888引脚图
  IN+、IN-(1,2)—运放的同相和反相输入端;GS(3)—增益选择端。在该引脚与IN-引脚间接反馈电阻可调节运放增益;Vref(4)—基准电压输出端。通常为VDD/2,作为运放的偏置电压;VSS(5)—芯片电源负端,接地;OSC1、OSC2(6、7)—时钟或振荡器的输入、输出端。两引脚间接3.579545MHz晶体与内部电路构成芯片振荡器;若由外部电路提供时钟,则OSC2引脚开路;TONE(8)—DTMF信号输出端,也可通过编程设置为单音输出;(9)—微处理器写输入端,低电平有效,与TTL电平兼容;(10)—片选信号输入端,低电平有效。该引脚可由微处理器的地址锁存信号(ALE)直接提供;RS0(11)—寄存器选择控制输入端;(12)—微处理器读输入端,低电平有效,与TTL电平兼容;/CP(13)—中断请求信号,为开漏输出。在中断模式下,当一个有效DTMF信号突发发送或接收时,输出低电平信号。若控制寄存器设定电路工作于呼叫处理(CALL)模式和中断使能,则该端输出代表运放输入的方波信号音,但该信号频率必须落在呼叫处理滤波器的带宽内;D0~D3(14-17)—数据总线,与TTL电平兼容。输入需发送的DTMF编码或输出译码的DTMF信号数据。当CS=1时呈高阻状态;Est(18)—初始控制输出。若电路检测到一种有效的单音对时,Est为高电平;若信号丢失,则Est返回低电平;St/GT(19)—控制输入/时间监测输出。若St电压大于门限VTSt,电路寄存被检测的DTMF单音对,并更新输出锁存器内容。若St电压低于VTSt,则电路不接收一新单音对,GT输出的作用是设置外部时间监测常数;VDD(20)—芯片电源正端,典型值为+5V。
2、工作原理
  MT8888是集DTMF发送和接收功能的器件,内带呼叫处理滤波器。接收部分与DTMF接收器件MT8870类似,发送部分包括行、列计数器和D/A变换器,另外增加了一些控制寄存器和接口、数据总线缓冲器,很容易实现与微处理器的直接接口,其功能框图如图2所示。MT8888通过微处理器接口可以由RS0、、、D0~D3等信号选择与设定内部寄存器,并控制电路的工作状态或工作模式。它共有5个不同作用的寄存器:发送数据寄存器(TDR)、接收数据寄存器(RDR)、状态寄存器(SR)、控制寄存器A(CRA)和控制寄存器B(CRB),其控制关系如表1所示。
表1 内部寄存器控制关系

RS0 47-1.gif (169 bytes) 47-3.gif (156 bytes) 功  能
0 0 1 数据写入TDR
0 1 0 数据从RDR读出
1 0 1 数据写入SR
1 1 0 数据从SR读出

图2 MT8888内部功能框图

  MT8888共有6种工作模式,它们分别为:
 (1)DTMF模式:发送与接收DTMF信号。输入数据经TDR控制可编程行、列计数器、D/A变换器,合成需要发送的DTMF信号。或DTMF信号经拨号音抑制、分离带通滤波器、监频与确认,译成相应的4比特码,经RDR输至数据总线。DTMF编译码对应关系如表2所示。
表2 DTMF编译码对应关系

双音频键 0 1 2 3 4 5 6 7 8 9 * # A B C D
十时制数 10 1 2 3 4 5 6 7 8 9 11 12 13 14 15 0

 (2)呼叫处理(CALL)模式:电路可以检测电话呼叫过程中的各种信号音,只要信号的频率落在320Hz-510Hz范围内,片内呼叫处理滤波器便可滤出。经限幅得到的方波信号,由/CP端输出,以用于微处理器对呼叫性质和类别进行判断。若无信号滤出,则/CP端始终保持低电平。
 (3)突发(BURST)模式:在DTMF模式下,工作于突发状态,信号突发和暂停时间各为51±1ms;在CALL模式下,工作于突发状态,信号突发和暂停时间各为102±2ms,此时电路只可发送DTMF信号,但不能接收。
 (4)单/双音(S/)产生模式:电路可产生单音或DTMF信号(由CRB控制),用于测试和监测。
 (5)测试(TEST)模式:使电路从DTMF接收部分得到延迟监测信号,并从/CP端输出。
 (6)中断模式:此模式下若选择DTMF状态,当DTMF信号被接收或出现在监测时间内,或准备发送更多数据(突发模式下)时,则/CP端下接至低电平。
  各种模式的选择由控制寄存器(CRA和CRB)的相应位完成,如表3和表4所示。状态寄存器SR各位所表示的关系如表5所示。
表3 控制寄存器A(CRA)的功能

符号 功   能
b0 TOUT 信号音输出控制。高电平有效,该位控制所有信号的发送。
b1 CP/49-1.gif (194 bytes) 呼叫处理或DTMF模式选择。低电平为DTMF模式;高电平为CALL模式。可检测呼叫信号音,从47-4.gif (185 bytes)/CP端输出方波(IRQ=1时
b2 IRQ 中断允许位。高电平有效,使电路工作于中断模式。
b3 RSEL 寄存器选择位。高电平时,下一个写周期选CRB,继而写周期返回选CRA。

表4 控制寄存器B(CRB)的功能

符号 功   能
b0 49-2.gif (221 bytes) 突发模式选择位。低电平选择突发模式。此时数据写入TDR,产生突发/暂停各为51±1ms的DTMF信号,然后更新SR,使TDR准备接收下一指令。若中断允许,则产生中断;若CALL模式允许,则产生102±2ms扩展突发信号。
b1 TEST 测试方式控制。高电平设定电路工作于测试方式。
b2 S/ 49-3.gif (100 bytes) 单/双音产生选择位。低电平设定电路产生DTMF信号;高电平设定电路列或行(由C/49-4.gif (100 bytes)位决定)单音频信号输出。
b3 S/49-4.gif (100 bytes) 列或行单音选择。高电平选择列单音输出;低电平选择行单音输出。该位与S/49-3.gif (100 bytes)位一起使用。

表5 状态寄存器(SR)的功能

名称 状态标志设定 状态标志清除
b0 中断请求 中断发生,b1或b2置位 中断禁止,SR读出后清除
b1 突发模式下
TDR空
暂停时间结束,准备发送新数据 SR读完数据后清除
b2 RDR满 RDR已有有效数据 SR读完数据后清除
b3 延迟控制 设定无DTMF信号有效检测功能 清除有效DTMF信号检测功能

3、MT8888与80C32的接口
  MT8888提供了与微处理器相连的接口,以对其发送、接收和工作模式进行控制。MT8888可与Intel微处理器直接接口,即使使用16MHz的单片机80C51,也无需插入等待周期。与其它微处理器接口时,则必须通过转换构造MT8888所需的时序。图3为MT8888的控制时序图。

图3 MT8888控制时序

图4 MT8888与80C32接口原理图
  图4是MT8888与单片机80C32的接口电路原理图,由于可以直接接口,因此,无需构造控制信号。图中两片MT8888(S1和S2)共用一个时钟振荡器。单片机的P0.0~P0.3口接4位数据总线,片选信号由单片机的地址锁存信号ALE提供,读写信号由微处理器的读写信号和译码信号经或门后产生。寄存器选择信号接到地址线P2.0口,这样,对每一片MT8888均有两个地址。两个中断信号经与门后送至单片机的INT1引脚。电路中扩展了一片74365是用于软件判断是哪一路MT8888产生的中断而扩展的。当MT8888向单片机80C32发出中断请求信号后,CPU响应中断,执行中断服务程序。在中断服务程序中,首先读取74365的内容,以判断是哪一路MT8888所发出的中断请求后,再读取该路MT8888的状态寄存器,使中断自动清除以等待下一双音频信号。由于读完状态寄存器后,其内容即自动清除,重新读状态寄存器的内容是无效的,因此,应先将状态寄存器内容暂存于缓冲区内,再对标志位进行判断该中断信号是发送中断还是接收中断,以执行下一步的操作。需要注意的是,单片机80C32的INT1中断方式应设置为电平中断,才能同时检测两片MT8888的中断请求,防止信号丢失。
  若将MT8888设置于呼叫处理工作模式,则通过对一定时间内中断次数的判断可以识别不同的呼叫信号音,如振铃、回铃音、忙音、空号音以及拥塞音等。
  软件程序包括MT8888初始化子程序、发送数据子程序和中断服务子程序。另外,在设计硬件电路时,由于MT8888发送DTMF信号同时又送到MT8888输入端,这样导致在发送数据时,要引起接收数据中断,为了正确判断,在程序中设置一个发送数据标志tflang,当tflag=1时,MT8888为处于发送数据状态;同时,下面只给出第1片MT8888(S1)的程序。

  MT8888(S1)初始化子程序
  mov dptr,#a001h
  movx a@dptr ;读状态寄存器SR
  mov a,#00h
  movx a@dptr,a ;写控制寄存器
  movx a@dptr,a ;写控制寄存器
  mov a,#08h
  movx a@dptr,a ;写控制寄存器A
  mov a,#00h
  movx @dptr,a ;写控制寄存器B
  movx a,@dptr ;读状态寄SR
  mov a,#0dh ;设置MT8888工作方式
  movx @dptr,a ;写控制寄存器A
  mov a,#00h
  movx @dptr,a ;写控制寄存器B
  ret
  MT8888(s1)数据发送子程序
  入口参数:(r0)—待发送的DTMF数据。
Sendr02:
  mov a,r0
  mov dptr,#a000h
  movx@dptr,a ;待发送数据送至TDR
  ret
80C32 INT1中断服务子程序
int1:clr ea ;关中断
  mov dptr,#8000h ;读取74365内容
  movx a,@dptr
  jb acc.0,path1 ;转第1路MT8888
  jb acc.2,path2 ;转第2路MT8888
  ljmp end
path1:mov a,tflag ;判断工作方式标志字
  cjne a,#01h,rece1
  mov dptr,#a001h
  movx a,@dptr ;读状态寄存器SR,清中断
  anl a,#02h
  cjne a,#02h,end
  setb transend ;发送结束标志置位
  ljmp end
recel:mov dptr,#a001h
  movx a,@dptr ;读状态寄存器SR,清中断
  mov dptr,#a000h
  movx a,@dptr ;读DTMF信号的数据编码
  mov r0,a ;结果存于r0
  setb receiend ;收到结果标志置位
  ljmp end
path2:(略)
end: setb ea ;开中断
reti

文章录入:imefan    责任编辑:ImEfan 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章