AVR314 DTMF Generator_第1页
AVR314 DTMF Generator_第2页
AVR314 DTMF Generator_第3页
AVR314 DTMF Generator_第4页
AVR314 DTMF Generator_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、AVR314:DTMF 发生器(双音多频)特征1、使用 PWM(脉冲- 宽度调制)控制正弦波形的产生2、将不同正弦波联合成DTMF信号3、可以用汇编和 C 高级语言编程4、STK500 顶端- 组件设计5、260 字节码大小/128 字节常数表格大小6、查询表格的使用介绍这个操作说明描述了DTMF(双音多频)发生器发的信号如何能够通过使用任何的带有PWM和SRAM的AVR微处理器所实现。具体的应用 如 电话正在用 DTMF 信号来传输正在拨出的数据,就会有二种频率发生迭加从而产生有效的DTMF信号,一个低频 (fb) 和高频.(fa) 。表 1 演示了不同的频率是如何被混合成形成 DTMF状态

2、形式。图 1. DTMF 产生器在表 1 中矩阵的横排代表的是低的频率而纵列代表的是高的频率。举例来说,这个表格中的那个数字 5 是代表着 fb=770 赫兹的低频率和 fa=1336 赫兹的高频率表现。二频率通过使用等式 1 转换成 DTMF 信号等式1: 这里二个振幅之间的比应该是: 工作原理:从关于PWM的用法概要开始入手, 从这可以看出PWM是如何产生正弦波的。接下来,介绍不同于PWM地面频率的频率是如何产生的。在 DTMF 信号理论本身介绍完之后,将会描述具体的执行方法产生正弦波:依照在 PWM 的输出定点的在高频率和低频率之间的关系,平均电压将在这个定点改变。 保持两个频率之间的固

3、定的关系产生一个稳恒电压。 图 2 显示的是PWM的输出信号。图 2. 稳恒电压的产生而等式3演示该如何计算电压:如果在每个PME周期 PWM 产生的平均电压被改变,正弦波能会产生。 根据正弦波形在各自时段电压来调整水平高频和低频之间的关系。 图 3 显示了这个方案。 调整 PWM 的值能通过每个 PWM 周期计算出来或在储存在查询表中(LUT)。图 3 也展现正弦波的频率之间和取样数量之间关联关系。取样取的越多,输出信号结果越准确。 同时频率下降。 等式4 显示这个相互关系: f: 正弦波频率 (1/T)fL: PWM 频率 ( fCK/510)T: 正弦波的周期fCK: 定时器时钟Nc:

4、取样的个数 (图 3 中有12个)PWM 频率依赖 PWM 的分辨率。 对于 8 位的分辨率,定时器最大值是 0xFF(255)。 因为定时器从上到下计数所以这个值增加了两倍。定时器时钟fck除以510可以计算出PWM的频率。依照这个8 兆赫兹的一个定时器时钟产生 PWM 频率为15.6 千赫。正弦波频率的调制:图3 脉宽调制正弦波形的产生 我们假设正弦曲线的取样没从查询表继续地读入,而是每隔一秒读一次。 这样相同的取样频率,产生二倍频率的输出信号。 (见图 4)图 4. 双倍输出频率 (XSW=2) 在取样不是每隔一秒取样而是每隔三秒,四秒,五秒.不同的取样个数就会 产生不同的频率从 1/

5、T 赫兹 . 0 赫兹.注意: 对于高频,它将不再会是正弦波。 在样品之间的步幅- 宽度由XSW决定 。等式 5 描述了这关系:该如何用等式6所示的在每个PWM周期内调整的PWM计算出实际值。(定时器溢出) 。 根据早先的周期的值(X'LUT)可以在增加步幅- 宽度方面计算出新的值 (XSW) 。 XLUT:查询表中的旧位置XLUT:查询表中的新位置把两个不同的频率迭加成DTMF信号:DTMF 信号必须由等式 (1) 和等式(2)产生。 这很容易由 K=3/4 的简单变化寄存器操作来实现。通过使用等式(6) 查询表用来调整下个值的放置PWM 依下列各项来计算:和DTMF发生器的执行:在

6、这个应用中DTMF产生器被建造用来使用 8比特的 PWM 输出之一(OC1A) 和 Nc=128个取样的正弦表,其中每个取样都取n=7比特。接下来的等式显示的是这种关系和显示LUT 的计算原理:使用 7比特的好处是高频和低频信号的和组成了一个字节。为了支持整个的 DTMF 装置,我们必须计算八个 XSW 的值,每一个值对应一个DTMF 频率,而且把他们放置在表格中。为了要达成更高的准确性,可执行以下步骤: XSW的值经等式5计算后只需5个字节。 为了使用所有的八位字节来减少化整误差,这个值乘以8。查询表的指针以同种方式被储存。但是这里有2个字节储存了实际值的8倍。 这意味着三个正确的变换还有带

7、有取样个数模操作一定要在查询表中把他们当作正弦值的指针使用之前运行。 等式10场显示完整的过程:XLUTa,b: 在 LUT 中的元素现在的位置 (实际形式)X'LUTa,bExt: 在 LUT 中的元素早先的位置 (扩大格式)图 5. STK500 顶端-模块的图表PWM 信号在 OC1A 定点上被释放出。 (PD5) 一个附加的输出过滤器将会帮忙以达成一个好的正弦曲线。 如果 PWM 频率被减少,用一个比较险竣的过滤器获得一个好的结果。有按键区的连接在图 1 中被显示。按键区的功能特性是计算出被按下的键。 它有二个步骤:1. 查明被按下的键的行数- 定义 PORTB 的低少量如输出

8、/ 零值- 定义 PORTB 的高少量如输入/ 上拉- 低的一点点在高的少量中决定排2. 查明被按下的键的列数- 定义 PORTB 的高少量如输出/ 零价值- 定义 PORTB 的低少量如输入/ 上拉- 由低少量中的低比特决定列数注意: 在 STK200 那里,在 PORTB 导入器引脚和引脚BP5 , PB6 和 PB7之间的有连续电阻(详见 STK200 的图表). 如果按键区被连接到 PORTB 导入器,这将会引起问题。图 6 显示的是发现一个按下的键的过程的流程图。由被按下的键决定幅宽值。 中断程序用这个值来计算DTMF两正弦波形中PWM的设置。 那中断程序在图 7 和图 8 中被显示。中断程序为下个 PWM 周期计算输出比较值。中断程序首先在 LUT 中计算下个取样值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论