单片机课程设计报告-基于双音频编码信号的传输系统接收端设计.doc_第1页
单片机课程设计报告-基于双音频编码信号的传输系统接收端设计.doc_第2页
单片机课程设计报告-基于双音频编码信号的传输系统接收端设计.doc_第3页
单片机课程设计报告-基于双音频编码信号的传输系统接收端设计.doc_第4页
单片机课程设计报告-基于双音频编码信号的传输系统接收端设计.doc_第5页
免费预览已结束,剩余18页可下载查看

下载本文档

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

文档简介

专业课程设计报告 题 目: 基于双音频编码信号的传输系统接收端设计 姓 名:专 业:通信工程班级学号:同 组 人 :指导教师: 南昌航空大学信息工程学院2011 年 07月 08 日 专业 课程设计任务书20 1020 11 学年 第 2 学期第 16 周 19 周 题目基于双音频编码信号的传输系统接收端设计内容及要求1、以单片机stc89c52为核心,运用mt8870芯片组成的双音频信号(dtmf)解码接受电路,实现信号的接收。2、利用双音频信号实现单片机之间的双向通信3、通信数据通过显示器显示。进度安排 16周:相关资料收集,方案比较与选择。 17-18周:电路设计与调试 19周:设计结果验收,报告初稿的撰写。学生姓名: 指导时间指导地点:e楼任务下达2011 年 6 月13 日任务完成2011 年 7 月 8 日考核方式1.评阅 2.答辩 3.实际操作 4.其它指导教师系(部)主任注:1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。摘要本课题主要是运用mt8870芯片组成的双音多频信号(dtmf)解码接收电路,接收基于mt8880编码电路发送的dtmf信号并进行解码,mt8870能将dtmf信号译码成二进制信号然后通过q0-q1输出端口发给单片机,接收的通信数据通过at89c52单片机将该二进制数读入;此时单片机根据读入的二进制数,通过i/o口给数码管发数字显示信号,以此利用双音频信号实现单片机之间的双向通信。关键词: dtmf; 单片机; mt8870;前言dtmf(dual tone multi frequency)信号是音频电话的拨号信号。由美国at&t贝尔实验室研制, 双音多频信号编码技术易于识别,抗干扰能力强,发号速度快,且比用modem进行远程传输的方法更为经济实用,因此这种拨号方法取代了传统的脉冲拨号。在电视监控系统中,解码器全天候工作,工作环境比较恶劣,存在着大量的干扰源。这些干扰源的存在有可能使解码器工作混乱,引起控制输出的误动作,直接影响到电视监控系统工作的稳定性。为了增加解码器的抗干扰能力,提高解码器工作的稳定性,采取硬件和软件相结合的抗干扰措施。目前,大多数的dtmf信号的解码都是采用专用芯片mt8870,mt8880等,这种方法,信号解码抗干扰能力强、工作稳定性好,软件与硬件相结合使用可以使解码器长期、安全、可靠、稳定运行。使用单片机与双音多频解码芯片(mt8870)的结合,可以实现控制信息的处理和加工问题,而且控制信息可以非常精确。第一章 系统组成与工作原理双音频编码信号的传输系统接收端设计主要由解码电路构成主控部分,进行主要的信息处理,接收外部发送的dtmf信号并解码16种双音多频信号;接口电路提供单片机与解码电路的接口以及单片机与显示电路的接口。双音频解码电路主要用于dtmf的解码,将两个叠加的正弦波模拟信号通过解码成二进制信号,而且解码电路还具有判断功能,判断dtmf信号是否发送,是否发完,并将解码的二进制信号通过输出口传达给单片机,单片机通过其io口控制数码管的显示。 dtmf信号解码电路 at89s52单片机驱动显示电路dtmf信号发送复位电路 图1系统原理框图第二章系统要求分析2.1 总体设计要求根据具体的设计要求1、以单片机stc89c52为核心,运用mt8870芯片组成的双音频信号(dtmf)解码接受电路,实现信号的接收。2、利用双音频信号实现单片机之间的双向通信3、通信数据通过显示器显示。2.2 系统单元功能模块设计此系统必须具备一下单元功能模块:(1)dtmf信号信号发送(2)dtmf信号解码,并判断(3)将解码的二进制信号传递给单片机(4)单片机能够准确的将解码信号通过数码管显示出来从理论上看交换机发出的双音多频信号(dtmf)是标准的信号,可以通过软件的编程来识别,即通过单片机驱动数码管显示看显示的数字是否与发送的相一致即可,其中解码电路是用专门的硬件电路来实现的不需要单片机的控制,而解码后的二进制信号时通过单片机中断来读、存储的。显示电路是通过软件的编程来控制的,综上所述信号发送,解码电路,是由硬件电路实现,解码数据显示是由软件来实现的。第三章系统硬件电路的设计本系统的硬件电路设计主要包括以下几个部分:1) 单片机最小系统电路2)dtmf信号解码3)显示电路以下将详细介绍各部分硬件电路的设计实施过程3.1 dtmf信号的介绍3.1.1 dtmf信号的特性dtmf是由低频组(fb)和高频组(fa)两组频率信号构成,每个数字信号由低频组和高频组的任意一个叠加而成。根据国际电报电话咨询委员会(ccitt)的建议,dtmf的编译码定义如表1所示,表1数字键盘高频组/hz1209低频组/hz697123a770456b852789c941*0#d可用下式表示f(t)aasin(2*fa*t)+absin(2*fb*t)式中两项分别表示低、高音群的值,ab和aa分别表示低音群和高音群的样值量化基线,而且两者幅值比为k=ab /aa (0.7k0.9)。同时规定,对应于表1中的标称频率在发送时,dtmf信号的频率偏差不应当超过1.5,每位数字的信号极限时长应该大于40ms,而接收设备对2的偏差应能可靠地接收,对30ms40ms时长的信号可以正常地接收。与单音编码不同,dtmf 信号是采用8 中取2 的方式,从高低两个音组中各取一个音频复合而成来代表0 - 9 十个号码和其他功能码,再加上这8 个音频信号的各频率间不存在谐波关系,大大减少了虚假信号的干扰,因而dtmf 信号工作可靠性特别是抗干扰能力很强。主叫用户摘机按键拨号后,电话号码所对应的dtmf信号通过电话线传到程控交换机中的dtmf接受电路,交换机中的微机识别被叫电话号码后,接通主被叫用户实现双方通话。dtmf信号还用于自动控制系统,如果把dtmf的发送电路用于主控系统,接受电路用于被控系统,就可以方便地组成有线或无线通信系统,如图2所示,其通道数视需要而定,16通道以内每通道只需编一位号码即可,若需要更多通道,则可象电话号码编号一样编为两位或两位以上的号码。3.2 双音多频解码电路3.2.1设计方案比较此电路的作用是完成dtmf信号的译码,电路通过芯片内部的结构将信号译成二进制。方案一:使用具有收发dtmf信号的mt8880芯片设计解码电路,电路如图2所示。该电路的特点是mt8880具有发送dtmf信号和接收dtmf信号的功能图2 mt8880解码电路方案二:该方案是由mt8870以及电阻、电容组成的解码电路,如图3所示。该方案是在方案一的基础之上只取dtmf信号接收部分,其工作原理与上工作原理没有什么大的改变。图3 dtmf解码电路方案比较:方案一电路的原理与方案二的原理没有什么区别,但是方案一所用到的管脚较之方案二要多四个管脚,在实验调试的时候工作量相对比较大,很容易由于其它管脚的松动而影响实验结果,并且mt8880芯片具有收发dtmf信号,其所选的电容电阻值是为了满足两种情况下而设计的,故在解码信号时不确定因素相对比较多一点,很有可能有一些频率的dtmf信号不能解码因此,在解码dtmf信号时选用mt8870相对好一点,抗干扰的能力也会大一点,故此选用方案二设计。 解码电路接收到一个完整的dtmf信号以后,mt8870内部将信号分成高频带和低频带,并将此信号送至数字译码器,然后将讯号送至数字译码器以解出按键值,接着将解出的按键值以二进制的方式以四条线(q1、q2、q3、q4)输出到外部共享bus 上,值得一提的是,当mt8870 解出一个dtmf且输出到外部时,其std 接脚会由低态升为高态,经一段时间后再降为低态,我们便可利用此特点侦测到此脚有讯号时便马上将q1-q4 接脚所产生的值读入cpu,然后解出电话的按键值。其中电路中的电阻,电容的值得确定:据所查的资料可确定r1=r2=100k r3=300k 电容 c1,c2=100nf解码电路的振荡频率要求用3.57954mhz的晶振3.2.2 解码电路原理主要设计思想是远端用户发送的dtmf信号是从电话线上传送来的,它含有很大的直流成分,所以在进行解码之前必须去除这些直流成分,因此必须通过一个磁片电容进行隔直,然后再由mt8870的2、3脚接收来自电话机的双音多频脉冲信号。(注:其中gs(3)增益选择端,在该引脚与in-引脚间接反馈电阻可调节运放增益,增益的大小就取决与r8和r12电阻的大小,因为电话信号进来的时候频率只有25hz而在进行解码的时候能够识别的频率在700到2000hz,所以放大倍数应该在100倍左右,因此r8和r12电阻应该选为100欧姆和70欧姆)但此双音多频信号(dtmf)是由一组低音频信号和一组高音频信号以一定方式的组合构成,每组音频信号各有4个音频信号,而每种组合有一个高音频信号和一个低音频信号,共16种组合(注:dtmf信号的产生原理:双音频信号是2个正弦波信号的叠加,选定2个频率f1和f2后可得到这种信号的数学表达式,见下式 对照表1和表2可发现dtmf信号由2个不同的频率信号合成。分为高频组和低频组,包各含有4个频率,可以构成16种不同的信号,依次对应着16个不同的bcd码)具体数据见表3-8 ,因此信号进入mt8870之后第一步就是将这两个信号给分离出来 分离出来之后 ,再经高、低群滤波器和幅度检测器送入输出译码电路,经过数字运算后,在其数据输出端(1114脚)输出相对应的8421码。mt8870的数据输出端q4q1直接与at89c52单片机的p1.3p1.0连接,mt8870在dtmf信号码变换完成后,由std端发送中断信号至int1,通知at89c52数据准备好。std电平由低变高,再反相为低,at89c52单片机检测后,指示p1口接收有效二进制代码。而无效的双音频信号(例如,信号忙音,电话线路杂音、人们的语音信号等)是不会引起mt8870的std端变化的。表2 mt8870解码功能表digit toe inh est q4 q3 q2 q1 any l x h z z z z 1 h x h 0 0 0 1 2 h x h 0 0 1 0 3 h x h 0 0 1 1 4 h x h 0 1 0 0 5 h x h 0 1 0 1 6 h x h 0 1 1 0 7 h x h 0 1 1 1 8 h x h 1 0 0 0 9 h x h 1 0 0 1 0 h x h 1 0 1 0 * h x h 1 0 1 1 # h x h 1 1 0 0 a h l h 1 1 0 1 b h l h 1 1 1 0 c h l h 1 1 1 1 d h l h 0 0 0 0 a h h l b h h l c h h l d h h l 另外10引脚是允许数据输出端口它的作用是在mt8870解码完毕并通知最小系统数据已经准备好发送的时候此引脚必须是高电平才会让mt8870将数据发送给最小系统,考虑到此方面的原因最后决定将此引脚接到电源上就可以了,也就是说mt8870始终默认为允许传送数据。本来芯片的18引脚直接接电源就可以了但考虑到外界存在一些交流电会对电路产生一定的影响所以运用一个磁片电容可以有效的防止外界的交流电的干扰,最后就是osc1、osc2(6、7)时钟或振荡器的输入、输出端。两引脚间接3.579545mhz晶体与内部电路构成芯片振荡器。综合以上所说就可以确定mt8870解码电路图如图3所示3.3 驱动显示电路hd7279的驱动显示电路主要是通过单片机软件编程根据dtmf解码的二进制信号有选择性的显示数据,而hd7279与微处理器仅需4条接口线,其中cs为片选信号(低电平有效)。当微处理器访问hd7279a(读键号或写指令)时,应将片选端置为低电平。data为串行数据端,当向hd7279a发送数据时,data为输入端;当hd7279a输出键盘代码时,data为输出端。clk为数据串行传送的同步时钟输入端,时钟的上升沿表示数据有效。key为按键信号输出端,在无键按下时为高电平;而有键按下时此引脚变为低电平并且一直保持到键释放为止,如图3所示。图4 数码管驱动电路3.4复位电路单片机在启动运行时都需要复位,复位使cpu和系统中的其他部件都处于一个确定的工作状态,并从这个状态开始工作。在系统中,有时也会出现显示不正常,也为了调试方便,需要设计一个复位电路,复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能。在此系统中单片机的复位靠外部电路实现的,at89c51单片机有一个复位引脚rst,高电平有效。只要rst保持高电平,单片机便保持复位状态。此时,ale/psen、p0、p1、p2、p3口都输出高电平。rst变成低电平后,退出复位状态,cpu开始正常工作。需要注意的是,复位操作不影响片内ram的内容。复位电路的基本功能是系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。图1为基本rc复位电路,其电路为高电平复位有效, sw1为手动复位开关,可以实现上述基本功能。图5基本rc复位电路对于图1中的电阻两端的电压(即复位信号)是一个时间的函数。上电复位时和有以下函数关系,波形图如图2(a)所示。 按键复位时设在0之间时sw1合上, 时,sw1断开,则和有以下函数关系,波形图如图2(b)所示。 其中,vcc为电源电压(+5v)。 (a)上电复位时ur的波形 (b)按键复位时ur的波形 图6 复位时的波形 实践证明,若晶振稳定时间不超过10ms。上电瞬间r10c电路充电,reset引脚出现正脉冲。只要reset端保持10ms以上高电平,就能使单片机复位。为使其可靠复位,reset引脚上电复位时间应保持20ms以上的高电平,即在选择r10c参数时要保证时间参数r10c大于20ms。按键复位时,r1阻值选择不能过小,那样的话只要碰到就会复位;选择过大时,按键按下去很久才能复位,所以要选择适中的阻值为1 k左右的电阻。复位电路应该具有上电复位和手动复位的功能。vcc上电时,c充电,在10k电阻上出现电压,使得单片机复位;几个毫秒后,c充满,10k电阻上电流降为0,电压也为0,使得单片机进入工作状态。工作期间,按下sw1,c放电。sw1松手,c又充电,在10k电阻上出现电压,使得单片机复位。几个毫秒后,单片机进入工作状态。 第四章系统的软件设计1、 语言的选择mcs-51 编程语言常用的有两种,一种是汇编语言,另一种是c 语言。汇编语言的机器代码生成效率很高,但是可读性并不强,复杂一点的程序就更是难读懂,而c 语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过了汇编语言,而且c 语言还可以嵌入汇编来解决高实效性的代码编写问题。对于开发周期来说,c 语言的开发周期通常小于汇编语言很多。c 语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护,这种语言的表现能力和处理能力极强,它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。c 语言的模块化开发方式使开发出来的程序模块可不经修改,直接被其他项目所用,这样可以最大程度的实现资源共享。由于c 语言实现了对硬件的编程操作,因此c 语言集高级语言和低级语言的功能为一体,具有高效性,可移植性强等特点。但是考虑到本次的设计程序不复杂,所以选择较为熟悉的汇编语言对51 单片机进行软件编程。2、原程序的编译由于单片机只能执行机器语言的程序(目标程序),因此将源程序编辑好以扩展名.asm保存后,应将源程序编译成目标程序。编译过程中,能够检查程序的正确性,并能发现源程序中的语法错误和一般性的逻辑错误,但不能检查结构上的错误。如果有错误,信息窗口会报告显示,并指出错误位置及错误类型。 程序错误被纠正后,要重新进行编译调试,直到程序编译无误为止。只有当被编译的程序没有错误时,才能执行程序及对程序进行仿真调试。4.1 软件设计总体框图开始等待中断读码y判断是什么码yny判断是否发完提供脉冲逐位发码y显示芯片判断是否有按下键按下芯片查表显示结束图7 系统流程图由于程序设计比较简单只需要在7279驱动显示的程序上稍作修改!第五章系统调试5.1 解码电路调试5.1.1 dtmf信号的检测用示波器观测程控交换机发送的比较标准的双音多频信号波形,并且记录其波形。理论分析波形:因为dtmf信号波形是两个正弦波叠加而成的所以其波形应该是入下所示:图8 dtmf信号波形经mt8870解码以后, q0-q3端口输出的是二进制脉冲信号,在发送dtmf信号时,可用示波器观测波形的变法,经观测可知每发送一个dtmf信号波形,在相应的输出端口总会发生一个阶跃性的跳变,经分析得到没有跳变时为低电平即“0”,跳变时为高电平“1”。一般也会遇到mt8870不解码、掉码的情况出现。1、mt8870不解码:这个问题出现的原因有很多种,此次设计过程中,由于经过电话线进入mt8870de的信号首先经过了电桥的整流,因为开始使用的电桥采用4个4007型二极管。可能是由于它们之间的不平衡和不稳定因素,导致了整个解码电路不解码,即,std脚无高低电平变化,把电桥去掉后,将电话线的另一端直接接地,在进行电话按键的测试时,发现std脚有标准的高低电平变化,又对照电话键盘按键与双音多频信号的对应关系表,对mt8870de输出的四个脚(q1-q4)进行高低电平的测量。发现所按的键经过mt8870de的解码后,与q1,q2,q3,q4所输出的8421码完全吻合,问题解决2、掉码问题:在解决8t8870不解码问题后调试过程中发现按键的时候q1q4有时候能够输出正确的8421码但有时候缺不能正确输出,直到最后才发现问题出现在mt8870外围电路的st/gt(16脚)这个上面的电阻过小,后来将电阻换成200k后掉码问题解决,至此mt8870调试完毕5.2 驱动显示电路的调试在系统板的调试时只需将7279键盘程序下载至单片机,然后按下每一个按键其相对应的数字是否在数码管中显示。在检测的时候hd7279的cs,clk,dat,key相应的接到单片机p1.4-p1.1上,当cs为为低电平是可向芯片发送指令及读取键盘数据,同步时钟输入端clk向芯片发送数据及读取键盘数据时,此引脚电平上升沿表示数据有效。串行数据输入/输出端data,当读取键盘数据时,此引脚在读指令最后一个时钟的下降沿变为输出端。按键有效输出端key,平时为高电平,当检测到有效按键时,此引脚变为低电平。如是则可检测单片机系统板是否能够正常工作。5.3 系统综合调试 联机在线调试所用到的设备:1.系统板一块2.dtmf信号发生器一台3. 5v稳压电源一个;4.示波器;5.万用表在系统调试阶段,dtmf信号发送、驱动显示电路都没有问题,如有问题,主要还是处在解码电路之中,双音频信号解码在联机调试的时候其晶振不起振而且8870的std端信号检测不到,当mt8870 解出一个按键值且输出到外部时,其std 接脚会由低态升为高态,经一段时间后再降为低态,我们便可利用此特点侦测到此脚有讯号时便马上将q1-q4 接脚所产生的值读入cpu,然后解出电话的按键值。由于其10端是锁存端,10脚输出为高电平,而15脚std端输出为脉冲,将两脚接在一起会出现逻辑错误。刚开始查了好多资料,看到它是接在一起的,就照着接了,在调试时发现这种接法行不通,所以,将10脚接在5v上,解码正常,std端输出正常。除此之外在连接单片机和mt8870的q1-q4的时候经常会出现接反的情况这样的结果就是会使解出的四位二进制码与程序设置的不符致使显示电路显示的数据时乱码。第五章总结5.1 本次设计的特点本系统由mt8870构成主控部分,进行主要的数据处理,接收外部dtmf信号并解码成数据信号,再由单片机控制显示部分从而实现双音频编码信号的传输系统接收端设计。驱动显示电路受单片机的控制产生相应的二进制信号,并通过hd7279的驱动,从而使单片机实现数据的双向通信,并能及时判断解码的正确与否;本系统的每一个接口电路都已经经过实际的交换机在线实验,具有很强的实用性。本系统使用最简单的电路、最便宜的电路芯片实现了完善的功能。5.2本次设计的不足之处该系统的设计由于时间的限制,在课设结束之前只能做到现有的程度,但本系统仍然有很多可以改进之处,下面就改进做下叙述:由于我的双音频编码信号的传输系统接收端设计,要求解码另一组用mt8880设计发送的dtmf信号,而我的设计要求是基于mt8870的解码器设计,虽然在理论上是可以实现编码、解码。但是由于两个芯片本身存在着差距,而且dtmf信号又是模拟的小信号,极易受到外界噪声的干扰,以致只能解出少部分的编码信号。如果把mt8870改用mt8880将会排除这种差距,减少了调试当中的不确定因素。5.3 课设体会1、学会了怎样查阅资料和利用工具书。平时课堂上所学习的知识大多比较陈旧,作为通信工程的学生,由于专业特点自己更要积极查阅当前的最新通信资料。一个人不可能什么都学过,什么都懂,因此,当你在设计过程中需要用一些不曾学过的东西时,就要去有针对性地查找资料,然后加以吸收利用,以提高自己的应用能力,而且还能增长自己见识,补充最新的专业知识。 2、实践能力得到了进一步提高,在调试过程中积累了一些经验。 3、毕业设计对以前学过的理论知识起到了回顾作用,并对其加以进一步的消化和巩固。 4、毕业设计培养了严肃认真和实事求是的科学态度。而且培养了吃苦耐劳的精神以及相对应的工程意识,同学之间的友谊互助也充分的在毕业设计当中体现出来了。参考文献1.张迎新. 单片微型机原理、应用与实验.北京:国防工业出版社,20041 李广弟,朱月秀,王秀山单片机基础北

温馨提示

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

评论

0/150

提交评论