基于AVR的双音多频信号发生器研究_第1页
基于AVR的双音多频信号发生器研究_第2页
基于AVR的双音多频信号发生器研究_第3页
基于AVR的双音多频信号发生器研究_第4页
基于AVR的双音多频信号发生器研究_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

基于AVR的双音多频信号发生器研究THESTUDYONDTMFSIGNALGENERATORBASEDONAVRMICROCONTROLLER摘要通信是现代信息社会的主要特征,DTMF技术以其误码率低、工作可靠而被广泛应用,特别是在无线电传输中更显示出它在调制、解调、发射、接收方面的突出优越性,所以双音多频信号即DTMF(DUALTONEMULIFREQUENCY)成了电话网中常用的信令,无论是家用电话、移动电话还是程控交换机上,多采用DTMF信号发送、接收号码。本文简要介绍了AT90S8515单片机的特点、结构、指令系统、存储器组织等。介绍了在带有PWM(脉冲宽度调制)和SRAM的AVR单片机上生成DTMF双音多频信号的实现方案,给出了原理图和程序流程图,设计并制作出一个双音多频信号发生器。所做的主要内容就是将键盘和扬声器与单片机连接,通过软件编程使按键按下时能通过扬声器将所按的键子的声调传出。键盘上有09,AD以及“”,“”共16个按键。除此之外,利用AT90S8515内置的一个可预分频,具有比较捕捉和8/9/10位PWM功能的16位定时器/计数器,并通过脉宽调制手段,实现DTMF信号的实时解码。该方案成本低、性能可靠、运算速度快,已经得到了实际应用。关键词脉宽调制AT90S8515双音多频ABSTRACTCOMMUNICATIONISAMAINCHARACTERISTICOFTHEMODERNINFORMATIONINTENSIVESOCIETYDTMFDUALTONEMULTIFREQUENCYISWIDELYUSEDBECAUSEOFTHELOWRATEOFMISTAKEANDRELIABLEWORK,DEMONSTRATINGANOUTSTANDINGSUPERIORITYESPECIALLYINITSMODULATINGOFTRANSMITTINGINRADIO,DEMODULATION,LAUNCH,ANDRECEIVINGSODTMFBECOMESACOMMONLYUSEDORDERINTHETELEPHONENETWORKNOMATTERINHOMETELEPHONE,MOBILEORTHEPROGRAMCONTROLEXCHANGE,DTMFSIGNALISWIDELYUSEDTOSENDANDRECEIVETHENUMBERTHISTEXTHASINTRODUCEDTHECHARACTERISTIC,STRUCTURE,INSTRUCTIONSYSTEM,MEMORYOFORGANIZEETCOFMICROCONTROLLERAT90S8515BRIEFLY,ANDINTRODUCEDASCHEMEOFDTMFSIGNALGENERATORBASEDONAVRMICROCONTROLLERAT90S8515CHIPWITHPWMANDSRAMTOOTHEARTICLEPRESENTSTHEPRINCIPLEPICTUREANDPROCEDUREFLOWCHARTTODESIGNANDFACTUREADTMFSIGNALGENERATORTHEMAINCONTENTOFTHEWORKISLINKTHEKEYBOARDANDLOUDSPEAKERWITHTHEMICROCONTROLLER,THESYSTEMCANTRANSMITTHESOUNDINTHELOUDSPEAKERWHICHMADEBYPRESSINGDOWNTHEKEYTHROUGHMAKINGTHEPROGRAMTHEREARE09,ADAND“”,“”16KEYSINALLONTHEKEYBOARDBESIDES,ITUSESA16BITTIMER/COUNTERINSIDEAT90S8515WHICHISPREDIVIDABLEANDHASTHEFUNCTIONOFCOMPARINGSEIZINGAND8/9/10BITPWM,ANDCOMPLETETHEREALTIMEDECODETHEDTMFSIGNALBYTHEMEANSOFPWMTHISDESIGNHASPRACTICALLYAPPLIEDWITHITSLOWEXPENSE,RELIABILITY,ANDHIGHSPEEDKEYWORDSPWM,AT90S8515,DTMF目录第一章绪论1第二章AVR单片机简介221AT90系列单片机简介222AT90S8515单片机的结构323管脚定义424单片机的存储器组织625复位和中断处理1026定时器/计数器12第三章双音多频简介1631DTMF信号1632DTMF拨号1733DTMF解码18第四章脉宽调制2041脉宽调制简介2042PWM工作原理2043正弦脉宽调制22第五章用AT90S8515实现DTMF发生器解决方案2351方案应具备的特征2352AVR单片机实现DTMF信号发生器的关键技术2353DTMF信号的产生2454误差分析31结论34致谢35参考文献36第一章绪论通信是现代信息社会的主要特征,基于双音多频(DTMF)信号的通信,是近几年发展起来的一种高度可靠的远程数据传送方式之一。双音多频信号主要应用于自动程控交换机,电话拨号及无线对讲机系统中。目前已有专用的双音多频信号的发码和解码芯片,其解码过程经过一系列的严格滤波和一套科学的算法,可靠性极高,因此已被广泛应用于电脑联网自动报警系统、城市环境实时检测决策系统和工业过程控制系统中的信息传递。但是由于电信部门的通信专用芯片与计算机接口不兼容,在用上述系统发送信息时,除了专用的双音多频发码芯片外,还要用到大量的电子器件,使成本大大地提高。若在单片机的应用系统中,利用AVR单片机中的具有比较捕捉8/9/10位PWM功能的16位定时器/计数器,和较少的I/O口线来实现双音多频的发码通信,从而达到降低成本的目的,使某些民用产品更具有价格竞争优势。本文介绍了一种利用AVR单片机本身的优势,采用脉宽调制的方法,实现双音多频信号的发生器功能,只占用单片机的八条I/O口线,是一种具有很高性价比的远程通信方式。本设计以AVRAT90S8515为目标器件,设计并实现DTMF信号产生的算法和程序。该设计不仅反映了AVRAT90S8515在通信领域中的实际应用,而且体现了数字滤波器设计、实现和应用的许多重要内容。第二章AVR单片机简介21AT90系列单片机简介AT90系列单片机是增强RISC结构、内载FLASH的单片机,通常简称为AVR单片机,采用低功耗、非挥发的CMOS工艺。通用SPI口和一般的编程器可以对AVR单片机的FLASH存储器进行编程。是目前最新单片机系列之一,其突出的特点在于速度高、片内硬件资源丰富,可作为真正意义上的单片机使用。AT90系列单片机是基于新的精简指令RISC结构,在90年代开发出来的,综合了半导体集成技术和软件性能的新型单片机。这种结构使得在8位微处理器市场上,AVR单片机具有最高1MIPS/MHZ能力。AVR采用了现代微处理器流水管线预取指令技术,淘汰了机器周期的概念,以时钟周期为指令执行的最基本时间单位。通常时钟频率用4MHZ8MHZ,故最短指令执行时间为250125NS1。为了缩短进入市场的时间,简化维护的支持,对于单片机来说,用高级语言编程是一种标准编程方法。AVR单片机的开发目的就在于能采用C语言编程,从而能高效地开发出目标产品。为了对目标代码大小、性能进行更好的优化,AVR单片机采用了大型快速存取寄存器文件和快速单周期指令。快速存取寄存器文件由32个通用工作寄存器组成。传统的基于累加器的结构需要大量的程序代码,以实现在累加器和存储器之间的数据传送。在AVR单片机中,用32个通用寄存器代替累加器,从而避免了传统的累加器和存储器之间的数据传送造成的瓶颈现象。在AVR单片机中,当前一条指令执行的时候就取出现行的指令,然后以一个周期执行指令。在其它的RISC以及类似的RISC结构中,外部振荡器的时钟被分频降到传统的内部执行周期,这种分频最大达12倍。AVR单片机是用一个时钟周期执行一条指令的,在8位单片机中它是第一种真正的RISC单片机。这种单片机借鉴了某些机型的高速输入输出HSIO和可编程技术阵列PCA的概念,实现了本身的输入捕捉、输出比较和脉冲宽度调制输出功能。这是脉冲信号测量、开关量按时控制及某些直流马达调速的得力工具。AVR除继承了前代器件的异步串行口外,且增加了高速同步串行口,因此可方便灵活地与其他器件进行串行通讯。22AT90S8515单片机的结构图21AT90S8515结构方框图AVR将32个工作寄存器和丰富的指令集联结在一起,所有的工作寄存器都与ALU(运算逻辑单元)直接相连,允许在一个时钟周期内执行的单条指令同时访问两个独立的寄存器,这种结构提高了代码效率,使AVR得到了比普通CISC单片机高将近10倍的性能。23管脚定义图22AT90S8515引脚图2VCCGND电源A口(PA7PA0)A口是一个8位双向I/O口,每一个管脚都有内部上拉电阻。A口的输出缓冲器能够吸收20MA的电流,可直接驱动LED。当作为输入时,如果外部被拉低,由于上拉电阻的存在,管脚将输出电流。在复位过程中,A口为三态,即使此时时钟还未起振。在访问外部SRAM时,A口作为地址/数据复用口。B口(PB7PB0)B口是一个8位双向I/O口,每一个管脚都有内部上拉电阻。B口的输出缓冲器能够吸收20MA的电流,可直接驱动LED。当作为输入时,如果外部被拉低,由于上拉电阻的存在,管脚将输出电流。在复位过程中,B口为三态,即使此时时钟还未起振。C口(PC7PC0)C口是一个8位双向I/O口,每一个管脚都有内部上拉电阻。当作为输入时,如果外部被拉低,由于上拉电阻的存在,管脚将输出电流。在复位过程中,C口为三态即使此时时钟还未起振。C口还可以用作外部SRAM的地址。D口(PD6PD0)D口是一个带内部上拉电阻的7位双向I/O口,输出缓冲器能够吸收20MA的电流。当作为输入时,如果外部被拉低,由于上拉电阻的存在,管脚将输出电流。在复位过程中,D口为三态,即使此时时钟还未起振。/RESET复位输入超过50NS的低电平将引起系统复位,低于50NS的脉冲不能保证可靠复位。XTAL1振荡器放大器的输入端。XTAL2振荡器放大器的输出端。ICPT/C1输入捕捉的输入。OCIBT/C1输出比较B。ALE访问外部SRAM时的地址锁存信号。晶体振荡器XTAL1和XTAL2分别是片内振荡器的输入输出端。可使用晶体振荡器或是陶瓷振荡器。当使用外部时钟时,XTAL2应悬空。振荡器连接及外部时钟驱动分别见图23和图24图23振荡器连接图24外部时钟驱动24单片机的存储器组织快速访问寄存器文件包含32个8位可单周期访问的通用寄存器,这意味着在一个时钟周期内,ALU可以完成一次如下操作读取寄存器文件中的两个操作数执行操作,将结果存回到寄存器文件。寄存器文件中的6个可以组成3个16位用于数据寻址的间接寻址寄存器指针,以提高地址运算能力,其中Z指针还用于查表功能。ALU支持两个寄存器之间、寄存器和常数之间的算术和逻辑操作以及单寄存器的操作。除了寄存器操作模式,通常的内存访问模式也适用于寄存器文件,这是因为AT90S8515为寄存器文件分配了32个最低的数据空间地址001F,允许其象普通内存地址一样被访问。I/O内存空间包括64个地址作为CPU外设的控制寄存器T/C以及其他I/O功能。I/O内存可以直接访问,也可以作为数据地址205F来访问。AVR采用了HARVARD结构程序和数据总线分离。程序内存通过两段式的管道PIPELINE进行访问当CPU在执行一条指令的同时就去取下一条指令,这种预取指的概念使得指令可以在一个时钟完成。相对跳转和相对调用指令可以直接访问2K/4K地址空间。所有的AVR指令都为16位长。每个程序内存地址都包含一条16位或32位的指令。当执行中断和子程序调用时,返回地址存储于堆栈中。堆栈分布于通用数据SRAM之中,堆栈大小只受SRAM数量的限制。用户应该在复位例程里就初始化SP(SP为可读写的16位堆栈指针)。512个SRAM可以通过5种不同的寻址方式很容易地进行访问。中断模块由I/O空间中的控制寄存器和状态寄存器中的全局中断使能位组成,每个中断都具有一个中断向量,由中断向量组成的中断向量表位于程序存储区的最前面。中断向量地址低的中断具有高的优先级。241通用工作寄存器文件所有的寄存器操作指令都可以单指令的形式直接访问所有的寄存器,例外情况为5条涉及常数操作的指令SBCI、SUBI、CPI、ANDI和ORI。这些指令只能访问通用寄存器文件的后半部分R16到R31。如表21所示,每个寄存器都有一个数据内存地址,将他们直接映射到用户数据空间的头32个地址。虽然寄存器文件的实现与SRAM不同,这种内存组织方式在访问存储器方面具有极大的灵活性。表21通用工作寄存器70地址R000R101R202R130DR140ER150FR1610R1711R261AX寄存器低字节R271BX寄存器髙字节R281CY寄存器低字节R291DY寄存器髙字节R301EZ寄存器低字节R311FZ寄存器髙字节242XYZ寄存器寄存器R26R31除了用作通用寄存器外,还可以作为数据间接寻址用的地址指针。图25XYZ寄存器243ALUAVR的ALU与32个通用工作寄存器直接相连。ALU操作分为3类算术、逻辑和位操作。244在线可编程FLASHAT90S8515具有8K字节的FLASH。因为所有的指令为16位宽,故而FLASH结构为4K16,FLASH的擦除次数至少为1000次。AT90S8515的程序计数器PC为12位宽,可以寻址到4096个字的FLASH程序区。245静态随机存储器SRAM表22表明了ST90S8515的数据组织方式608个数据地址用于寻址寄存器文件、I/O和SRAM。起始的96个地址为寄存器文件和I/O。其后的512个地址用于寻址SRAM。外部SRAM也可以放置于相同的SRAM空间,直到64K1。当访问SRAM的地址超出内部SRAM的地址时,MCU将对外部SRAM寻址指令相同。访问内部SRAM时,/RD和/WR保持无效。若要访问外部SRAM,必须置位MCUCR的SRE位。访问外部SRAM比访问内部的要多一个时钟周期,这意味着指令LD、ST、LDS、STS、PUSH和POP指令将多一个时钟周期。如果外部SRAM接口使用了等待状态,则又多两个时钟周期。表22SRAM分布寄存器文件数据地址空间R00000R10001R20002R29001DR30001ER31001FI/O寄存器数据地址空间0000200100210200223E005E3F005F片内SRAM00600061025E025F片外SRAM02600261FFFEFFFF数据寻址模式分为5种直接、带偏移量的间接、间接、预减的间接、后加的间接。寄存器R26到R31为间接寻址的指针寄存器。直接寻址范围可达整个数据空间。带偏移量的间接寻址模式寻址到Y、Z指针给定地址附近的63个地址。带预减和后加的间接寻址模式要用到X、Y、Z指针。32个通用寄存器,64个I/O寄存器、512字节的SRAM和最大可达64K的外部SRAM可以被所有的寻址模式访问。25复位和中断处理AT90S8515有12个中断源,每个中断源在程序空间都有一个独立的中断向量。所有的中断事件都有自己的使能位,当使能位置位,且I也置位的情况下中断可以发生。RESET具有最高的优先级3。具体情况如表23所示表23中断源与定义向量号程序地址来源定义1000RESET硬件管脚,上电复位和看门狗复位2001INT0外部中断03002INT1外部中断14003TIMER1CAPT捕捉事件5004TIMER1COMPA比较匹配6005TIMER1COMPB比较匹配7006TIMER1OVF溢出8007TIMER0OVF溢出9008SPI,STC串行传输结束10009UART,RX接收结束1100AUART,UDRE数据寄存器空1200BUART,TX发送结束1300CANA_COMP模拟比较器251复位源AT90S8515有3个复位源1上电复位。当电源电压低于上电门限VPOT时MCU复位。2外部复位。当/RESET引脚上的低电平超过50NS时MCU复位。3看门狗复位。看门狗定时器超时后MCU复位。在复位期间,所有的I/O寄存器被设置为初始值,程序从地址000开始执行,000地址中放置的指令必须为RJMP相对跳转指令跳转到复位处理例程。若程序永远不需中断,则中断向量就可放置通常的程序代码。252中断处理AT90S8515有2个中断屏蔽控制寄存器GIMSK通用中断屏蔽寄存器和TIMSKT/C中断屏蔽寄存器,一个中断产生后,全局中断使能位I将被清零,后续中断被屏蔽。用户可以在中断例程里对I置位,从而开放中断执行RETI后I重新置位。注意外部电平中断没有中断标志位,因此当电平变为非中断电平后中断条件即终止。253中断响应时间AVR中断响应时间最少为4个时钟周期,在这4个时钟期间PC2个字节自动入栈,而SP减2。在通常情况下,中断向量为一个相对跳转指令,此跳转要花2个时钟周期。如果中断在一个多周期指令执行期间发生,则在此多周期指令执行完后。MCU才会执行中断程序。中断返回亦需4个时钟,在此期间PC将被弹出栈,SREG的位I被置位。如果在中断期间,发生了其他中断,则AVR在退出中断程序后,要执行一条主程序指令之后才能再响应被挂起的中断。MCU控制寄存器MCUCRBIT7654321055SRESRESESMISC11ISC0ISC11ISC00读/写R/WR/WR/WR/WR/WR/WR/WR/W初始值00000000SRE外部SRAM使能SRW外部SRAM等待状态SE休眠使能SM休眠模式ISC11与ISC10中断检测控制1位1和位0选择INT1中断的边沿或电平如表24所示表24选择INT1中断的电平ISC11ISC10描述00低电平中断01保留10下降沿中断11上升沿中断ISC01,ISC00中断检测控制0位1和位0选择INT0中断的边沿或电平选择INT0中断的如表25所示表25选择INT0中断的选择INT0中断的ISC01ISC00描述00低电平中断01保留10下降沿中断11上升沿中断26定时器/计数器AT90S8515内部有两个通用定时器/计数器一个8位T/C和一个16T/C。T/C从同一个10位的预分频定时器取得预分频的时钟。T/C既可用作使用片内时钟的定时器,也可用作对外部触发信号记数的计数器,T/C预分频器如图26所示图26T/C预分频器4种可选的预分频时钟为CK/8、CK/64、CK/256和CK/1024。CK为振荡器时钟,还可选择CK、外部时钟,以及停止工作。T/C0的时钟可以选择CK、预分频的CK或外部引脚输入,另外还可以由T/C0控制寄存器TCCR0来停止它,TIFR为状态标志寄存器,TCCR0为控制寄存器,而TIMSK控制T/C0的中断屏蔽。当T/C0由外部时钟信号驱动时,为了保证CPU对信号的正确采样,要保证外部信号的转换时间至少为一个CPU时钟周期。MCU在内部CPU时钟的上升沿对外部信号进行采样,在低预分频条件下,T/C0具有高分辨率和高精度的特点;而在高预分频条件下,T/C0非常适用于低速功能,如计时16位T/C1。T/C1的时钟可以选择CK、预分频的CK,或外部引脚输入,另外还可以由T/C1控制寄存器TCCR1A和TCCR1B来停止它。TIFR为状态标志寄存器,而TIMSK控制T/C1的中断屏蔽,当T/C0由外部时钟信号驱动时,为了保证CPU对信号的正确采样,要保证外部信号的转换时间至少为一个CPU时钟周期。MCU在内部CPU时钟的上升沿对外部信号进行采样,在低预分频条件下,T/C1具有高分辨率和高精度的特点;而在高预分频条件下,T/C1非常适用于低速功能,如计时。T/C1还可以用作8,9或10位的PWM调制器,在此模式下,计数器和OCR1A/OCR1B寄存器用作两个无尖峰干扰的中心对称的PWM。261T/C1控制寄存器ATCCR1A4FBIT765432104FCOM1A1COM1A0COMB1COM1B0PWM11PWM10读/写R/WR/WR/WR/WR/WR/WR/WR/W初始值00000000PWM11,PWM10,PWM选择PWM11PWM10描述00T/C1的PWM操作无效01T/C1为8位PWM10T/C1为9位PWM11T/C1为10位PWM262PWM模式下的T/C1选择PWM模式后,T/C1和输出比较寄存器OCR1A/OCR1B共同组成两个8、9或10位的无尖峰的自由运行的PWM。T/C1作为上/下计数器。从0记数到TOP然后反向记数回到0。当计数器中的数值和OCR1A/OCR1B的数值低8,9或10位一致时,OC1A/OC1B引脚按照COM1A0/COM1A1和COM1B0/COM1B1的设置动作。如表26和27所示。表26TOP值及PWM频率PMW分辨率TOP值频率800FFFTC1/510901FFFTC1/10221003FFFTC1/2046表27PWM模式下的比较1模式选择COM1X1COM1X0OC100不用作PWM功能01不用作PWM功能10向上计数时的匹配清除OC1;而向下计数时的匹配置位OC1(正向PWM)11向下计数时的匹配清除OC1;而向上计数时的匹配置位OC1(反向PWM)XA或B注意在PWM模式下,OCR1A/OCR1B的低10位首先存储在一个临时的位置,等到T/C1达到TOP时才真正存入OCR1A/OCR1B。这样可以防止在写OCR1A/OCR1B时,由于失步而出现奇数长度的PWM脉冲。OCR1的值为0000或TOP时OC1的输出见表28表28OCR1的输出参数表COM1X1COM1X0OCR1XOC1X00000L10TOPH110000H11TOPLXA或B在PWM模式下,当计数器达到0000时将置位TOV1,此时发生的中断与正常情况下的中断是完全一样的。第三章双音多频简介31DTMF信号双音多频信号,即DTMF(DUALTONEMULIFREQUENCY)。它是一种带内信令,即在3003400HZ音频范围内,选择8个单音频率,分为高频率群4个或3个频率和低频率群4个频率,每次从高频率群和低频率群各取出一个频率,由高低两个频率信号叠加在一起构成一个DTMF信号。在DTMF方式中,每一个数字都是采用两个不同频率和不同电平的信号来表示的,主要有以下指标信号的频率组合、信号电平、两个信号之间的电平差、信号的持续时间以及信号的失真电平等。在发出的DTMF信号中,若频率组合出现了差错,用户所拨的号码可能会与发出的信号不一致,造成错号;若信号电平太低,经过线路传输后到达交换机的信号电平有可能低到交换机无法识别;若信号电平太高,容易造成信号中的较大失真,给交换机的信号识别造成困难。由于考虑到线路传输过程中对高频信号的衰减比对低频信号的衰减大,因此规定电话机发出的DTMF信号中高频信号的电平要比低频信号的电平高。DTMF信号应有一定的持续时间,时间太短,交换机无法识别,造成漏号。对DTMF信号的失真也有一定的规定,失真不能太大,否则交换机无法接收信号。在集群通信系统中,DTMF信号用作系统的识别、拨号、控制以及状态等各种信令。根据电话线路传输音频信号的特点,贝尔(BELL)实验室于20世界70年代提出双音双频编码思想,并实现了双音双频编码的产生与接收,经过实践证明双音多频编码的优势所在,国际电报电话咨询委员会制定了电话机、程控交换机双音多频编码的标准4,标准如表31表31双音多频编码的标准频率1209HZ1336HZ1477HZ1633HZ697HZ123A770HZ456B852HZ789C941HZ/E0/FDDTMF信号的技术指标是传送/接收率为每秒10个号码,或每个号码100MS。每个号码传送过程中,信号存在时间至少45MS,且不多于55MS,100MS的其余时间是静音。在每个频率点上允许有不超过15的频率误差。任何超过给定频率35的信号,均被认为是无效的,拒绝承认接收。另外,在最坏的检测条件下,信噪比不得低于15DB。32DTMF拨号DTMF拨号部分的流程图如图31所示50MSFHDAC12S50MSDAC050MSNYNY图31拨号流程图电路主要由4根I/O线构成的电阻网络和滤波器组成。电阻网络构成4位的DAC,高通滤波器和低通滤波器组成一个带通滤波器用来滤除双音频的谐波信号。在输出端采用600的11变压器与电话线接口,电话线的输出电平可通过改变RX来进行调节。软件上使用查表方式模拟产生两个不同频率的正弦波。首先确定一个合适的采样间隔,对每个频率的正弦波进行采样并规格化成07(3位数据),制成相应的正弦表。正弦表的制定要保证合成信号的频率误差在15以内,同时使采样点数尽量少。为使波形失真度小,正弦表记录的总信号时间对应原始信号的整数个周期,并且采样起点选在正波形的峰值上。本设计采样间隔选定为122US,保证频率误差均在1以内,各个频率信号的采样点数及频率误差见表32所示。表32各个频率信号的采样点数及频率误差频率采样点数波形周期频率误差频率采样点数波形周期频率误差697HZ353081209HZ27404770HZ323021336HZ37605852HZ293051477HZ22409941HZ263051633HZ1530433DTMF解码采用软件方式进行DTMF解码,首先要将模拟信号转换成数字信号,然后再送入CPU处理。利用AT90S8515内置的12位ADC加上简单的接口就可以实现模数转换5。DTMF解码可以通过计算所接收到的信号在8个既定频率点的频谱值来确定是否为有效的DTMF信号及接收到的是哪个号码。另外,需要通过一系列的有效性检验以防止误判。除此之外,还要进行DTMF有效性检验,以判定是否为有效的DTMF信号。有效性检验包括以下几项内容(1)高、低频段的最大幅值都必须大于某个门限值,而且二者之和也要大于某个门限值。(2)高、低频段的最大幅值与各自频段其它三个幅值相比,其差值必须大于某个门限值。(3)逆向绞度检验即低频段最大幅值不得超过高频段最大幅值8DB,标准绞度检验即高频段最大幅值不得超过低频段最大幅值4DB。(4)高、低频段最大幅值之和与其它6个幅值之和之比,必须大于某个门限值。若上述检验通过,判定当前周期DTMF信号有效,根据频率组合可确定是对应哪个号码。但要确认接收到一个有效的号码,还要满足两个条件一是要有两个以上连续周期的有效且相同的DTMF信号,以保证信号持续时间,二是前面有足够的静音时间,以避免重复识别。DTMF解码程序流程图如图32所示ADC,N0ADC计算8点递归值N86ADC8DTMFDTMFDTMFNNYYYN图32DTMF解码程序流程图解码时每次迭代需要八次乘法,由于AT90S8515没有硬件乘法器,要用“移位加“做乘法,因此优化乘法运算将大大提高计算效率6。优化从几个方面考虑尽量使用寄存器寻址方式,充分利用150NS指令;另外每个频点的乘数是固定已知的,因此“移位加“可以不用逐位循环并判断的方式,而用按位完全展开的方式以省去判断动作;此外,在前端增加简单的增益控制可以保证后续运算不发生溢出,省去溢出处理。经过上述优化,实现了DTMF的实时解码。第四章脉宽调制41脉宽调制简介脉冲宽度调制(PULSEWIDTHMODULATION),简称脉宽调制,指一种用数字来表示音频信号的方法,是将幅度信息包含在单比特的脉冲宽度之中7。PWM控制技术一直是变频技术的核心技术之一。1964年由ASCHONUNG和HSTEMMLER首先发表评论,提出把这项通讯技术应用到交流传动中,从此为交流传动的推广应用开辟了新的局面。42PWM工作原理PWMPULSEWIDTHMODULATOR即脉宽调制,AVR单片机系列中经典的AT90S8515微控制器具有两个脉宽调制输出通道,他们分别产生频率相同而宽度占空比分别可调由程序改变的脉冲,其输出功能框图如图41所示图41输出功能框图脉冲的重复频率由8位预分频器PWMPFEH为预分频控制常数寄存器,分频系数PWMP1;PWMP输出计数时钟,8位计数器COU计数模为255,即计数范围从0254,引脚N1,2输出的重复PWMN频率FPWM由下式给定FPWMFOSC/21PWMP255(41)在FOSC12MHZ时,重复频率范围为92HZ325KHZ;在FOSC16MHZ时,频率范围为123HZ314KHZ。引脚输出脉冲的频率FPWM或周期TPWM是固定的,但脉宽占空比是可调的。脉冲宽度寄存器PWM0和PWM1引脚N1,2输出脉冲低/高比例常数寄存器。PWMN输出低/高比例系数PWMN/255PWMN(42)通过对PWM0和PWM1寄存器装入相应的值,可以改变脉冲宽度比例,即占空比。当AT90S8515工作时,8位计数器不断加1直至溢出回0,并重新开始计数,同时,8位计数器的值不断和PWM0和PWM1两个寄存器的内容进行比较,若装入这两个寄存器的内容大于计数器值COU的时候,和输出引脚为低电平,当寄存器的内容等0PWM1于或小于计数器的值的时候,引脚为高电平。因此脉冲宽度比例分别由PWM0和PWM1寄存器内容所确定,占空比和PWMN值有如下关系PWMN2561占空比(43)脉冲宽度比为01,可编程增量即分辨率为1/255。对PWMN装入不同的数值时,可调整脉宽,如图42所示,当PWMN128时,引脚输出方波,改变PWMN的内容即可改变占空比,如图43PWMN所示。图42PWMN引脚电平图43典型PWM输出当一个新的值写入PWM0或PWM1寄存器时,输出立即改变,不必等待当前计数周期的结束。都是推挽式驱动输出的,这两个引脚不能作其他用途。43正弦脉宽调制从最初采用模拟电路完成三角调制波和参考正弦波比较,产生正弦脉宽调制SPWM信号以控制功率器件的开关开始,到目前采用全数字化方案,完成优化的实时在线的PWM信号输出,可以说直到目前为止,PWM在各种应用场合仍占主导地位,并一直是人们研究的热点。由于PWM可以同时实现变频变压反抑制谐波的特点,由此在交流传动乃至其它能量变换系统中得到广泛应用。PWM控制技术大致可以分为三类正弦PWM(包括电压,电流或磁通的正弦为目标的各种PWM方案,多重PWM也应归于此类)、优化PWM及随机PWM。正弦PWM已为人们所熟知,而旨在改善输出电压、电流波形,降低电源系统谐波的多重PWM技术在大功率变频器中有其独特的优势(如ABBACS1000系列和美国ROBICON公司的完美无谐波系列等);而优化PWM所追求的则是实现电流谐波畸变率(THD)最小、电压利用率最高、效率最优、转矩脉动最小以及其它特定优化目标。在本项设计中主要采取的是正弦脉宽调制。具体的操作步骤见下一章。第五章用AT90S8515实现DTMF发生器解决方案51方案应具备的特征1使用PWM脉冲宽度调制控制正弦波形的产生2将不同正弦波联合成DTMF信号3使用C高级语言编程4256节码大小/128字节常数表格5使用查询表格52AVR单片机实现DTMF信号发生器的关键技术521正弦信号算法和频率控制设有一系统其传输函数H(Z)没有零点,只有一对处在单位圆上的共扼的极点,则单位响应为恒幅度的振荡,即产生了正弦信号。210ZABZH(51)式中1COS2IN00AAB522最佳采样参数的优选所谓最佳采样,指的是在满足采样定理的前提下优选采样率,使在信号重构时的谱泄漏较小,从而获得较高精度的双音多频信号。理论和实践均表明,对于周期信号,按信号的整个周期截取是一种良好的选择。对于本例中不同频率的正弦周期信号,在选取采样率或采样周期时,则应考虑几项综合因素,即采样周期的确定一是采样点数N要恰好覆盖整数个信号周期M,实现最佳准周期采样,使合成信号频率误差最小,从而满足CCITT所规定的单频误差小于15的要求;二是在信号合成时,单片机要来得及完成查表,取样值及合成算法的操作。为此,根据CCITT推荐的8个信号频率,经计算机优化,选取T为59S或118S较为合适。从而可由下式确定最佳周期采样数N及周期数M之间的关系NM/TF0(52)式中T为采样周期,F0为8个推荐频率之一,由公式可分别求得它们的最佳准周期采样点数及周期M,如表51所列表51最佳准周期采样点数及周期M标准频率F0采样点数N周期数M69773677011185219920941911209711336146231477109191633831653DTMF信号的产生DTMF信号是由高频组(FB)和低频组(FA)两组频率信号构成,每个频率信号由高频组和低频组的任意一个叠加而成8。根据CCITT的建议,DTMF的编译码定义如表52所示,可用下式表示(53)TFATFTFBBAA2SIN2SIN式中两项分别表示低、高音群的值,AB和AA分别表示低音群和高音群的样值量化基线,而且两者幅值比为073/数据规格化X_LUTBCHARX_LUTBEXT43OCR1AAUC_SINPARAMX_LUTAAUC_SINPARAMX_LUTBAUC_SINPARAMX_LUTB2/计算PWM值高值3/4低频值54误差分析在双音多频通信中,解码芯片对双音多频信号的幅度误差并不十分敏感,因此离散数值采样的量化误差可以忽略,重要的是合成信号的频率误差。系统中,在确定了采样时间T、最佳准周期采样点数N及周期数M后,合成信号的频率由下式给出FM/NT(513)则有合成信号相对频率误差F/FM/MN/NT/T(514)上式表明,合成信号引入频率误差有三个可能的因素一是M/M项,是周期数取整时引入的相对误差;二是N/N项,是采样点数取整时引入的相对误差;三是T/T项,是采样时间取整时引入的相对误差。足以证明上式中的M,N,T的最大值均为1或1。本系统中引进M的可能性不大,因此在保证单片机晶振频率比较稳定,合成还原时间与采样时间118S相同时,可由下式确定合成频率与标准频率的相对误差EFF0/F0M/NTF01(515)由上式求得的各点频率误差如表52所示。由表可见,其相对误差均在015以下,优于CCITT所规定的15的要求一个数量级以上,借助专用仪器的测试,可验证上述结果的正确性。表52各点频率误差标准频率(F0HZ)计算频率(HZ)绝对误差()相对误差()69769650500777077040400585285170304941941606006120912106

温馨提示

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

评论

0/150

提交评论