您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 综合电子实验设计报告(频率计)
综合电子系统设计报告实验名称:基于STM32的频率计设计班级:电子1202学号:03号姓名:__指导老师:2015年4月13日一、系统设计1、方案论证(一)、控制部分的选择:方案一:C51单片机本身的资源就太少,做个频率计就需要用到一个定时器,一个中断或者两个定时器,可不方便。方案二:STM32仅仅需要一个资源就行了,stm32里有一个输入捕获功能。我们可以利用TIM5的通道1(PA0)来做输入捕获,捕获PA0上两个上升沿所经历的时间,就可以计算得出频率了。(二)、波形处理方法方案一:PWM捕获,PWM捕获上升沿,在设定时间内(利用定时器设定)捕获的PWM上升沿即可算出频率,此方案低频时精度高,但是对于高频会使计数溢出。方案二:ETR捕获:捕获脉冲计数器,在设定时间内捕获信号脉冲个数,高频时可以利用信号分频之后再捕获,此方案对于高频低频都有效,实用性好,精度好。2、总体方案设计:二、硬件电路的设计波形产生部分(整流)控制部分STM32数码管显示部分第一部分方波形产生被测电路经过限幅电路后输入到放大电路中,考虑到最高频率达到10KHZ,同时若输入幅度较小需要进行放大,故用两级放大器进行放大。如图所示:第二部分信号波形整形电路利用施密特触发器将边缘缓慢变化的周期性模拟信号变换成同频率的矩形脉冲。第三部分数码管显示电路第四部分控制部分STM32最小系统主程序流程图频率、周期计数子程序流程图四、理论计算1、设在一次预置门时间Tpr内对被测信号的计数为Nx,对标准的计数值为Nx,则下式成立:fx/Nx=fs/Ns(式1.1)由此可推得fx=fsNx/Ns(式1.2)相对误差公式δ=±(2/Ns+∆fs/fs)(式1.3)从误差分析中可以看出来,它的测量精度与Ns和标准频率精确度有关,而与被测频率无关.显然,Ns决定于预置门时间和标准频率信号的频率,其关系如下:Ns=Tprfs(式1.4)如果采用频率为50MHz的晶体震荡器,则有:|δ|≤1/Ns(式1.5)用此方法可以用单片机程序方便地完成宽位浮点数的数学运算,实现高精度测量.2、等精度周期测量法该方法在测量电路和测量精度上与等精度频率测量完全相同,只是在进行计算时所用的公式不同,用周期1/T代换频率f就可以了,它的计算公式是:Tx=TsNs/Nx(式1.6)从降低电路的复杂度以及提高精度(特别是高频)上考虑,本设计将要采用此方法测量被测信号的周期.3、量化误差若所测频率值为fx,被测频率的真实值为fxe,标准频率为fs,在一次测量中,预置门时间为Tpr,被测信号计数值为Nx,标准频率信号计数值为Ns.由于fx计数的起停时间都是由该信号的上升沿触发的,因此在Tpr时间内对fx的计数Nx无误差,在此时间内的计数Ns最多相差一个脉冲,即∆et≤1,则下式成立:fx/Nx=fs/Ns(式1.7)fxe/Nx=fs/(Ns+∆et)(式1.8)可以分别推得fx=fsNx/Ns(式1.9)fxe=fsNx/(Ns+∆et)(式1.10)根据相对误差公式有|δ|=∆fxe/fxe=(fxe-fx)/fxe(式1.11)经过整理可以得到∆fxe/fxe=∆et/Ns(式1.12)因为∆et≤1,故∆et/Ns≤1/Ns,即∆et/Ns≤1/NsNs=Tprfs(式1.13)根据以上分析,可以知道等精度测频法具有三个特点:①相对测量误差与被测频率的高低无关;②增大Tpr或fs可以增大Ns,减少测量误差,提高测量精度;③测量精度与预置门宽度和标准频率有关,与被测信号的频率无关,在预置门和常规测频闸门时间相同而被测信号频率不同的情况下,等精度测量法的测量精度不变.4、标准频率误差标准频率误差为∆fs/fs,因为晶体的稳定度很高,标准频率误差可以进行校准,相对于量化误差,校准后的标准频率误差可以忽略。五、实验结果被测信号的测量误差:1Hz—1000Hz,误差为1Hz1000Hz—2000Hz,误差为1Hz-2Hz误差主要来源为:1、基准时间的误差;2、计数误差;3、指示误差;4、测量过程中的外部干扰六、实验总结不足就是没有应用matlab进行误差的拟合分析,所以对于实验的误差没有特别直观的认识,只是进行了理论的分析。参考文献:《单片机原理与应用技术》卢艳军机械工业出版社,2005《模拟电子技术基础》康华光高等教育出版社第五版网上资源参考网址:=24&ssid=&from=&bd_page_type=1&uid=D55C082BF9699FE0C50D36709090B1A2&pu=rc@1,pic@on,sl@1,pw@1000,sz@1509_220,pd@1,fz@2,lp@3,tpl@color,&st=1&wk=rd&maxpage=41&pos=next附录(部分程序):voiddelay1ms(uints)//延时1MSvoidTime0_init()//定时计数器初始化{TMOD=0x11;//GATE=1,T1、T0工作在方式1,定时方式TH0=0;//定时计数器初值清零TL0=0;TR0=1;//TR0,TR1置位,此时定时计数器的启动有INT0,INT1引脚电平决定ET0=1;//开中断}voidmain(){Time0_init();//定时计数器初始化EA=1;//开总中断EX0=1;//允许外部中断IT0=1;//设置外部中断方式为下降沿触发P3=0xff;while(1){t0=u*65536+x;//计算脉冲时间宽度f=1000000/t0;//计算频率display(f);//显示频率}}voiddisplay(intc)//数码管显示,P0段选,P2位选{P2=0X01;P0=table[c%10];delay1ms(4);P2=0X02;P0=(table[(c/10)%10]);delay1ms(4);P2=0X04;P0=table[(c/100)%10];delay1ms(4);P2=0X08;P0=table[(c/1000)%10];delay1ms(4);P2=0X10;P0=table[(c/10000)%10];delay1ms(4);P2=0X20;P0=table[(c/100000)%10]);delay1ms(4);}voidITC0()interrupt0//外部中断0服务程序{u=m;//读定时计数器0溢出次数m=0;//溢出次数清零x=TH0*256+TL0;//读定时计数器0当前值TH0=0;//定时计数器0清零TL0=0;}voidTIME0()interrupt1//定时计数器0溢出中断{m++;//溢出次数加1}
本文标题:综合电子实验设计报告(频率计)
链接地址:https://www.777doc.com/doc-2067090 .html