EDN China > 设计实例 > 嵌入式系统 > 开发工具 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 基于MSP430的嵌入式DTMF拨号解码器实现方案

来源:TI / 作者:西北工业大学 李锋垚 深圳爱科信实业有限公司 文敏?? 2006年01月14日 ?? 收藏0

?????? 引言

??????
DTMF(双音多频)信号是电话网中常用的信令,无论是家用电话、移动电话还是程控交换机上,多采用DTMF信号发送接收号码。DTMF技术还可以用于电力线载波通信等场合。可见,DTMF拨号和解码在通信系统及其它方面有着广泛的应用。通常DTMF信号的检测采用专用芯片或DSP来实现,但其成本较高。本文介绍了一种低成本的基于MSP430F133的DTMF拨号解码器实现方案。 MSP430F133是TI的一款16位RISC结构MCU,最短指令周期为150ns,含有8KB Flash ROM,256B RAM并内置12位ADC。

?????? DTMF信号

??????
DTMF信号是将拨号盘上的0~9、A~D及*/E、#/F共16个字符,用音频范围的8个频率来表示的一种编码方式。8个频率分为高频群和低频群两组,分别作为列频和行频。每个字符的信号由来自列频和行频的两个频率的正弦信号叠加而成。频率组合方式如图1所示。

DTMF信号


?????? 根据CCITT Q.23建议,DTMF信号的技术指标是:传送/接收率为每秒10个号码,或每个号码100ms。每个号码传送过程中,信号存在时间至少45ms,且不多于55ms,100ms的其余时间是静音。在每个频率点上允许有不超过±1.5%的频率误差。任何超过给定频率 ±3.5%的信号,均被认为是无效的,拒绝承认接收。另外,在最坏的检测条件下,信噪比不得低于15dB。

?????? DTMF拨号

??????
DTMF拨号部分的电路原理图如图2所示。电路主要由4根I/O线构成的电阻网络和滤波器组成。电阻网络构成4位的DAC,高通滤波器和低通滤波器组成一个带通滤波器用来滤除双音频的谐波信号。在输出端采用600Ω的1:1变压器与电话线接口,电话线的输出电平可通过改变Rx来进行调节。

?????? 软件上使用查表方式模拟产生两个不同频率的正弦波。首先确定一个合适的采样间隔,对每个频率的正弦波进行采样并规格化成0~7(3位数据),制成相应的正弦表。正弦表的制定要保证合成信号的频率误差在±1.5%以内,同时使采样点数尽量少。为使波形失真度小,正弦表记录的总信号时间对应原始信号的整数个周期,并且采样起点选在正波形的峰值上。本设计采样间隔选定为122us,保证频率误差均在±1%以内,各个频率信号的采样点数及频率误差见图3所示。

?????? DTMF拨号程序流程图如图4所示。

DTMF拨号电路  正弦表采样点数及频率误差

DTMF拨号流程图


?????? DTMF解码

??????
采用软件方式进行DTMF解码,首先要将模拟信号转换成数字信号,然后再送入CPU处理。利用MSP430F133内置的12位ADC加上简单的接口就可以实现模数转换,ADC接口电路如图5所示。其中应选1%精度的金属膜电阻。ADC参考电压选内部2.5V:基于MSP430的嵌入式DTMF拨号解码器实现方案图示

ADC接口电路


?????? DTMF解码可以通过计算所接收到的信号在8个既定频率点的频谱值来确定是否为有效的DTMF信号及接收到的是哪个号码。另外,需要通过一系列的有效性检验以防止误判。

?????? FFT可用来计算N点频率处的频谱值,但不适合于此处应用。因为它计算了许多不需要的值,计算量太大;而且为保证频率分辨率,FFT的点数较大。另外,它不能按逐个样点的方式处理,不利于实时实现。

?????? 由于只需要知道8个特定点的频谱值,采用一种称为Goertzel算法的DFT算法可以有效地提高计算效率。它相当于一个含两个极点的IIR滤波器,8个频点对应各自相匹配的滤波器,其传递函数为:

公式


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

操作系统? DTMF? 拨号解码器?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈